《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于BLE北斗便攜終端的安卓系統(tǒng)設(shè)計(jì)
基于BLE北斗便攜終端的安卓系統(tǒng)設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第7期
富新輝,,余之喜,蘇凱雄
福州大學(xué) 物理與信息工程學(xué)院,,福建 福州 350002
摘要: 為提高北斗終端設(shè)備的便攜性、兼容性與待機(jī)時(shí)長,針對北斗報(bào)文數(shù)據(jù)特點(diǎn)與低功耗藍(lán)牙(Bluetooth Low Energy, BLE)的傳輸協(xié)議,,設(shè)計(jì)實(shí)現(xiàn)了一種安卓導(dǎo)航通信系統(tǒng),。通過多線程分包組裝處理增強(qiáng)系統(tǒng)實(shí)時(shí)性,并討論得出兼容不同安卓終端的轉(zhuǎn)發(fā)速度提高軟件適用性,。加入藍(lán)牙丟包校驗(yàn)機(jī)制,,有效提高系統(tǒng)傳輸可靠性。本設(shè)計(jì)可將北斗導(dǎo)航儀的各種交互功能集成在安卓終端上,,安卓智能終端用戶只需使用體積更小的北斗便攜終端便能實(shí)現(xiàn)北斗通信導(dǎo)航功能,,操作體驗(yàn)性更好,更具實(shí)用性。
Abstract:
Key words :

  富新輝,,余之喜,,蘇凱雄

  (福州大學(xué) 物理與信息工程學(xué)院,,福建 福州 350002)

  摘要:為提高北斗終端設(shè)備的便攜性,、兼容性與待機(jī)時(shí)長,針對北斗報(bào)文數(shù)據(jù)特點(diǎn)與低功耗藍(lán)牙(Bluetooth Low Energy, BLE)的傳輸協(xié)議,,設(shè)計(jì)實(shí)現(xiàn)了一種安卓導(dǎo)航通信系統(tǒng),。通過多線程分包組裝處理增強(qiáng)系統(tǒng)實(shí)時(shí)性,并討論得出兼容不同安卓終端的轉(zhuǎn)發(fā)速度提高軟件適用性,。加入藍(lán)牙丟包校驗(yàn)機(jī)制,,有效提高系統(tǒng)傳輸可靠性。本設(shè)計(jì)可將北斗導(dǎo)航儀的各種交互功能集成在安卓終端上,,安卓智能終端用戶只需使用體積更小的北斗便攜終端便能實(shí)現(xiàn)北斗通信導(dǎo)航功能,,操作體驗(yàn)性更好,更具實(shí)用性,。

  關(guān)鍵詞北斗衛(wèi)星,;導(dǎo)航通信;安卓,;低功耗藍(lán)牙,;便攜終端

  中圖分類號:TN965.5文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.07.028

  引用格式:富新輝,余之喜,,蘇凱雄.基于BLE北斗便攜終端的安卓系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,,2017,36(7):95-97,101.

0引言

  *基金項(xiàng)目:福州市科技項(xiàng)目計(jì)劃資助(市校合作)(2015 G 61),;福建省發(fā)改委2014產(chǎn)業(yè)技術(shù)聯(lián)合創(chuàng)新專項(xiàng)資助(2014 G 100)北斗行業(yè)近幾年迅速崛起,,相關(guān)的終端設(shè)備也正在往便攜性、小型化的方向發(fā)展,。本文提出了一種基于北斗便攜終端的應(yīng)用設(shè)計(jì)方案,,該方法可使北斗終端體積進(jìn)一步縮小,待機(jī)時(shí)間更長,,交互性更好,。

  該方案采用安卓系統(tǒng)的移動終端,利用BLE獲得北斗一代,、二代信息并進(jìn)行交互操作,,在安卓終端上實(shí)現(xiàn)北斗短報(bào)文通信與定位功能。本文針對BLE的協(xié)議特點(diǎn)與北斗數(shù)據(jù)的傳輸特性,,設(shè)計(jì)了一種合理的結(jié)合方式,,并經(jīng)過測試驗(yàn)證了兩者融合后數(shù)據(jù)傳輸?shù)挠行浴?/p>

1系統(tǒng)組成

  本設(shè)計(jì)系統(tǒng)組成如圖1所示,,主要包含北斗一代模塊、北斗二代模塊,、ARM處理器,、BLE模塊、安卓終端等,。

Image 001.jpg

  1.1低功耗藍(lán)牙BLE模塊

  本文的北斗便攜終端采用的BLE模塊具有低功耗,、高速率、體積小,、成本低的特點(diǎn),。并且該藍(lán)牙模塊采用單模模式[1],使得設(shè)備集成度更高,,鏈路層更輕量且支持超低功耗待機(jī)模式操作,。模塊連接間隔為20 ms,當(dāng)串口波特率為115 200 b/s 時(shí),,模塊具有最高轉(zhuǎn)發(fā)能力4 KB/s,。模塊可以從串口一次性最多傳輸200 B數(shù)據(jù)包,并會根據(jù)數(shù)據(jù)包大小自動分包發(fā)送,,每包最大載荷為20 B[2],。

  1.2ARM處理器

  本系統(tǒng)中采用的ARM處理器為STM32,其主要功能為轉(zhuǎn)發(fā)數(shù)據(jù),,將北斗一代,、二代數(shù)據(jù)分包并插入適當(dāng)?shù)陌l(fā)送間隔時(shí)間,轉(zhuǎn)發(fā)給BLE模塊,。當(dāng)藍(lán)牙模塊接收到安卓終端發(fā)來的指令后交付給STM32,,處理器對指令進(jìn)行協(xié)議頭判斷并校驗(yàn),若符合標(biāo)準(zhǔn)和協(xié)議,,則按照相應(yīng)的指令內(nèi)容轉(zhuǎn)發(fā)給北斗一代或二代模塊。

  1.3安卓終端應(yīng)用軟件功能

  安卓系統(tǒng)4.3以后的版本支持BLE技術(shù),。本文的安卓終端采用的系統(tǒng)版本為Android6.0,。

  本文設(shè)計(jì)的安卓系統(tǒng)軟件主要功能有:

  (1)基本功能:北斗卡檢測、北斗便攜終端電量讀取,、北斗衛(wèi)星信號功率讀?。?/p>

  (2)通信功能:一代模塊短報(bào)文通信,、SOS緊急求救,;

  (3)定位功能:RDSS有源定位、RNSS無源定位,;

  (4)藍(lán)牙操作:連接,、斷開,、搜索、丟包檢測,。

2核心軟件處理過程

  2.1指令分包發(fā)送與接收

  安卓終端接收北斗終端發(fā)來的數(shù)據(jù)包,,每包的長度都為小于或等于20 B,數(shù)據(jù)包都需要先存入接收緩存隊(duì)列中,,方便后續(xù)指令的組裝操作,。向北斗終端發(fā)送數(shù)據(jù)時(shí),若數(shù)據(jù)包長度大于20 B,,需要主動將指令拆分成等于或小于20 B的小包后,,再放入發(fā)送緩存隊(duì)列中等待發(fā)送。

  發(fā)送和接收的過程都比較耗時(shí),,不適合放在主線程中執(zhí)行,,因此,本設(shè)計(jì)開啟兩路線程分別負(fù)責(zé)發(fā)送和接收(如圖2所示),。圖3所示的發(fā)送線程完成將發(fā)送數(shù)據(jù)分包并存入發(fā)送緩存的工作,。

 

Image 002.jpg

  圖3安卓終端發(fā)送線程接收線程完成從接收緩存內(nèi)提取出數(shù)據(jù)包,再將這些數(shù)據(jù)包按照“$”開頭和“*”結(jié)尾的指令格式組裝起來,,若出現(xiàn)“*”丟失的情況,,則當(dāng)組裝的指令長度>300 B時(shí)自動拋棄。具體過程如圖4所示,。

 

Image 003.jpg

  2.2發(fā)送延時(shí)兼容性

  藍(lán)牙BLE存在連接間隔這個(gè)固定參數(shù),,指的是兩個(gè)連接事件之間的時(shí)間間隔,藍(lán)牙只有在連接事件內(nèi)處理發(fā)送接收事件,,連接間隔[3]的值一般為7.5 ms~4 s,。不同的應(yīng)用可能要求不同的時(shí)間間隔。時(shí)間間隔較長的優(yōu)勢是可顯著節(jié)省功耗[4],,短的時(shí)間間隔的優(yōu)勢是可以更快地收發(fā)數(shù)據(jù),,不利之處是設(shè)備因連接事件的到來而被頻繁地喚醒,會有較多功耗,。

  對于安卓終端上的藍(lán)牙模塊,,不同終端上使用的模塊連接間隔參數(shù)通常都不相同,且安卓終端的自身配置也不相同,,處理速度有快有慢,,這便會出現(xiàn)如圖5所示的發(fā)送丟包問題。

  

Image 004.jpg

  通過圖5可看出,,由于配置較低的安卓終端,,處理速度較慢,分裝完一個(gè)數(shù)據(jù)包的時(shí)間普遍大于藍(lán)牙的連接間隔時(shí)間,,即:

  Ts≥nTL(n為正整數(shù))(1)

  式中,,Ts為安卓終端的處理時(shí)間,、TL為藍(lán)牙連接間隔。這種情況下,,當(dāng)藍(lán)牙連接事件到達(dá)時(shí),,發(fā)送的數(shù)據(jù)總是最新的。但當(dāng)安卓終端配置較高,,數(shù)據(jù)分裝速度較快時(shí),,會出現(xiàn)藍(lán)牙模塊的發(fā)送速度跟不上數(shù)據(jù)更新速度的問題,部分?jǐn)?shù)據(jù)還沒被發(fā)送出去就已經(jīng)被新的數(shù)據(jù)覆蓋,,直觀的表現(xiàn)就是藍(lán)牙丟包,。

  由于藍(lán)牙底層的連接事件到達(dá)并沒有任何標(biāo)志位返回,且藍(lán)牙為透傳底層發(fā)送成功的標(biāo)志位RTS[5]安卓系統(tǒng)無法讀取到,,所以為了避免這種情況,使配置較高的安卓終端滿足式(1)條件,,需要主動地加入延時(shí)。因?yàn)榘沧拷K端的發(fā)送操作被放進(jìn)獨(dú)立的線程中,,線程每次運(yùn)行的間隔取決于不同安卓終端CPU的性能,,理論上CPU越慢的安卓終端所需要的線程休眠時(shí)間越短。本文選取了配置性能不同的4種安卓終端,,調(diào)整不同時(shí)延觀察是否出現(xiàn)丟包現(xiàn)象,,測試所需的最小時(shí)延,測試結(jié)果如表1所示,??梢钥闯鯟PU性能越好的手機(jī)配合自己本身的藍(lán)牙模塊所需要的延時(shí)越長。 

  綜上,,由于安卓端發(fā)送給北斗終端的信息量并不大,,發(fā)送周期也較長,且為了兼容市面上的普遍機(jī)型和BLE模塊,,在每發(fā)送20 B數(shù)據(jù)包之間增加12 ms~30 ms的時(shí)延較為合適,這里折中選擇20 ms延時(shí),。

Image 007.jpg

  2.3校驗(yàn)機(jī)制

Image 005.jpg

  圖6系統(tǒng)校驗(yàn)機(jī)制為了過濾掉一些不正確的干擾信息,并且減少藍(lán)牙丟包造成的影響,,本系統(tǒng)采用了一套校驗(yàn)機(jī)制以增強(qiáng)系統(tǒng)可靠性,,如圖6所示。北斗終端接收到指令后,,經(jīng)過初步檢驗(yàn),過濾掉不符合正確指令格式的無效信息,,再進(jìn)行校驗(yàn)碼校驗(yàn),,將指令按字節(jié)異或,最后的結(jié)果與指令的校驗(yàn)和進(jìn)行對比,。如果相同則反饋成功,,反之反饋失敗,。安卓終端接收到指令后,同樣先做初步校驗(yàn)過濾無效指令信息,,再進(jìn)行校驗(yàn)碼檢驗(yàn),,若校驗(yàn)通過則交付后續(xù)處理,如果出錯(cuò)則統(tǒng)計(jì)錯(cuò)誤數(shù)量,。

  對于安卓終端發(fā)送給北斗終端的部分,,由于藍(lán)牙傳輸為透傳模式,安卓終端并不知道北斗終端是否正確地接收到信息,。除了通信申請($CCTXA)和定位申請($CCDWA)指令北斗終端接收后有反饋信息,,其他指令北斗終端是否接收到并無任何提示,所以有必要另外加入自定義的檢驗(yàn)協(xié)議,。加入的指令如表2所示,。其中校驗(yàn)結(jié)果A表示有效信息,V表示無效信息,。

Image 008.jpg

3系統(tǒng)測試結(jié)果

  為了驗(yàn)證本設(shè)計(jì)方案的可行性,,通過BLE將Android終端與北斗便攜終端連接后,進(jìn)行通信與定位的測試,。將發(fā)送接收的北斗卡號設(shè)置為同一張實(shí)現(xiàn)自發(fā)自收,。系統(tǒng)運(yùn)行效果如圖7所示。測試采用混發(fā)模式,,使用3級北斗卡連續(xù)短報(bào)文通信,,發(fā)送內(nèi)容為39個(gè)漢字的滿報(bào)文,發(fā)送周期為62 s,。測試數(shù)據(jù)如表3所示,。

  

Image 006.jpg

  通過表3的數(shù)據(jù)可以分析得到,安卓終端與北斗終端連接的距離越大,,藍(lán)牙丟包率越高,,當(dāng)距離小于2.5 m時(shí)只要沒有明顯的阻擋物藍(lán)牙丟包率為0。當(dāng)距離大于5 m后成功率低于95%,,在藍(lán)牙丟包率較低的情況下,,通信成功率主要取決于北斗衛(wèi)星的信號強(qiáng)度,所以會出現(xiàn)小于1 m的通信成功率反而比2.5 m的低的狀況,。在實(shí)際使用情況下,,便攜北斗終端一般隨身攜帶,藍(lán)牙連接距離一般都小于5 m,。該系統(tǒng)的性能與成功率完全適用于這種情況,。

Image 009.jpg

4結(jié)論

  北斗產(chǎn)業(yè)不斷壯大,北斗產(chǎn)品也漸漸出現(xiàn)在百姓生活中,。北斗終端設(shè)備的小型化是必然趨勢,。本文針對使用BLE連接北斗終端設(shè)備與安卓設(shè)備的系統(tǒng)提供一種設(shè)計(jì)方案,。在一般正常的使用情況下,本方案出現(xiàn)的丟包現(xiàn)象基本可以忽略,。因此本方案滿足北斗通信的要求,,并提供了人性化的交互功能,具有良好的擴(kuò)展性與移植性,,對北斗設(shè)備的其他便攜式,、兼容性的應(yīng)用有著一定的借鑒參考意義。

參考文獻(xiàn)

 ?。?] 歐陽駿,陳子龍,黃寧淋.藍(lán)牙4.0 BLE開發(fā)完全手冊: 物聯(lián)網(wǎng)開發(fā)技術(shù)實(shí)戰(zhàn)[M].北京:化學(xué)工業(yè)出版社,2013.

 ?。?] 鄒向陽,譚彬,何青云.無線傳感器節(jié)點(diǎn)中的BLE藍(lán)牙低功耗研究[J].現(xiàn)代電子技術(shù),2016,39(20):67-71,77.

  [3] MACKENSEN E,,LAI M,,WENDT T M. Blue tooth low energy(BLE)based wireless sensors[J/OL].[2016 08 30].https://www.deepdyve.com/.

  [4] 鎮(zhèn)咸舜.藍(lán)牙低功耗技術(shù)的研究與實(shí)現(xiàn)[D].上海:華東師范大學(xué),2013.

 ?。?] 沈熠,陳章進(jìn),章鴻斌,等. 基于藍(lán)牙低功耗技術(shù)的維修鑰匙設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用,2016,35(18):29-31,,34.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。