鄧 凱,任志敏
(常州紡織服裝職業(yè)技術(shù)學(xué)院,江蘇 常州 213164)
隨著新一代物聯(lián)網(wǎng)技術(shù),云計(jì)算技術(shù),區(qū)塊鏈技術(shù)的發(fā)展與成熟,不斷改變著人們?cè)械纳罘绞?,有些變化甚至是革命性的。比如定位技術(shù),人們可以依靠一部帶有導(dǎo)航軟件的手機(jī)去往任何目的地,這在過(guò)去是無(wú)法想象的。眾所周知,現(xiàn)有的導(dǎo)航軟件主要依靠基于衛(wèi)星的定位系統(tǒng)(比如:GPS,北斗),主要用于戶外,但是由于建筑物屏蔽造成衛(wèi)星信號(hào)的衰減,在室內(nèi)幾乎接收不到衛(wèi)星信號(hào),因此,造成室內(nèi)導(dǎo)航的盲點(diǎn)。但是,室內(nèi)導(dǎo)航的需求量又非常巨大,比如工廠的人員定位,貴重資產(chǎn)的物資定位,搬運(yùn)AVG機(jī)器人的防碰撞設(shè)計(jì),商場(chǎng)店鋪、醫(yī)院科室等導(dǎo)航需求。因此,設(shè)計(jì)一個(gè)室內(nèi)室外一體的定位系統(tǒng)有著迫切的現(xiàn)實(shí)需求。
室外導(dǎo)航技術(shù)、產(chǎn)品相對(duì)成熟,可以采用GPS/北斗導(dǎo)航系統(tǒng)。但室內(nèi)導(dǎo)航仍舊處于百花齊放的階段,目前可用的室內(nèi)定位技術(shù)有:Wi-Fi、藍(lán)牙、紅外線、超寬帶(UWB)、RFID、ZigBee和超聲波,從技術(shù)路線、成本、定位精度等方面考慮,各有利弊,其中基于802.15.4協(xié)議的UWB的定位精度最高,可達(dá)10cm,功耗也較低,因此本課題使用UWB技術(shù)實(shí)現(xiàn)室內(nèi)三維定位。
室外定位通過(guò)GPS/北斗模組獲取經(jīng)度緯度坐標(biāo)信息,室內(nèi)定位通過(guò)UWB獲取x,y,z三維坐標(biāo)。對(duì)于定位系統(tǒng)來(lái)說(shuō),獲取坐標(biāo)信息是最為關(guān)鍵的第一步,第二步是如何處理和呈現(xiàn)數(shù)據(jù),考慮到定位的不同需求,本課題以工廠人員定位的需求作為研究對(duì)象。一是工廠人員的活動(dòng)場(chǎng)所可能是室外或室內(nèi);二是人員會(huì)流動(dòng),可能在辦公樓的一層,也可能在其他樓層;三是作為工廠管理方,希望能夠在辦公室或出差期間均能看到員工上班期間的定位信息。
基于以上需求,本課題采集室外經(jīng)緯度坐標(biāo)、室內(nèi)UWB定位坐標(biāo),系統(tǒng)電池余量值,以及員工ID等數(shù)據(jù),通過(guò)GPRS模組/NB-IoT模組把這些數(shù)據(jù)送到云端,工廠從云端獲得這些數(shù)據(jù),既可以在PC端顯示,也可以在手機(jī)等移動(dòng)設(shè)備端顯示??傮w設(shè)計(jì)框圖如圖1所示。
圖1 總體設(shè)計(jì)框圖
在本課題的方案中,獲取室外經(jīng)緯度坐標(biāo)相對(duì)簡(jiǎn)單,重點(diǎn)在于如何通過(guò)UWB獲取室內(nèi)定位的x,y,z坐標(biāo)。通過(guò)研究發(fā)現(xiàn),本課題選用Decawave公司生產(chǎn)的DWM1001模組組成網(wǎng)絡(luò)實(shí)現(xiàn)室內(nèi)定位。DWM1001模組室內(nèi)定位整體設(shè)計(jì)框架如圖2所示。
圖2 室內(nèi)定位整體設(shè)計(jì)圖
DWM1001模組是由Decawave公司生產(chǎn)的基于UWB技術(shù)的定位模組,在定位系統(tǒng)中其可以充當(dāng)多種角色,包括基站、標(biāo)簽、網(wǎng)關(guān)等,因此可以很方便地利用DWM1001模組組成DRTLS(Two-Way-Ranging Real Time Location System)網(wǎng)絡(luò)。在如圖2所示的網(wǎng)絡(luò)中,基站的位置是固定的,并設(shè)定對(duì)應(yīng)的坐標(biāo),如圖3所示,圖3展示了4個(gè)基站和1個(gè)標(biāo)簽的定位結(jié)構(gòu)。
圖3 4基站+1標(biāo)簽的定位結(jié)構(gòu)
基站1、2、3、4組成了一個(gè)小區(qū)域定位網(wǎng)絡(luò),4個(gè)基站可以實(shí)現(xiàn)x,y,z三維定位。兩個(gè)基站之間的最長(zhǎng)距離可以達(dá)60米,若配置定位刷新頻率為1秒/次,4個(gè)基站內(nèi)最多可以容納150個(gè)標(biāo)簽[1],顯然刷新頻率越低,可以容納的標(biāo)簽越多,對(duì)于人員定位而言,刷新頻率可以降為5秒/次,因此可以容納750個(gè)標(biāo)簽,在4個(gè)基站組成的360 m2的區(qū)域內(nèi),可同時(shí)容納750個(gè)員工顯然大大超過(guò)了實(shí)際情況。每個(gè)基站的坐標(biāo)x,y,z是固定設(shè)置的,為了保證定位精度,最好每個(gè)基站處于同一高度平面上,即z坐標(biāo)相同。標(biāo)簽在基站區(qū)域內(nèi)移動(dòng),每隔5秒,標(biāo)簽相對(duì)于基站的坐標(biāo)即會(huì)輸出。
基于總體設(shè)計(jì)框圖,定位坐標(biāo)、電量、員工ID需要采集并上傳至云端,因此需要設(shè)計(jì)GPS模組,GPRS/NB-IoT模組和微控制器系統(tǒng),以及設(shè)計(jì)DWM1001模組與微控制器系統(tǒng)的連接。
選擇S1216F8-BD作為經(jīng)緯度定位模組。S1216F8-BD是一個(gè)性價(jià)比極高的全球定位接收貼片封裝模組,其基于Skytraq Venus 8定位技術(shù),定位精度達(dá)2.5m CEP accuracy,可以作為GPS/Beidou衛(wèi)星信號(hào)的接收器。該模組內(nèi)部集成濾波器和高性能LNA,與主動(dòng)和被動(dòng)天線一起工作,標(biāo)準(zhǔn)的NMEA-0183定位數(shù)據(jù)通過(guò)UART串行接口輸出,便于用戶上手[2]。
目前市場(chǎng)上主流的NB-IoT芯片主要有三家,分別是紫光展銳的春藤8908,華為海思的Boudica系列和聯(lián)發(fā)科的MT2625。
N256是一款基于MT2625平臺(tái)的多功能無(wú)線模塊。該模塊可支持3GPP/R13/R14的NB-IoT標(biāo)準(zhǔn),工作的頻段為: B1、B3、B5和B8四個(gè)頻段。作為一款用于嵌入式系統(tǒng)的通信模組,N256模塊17.6×15.7×2.3mm的尺寸可以很好滿足工程應(yīng)用中對(duì)空間尺寸的要求。滿足M2M(machine to machine)的需求,包括可穿戴服務(wù)、安全系統(tǒng)、無(wú)線POS機(jī)、工業(yè)級(jí)PDA、智能電表、無(wú)線遙控等。N256模塊一共引出MT2625的42腳作為其物理接口,提供了用戶可能用到的所有硬件接口,包括一個(gè)UART固件下載接口,一個(gè)全功能串口和一個(gè)三線串口[3]。
基于設(shè)計(jì)需求,控制板有待完成的任務(wù)包括:采集室內(nèi)室外定位坐標(biāo)、與NB-IoT模塊通信、采集電池余量等。
本課題選擇STM32F103RCT6作為核心控制器。STM32F103RCT6是ST意法半導(dǎo)體公司生產(chǎn)的基于ARM Cortex-M3內(nèi)核的32位微控制器,工作最高主頻可達(dá)72 MHz;48Kx8大小的運(yùn)行內(nèi)存;256Kx8大小的FLASH程序存儲(chǔ)器;集成了CAN、I2C、IrDA、SPI、UART/USART、USB等豐富的通信的接口;提供了多個(gè)基本定時(shí)器、通用定時(shí)器和高級(jí)定時(shí)器等多樣定時(shí)器資源;芯片內(nèi)部集成多路ADC、DAC、SDIO和GPIO資源;芯片采用64-LQFP封裝[4]。
UART1用于與NB-IoT模塊的數(shù)據(jù)收發(fā)接口,UART2用于與GPS模塊的數(shù)據(jù)收發(fā)接口,UART3用于與DWM1001模組的數(shù)據(jù)收發(fā)接口。ADC1用于采集電池余量接口。
GPS定位模組S1216與STM32F103RCT6通信接口采用UART的方式,本課題采用115200 bps,S1216輸出的定位數(shù)據(jù)符合$GNRMC(Recommended Minimum Specific GPS/Transit Data)推薦定位信息協(xié)議。根據(jù)$GNRMC協(xié)議,編程解析獲取各種數(shù)據(jù)信息,程序流程如圖4所示。
圖4 解析$GNRMC協(xié)議流程圖
根據(jù)DWM1001的技術(shù)文檔,DWM1001模組可以通過(guò)SPI,UART等接口與上位機(jī)進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)傳輸采用TLV(Type-Length-Value)協(xié)議傳輸。本課題使用STM32F103RCT6的UART接口與DWM1001進(jìn)行數(shù)據(jù)傳輸。本課題只要獲取DWM1001輸出的x,y,z坐標(biāo),根據(jù)TLV協(xié)議,STM32F103RCT6端發(fā)送命令0x02,0x00即可,DWM1001返回的數(shù)據(jù)見表1。
表1 DWM1001返回定位數(shù)據(jù)
首先判斷錯(cuò)誤代碼,若是0x00,表示正確,然后采集對(duì)應(yīng)的x,y,z坐標(biāo)即可。
獲取定位數(shù)據(jù)后,需要把數(shù)據(jù)發(fā)送到云端,本課題選擇機(jī)智云作為云端平臺(tái)。按照機(jī)智云平臺(tái)的要求,首先需要待上傳的數(shù)據(jù)點(diǎn),其次編寫程序把數(shù)據(jù)發(fā)送到機(jī)智云。STM32F103RCT6與NB-IoT在軟件上通過(guò)AT指令通信。程序總的流程如圖5所示。
數(shù)據(jù)發(fā)送到機(jī)智云在TIM3定時(shí)中斷實(shí)現(xiàn),每隔5秒發(fā)送一次數(shù)據(jù)。衡量一個(gè)監(jiān)控系統(tǒng)是否優(yōu)劣的評(píng)判標(biāo)準(zhǔn)主要有兩條:一是采集數(shù)據(jù)的準(zhǔn)確性,二是傳輸數(shù)據(jù)的穩(wěn)定性、可靠性。為了最優(yōu)化實(shí)現(xiàn)評(píng)判標(biāo)準(zhǔn)二,本課題在軟件部分設(shè)計(jì)了以下措施:
1) 每次發(fā)送數(shù)據(jù)后,判斷應(yīng)答反饋是否準(zhǔn)確,一旦未接收到期望數(shù)據(jù),立刻軟件復(fù)位,系統(tǒng)重啟。
2) 在應(yīng)答反饋準(zhǔn)確的前提下,再次判斷應(yīng)答反饋是否有錯(cuò)誤信息,一旦有錯(cuò)誤信息,同樣復(fù)位,系統(tǒng)重啟。
圖5 STM32F103RCT6總體程序流程圖
3) 每30分鐘檢查一次是否仍舊在線,若離線,則重啟系統(tǒng)。
4) 每12小時(shí)主動(dòng)離線,重啟系統(tǒng)。
5) 使用獨(dú)立看門狗保證程序不跑飛。
6) 初始化時(shí),復(fù)位NB-IoT,登錄機(jī)智云時(shí)連續(xù)三次不成功則復(fù)位系統(tǒng)。
為了測(cè)試和展示采集數(shù)據(jù),本課題借助機(jī)智云平臺(tái)提供的Android應(yīng)用開發(fā)SDK包[5],設(shè)計(jì)Android應(yīng)用程序,實(shí)時(shí)獲取機(jī)智云平臺(tái)的室內(nèi)外坐標(biāo)數(shù)據(jù),顯示到用戶手機(jī)端。