《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(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í)長(zhǎng),針對(duì)北斗報(bào)文數(shù)據(jù)特點(diǎn)與低功耗藍(lán)牙(Bluetooth Low Energy, BLE)的傳輸協(xié)議,設(shè)計(jì)實(shí)現(xiàn)了一種安卓導(dǎo)航通信系統(tǒng),。通過(guò)多線程分包組裝處理增強(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í)長(zhǎng),針對(duì)北斗報(bào)文數(shù)據(jù)特點(diǎn)與低功耗藍(lán)牙(Bluetooth Low Energy, BLE)的傳輸協(xié)議,,設(shè)計(jì)實(shí)現(xiàn)了一種安卓導(dǎo)航通信系統(tǒng),。通過(guò)多線程分包組裝處理增強(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)牙,;便攜終端

  中圖分類號(hào):TN965.5文獻(xiàn)標(biāo)識(shí)碼: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í)間更長(zhǎng),,交互性更好,。

  該方案采用安卓系統(tǒng)的移動(dòng)終端,,利用BLE獲得北斗一代、二代信息并進(jìn)行交互操作,,在安卓終端上實(shí)現(xiàn)北斗短報(bào)文通信與定位功能,。本文針對(duì)BLE的協(xié)議特點(diǎn)與北斗數(shù)據(jù)的傳輸特性,設(shè)計(jì)了一種合理的結(jié)合方式,,并經(jīng)過(guò)測(cè)試驗(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ù)包,并會(huì)根據(jù)數(shù)據(jù)包大小自動(dòng)分包發(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ā)來(lái)的指令后交付給STM32,處理器對(duì)指令進(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)基本功能:北斗卡檢測(cè)、北斗便攜終端電量讀取,、北斗衛(wèi)星信號(hào)功率讀??;

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

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

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

2核心軟件處理過(guò)程

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

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

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

 

Image 002.jpg

  圖3安卓終端發(fā)送線程接收線程完成從接收緩存內(nèi)提取出數(shù)據(jù)包,再將這些數(shù)據(jù)包按照“$”開(kāi)頭和“*”結(jié)尾的指令格式組裝起來(lái),,若出現(xiàn)“*”丟失的情況,,則當(dāng)組裝的指令長(zhǎng)度>300 B時(shí)自動(dòng)拋棄。具體過(guò)程如圖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í)間間隔較長(zhǎng)的優(yōu)勢(shì)是可顯著節(jié)省功耗[4],,短的時(shí)間間隔的優(yōu)勢(shì)是可以更快地收發(fā)數(shù)據(jù),,不利之處是設(shè)備因連接事件的到來(lái)而被頻繁地喚醒,會(huì)有較多功耗,。

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

  

Image 004.jpg

  通過(guò)圖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í),,會(huì)出現(xiàn)藍(lán)牙模塊的發(fā)送速度跟不上數(shù)據(jù)更新速度的問(wèn)題,部分?jǐn)?shù)據(jù)還沒(méi)被發(fā)送出去就已經(jīng)被新的數(shù)據(jù)覆蓋,,直觀的表現(xiàn)就是藍(lán)牙丟包,。

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

  綜上,,由于安卓端發(fā)送給北斗終端的信息量并不大,發(fā)送周期也較長(zhǎng),,且為了兼容市面上的普遍機(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ī)制為了過(guò)濾掉一些不正確的干擾信息,,并且減少藍(lán)牙丟包造成的影響,,本系統(tǒng)采用了一套校驗(yàn)機(jī)制以增強(qiáng)系統(tǒng)可靠性,如圖6所示。北斗終端接收到指令后,,經(jīng)過(guò)初步檢驗(yàn),,過(guò)濾掉不符合正確指令格式的無(wú)效信息,再進(jìn)行校驗(yàn)碼校驗(yàn),,將指令按字節(jié)異或,,最后的結(jié)果與指令的校驗(yàn)和進(jìn)行對(duì)比。如果相同則反饋成功,,反之反饋失敗,。安卓終端接收到指令后,同樣先做初步校驗(yàn)過(guò)濾無(wú)效指令信息,,再進(jìn)行校驗(yàn)碼檢驗(yàn),,若校驗(yàn)通過(guò)則交付后續(xù)處理,如果出錯(cuò)則統(tǒng)計(jì)錯(cuò)誤數(shù)量,。

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

Image 008.jpg

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

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

  

Image 006.jpg

  通過(guò)表3的數(shù)據(jù)可以分析得到,安卓終端與北斗終端連接的距離越大,,藍(lán)牙丟包率越高,,當(dāng)距離小于2.5 m時(shí)只要沒(méi)有明顯的阻擋物藍(lán)牙丟包率為0。當(dāng)距離大于5 m后成功率低于95%,,在藍(lán)牙丟包率較低的情況下,,通信成功率主要取決于北斗衛(wèi)星的信號(hào)強(qiáng)度,,所以會(huì)出現(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è)備的小型化是必然趨勢(shì),。本文針對(duì)使用BLE連接北斗終端設(shè)備與安卓設(shè)備的系統(tǒng)提供一種設(shè)計(jì)方案,。在一般正常的使用情況下,本方案出現(xiàn)的丟包現(xiàn)象基本可以忽略,。因此本方案滿足北斗通信的要求,,并提供了人性化的交互功能,具有良好的擴(kuò)展性與移植性,,對(duì)北斗設(shè)備的其他便攜式,、兼容性的應(yīng)用有著一定的借鑒參考意義。

參考文獻(xiàn)

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

 ?。?] 鄒向陽(yáng),譚彬,何青云.無(wú)線傳感器節(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)載,。