陳瑋
摘? ?要:文章提出并實現(xiàn)了一種用于車位檢測無線傳感網(wǎng)絡(luò)的智能車庫網(wǎng)關(guān)。網(wǎng)關(guān)硬件由CC2530模塊和ARM系統(tǒng)構(gòu)成,軟件系統(tǒng)移植Linux系統(tǒng)和Boa服務(wù)器,通過串口接收車位采集節(jié)點的數(shù)據(jù)。Boa服務(wù)器通過調(diào)用CGI腳本獲取串口數(shù)據(jù),最后通過網(wǎng)頁發(fā)布。
關(guān)鍵詞:智能網(wǎng)關(guān);ARM; ZigBee;智能車庫;Boa
2018年,我國小汽車保有量已經(jīng)突破2億輛,城市車位管理的智能化已成為需要迫切解決的問題[1]。隨著各種傳感技術(shù)及網(wǎng)絡(luò)技術(shù)的發(fā)展,車庫開始采用Zigbee等無線傳感網(wǎng)實時采集車位信息,該類系統(tǒng)布線簡單、易擴容,適用性強。但ZigBee網(wǎng)絡(luò)中協(xié)調(diào)器一般不進行數(shù)據(jù)的再處理和發(fā)布[2],需要設(shè)計一種智能網(wǎng)關(guān)完成協(xié)調(diào)器的接收處理并由服務(wù)器將車位信息發(fā)布到Internet,4G網(wǎng)絡(luò),方便人們獲得車位信息、合理使用車位。
1? ? 系統(tǒng)總體結(jié)構(gòu)
智能車庫網(wǎng)關(guān)有3個功能:(1)車庫內(nèi)部網(wǎng)絡(luò)連接到外部網(wǎng)絡(luò)的物理接口。(2)檢測模塊、無線傳輸設(shè)備、數(shù)據(jù)協(xié)調(diào)器等設(shè)備控制和管理的平臺。(3)車庫數(shù)據(jù)處理及發(fā)布終端。結(jié)合功能需求,網(wǎng)關(guān)總體結(jié)構(gòu)設(shè)計如圖1所示。車位檢測由ZigBee網(wǎng)絡(luò)節(jié)點完成,一般由ZigBee傳輸模塊和前端傳感器組成。網(wǎng)關(guān)中設(shè)計ZigBee協(xié)調(diào)器與檢測節(jié)點組成完整的無線網(wǎng)絡(luò),用來匯總各節(jié)點的車位信息。接收的所有車位節(jié)點信息以一定的幀格式通過串口發(fā)送給ARM平臺進行處理和發(fā)布[3]。
2? ? 系統(tǒng)硬件結(jié)構(gòu)及組成
智能網(wǎng)關(guān)硬件主要由ZigBee協(xié)調(diào)器和ARM開發(fā)平臺組成。前者主要采用CC2530F256主控芯片,它是用于IEEE 802.15.4,ZigBee等應(yīng)用的片上系統(tǒng)解決方案,體積小、功耗低[4],可以設(shè)置為ZigBee網(wǎng)絡(luò)協(xié)調(diào)器。網(wǎng)關(guān)中通過它集成的RF收發(fā)器來接收車位檢測節(jié)點的數(shù)據(jù)。CC2530F256串行通信接口有兩個,分別是USART0和USART1,設(shè)計中USART0通過串口轉(zhuǎn)USB芯片PL2303與PC機連接用于調(diào)試,USART1直接與ARM開發(fā)平臺主控串口連接。
ARM開發(fā)平臺采用TX-2440A,其由主控制模塊、串口通信模塊、以太網(wǎng)接口模塊等組成。主控制器模塊采用S3C2440A,可穩(wěn)定地運行嵌入式Linux系統(tǒng),同時,提供最多3個串口,設(shè)計采用UART1與ZigBee協(xié)調(diào)器連接,而UART0與PC機連接用于調(diào)試。以太網(wǎng)接口模塊采用DM9000芯片,它的驅(qū)動可以比較方便地移植到Linux系統(tǒng)。
3? ? 系統(tǒng)軟件設(shè)計
軟件設(shè)計中,ZigBee協(xié)調(diào)器采用Z-Stack協(xié)議棧,應(yīng)用層設(shè)計兩個事件:(1)ZigBee網(wǎng)絡(luò)數(shù)據(jù)接收事件,處理ZigBee節(jié)點反饋的信息,取出車位信息。(2)串口轉(zhuǎn)發(fā)事件,將所有車位信息按一定幀格式打包定時發(fā)送給ARM系統(tǒng)[5]。ARM平臺軟件設(shè)計包括系統(tǒng)移植、串口數(shù)據(jù)獲取及處理和網(wǎng)關(guān)終端網(wǎng)頁設(shè)計。
3.1? Linux系統(tǒng)及Boa服務(wù)器移植
選擇Linux系統(tǒng)為ARM平臺上的操作系統(tǒng),它主要由BootLoader,Kernel,F(xiàn)ile System組成,根據(jù)系統(tǒng)的硬件進行相應(yīng)的移植工作。
Bootloader主要移植工作有:(1)建立網(wǎng)關(guān)開發(fā)板項目,修改時鐘頻率和中斷配置。(2)修改和添加網(wǎng)卡相關(guān)代碼,使U-boot支持DM9000,添加ping命令宏定義,方便測試網(wǎng)絡(luò)。修改網(wǎng)卡MAC地址并給開發(fā)板添加IP地址。
Kernel中主要移植工作有:(1)LCD驅(qū)動移植,根據(jù)網(wǎng)關(guān)的LCD類型,修改內(nèi)核源碼中已有的LCD驅(qū)動,設(shè)置LCD的時鐘頻率。配置LCD參數(shù),如.width,.height等。(2)移植DM9000驅(qū)動,修改mach-smdk2440.c文件,增加網(wǎng)卡選項。在主板devs.c文件中加入DM9000驅(qū)動文件和相關(guān)數(shù)據(jù)結(jié)構(gòu)體。修改驅(qū)動dm9000.c源碼,添加頭文件、指定中斷觸發(fā)方式,設(shè)置MAC地址。
Boa服務(wù)器是小巧、高效的Web服務(wù)器,是適合嵌入式Linux的HTTP服務(wù)器,源代碼開放、性能高。具體的移植步驟如圖2所示。
安裝Boa源碼包后在源碼根目錄下執(zhí)行命令.configure,配置Boa服務(wù)器;修改源碼根目錄下的Makefile文件,設(shè)置CC=arm-linux-gcc和CPP= arm-linux-gcc;在根文件系統(tǒng)中配置Boa服務(wù)器相關(guān)目錄,將編寫好的網(wǎng)頁HTML文件存放到/etc/boa/www/目錄;CGI腳本存放到/etc/boa/cgi-bin/目錄。
3.2? 串口數(shù)據(jù)與Boa服務(wù)器的交互
ZigBee協(xié)調(diào)器接收的車位信息需要網(wǎng)關(guān)在Linux下通過ARM平臺的串口讀取,再通過CGI方式與Boa服務(wù)器進行交互。
網(wǎng)關(guān)設(shè)計中,串口1設(shè)備位于/dev/目錄下的s3c2410_serial1文件,打開串口是通過使用標(biāo)準(zhǔn)的文件打開函數(shù)open函數(shù)打開,同時,設(shè)定串口的工作模式為讀寫方式、無延時模式。串口的波特率設(shè)置為57600,8位數(shù)據(jù)位,無校驗位,1位停止位。
串口接收到的車位信息用文檔保存通過CGI與Boa服務(wù)器進行交互,CGI是外部應(yīng)用程序與Web服務(wù)器之間的接口標(biāo)準(zhǔn),CGI允許Web服務(wù)器運行外部程序,并將輸出到Web瀏覽器,簡單來說CGI程序使Boa服務(wù)器網(wǎng)頁具有交互功能。
本系統(tǒng)CGI程序主要進行了以下設(shè)置:(1)在Web服務(wù)器中,打開HTML文件,以進行內(nèi)容修改。(2)通過文件方式讀取從串口中得到的車位數(shù)據(jù)。(3)根據(jù)串口數(shù)據(jù)對網(wǎng)頁的表格內(nèi)容進行選擇,標(biāo)記網(wǎng)頁中要修改的地方。
網(wǎng)關(guān)運行后,可在計算機或者任意移動終端的瀏覽器中輸入設(shè)置好的IP地址,看到車庫網(wǎng)關(guān)網(wǎng)頁。每一個車位用數(shù)據(jù)中的一個位來表示,1代表有車,0表示沒車。經(jīng)測試,停車后網(wǎng)頁對應(yīng)位置顯示小車圖片。
4? ? 結(jié)語
該智能車庫網(wǎng)關(guān)發(fā)揮ZigBee無線傳感網(wǎng)絡(luò)采集車位信息的優(yōu)勢,將局域網(wǎng)與外部廣域網(wǎng)進行連接。通過ARM嵌入式平臺開源設(shè)計的優(yōu)勢,使用程序小、效率高的Boa服務(wù)器與網(wǎng)頁進行連接,能起到非常好的交互作用。
[參考文獻]
[1]樊勇,任燕,司博章.基于物聯(lián)網(wǎng)技術(shù)的車位檢測系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2012(11):29-31.
[2]王慧,謝東,薛保珊,等.遠(yuǎn)程監(jiān)控系統(tǒng)中嵌入式網(wǎng)關(guān)的設(shè)計[J].西昌學(xué)報(自然科學(xué)版),2018(12):85-89.
[3]林關(guān)成.基于STC89C52單片機的車庫智能監(jiān)控系統(tǒng)設(shè)計[J].計算機與數(shù)字工程,2018(10):2160-2163.
[4]牛國峰,張明新,鄭金龍.基于ZigBee的物聯(lián)網(wǎng)智能家居設(shè)計[J].常熟理工學(xué)院學(xué)報(自然科學(xué)),2018(5):51-54.
[5]李玲,郭曉玲,武仁杰,等.基于NB-IoT及ZigBee的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計[J].通信技術(shù),2019(1):234-237.