喻彩麗,李俊龍
汕尾職業(yè)技術(shù)學(xué)院,廣東汕尾,516600
隨著社會(huì)生活節(jié)奏的不斷加快,人們的行為習(xí)慣也發(fā)生著不同形式的變化。對(duì)隨身物品的看護(hù)總是容易出現(xiàn)疏漏,例如錢(qián)包、手機(jī)、鑰匙等,而當(dāng)發(fā)現(xiàn)丟失時(shí)這些小物件往往不容易被找到。為了應(yīng)對(duì)這種情況的發(fā)生,市面上出現(xiàn)了種類(lèi)繁多的防丟器,不僅可以單純地應(yīng)用到物體的防丟方面,更可以應(yīng)用到老人和兒童群體的防走失上。當(dāng)需要防丟的目標(biāo)數(shù)目增加時(shí),傳統(tǒng)藍(lán)牙設(shè)備僅可進(jìn)行一對(duì)一連接的通信方式,這便滿足不了用戶的需求。針對(duì)目前藍(lán)牙防丟器存在的這一局限性,設(shè)計(jì)一款高可靠低功耗廣連接能夠滿足用戶需求的防丟器。
藍(lán)牙無(wú)線通信技術(shù)是全球廣泛使用的短距離無(wú)線標(biāo)準(zhǔn)之一,將傳統(tǒng)藍(lán)牙、高速藍(lán)牙和低功耗藍(lán)牙技術(shù)合而為一的藍(lán)牙4.0,在具有無(wú)線通信上的固有優(yōu)勢(shì)的同時(shí)還增加了低功耗、高速率等特點(diǎn)。
藍(lán)牙4.0BLE技術(shù)較傳統(tǒng)藍(lán)牙技術(shù)有以下優(yōu)勢(shì):在進(jìn)行無(wú)線通信的過(guò)程中,由于電磁波很容易受到外界因素的干擾,在系統(tǒng)數(shù)據(jù)的傳輸中,具有不可消除的不可靠性。而藍(lán)牙4.0規(guī)范在射頻基帶協(xié)議鏈路管理協(xié)議中采用了可靠性措施[1],此外為了最大程度地減少無(wú)線電波頻段間的干擾,使用了自適應(yīng)跳頻技術(shù),以保證藍(lán)牙4.0的數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
傳統(tǒng)藍(lán)牙設(shè)備在喚醒之前一直處于待機(jī)狀態(tài),耗電量極大。藍(lán)牙4.0為了彌補(bǔ)這一缺陷,使用深度睡眠模式來(lái)代替?zhèn)鹘y(tǒng)藍(lán)牙的待機(jī)空閑狀態(tài)。經(jīng)過(guò)強(qiáng)化后的數(shù)據(jù)傳輸功耗較傳統(tǒng)藍(lán)牙降低了百分之九十[1]。藍(lán)牙4.0的有效傳輸距離較傳統(tǒng)藍(lán)牙有了極大提高,通過(guò)加密算法對(duì)數(shù)據(jù)包加密和認(rèn)證,提高了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
隨著無(wú)線通信技術(shù)的不斷發(fā)展,各種各樣的無(wú)線接入技術(shù)層出不窮,方便快捷的無(wú)線網(wǎng)絡(luò)接入為用戶提供了前所未有的體驗(yàn)。Mesh組網(wǎng)技術(shù)以其自組織、自管理、魯棒性等獨(dú)特的性能[2],逐漸成為無(wú)線網(wǎng)絡(luò)接入的一種有效方式。目前Mesh組網(wǎng)已憑借其獨(dú)有的優(yōu)勢(shì),開(kāi)始從概念演化到日常生活、生產(chǎn)中。藍(lán)牙Mesh組網(wǎng)不屬于無(wú)線電技術(shù)的范疇,它是一種可用于構(gòu)建包含大量藍(lán)牙設(shè)備或者節(jié)點(diǎn)的多對(duì)多網(wǎng)絡(luò)連接技術(shù)[3]。
藍(lán)牙Mesh網(wǎng)絡(luò)的框架主要?jiǎng)澐譃閮刹糠郑河脩艄芾韺雍驮O(shè)備管理層,通過(guò)藍(lán)牙通信鏈路的建立將它們有效地連接。由用戶手機(jī)組成的用戶管理層可以對(duì)處于Mesh網(wǎng)絡(luò)中的設(shè)備進(jìn)行配置、添加和控制監(jiān)聽(tīng)等操作,由各種應(yīng)用場(chǎng)景設(shè)備構(gòu)成的設(shè)備應(yīng)用層可以用來(lái)滿足對(duì)特定場(chǎng)景的需求。在網(wǎng)絡(luò)中,信息從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn),Mesh組網(wǎng)的本質(zhì)已經(jīng)不再是一對(duì)一的廣播方式,而是可以進(jìn)行多節(jié)點(diǎn)路徑和多跳方式的數(shù)據(jù)傳輸,屬于一種網(wǎng)狀網(wǎng)絡(luò)。應(yīng)用Mesh組網(wǎng)后的網(wǎng)絡(luò)容量具有可擴(kuò)展性,使整個(gè)藍(lán)牙通信網(wǎng)絡(luò)的負(fù)載節(jié)點(diǎn)數(shù)量有了極大的提高;其次,Mesh組網(wǎng)還有以下優(yōu)點(diǎn)。
1.2.1 高可靠性
對(duì)于傳統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)來(lái)說(shuō),當(dāng)某一鏈路或者某一結(jié)點(diǎn)發(fā)生故障時(shí),往往會(huì)導(dǎo)致整個(gè)通信網(wǎng)絡(luò)的癱瘓。在Mesh組網(wǎng)中采用多路徑或者多跳的方式進(jìn)行組網(wǎng),當(dāng)某一結(jié)點(diǎn)或鏈路發(fā)生故障時(shí)可以經(jīng)由其他路徑進(jìn)行信息的傳送,保證通信的正常進(jìn)行,極大地提高了通信的可靠性。
1.2.2 便捷式組網(wǎng)
由于Mesh組網(wǎng)具有自管理、自組織的特點(diǎn)[4],當(dāng)需要將新的設(shè)備加入Mesh網(wǎng)絡(luò)中時(shí),僅僅需要啟動(dòng)新設(shè)備的電源,Mesh網(wǎng)絡(luò)就會(huì)對(duì)設(shè)備進(jìn)行廣播搜索,自主將新設(shè)備添加到網(wǎng)絡(luò)中。這一智能組網(wǎng)過(guò)程不僅簡(jiǎn)化了入網(wǎng)方式,更為場(chǎng)景應(yīng)用的開(kāi)發(fā)設(shè)計(jì)提供了便利。
常用的RSSI定位算法模型如圖1所示。
圖1 RSSI算法模型
圖1在防丟器的應(yīng)用中采用三邊定位,這是一種簡(jiǎn)單的幾何模型。該模型已知坐標(biāo)中三個(gè)點(diǎn)的坐標(biāo),并且得知三點(diǎn)分別與第四點(diǎn)之間的距離,通過(guò)幾何關(guān)系可以求出目標(biāo)點(diǎn)的坐標(biāo)。
整個(gè)系統(tǒng)可分為兩個(gè)部分:智能手機(jī)端和防丟器。硬件部分的設(shè)計(jì)是采用Nordic半導(dǎo)體公司生產(chǎn)的nRF52832藍(lán)牙芯片作為主控芯片,外部電路基于IK-52832DK開(kāi)發(fā)板,通過(guò)APP將手機(jī)端與防丟器建立通信連接。硬件系統(tǒng)布局如圖2所示。
圖2 硬件結(jié)構(gòu)
nRF52832芯片是32位的微處理器,具有512KB的片內(nèi)flash和64KB的片內(nèi)RAM,采用單電源供電,支持多協(xié)議,具有超低的功耗和靈活的外設(shè)接口,具備優(yōu)異的無(wú)線通信性能,適用于短距離的物聯(lián)網(wǎng)通信應(yīng)用場(chǎng)景,如可穿戴設(shè)備、BLE鼠標(biāo)、2.4G遙控器等。
由艾克姆科技設(shè)計(jì)的IK-52832DK開(kāi)發(fā)板采用分離式設(shè)計(jì)[6],所有I/O口通過(guò)排針和排母的方式引出,極大方便了開(kāi)發(fā)時(shí)對(duì)引腳的分配與應(yīng)用。開(kāi)發(fā)板還具有天線接口、USB轉(zhuǎn)換電路和OLED顯示屏等接口,在電路構(gòu)成上主要包含電源、指示燈、按鍵電路和3V有源蜂鳴器。該開(kāi)發(fā)板完全兼容nRF52DK開(kāi)發(fā)板,并增加了紅外傳感接口等實(shí)用的功能
開(kāi)發(fā)板的供電渠道有兩種方式:USB供電和外部DC電源供電。通過(guò)USB接口給開(kāi)發(fā)板供電,用數(shù)據(jù)線將開(kāi)發(fā)板與移動(dòng)電源連接后,移動(dòng)電源通過(guò)USB接口輸出5V電源。一般情況下,5V電源供電后最大的電流為500mA,在未安裝對(duì)電流有更大需求的其他功能模塊的前提下,通過(guò)USB模式供電足以[7]。此外,在開(kāi)發(fā)板上提供了一個(gè)外部DC電源接口,可以通過(guò)外部電源來(lái)為安裝了大耗電量模塊后的開(kāi)發(fā)板進(jìn)行供電。在本設(shè)計(jì)中我們選擇用移動(dòng)電源通過(guò)USB端口為開(kāi)發(fā)板提供5V電源。
開(kāi)發(fā)板上設(shè)置了四個(gè)用戶指示燈D1-D4,由GPIO端口來(lái)進(jìn)行控制。當(dāng)GPIO端口輸出為高電平時(shí),LED兩端電平狀態(tài)相同,無(wú)電流經(jīng)過(guò),處于熄滅狀態(tài);當(dāng)GPIO端口輸出低電平狀態(tài)時(shí),LED兩端電平狀態(tài)不相同,有電流通過(guò),處于點(diǎn)亮狀態(tài);同時(shí)指示燈電路可以通過(guò)跳線斷開(kāi)方便操作。開(kāi)發(fā)板上還有四個(gè)用戶按鍵S1-S4,由GPIO端口來(lái)控制。當(dāng)按鍵按下時(shí)IO口輸入為低電平狀態(tài);當(dāng)按鍵被釋放時(shí),IO口輸入為高電平狀態(tài)[8]。設(shè)計(jì)中用四個(gè)指示燈的亮滅來(lái)表示藍(lán)牙防丟棄的不同狀態(tài),因此將按鍵作為防丟器的操作功能鍵。
本設(shè)計(jì)使用了JLINK下載器來(lái)進(jìn)行程序的下載與仿真,該下載器將USB接口通過(guò)六芯排線與計(jì)算機(jī)相連,在連接的同時(shí)也在為開(kāi)發(fā)板供電。當(dāng)處于連接狀態(tài)時(shí),此時(shí)JLINK下載器的指示燈常亮;在進(jìn)行下載時(shí)可以看到指示燈開(kāi)始閃爍,當(dāng)閃爍停止后表明程序已經(jīng)下載完畢。
軟件部分主要包括兩個(gè)部分:嵌入軟件和應(yīng)用軟件,其中應(yīng)用軟件使用的是開(kāi)源的藍(lán)牙測(cè)試軟件,藍(lán)牙m(xù)esh組網(wǎng)是在藍(lán)牙4.0BLE協(xié)議的基礎(chǔ)上延伸的技術(shù),即BLE的體系結(jié)構(gòu)[9]。
物理層可進(jìn)行高斯頻移鍵控,工作在2.4GHz ISM頻段,支持37個(gè)自適應(yīng)調(diào)頻的數(shù)據(jù)信道,在鏈路層進(jìn)行通信連接建立過(guò)程中的廣播掃描建立和維護(hù)連接,以正確的方式進(jìn)行數(shù)據(jù)的組織、檢驗(yàn)和加密。通過(guò)主機(jī)控制接口來(lái)完成主機(jī)與控制器之間的命令及數(shù)據(jù)傳輸,邏輯鏈路控制與適配協(xié)議層為上層數(shù)據(jù)提供封裝服務(wù),從而使邏輯上許可端到端的通信。在安全管理層提供藍(lán)牙通信配對(duì)時(shí)的連接建立和密鑰的分發(fā),用戶可在屬性協(xié)議層進(jìn)行讀寫(xiě)操作,在通用屬性配置文件定義了一些標(biāo)準(zhǔn)方法,通用訪問(wèn)配置文件負(fù)責(zé)對(duì)設(shè)備的接入方式與過(guò)程進(jìn)行處理。
藍(lán)牙m(xù)esh組網(wǎng)的結(jié)構(gòu)機(jī)制在BLE標(biāo)準(zhǔn)協(xié)議的基礎(chǔ)上進(jìn)行擴(kuò)展,主要由BLE加上組網(wǎng)協(xié)議和無(wú)需維護(hù)拓?fù)涞穆酚山M成。在系統(tǒng)網(wǎng)絡(luò)中,網(wǎng)絡(luò)ID唯一標(biāo)識(shí)網(wǎng)絡(luò),設(shè)備ID唯一標(biāo)識(shí)設(shè)備[10]。網(wǎng)絡(luò)無(wú)中心節(jié)點(diǎn),當(dāng)其中一個(gè)設(shè)備損壞時(shí)并不影響其他設(shè)備。
因?yàn)镹ordic將藍(lán)牙協(xié)議棧與應(yīng)用程序分開(kāi),所以下載的時(shí)候應(yīng)該分開(kāi)下載,其BLE協(xié)議是以二進(jìn)制文件的形式提供的。對(duì)于協(xié)議棧的下載使用nRFgo Studio下載,將HEX協(xié)議文件“s132_NRF52_3.0.0_softdevice.hex”下載到開(kāi)發(fā)板中,對(duì)于程序下載使用MDK5,程序主要是通過(guò)ble_proximity_s132設(shè)備的距離測(cè)算程序來(lái)調(diào)用定時(shí)器timer_init()、按鍵及LED指示button_led_init()、藍(lán)牙BLE協(xié)議棧ble_stack_init()、匹配管理peer_manager_init()、通用訪問(wèn)文件gap_params_init()、廣播及尋找advertising_init()、通信連接conn_params_int()等子程序來(lái)實(shí)現(xiàn)防丟功能。程序控制機(jī)制如圖3所示。
圖3 程序控制機(jī)制
經(jīng)過(guò)實(shí)際的操作測(cè)試后,發(fā)現(xiàn)防丟器與智能手機(jī)之間在多建筑物的情況下,有效通信距離可達(dá)5米。應(yīng)用了mesh組網(wǎng)協(xié)議后的防丟器有效彌補(bǔ)了傳統(tǒng)藍(lán)牙防丟器僅可以進(jìn)行一對(duì)一的連接通信的缺陷,比傳統(tǒng)藍(lán)牙防丟器更加安全,可連接數(shù)量更多。其主要實(shí)現(xiàn)了以下功能:
(1)當(dāng)防丟器超過(guò)預(yù)設(shè)距離后,手機(jī)端給出警報(bào)提示;
(2)通過(guò)防丟器可以主動(dòng)查找手機(jī),播放手機(jī)鈴聲;
(3)一部手機(jī)連接多個(gè)防丟器,防丟器間相互獨(dú)立。
防丟器在日常生活中的使用范圍比較廣泛,一款高可靠低功耗廣連接的防丟器,不僅可以為人們生活中的疏漏提供保障而且可以有效防范柔弱群體的走失,有很高的使用價(jià)值和意義。采用nRF52832藍(lán)牙芯片并以開(kāi)發(fā)板為基礎(chǔ)進(jìn)行開(kāi)發(fā)設(shè)計(jì),在開(kāi)發(fā)過(guò)程中有很多參考資料和產(chǎn)品級(jí)的例程可供參考,設(shè)計(jì)的防丟器性能優(yōu)越能夠滿足用戶的基本需求,而且Mesh組網(wǎng)方式更加靈活,簡(jiǎn)化了網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),其自組網(wǎng)的特性使程序的設(shè)計(jì)與開(kāi)發(fā)變得十分簡(jiǎn)便,這不僅減小了開(kāi)發(fā)周期和難度,而且能夠給予開(kāi)發(fā)者更多的啟示和經(jīng)驗(yàn)。