熊禮平
摘 要:為解決現(xiàn)有車輛檢測(cè)器無(wú)線通信不穩(wěn)定、檢測(cè)準(zhǔn)確率較低等問(wèn)題,文中設(shè)計(jì)了一種基于物聯(lián)網(wǎng)技術(shù)的磁性車輛檢測(cè)器。利用磁阻效應(yīng)傳感器檢測(cè)車輛存在與否,通過(guò)低功耗微處理器嚴(yán)控時(shí)序,達(dá)到低功耗和準(zhǔn)確性要求;為實(shí)現(xiàn)穩(wěn)定可靠的無(wú)線通信,以LoRa作為通信組件。為方便后期維護(hù),利用LoRa技術(shù)實(shí)現(xiàn)無(wú)線固件升級(jí)功能。經(jīng)實(shí)際安裝測(cè)試,結(jié)果表明該車輛檢測(cè)器檢測(cè)準(zhǔn)確率高,通信穩(wěn)定性好;同時(shí),遠(yuǎn)程固件升級(jí)功能工作可靠,方便維護(hù)。
關(guān)鍵詞:車輛檢測(cè)器;物聯(lián)網(wǎng);LoRa;低功耗;固件升級(jí);磁阻傳感器
中圖分類號(hào):TP393;TN92 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2018)09-00-04
0 引 言
隨著經(jīng)濟(jì)的增長(zhǎng),各城市汽車保有量不斷增加,汽車流量、速度、車位狀態(tài)等基礎(chǔ)數(shù)據(jù)的獲取日益迫切,基于基礎(chǔ)數(shù)據(jù)的交通誘導(dǎo)、停車管理等應(yīng)用成為交通管理部門的痛點(diǎn)。針對(duì)以上問(wèn)題,研究人員開展大量工作,并取得相應(yīng)的應(yīng)用成果。
楊威[1]設(shè)計(jì)了一種車輛流量檢測(cè)器,該檢測(cè)器以紅外傳感器作為車輛流量檢測(cè)元件;高天龍[2]設(shè)計(jì)了一種基于ZigBee技術(shù)的無(wú)線車輛檢測(cè)器,采用磁傳感器為檢測(cè)單元,運(yùn)用ZigBee物聯(lián)網(wǎng)技術(shù),解決施工布線難題;靳璐[3]設(shè)計(jì)了一種基于雷達(dá)的車輛檢測(cè)器,該檢測(cè)器以毫米波雷達(dá)數(shù)據(jù)和視覺(jué)多特征為檢測(cè)手段;蔣新華[4]等人提出了一種基于視頻的車輛檢測(cè)算法,以半監(jiān)督支持向量機(jī)分類算法為檢測(cè)核心。
本文吸收現(xiàn)有車輛檢測(cè)器的優(yōu)點(diǎn),提出了一種以磁阻傳感器[5]為檢測(cè)核心,以物聯(lián)網(wǎng)無(wú)線技術(shù)為傳輸方式,以無(wú)線固件升級(jí)為創(chuàng)新的磁性車輛檢測(cè)器。
1 LoRa物聯(lián)網(wǎng)技術(shù)
物聯(lián)網(wǎng)無(wú)線技術(shù)包括:ZigBee,Bluetooth,WiFi等。ZigBee是一種基于IEEE 802.15.4技術(shù)的無(wú)線網(wǎng)絡(luò)協(xié)議,在物聯(lián)網(wǎng)方面應(yīng)用廣泛。但通信距離限制其應(yīng)用推廣,為兼顧低功耗和長(zhǎng)距離,出現(xiàn)了LoRa通信。
LoRa通信是美國(guó)Semtech公司研制的一種基于擴(kuò)頻技術(shù)的超遠(yuǎn)距離無(wú)線通信方式,屬于數(shù)字通信的一種。與非擴(kuò)頻數(shù)字通信系統(tǒng)相比,LoRa通信進(jìn)行信息傳輸時(shí),發(fā)送端由擴(kuò)頻碼發(fā)生器產(chǎn)生獨(dú)立的擴(kuò)頻碼序列,并對(duì)待傳輸?shù)臄?shù)字信號(hào)進(jìn)行調(diào)制,達(dá)到展寬信號(hào)帶寬目的。再將調(diào)制信號(hào)加載到射頻載波中發(fā)送,實(shí)現(xiàn)無(wú)線傳輸。由于信息傳輸過(guò)程所占用的帶寬大于所傳信息必須的最小帶寬,決定了LoRa通信抗干擾能力強(qiáng),通信傳輸安全可靠。Semtech公司已推出基于LoRa的通信芯片。
2 磁阻傳感器
1857年英國(guó)數(shù)學(xué)物理學(xué)家William Thomson發(fā)現(xiàn)了各向異性磁阻效應(yīng),磁傳感器正是基于磁阻效應(yīng)[6]制作研發(fā)。在鎳鐵導(dǎo)磁合金薄膜內(nèi)部建立磁場(chǎng),即內(nèi)建磁場(chǎng),當(dāng)外界磁場(chǎng)的方向與內(nèi)建磁場(chǎng)方向存在一定夾角時(shí),磁場(chǎng)內(nèi)部的磁化矢量發(fā)生偏移,導(dǎo)致薄膜電阻降低。磁傳感器將惠根斯電橋作為檢測(cè)基本元件,四個(gè)橋電阻采用鎳鐵導(dǎo)磁合金薄膜制作的磁阻。不施加外部磁場(chǎng)時(shí),四個(gè)橋的電阻相同。當(dāng)施加外界磁場(chǎng)時(shí),兩個(gè)相對(duì)磁場(chǎng)方向的磁阻阻值增加,而另外兩個(gè)橋的磁阻阻值降低。在供給外部電源的情況下,經(jīng)過(guò)電橋電阻分壓,Out+和Out-的輸出電壓變化總是相反的,因此外界磁場(chǎng)的方向最終體現(xiàn)為電壓差?;莞闺姌?qū)⒋艌?chǎng)的變化轉(zhuǎn)換為電壓差的形式輸出。
3 系統(tǒng)的硬件設(shè)計(jì)
車輛檢測(cè)器由檢測(cè)單元、通信單元、微處理器單元、供電及電源管理單元、JTAG等部分組成。
檢測(cè)單元負(fù)責(zé)車位狀態(tài)數(shù)據(jù)采集,并通過(guò)I2C接口與微處理器單元進(jìn)行數(shù)據(jù)交互,微處理器通過(guò)I/O口控制檢測(cè)單元工作;通信單元負(fù)責(zé)車輛檢測(cè)器與上層系統(tǒng)的無(wú)線數(shù)據(jù)傳輸,包括車位信息、上層指令、固件程序等。通信單元采用基于無(wú)線擴(kuò)頻技術(shù)的通信模塊,與微處理器通過(guò)SPI接口通信,同時(shí)通信芯片狀態(tài)以I/O狀態(tài)形式給出;供電單元負(fù)責(zé)各模塊的用電保障,電源管理單元控制耗電模塊分時(shí)供電,降低整機(jī)功耗;JTAG模塊用于對(duì)微處理器進(jìn)行在線編程和調(diào)試測(cè)試。
3.1 檢測(cè)單元的硬件設(shè)計(jì)
地球磁場(chǎng)是地球內(nèi)部存在的天然磁性現(xiàn)象。而車輛自身帶有一定量的鐵磁性物體,當(dāng)?shù)厍虼艌?chǎng)遇到鐵磁性物體時(shí),磁力線出現(xiàn)集中或稀疏現(xiàn)象,反應(yīng)出局部地球磁場(chǎng)強(qiáng)度的變化。通過(guò)磁阻傳感器感應(yīng)地球磁場(chǎng)的變化,達(dá)到檢測(cè)車輛的目的。
HMC5883L是霍尼韋爾公司研發(fā)的基于磁阻效應(yīng)的弱磁傳感器芯片,片內(nèi)集成最先進(jìn)的高分辨率磁阻傳感器、放大器、自動(dòng)消磁驅(qū)動(dòng)器、自測(cè)和偏差補(bǔ)償校準(zhǔn),能在8 G的范圍內(nèi)實(shí)現(xiàn)5 mG的分辨率,有效解決磁滯、零漂問(wèn)題。同時(shí)該芯片采用各向異性磁阻技術(shù),具有軸向高靈敏度和線性高精度等特點(diǎn),工作功耗低至100 μA,方便微處理器通信控制、適用于電池供電設(shè)備?;贖MC5883L芯片的單元檢測(cè)電路如圖1所示。
3.2 通信單元的硬件設(shè)計(jì)
通信單元負(fù)責(zé)車輛檢測(cè)器與上層系統(tǒng)之間的數(shù)據(jù)交互,車輛檢測(cè)器將檢測(cè)狀態(tài)等車輛檢測(cè)信息發(fā)送至上層系統(tǒng),上層系統(tǒng)下發(fā)指令查詢或設(shè)置車輛檢測(cè)器相關(guān)參數(shù)。同時(shí),通信單元負(fù)責(zé)應(yīng)用程序下發(fā),用于車輛檢測(cè)器遠(yuǎn)程固件升級(jí)。目前基于物聯(lián)網(wǎng)的應(yīng)用出現(xiàn)較多無(wú)線技術(shù),針對(duì)智能交通對(duì)長(zhǎng)距離和低功耗的特點(diǎn),本文選擇LoRa物聯(lián)網(wǎng)通信。無(wú)線通信單元的核心是Semtech公司提供的SX127x[7]系列LoRa產(chǎn)品。
SX127x靈敏度-148 dBm,高達(dá)+20 dBm功率放大器,最大鏈路預(yù)算可達(dá)168 dB,與ZigBee通信相比,LoRa方式通信距離是其數(shù)倍。發(fā)射電流120 mA,接收電流9.9 mA,200 mA寄存器保持電流,適合低功耗應(yīng)用。其硬件電路如圖2所示。
LoRa模塊與處理器采用SPI通信方式,并提供一定數(shù)量的I/O口指示模塊的工作狀態(tài)。靜態(tài)時(shí)無(wú)線模塊處于休眠狀態(tài),當(dāng)接收到上層系統(tǒng)的數(shù)據(jù)后,對(duì)應(yīng)的I/O口指示接收成功,處理器采集到I/O口電平的變化并讀取數(shù)據(jù)。當(dāng)車輛檢測(cè)器需要主動(dòng)發(fā)送數(shù)據(jù)時(shí),處理器通過(guò)SPI配置無(wú)線模塊為發(fā)送狀態(tài),并寫入待發(fā)送的數(shù)據(jù)。
3.3 電源管理單元的硬件設(shè)計(jì)
雖然檢測(cè)單元處于閑置模式時(shí),主要耗電模塊禁用,但仍有部分模塊處于開通狀態(tài),如I2C模塊。為了盡可能降低功耗,采取微處理器I/O口控制檢測(cè)單元供電和掉電。當(dāng)需要采集磁場(chǎng)數(shù)據(jù)時(shí),打開檢測(cè)單元電源開關(guān),檢測(cè)模塊工作;工作完成后,通過(guò)微處理器關(guān)閉檢測(cè)模塊供電電源。此時(shí)檢測(cè)模塊完全禁用,功耗最低。電源控制電路如圖3所示。
通信單元處于休眠模式也存在小電流,考慮通信芯片上電后,寄存器需重新配置,配置時(shí)通信芯片處于待機(jī)狀態(tài),電流較休眠模式高,因此通信單元不采用電源開關(guān)控制功耗,通過(guò)優(yōu)化狀態(tài)機(jī),減少通信模塊收發(fā)時(shí)間。為進(jìn)一步降低功耗,微處理器采用TI公司研發(fā)的MSP430F5XX[8]超低功耗單片機(jī)。
4 系統(tǒng)的軟件設(shè)計(jì)
為實(shí)現(xiàn)車輛檢測(cè)器固件升級(jí)功能,采用自定義引導(dǎo)程序[9]、配合LoRa物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn),方便后期系統(tǒng)維護(hù)。微處理器片內(nèi)FLASH存在兩段程序,引導(dǎo)程序和應(yīng)用程序。引導(dǎo)程序通過(guò)無(wú)線接收應(yīng)用程序,并寫到預(yù)定義的FLASH空間;對(duì)應(yīng)用程序中斷向量重映射[10],引導(dǎo)程序一般不使用中斷,放在鄰近原始中斷向量的FLASH空間。
4.1 引導(dǎo)程序的設(shè)計(jì)
引導(dǎo)程序的功能是無(wú)線接收應(yīng)用程序,并將應(yīng)用程序?qū)懙街付ǖ腇LASH地址。引導(dǎo)程序通過(guò)微處理器的JTAG燒寫到FLASH空間,為從地址上區(qū)分引導(dǎo)程序和應(yīng)用程序,在燒寫引導(dǎo)程序之前,需手動(dòng)修改對(duì)應(yīng)程序的鏈接文件。根據(jù)引導(dǎo)程序占用空間的大小,將其FLASH空間定義在0xF000-0xFF7F。
引導(dǎo)程序流程如圖4所示。引導(dǎo)程序運(yùn)行后,首先檢查應(yīng)用程序是否有效,當(dāng)檢測(cè)到有效應(yīng)用程序時(shí),跳轉(zhuǎn)到應(yīng)用程序執(zhí)行,否則等待應(yīng)用程序下發(fā)。引導(dǎo)程序包含升級(jí)和跳轉(zhuǎn)命令。升級(jí)命令包含應(yīng)用程序的十六進(jìn)制數(shù)據(jù),每接收一幀升級(jí)命令,將對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)寫入指定的FLASH。若寫入成功,引導(dǎo)程序發(fā)送成功回令至升級(jí)設(shè)備;否則,引導(dǎo)程序發(fā)送寫入失敗的回令。當(dāng)所有數(shù)據(jù)成功寫入FLASH空間后,升級(jí)設(shè)備發(fā)送跳轉(zhuǎn)指令,引導(dǎo)程序成功接收到跳轉(zhuǎn)指令后,發(fā)送跳轉(zhuǎn)回令,并完成跳轉(zhuǎn)。跳轉(zhuǎn)后,微處理器執(zhí)行應(yīng)用程序。
引導(dǎo)程序中,關(guān)鍵在于中斷向量重映射。原始中斷向量表固化在內(nèi)部存儲(chǔ)區(qū),不能更改。當(dāng)中斷發(fā)生時(shí),程序首先跳轉(zhuǎn)到原始中斷向量表。原始中斷向量表為引導(dǎo)程序使用,為跳轉(zhuǎn)到應(yīng)用程序的中斷向量表,需要在引導(dǎo)程序中完成中斷跳轉(zhuǎn)到自定義的應(yīng)用程序中斷向量表中,應(yīng)用程序完成中斷功能。
4.2 應(yīng)用程序的設(shè)計(jì)
工作中,車輛檢測(cè)器運(yùn)行應(yīng)用程序。應(yīng)用程序負(fù)責(zé)車輛檢測(cè)器車位信息采集、無(wú)線數(shù)據(jù)收發(fā)。接收跳轉(zhuǎn)指令并跳轉(zhuǎn)到引導(dǎo)程序。應(yīng)用程序流程如圖5所示。
應(yīng)用程序存儲(chǔ)在以0x5C00開始的FLASH空間,與引導(dǎo)程序在地址空間上分開,防止應(yīng)用程序?qū)懭霑r(shí)誤擦除引導(dǎo)程序。上電后,應(yīng)用程序首先完成外設(shè)和參數(shù)配置,包括微處理器外設(shè)、LoRa無(wú)線模塊參數(shù)配置。為方便用戶開發(fā)基于SX1278芯片的產(chǎn)品,SemTech公司開放庫(kù)函數(shù)源碼。參數(shù)配置由SX1278Init()函數(shù)實(shí)現(xiàn),設(shè)置射頻參數(shù)、硬件I/O配置、狀態(tài)設(shè)置,并最終調(diào)用SX1278LoRaInit()完成參數(shù)配置。之后發(fā)送組網(wǎng)信息至上層系統(tǒng),車輛檢測(cè)器通知上層系統(tǒng)連接網(wǎng)絡(luò),再進(jìn)入主循環(huán)。主循環(huán)的功能是采集車位信息、無(wú)線數(shù)據(jù)收發(fā)。主循環(huán)等待兩個(gè)中斷喚醒微處理器,定時(shí)器中斷、I/O口中斷。內(nèi)部定時(shí)器外設(shè)提供精準(zhǔn)時(shí)序,實(shí)現(xiàn)車位信息周期性采集。并精確控制車位心跳數(shù)據(jù)的發(fā)送;無(wú)線數(shù)據(jù)收發(fā)通過(guò)單片機(jī)控制,微處理器通過(guò)響應(yīng)無(wú)線模塊I/O口變化,判斷收發(fā)過(guò)程中模塊狀態(tài)。
當(dāng)接收到上層系統(tǒng)發(fā)送的命令后,應(yīng)用程序判斷命令類型。當(dāng)命令為設(shè)置或查詢車輛檢測(cè)器參數(shù)時(shí),應(yīng)用程序提取參數(shù)并回傳至上層系統(tǒng);當(dāng)命令為程序升級(jí)命令時(shí),應(yīng)用程序跳轉(zhuǎn)到引導(dǎo)程序,微處理器執(zhí)行引導(dǎo)程序,由引導(dǎo)程序接收應(yīng)用程序并完成程序升級(jí)。
5 測(cè)試結(jié)果
為驗(yàn)證本設(shè)計(jì)的檢測(cè)準(zhǔn)確性和通信穩(wěn)定性,選取某地下停車場(chǎng)進(jìn)行安裝測(cè)試。該停車場(chǎng)共有車位134個(gè),實(shí)際安裝車輛檢測(cè)器100套,最遠(yuǎn)距離超過(guò)75 m。經(jīng)測(cè)試,室內(nèi)地下條件,LoRa物聯(lián)網(wǎng)通信穩(wěn)定可靠,丟包率低,通信質(zhì)量較ZigBee好。
現(xiàn)場(chǎng)經(jīng)13天觀測(cè),共收集進(jìn)出車數(shù)據(jù)847組。其中進(jìn)車552組,出車295組。漏檢13組,錯(cuò)檢56組,準(zhǔn)確率達(dá)91.8%。
為測(cè)量功耗,假設(shè)一個(gè)車輛檢測(cè)器每天的進(jìn)出車次數(shù)為30次。靜態(tài)時(shí)車輛檢測(cè)器每1 h發(fā)送一次數(shù)據(jù)。經(jīng)過(guò)測(cè)量,車輛檢測(cè)器的功耗為100 μA,實(shí)現(xiàn)低功耗要求。
6 結(jié) 語(yǔ)
本文設(shè)計(jì)了一種基于物聯(lián)網(wǎng)技術(shù)的磁性車輛檢測(cè)器。LoRa物聯(lián)網(wǎng)通信保證通信穩(wěn)定可靠。借助LoRa通信實(shí)現(xiàn)車輛檢測(cè)器程序遠(yuǎn)程升級(jí),大大降低后期維護(hù)成本。經(jīng)實(shí)際測(cè)試,車輛檢測(cè)器檢測(cè)準(zhǔn)確性達(dá)到91.8%。對(duì)動(dòng)靜態(tài)車輛管理系統(tǒng)的設(shè)計(jì)具有一定的指導(dǎo)意義。目前車輛檢測(cè)器在檢測(cè)準(zhǔn)確性、功耗等方面任存在相應(yīng)不足。未來(lái)車輛檢測(cè)器的研究,還需要在檢測(cè)準(zhǔn)確性等方面進(jìn)行突破。
參考文獻(xiàn)
[1]楊威,郝潤(rùn)科,高峰,等.一種基于MSP430的車輛流量檢測(cè)器的設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2017,(3):96-98.
[2]高天龍,章偉.基于AMR傳感器和ZigBee技術(shù)的車輛檢測(cè)器設(shè)計(jì)[J].傳感器與微系統(tǒng),2016,35(3):96-98.
[3]靳璐,付夢(mèng)印,王美玲.基于視覺(jué)和毫米波雷達(dá)的車輛檢測(cè)[J].紅外與毫米波學(xué)報(bào),2014,33(5):465-471.
[4]蔣新華,高晟,廖律超,等.半監(jiān)督SVM分類算法的交通視頻車輛檢測(cè)方法[J].智能系統(tǒng)學(xué)報(bào),2015,10(5):690-698.
[5]潘仲明,周晗,張大廈,等.國(guó)外巨磁阻抗傳感器檢測(cè)電路技術(shù)的發(fā)展動(dòng)態(tài)[J].儀器儀表學(xué)報(bào),2017,38(4):781-793.
[6] BEISTER A,WACHOWIAK R,BOSCHKE T,et al. Mobility Investigations on Strained 30-nm High-Metal Gate MOSFETs by Geometrical magnetoresistance effect[J].IEEE transactions on electron devices,2015,62(6):1819-1825.
[7] Semtech Corporation.SX1278 137-525MHz Ultra Low Power Long Range Transceiver[EB/OL].[2013-9-1].https://www.semtech.com/products/wireless-rf/lora-transceivers/SX1278.
[8] Texas Instruments Incorporated.MSP430x5xx and MSP430x6xx Family User's Guide[EB/OL].[2016-10-11].http://www.ti.com.cn/cn/lit/ug/slau208p/slau208p.pdf.
[9] Texas Instruments Incorporated.Creating a Custom Flash-Based Bootloader(BSL)[EB/OL].[2017-8-6].http://www.ti.com.cn/cn/lit/an/slaa450e/slaa450e.pdf.
[10] Texas Instruments Incorporated.MSPBoot– Main Memory Bootloader for MSP430? Flash Microcontrollers[EB/OL].[2017-9-5].www.ti.com.cn/cn/lit/an/slaa600c/slaa600c.pdf.