<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于藍(lán)牙4.0的設(shè)備通信方案設(shè)計(jì)與實(shí)現(xiàn)

          基于藍(lán)牙4.0的設(shè)備通信方案設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2018-08-30 來源:網(wǎng)絡(luò) 收藏

          隨著技術(shù)的迅速發(fā)展,目前芯片市場涌現(xiàn)出了許多優(yōu)秀產(chǎn)品。CSR公司的BlueCore系列產(chǎn)品、Bmadcom的BCM系列產(chǎn)品和TI公司的CC2540系列產(chǎn)品都有廣泛的應(yīng)用。其中TI公司的和CSR公司的CSR1000芯片都非常適用于4.0應(yīng)用解決方案。

          本文引用地址:http://www.ex-cimer.com/article/201808/388079.htm

          本文選用了TI公司的F128芯片作為藍(lán)牙通信芯片,該芯片提供真正的單片低功耗藍(lán)牙BLE解決方案,能夠運(yùn)行應(yīng)用程序和BLE協(xié)議棧。F128芯片內(nèi)部集成了高性能低功耗的8051微處理器核,片內(nèi)提供來了128KB的Flash存儲(chǔ)空間,對外支持UART和USB通信接口,所以非常適用于藍(lán)牙4.0的應(yīng)用解決方案。

          1 總體方案設(shè)計(jì)

          該設(shè)計(jì)為基于藍(lán)牙4.0的設(shè)備提供良好的通用方案,有助于研發(fā)特定應(yīng)用的設(shè)備。系統(tǒng)總體架構(gòu)如圖1所示。在系統(tǒng)總體架構(gòu)圖中,主要包括兩部分:支持藍(lán)牙4.0的手持設(shè)備和藍(lán)牙設(shè)備。其中支持藍(lán)牙4.0的手持設(shè)備可以是諸如智能手機(jī)、平板電腦等;藍(lán)牙設(shè)備則是本文提供的解決方案。支持藍(lán)牙4.0的手持設(shè)備和藍(lán)牙設(shè)備之間通過藍(lán)牙4.0協(xié)議傳輸數(shù)據(jù),可以為藍(lán)牙耳機(jī)、手機(jī)防丟應(yīng)用和無線拍照應(yīng)用等提供數(shù)據(jù)方案。

          從系統(tǒng)總體架構(gòu)框圖中不難看出,該設(shè)計(jì)方案支持一對多的通信連接,即每個(gè)支持藍(lán)牙4.0的手持設(shè)備可以同時(shí)與多個(gè)藍(lán)牙設(shè)備建立連接,對應(yīng)用功能的擴(kuò)展帶了極大便利。

          2 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

          該部分將對系統(tǒng)總體架構(gòu)框圖中的藍(lán)牙設(shè)備給出解決方案。此處選用了TI公司的CC2450F128芯片作為藍(lán)牙通信芯片,該芯片最大的特點(diǎn)是能夠提供真正的單片低功耗藍(lán)牙BLE解決方案,能夠運(yùn)行應(yīng)用程序和BLE協(xié)議棧,使用起來簡單高效。

          2.1 CC2450F128外圍電路設(shè)計(jì)

          低功耗藍(lán)牙芯片CC2450F128的外圍電路原理圖如圖2所示。從圖2中可以看出CC2450F128芯片一般需要兩個(gè)時(shí)鐘晶振,其最為核心的部分是天線的電路設(shè)計(jì),需要根據(jù)實(shí)際的需要調(diào)整阻抗匹配。由于CC2450F128芯片使用的是8051微處理器核,所以其可以對外提供多個(gè)IO引腳以用于其他業(yè)務(wù)邏輯的實(shí)現(xiàn)。

          2.2 擴(kuò)展

          該解決方案另一個(gè)重要的部分就是其的設(shè)計(jì)和擴(kuò)展。通常需要按照藍(lán)牙4.0的來擴(kuò)展其配置,包括Setvice配置和Characteristic配置。

          舉例說明,可以先增加UUID為00001802-0000-1000-8000-00123456789b的Service,然后為該服務(wù)增加UUID為00002a06-0000-1000-8000-00123456789b的Characteristic。

          通常需要根據(jù)應(yīng)用的業(yè)務(wù)邏輯劃分出多個(gè)功能大類,再對功能大類進(jìn)行細(xì)分。每一個(gè)功能大類對應(yīng)一個(gè)Service,每一個(gè)功能細(xì)分對應(yīng)一個(gè)Characteristic??傮w看來,每個(gè)應(yīng)用可以包括多個(gè)Service,每個(gè)Service可以包括多個(gè)Characteristic。

          3 系統(tǒng)性能分析

          本文提供的解決方案是為了解決基于藍(lán)牙4.0的設(shè)備的通信問題,所以必須關(guān)注于影響其通信的幾個(gè)關(guān)鍵因素:、設(shè)備發(fā)現(xiàn)時(shí)間、穩(wěn)定性和誤報(bào)率。

          3. 1 與距離的關(guān)系

          是決定藍(lán)牙4.0通信質(zhì)量的最重要因素之一,為了明確實(shí)際的信號(hào)強(qiáng)度衰減情況,進(jìn)行了深入的實(shí)際數(shù)據(jù)測量。信號(hào)強(qiáng)度與距離的關(guān)系的原始數(shù)據(jù)圖如圖3所示。在圖3中,藍(lán)色交叉點(diǎn)顯示的是492組數(shù)據(jù),從圖3中可以看出信號(hào)強(qiáng)度總體走勢較為明顯,相同距離下的數(shù)據(jù)相對集中,部分?jǐn)?shù)據(jù)有波動(dòng)現(xiàn)象。

          為了更好的分析圖3中的數(shù)據(jù),需要對數(shù)據(jù)進(jìn)行處理。首先以距離為依據(jù),對同一距離下的6項(xiàng)信號(hào)強(qiáng)度數(shù)據(jù)進(jìn)行均值處理,然后對處理后的數(shù)據(jù)進(jìn)行數(shù)據(jù)擬合,得到信號(hào)強(qiáng)度與距離的關(guān)系圖。

          信號(hào)強(qiáng)度與距離的關(guān)系圖如圖4所示。在圖4中,紅色交叉點(diǎn)表示對同一距離下的6項(xiàng)信號(hào)強(qiáng)度數(shù)據(jù)進(jìn)行均值處理后的82組數(shù)據(jù),藍(lán)色線條表示對該82組數(shù)據(jù)進(jìn)行擬合后的曲線。從圖4中可以看出信號(hào)強(qiáng)度在1米以內(nèi)迅速衰減,之后隨著距離的增加逐漸緩慢衰減,并且衰減過程中呈現(xiàn)波動(dòng)趨勢。

          根據(jù)圖4中信號(hào)強(qiáng)度與距離所呈現(xiàn)的規(guī)律,可以用于藍(lán)牙測距方面的應(yīng)用,在實(shí)現(xiàn)上需要考慮藍(lán)牙信號(hào)強(qiáng)度本身的波動(dòng)性因素,采用多次采樣和歷史數(shù)據(jù)校正等方式來合理處

          理數(shù)據(jù),以獲取可用的有效數(shù)據(jù),提升系統(tǒng)本身的穩(wěn)定性。

          3.2 設(shè)備發(fā)現(xiàn)時(shí)間與距離的關(guān)系

          設(shè)備發(fā)現(xiàn)時(shí)間是評價(jià)藍(lán)牙4.0通信質(zhì)量的另一個(gè)最重要因素。在使用藍(lán)牙設(shè)備時(shí),通信之前的第一步工作就是掃描藍(lán)牙設(shè)備,然而掃描過程中設(shè)備發(fā)現(xiàn)時(shí)間與距離存在極大的關(guān)聯(lián),為了明確該內(nèi)在關(guān)系,進(jìn)行了深入的實(shí)際數(shù)據(jù)測量。整理后的設(shè)備發(fā)現(xiàn)時(shí)間與距離的關(guān)系的統(tǒng)計(jì)數(shù)據(jù)如表1所示。

          從表1中不難看出,總體趨勢是距離越近,設(shè)備發(fā)現(xiàn)時(shí)間越短;距離越遠(yuǎn),設(shè)備發(fā)現(xiàn)時(shí)間越長。當(dāng)距離超出10 m時(shí),設(shè)備發(fā)現(xiàn)的時(shí)間非常長或者不能發(fā)現(xiàn)設(shè)備,所以在實(shí)際的應(yīng)用上需要考慮系統(tǒng)的性能參數(shù),選擇合適的通信距離。

          3.3 穩(wěn)定性與誤報(bào)率

          3.3.1 設(shè)備發(fā)現(xiàn)壓力測試

          為了驗(yàn)證該解決方案的穩(wěn)定性,在10 m內(nèi)采用100個(gè)藍(lán)牙設(shè)備做設(shè)備發(fā)現(xiàn)壓力測試。進(jìn)行了壓力測試之后顯示,使用100個(gè)藍(lán)牙設(shè)備進(jìn)行掃描發(fā)現(xiàn),距離越近的設(shè)備發(fā)現(xiàn)的頻率越高,距離越遠(yuǎn)的設(shè)備發(fā)現(xiàn)的頻率越低。設(shè)備的整體發(fā)現(xiàn)率可達(dá)到近90%,10%的設(shè)備未被發(fā)現(xiàn)主要原因是距離近的設(shè)備信號(hào)較強(qiáng),容易被發(fā)現(xiàn),優(yōu)先占用資源。

          3.3.2 設(shè)備連接測試

          設(shè)備的連接測試與硬件設(shè)備和上層的軟件設(shè)計(jì)有極大的關(guān)系。理論上設(shè)備連接數(shù)量不受限制,但受到實(shí)際的軟硬件資源的約束以及應(yīng)用場景的不同,設(shè)備連接數(shù)量也有極大的不同。此處我們的原型設(shè)備同時(shí)連接3臺(tái)藍(lán)牙設(shè)備時(shí)非常穩(wěn)定,同時(shí)連接5臺(tái)藍(lán)牙設(shè)備時(shí)較穩(wěn)定,連接更多藍(lán)牙設(shè)備時(shí)將出現(xiàn)不能連接的狀況。

          3.3.3 設(shè)備誤報(bào)率測試

          實(shí)際的應(yīng)用中,將考慮藍(lán)牙設(shè)備當(dāng)前的連接狀況問題。由于當(dāng)距離超出10 m時(shí),設(shè)備發(fā)現(xiàn)的時(shí)間非常長或者不能發(fā)現(xiàn)設(shè)備,此時(shí)應(yīng)用中的邏輯通常認(rèn)為該藍(lán)牙設(shè)備已斷開連接,所以進(jìn)行了10 m誤報(bào)率測試。該測試中首先將藍(lán)牙設(shè)備連接,然后移動(dòng)到不足距離10 m的位置上檢查其提示連接已斷開的狀況。經(jīng)過100測試發(fā)現(xiàn)其在10 m左右的位置上的誤報(bào)率在15%左右,其將受到軟件的邏輯的影響。

          4 結(jié)束語

          本文從實(shí)際應(yīng)用的角度出發(fā),設(shè)計(jì)并實(shí)現(xiàn)了基于藍(lán)牙4.0的設(shè)備通信方案。該方案提供了低功耗的藍(lán)牙解決方案,能夠支持多設(shè)備的同時(shí)通信。實(shí)際實(shí)驗(yàn)測試結(jié)果表明,通信距離對接受到的藍(lán)牙設(shè)備的信號(hào)強(qiáng)度、設(shè)備發(fā)現(xiàn)時(shí)間和誤報(bào)率都有較大影響。本文所提供的設(shè)計(jì)方案經(jīng)過大量的數(shù)據(jù)的驗(yàn)證,可以較好的完成藍(lán)牙4.0通信功能,提供了多設(shè)備發(fā)現(xiàn)和連接的能力,以及根據(jù)信號(hào)強(qiáng)度測距的應(yīng)用方案。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();