晏子雄 張 毅
(重慶郵電大學(xué)通信與信息工程學(xué)院 重慶 400065)
隨著社會生活水平的提高,快遞、電子商務(wù)和第三方物流等領(lǐng)域的飛速發(fā)展,建立綜合的物流園區(qū)勢必成為一種發(fā)展趨勢。物流園區(qū)中獲取物流資產(chǎn)的位置和狀態(tài)等實時動態(tài)信息,實現(xiàn)對倉儲的智能管控與動態(tài)分析是尤為重要的。在無線通信等技術(shù)的發(fā)展以及市場需求的推動下,各類定位技術(shù)的研究也變得更加廣泛,目前主流定位系統(tǒng)大多基于以下幾種技術(shù):GPS(全球定位系統(tǒng))衛(wèi)星定位、我國北斗定位系統(tǒng)、基于ZigBee協(xié)議的定位,以及基于UWB(超寬帶)定位等。
這些方案存在的問題是:基于GPS追蹤器的應(yīng)用往往受限于較高的終端能耗及高昂的通信費用;基于ZigBee技術(shù)協(xié)議定位的精度受環(huán)境影響大[1];基于UWB定位范圍相對狹小且信號頻段不開放[2]。因此,以上問題制約著移動終端定位在物流領(lǐng)域的廣泛應(yīng)用。
針對上述情況,本設(shè)計提出基于LoRa(Long Range)無線通信與GPS(或北斗)結(jié)合的物流園區(qū)定位系統(tǒng)方案。系統(tǒng)由采集定位數(shù)據(jù)終端和LoRa網(wǎng)關(guān)節(jié)點組成,終端負(fù)責(zé)采集GPS原始基帶信號等數(shù)據(jù),通過自組LoRa網(wǎng)絡(luò)上傳到網(wǎng)關(guān)節(jié)點,LoRa網(wǎng)關(guān)通過以太網(wǎng)等方式上傳到云服務(wù)器進(jìn)行終端位置定位解析。系統(tǒng)兼顧精度和終端能耗,具有傳輸距離遠(yuǎn)、節(jié)點壽命長和組網(wǎng)成本低等優(yōu)點。
傳統(tǒng)GPS定位受終端計算量大原因影響使得終端的定位能耗較大,一個典型的GPS接收機(jī)能耗達(dá)到143 mW到166 mW[3]。GPS定位終端能耗主要涉及五個環(huán)節(jié):信號采集和處理、信號捕捉、信號跟蹤、星歷提取和導(dǎo)航計算。在基于Namuru接收機(jī)能耗模型gModel中[4],一個完整定位周期內(nèi),信號跟蹤占的功耗比例超過了82%,信號采集處理和捕捉功耗比例僅占到3.5%,且首次定位時間(time to first fix,TTFF)至少需要30 s時間。
解決上述終端能耗大、首次定位時間長的方案是使用輔助GPS(Assisted-GPS,AGPS)的方法,從服務(wù)器獲取多普勒頻率和下載星歷數(shù)據(jù),進(jìn)行快速搜索定位,TTFF可減少到數(shù)秒內(nèi)[5]。然而使用AGPS定位必須有AGPS位置服務(wù)器和蜂窩網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)闹С?,對于每一個定位終端,上傳一定量的GPS原始數(shù)據(jù)需要用戶額外付出相應(yīng)的流量費用[6]。
物流園區(qū)實際定位需求是,物流園區(qū)管理者需要在一個較短的時間內(nèi)知道所定位物品的位置以及是否偏離預(yù)定區(qū)域等情況。物流園區(qū)的特點是定位終端數(shù)量大、移動性強(qiáng),如果采用傳統(tǒng)GPS定位方式,其定位終端的能耗成為其應(yīng)用瓶頸。因此,本文將傳統(tǒng)GPS定位方案中本地計算量巨大的部分移到云端服務(wù)器計算,數(shù)據(jù)的傳輸通過LoRa網(wǎng)絡(luò)來實現(xiàn)。LoRa網(wǎng)絡(luò)的特點是功耗低、傳輸距離遠(yuǎn)、自建網(wǎng)絡(luò)平臺,以及工作在免費頻段。
綜合GPS高精度定位以及LoRa低功耗遠(yuǎn)距離傳輸?shù)膬?yōu)點,本系統(tǒng)采用LoRa輔助GPS定位方案,將終端定位過程分離為兩部分,通過LoRaWAN傳輸數(shù)據(jù)至云端進(jìn)行GPS定位計算,LoRa網(wǎng)絡(luò)服務(wù)器保留所有GPS衛(wèi)星的位置數(shù)據(jù)庫,一旦終端追蹤器收到GPS信號,立即通過LoRa網(wǎng)關(guān)將原始接收信息傳遞給網(wǎng)絡(luò)服務(wù)器,并在云上完成定位解析計算。
如圖1所示,系統(tǒng)由三部分組成,包括帶有GPS定位信號采集和LoRa通信模塊的終端節(jié)點、LoRa通信網(wǎng)關(guān)、云服務(wù)器。
圖1 LoRa與GPS定位系統(tǒng)架構(gòu)
終端節(jié)點用于采集原始定位信息,建立節(jié)點與網(wǎng)關(guān)之間的通信,以及存儲和發(fā)送采集到的數(shù)據(jù)。硬件部分包括主控芯片、GPS采集模塊、LoRa通信模塊、電源管理模塊,以及其他外圍電路。GPS信號采集模塊主要是用于采集2 ms的GPS原始基帶信號,LoRa通信模塊用于與網(wǎng)關(guān)通信。
圖2 終端節(jié)點硬件模塊組成
2.1.1定位采集模塊
GPS采集模塊采用的是HG-TG01-S標(biāo)準(zhǔn)GNSS接收模塊,內(nèi)含專用射頻芯片MAX2769,支持GPS L1、L4通道,通道有快速捕獲能力,以及FIFO芯片IDT72V291,用于存儲采集到的基帶信號數(shù)據(jù)。通過UART與處理器連接,數(shù)據(jù)傳輸由端口TXD0與TXD以及RXD0與RXD來完成,TXD0為基帶數(shù)據(jù)輸出端,RXD0為交互命令輸入端。RF_IN引腳與天線DATA引腳連接,是衛(wèi)星數(shù)據(jù)輸入端口。
2.1.2LoRa通信模塊
主控芯片和LoRa射頻模塊采用的是MCU+LoRa通信系統(tǒng)集成模塊RAK811,RAK811采用了SX1276 LoRaWAN調(diào)制解調(diào)器并集成了超低功耗微處理器ARM Cortex-M3 STM32L1,支持最新的LoRaWAN 1.0.2協(xié)議、OTAA/ABP方式激活,具有RSSI信道偵測功能,標(biāo)準(zhǔn)的SPI接口。本系統(tǒng)將LoRa配置為470 MHz半雙工模式。
2.1.3處理器模塊
處理器STM32L1完成GPS定位模塊與LoRa模塊控制。從能耗角度上使用三個不同的時鐘來降低平均功耗。處理器以16 MHz的頻率運行,以支持GPS數(shù)據(jù)速率,以及用于高速突發(fā)寫入閃存;使用2 MHz內(nèi)部低精度時鐘完成內(nèi)部RAM和閃存模塊之間的數(shù)據(jù)傳輸,最后使用低功耗的32 kHz實時時鐘來維持系統(tǒng)時間。
網(wǎng)關(guān)節(jié)點是負(fù)責(zé)數(shù)據(jù)的接收和上傳,具有系統(tǒng)的檢測和管理功能,需要較高的數(shù)據(jù)處理能力。在通信覆蓋范圍內(nèi),系統(tǒng)通過中繼網(wǎng)關(guān)對LoRa終端進(jìn)行管理,構(gòu)成星形網(wǎng)絡(luò)。本設(shè)計采用基于LoRaWAN協(xié)議的RAK2245網(wǎng)關(guān)集中器,它是基于Semtech SX1301,含有10條并行解調(diào)路徑,支持8條上行通道,1條下行通道,能夠管理來自許多遠(yuǎn)程分散端點的數(shù)據(jù)包,集成了兩個SX125X用于射頻前端I/O收發(fā)器。外圍接口包含了SPI、UART、GPIOs等。
組網(wǎng)方式采用LoRa星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),其具有節(jié)點功耗低、延時可控、增刪節(jié)點操作簡單等優(yōu)點。
3.1.1定位數(shù)據(jù)采集
采集階段通過GPS接收芯片MAX2769以外接有源晶振作為其參考時鐘,采集GPS定位所需的2 ms中頻原始數(shù)據(jù),存入緩沖空間,等待以固定幀格式進(jìn)行數(shù)據(jù)輸出。其他階段利用STM32L1支持的低功耗模式,對外圍電路的元器件及時進(jìn)行關(guān)閉和休眠,等待下一次采集任務(wù)或者收到主動采集的喚醒中斷。
3.1.2終端喚醒傳輸設(shè)計
LoRa收發(fā)模塊SX1276通過信道活動檢測器來檢測信號。SX1276通過周期性的喚醒在極短的時間內(nèi)檢測有沒有LoRa前導(dǎo)碼。當(dāng)檢測到有效LoRa前導(dǎo)碼,則SX1276被喚醒進(jìn)入數(shù)據(jù)收發(fā)模式,否則SX1276進(jìn)入低功耗狀態(tài)。該方法有效地減少了終端工作時間,節(jié)省了功耗。
3.1.3網(wǎng)關(guān)傳輸設(shè)計
基于LoRa通信技術(shù),可根據(jù)實際應(yīng)用環(huán)境通過糾錯編碼率(CR)、調(diào)制擴(kuò)頻因子(SF)和調(diào)制帶寬(BW)三個關(guān)鍵參數(shù)優(yōu)化LoRa的調(diào)制解調(diào)技術(shù)[7]。
ADR自適應(yīng)數(shù)據(jù)率算法是指網(wǎng)關(guān)節(jié)點依據(jù)接收每個終端的信號強(qiáng)度RSSI和信噪比SNR自動調(diào)整終端數(shù)據(jù)通信信道的擴(kuò)頻因子。距網(wǎng)關(guān)節(jié)點近距離的終端其RSSI越大,SNR越高,因此分配的其擴(kuò)頻因子SF越低,數(shù)據(jù)速率也越高[8]。
(1)
(2)
式中:SNRth1、SNRth2、RSSIth1、RSSIth2是指一定范圍距離內(nèi)LoRa能可靠通信的信號強(qiáng)度RSSI與信噪比SNR的閾值。
系統(tǒng)根據(jù)ADR自適應(yīng)數(shù)據(jù)率算法針對位置不同的終端設(shè)置不同的擴(kuò)頻因子,對于距網(wǎng)關(guān)節(jié)點近距離的終端設(shè)置低數(shù)值的擴(kuò)頻因子以獲得較高的速率,發(fā)射同等大小數(shù)據(jù)包的時間越短,碰撞概率和通信能耗越少,也提高了吞吐量。
3.1.4時間同步
為了將節(jié)點與網(wǎng)關(guān)精確時間進(jìn)行同步,給采集到的原始數(shù)據(jù)以時間戳。終端設(shè)計在每次喚醒通信前將節(jié)點模式切換到Class B模式,節(jié)點接收網(wǎng)關(guān)廣播的Beacon信標(biāo)幀,用于校準(zhǔn)自身的時鐘,在兩個Beacon信標(biāo)幀間隔內(nèi)終端節(jié)點可以開啟接收窗口偵聽網(wǎng)關(guān)發(fā)送的帶有前導(dǎo)碼的信標(biāo)幀,當(dāng)終端節(jié)點接收到Beacon信標(biāo)幀后,節(jié)點提取數(shù)據(jù)幀內(nèi)的RTC時鐘信號,并校準(zhǔn)自身RTC時鐘判斷是否需要重新入網(wǎng)。
數(shù)據(jù)通信協(xié)議是在通信過程中保證收發(fā)雙方可靠通信的系列約定,包括了通信模式和幀格式等[9]。
從LoRa終端到LoRa網(wǎng)關(guān)的數(shù)據(jù)通信過程分為三個步驟:一是終端的激活,二是加入網(wǎng)絡(luò),三是數(shù)據(jù)傳輸。終端激活采用了空中激活(Over-the-Air Activation,OTAA)的方式;通過配置APPEUI和DevEUI參數(shù)使終端入網(wǎng),為得到DevNonce參數(shù)需提取LoRa模塊的RSSI隨機(jī)值,然后組織成JoinRequest數(shù)據(jù)幀發(fā)送給LoRaWAN服務(wù)器。服務(wù)器接收到JoinRequest數(shù)據(jù)幀后,連同APPNonce和NetID以及分配到的DevAddr,組織成JoinAccept數(shù)據(jù)幀回應(yīng)給終端。接收成功后便實現(xiàn)了終端入網(wǎng)操作。
結(jié)合SX1276和MCU,網(wǎng)關(guān)與節(jié)點通信采用MAC協(xié)議中的一類時分多址(TDMA)協(xié)議,完成節(jié)點對信道的訪問[10]。數(shù)據(jù)通信協(xié)議所涉及的包類型如表1所示。
表1 協(xié)議的包類型
上行的節(jié)點數(shù)據(jù)包分為入網(wǎng)請求包和采樣數(shù)據(jù)包,網(wǎng)關(guān)數(shù)據(jù)包分為查詢包和參數(shù)設(shè)置包,網(wǎng)關(guān)參數(shù)包括頻率、擴(kuò)頻因子、編碼率和帶寬等。由于LoRaWAN協(xié)議棧的開放性,前導(dǎo)碼、地址、校驗碼等信息包含在LoRa的物理信息中,設(shè)計進(jìn)行了MAC協(xié)議的節(jié)點數(shù)據(jù)格式的自定義設(shè)計,來保證節(jié)點與網(wǎng)關(guān)的通信。網(wǎng)關(guān)根據(jù)節(jié)點的數(shù)量和傳輸數(shù)據(jù)大小劃分幀,節(jié)點在自身時隙中與網(wǎng)關(guān)的通信協(xié)議數(shù)據(jù)幀格式如表2所示。
表2 數(shù)據(jù)格式表
鏈路節(jié)點數(shù)據(jù)包的消息內(nèi)容包含前導(dǎo)碼、網(wǎng)關(guān)ID、節(jié)點ID、可變的消息數(shù)據(jù)和CRC校驗值。
本系統(tǒng)的測試與分析主要著眼于定位功能的實現(xiàn)和能耗對比的分析。
實際搭建LoRa通信組網(wǎng)實驗實測環(huán)境,基于LoRa無線定位終端節(jié)點和網(wǎng)關(guān)實物如圖3所示。
圖3 網(wǎng)關(guān)節(jié)點和定位終端實物
實際測試中,LoRa模塊工作在470 MHz,發(fā)射功率為14 dBm,帶寬(BW)為125 kHz,串口波特率為115 200 bit/s,擴(kuò)頻因子SF=7,糾錯編碼率為4/5。終端節(jié)點發(fā)送數(shù)據(jù)到網(wǎng)關(guān)節(jié)點,網(wǎng)關(guān)通過串口發(fā)送到上位機(jī),使用串口調(diào)試助手得到數(shù)據(jù)輸出,然后使用FFT將有符號數(shù)據(jù)轉(zhuǎn)換為頻譜以及轉(zhuǎn)化為可見衛(wèi)星編號結(jié)果,頻譜轉(zhuǎn)換結(jié)果如圖4所示,捕捉到可見衛(wèi)星編號結(jié)果如圖5所示。
圖4 GPS基帶數(shù)據(jù)頻譜
圖5 捕捉到的可見衛(wèi)星編號
本文只提供利用開源的GNSS軟件接收機(jī)softGNSS v3.0將2 ms基帶數(shù)據(jù)解析后轉(zhuǎn)化成可見的衛(wèi)星結(jié)果編號[11],在這之后利用星歷地理數(shù)據(jù)庫等輔助數(shù)據(jù)計算跟蹤衛(wèi)星的衛(wèi)星坐標(biāo),結(jié)合時間戳計算出偽距可求得出真實位置[12],最后結(jié)果轉(zhuǎn)換到大地坐標(biāo)系下獲得終端經(jīng)緯度坐標(biāo),并與實際位置對比進(jìn)行誤差分析。處于不同情形下的終端定位精度測試結(jié)果如圖6所示。
圖6 定位精度
從實驗結(jié)果看,在千米內(nèi)的范圍的空曠環(huán)境下能達(dá)到精度20 m,在有建筑物些許遮擋情況的復(fù)雜環(huán)境下,受到GPS基帶信號穿透建筑物的影響,定位精度有所降低,但能保持精度在30 m級。測試結(jié)果顯示,整體上系統(tǒng)取得了較好的定位效果,滿足大型開闊的物流園區(qū)定位精度需求。
本系統(tǒng)的一個重要指標(biāo)是終端能耗測試,在保證其功能可靠實現(xiàn)的前提下,降低終端能耗從而達(dá)到延長使用壽命目的。定位終端的工作在接收模式、發(fā)送模式和休眠模式,其電流消耗主要在GPS射頻采集存儲電路和LoRa通信電路以及低功耗單片機(jī)上。實際測量中采用測試終端與電流表串聯(lián)的方式,測試出各種工作模式下的電流。經(jīng)過測試,各階段功耗測試結(jié)果如表3所示。
表3 低功耗終端單元電能測試結(jié)果
其中日工作時間是按每半小時定位數(shù)據(jù)采集發(fā)送一次計算。終端長時間工作狀態(tài)下的整機(jī)待機(jī)模式的工作電流為40 uA,采集存儲GPS數(shù)據(jù)時工作電流Iaq=24 mA,單次工作時長taq=1.5 s;無線LoRa模塊發(fā)送數(shù)據(jù)時工作電Itr=55 mA,單次工作時長ttr=6 s。
終端定位一個周期T的能耗為:
EL-GPS=Vc×(Iaqtaq+Itrttr)=1 098 mJ
平均功率:PL-GPS=EL-GPS/T=178.1 mW
目前常用終端定位方案能耗進(jìn)行對比如表4所示。
表4 單次定位狀態(tài)的能耗對比
對比可知,比高通GPSONE混合定位方案的單次定位能耗還要節(jié)省22.9%,其終端具體使用壽命與定位頻率以及電池容量大小相關(guān)。系統(tǒng)設(shè)計的電源方案采用的是容量3 200 mAh鋰電池。設(shè)定定位終端每隔半小時喚醒發(fā)送一次采集階段定位數(shù)據(jù),放電容量以90%計算,估算終端工作時長:
綜上所述,終端節(jié)點在園區(qū)應(yīng)用的高頻率定位使用下,可滿足較長時間穩(wěn)定運行。
本文針對物流定位的實際應(yīng)用需求,提出GPS與LoRa輔助傳輸相結(jié)合的云端分離協(xié)同低功耗定位方案,該系統(tǒng)經(jīng)過測試運行,能夠及時有效地采集到GPS衛(wèi)星信號數(shù)據(jù)發(fā)送到上位機(jī),在滿足一定精度同時解析出終端位置,實際功耗測試表明終端使用壽命能達(dá)四百余天,驗證了系統(tǒng)的功能和性能。本系統(tǒng)的設(shè)計中,將定位過程分離解析計算的思想使得定位精度存在一定偏差,下一步可以通過以幾方面改進(jìn)和提高系統(tǒng)定位精度滿足更多應(yīng)用場景需求:1) 采用傳感器輔助判別定位場景,調(diào)整增加捕捉到的GPS基帶數(shù)據(jù)信號塊,以進(jìn)一步獲得更多的可見衛(wèi)星來解析定位;2) 引入更精確的BPC信號作為參考時鐘源進(jìn)行更新,無法獲取BPC信號時再采用同步后的RTC時鐘計時來為定位數(shù)據(jù)提供時間戳。