引言
??? 為了滿足人們對車載安全性、操控性以及舒適性的要求,車載上集成了越來越多的電子系統。目前,汽車電子設備廣泛采用16位或32位微處理器進行控制。本文基于IEEE 802.15.4和ZigBee標準的無線傳感器網絡構建車載監測系統,設計實現更加優化的無線傳感器網絡,逐步實現車載系統的網絡化、智能化和可控性,以提,高車載系統的安全性。
1 系統設計方案
??? 本文在現有的車載系統上,將數據傳輸的方式擴展為無線傳輸方式,實現一個星型網絡的數據采集系統。并能分別將各個數據采集節點的所獲得的數據傳輸到網關,網關通過串口將數據上傳到主機上,在主機中實現數據的實時波形顯示,并以數據庫的方式加以保存,供后續數據處理。該采集系統的應用對象由溫度傳感器、油壓傳感器、轉速傳感器、速度傳感器、電流傳感器、壓力傳感器等傳感器子系統所組成。這樣設計的目的是用一個監控主機端來檢測多個待測目標環境,考慮到接入的數據吞吐量和軟件系統的復雜程度,采用時分復用的方式,逐個對網內的終端采集點進行控制采集。
??? 如圖1所示,該車載系統分3個部分:車載監控中心、車載網關和車載傳感器節點。車載網關是整個車載系統的核心,可以和所有的車載傳感器節點通信。車載監控中心可以向車載網關發出控制命令,由車載網關將控制命令轉換為射頻信號后發送給車載傳感器節點。當車載傳感器節點發送數據時,車載網關進入數據接收狀態,并將數據上傳到車載監控中心作進一步處理。此外,車載傳感器節點之間不能互相通信。監控中心的監控軟件與車載網關之間以RS232的接口標準進行通信。
??? 車載傳感器節點的生命周期由活躍期和休眠期構成。節點在活躍期完成數據采集,向網關發送數據,接收并執行網關命令;在休眠期關閉無線射頻模塊以節省能量,直到下一個活躍期來臨。系統通過這種休眠機制來減少系統的能量消耗,延長系統整體壽命。
??? 本系統用PC機作為監控中心,PC機上的監控軟件在VB環境下開發,是一個基于對話框的應用軟件。為了提高通信傳輸模塊的智能化水平,在設計中,它的功能不限于數據的實時顯示,所有的數據采集由監控軟件通過發送請求信號的方式觸發。考慮到原始數據需要進行后續的處理與深入的分析,才能對車載系統的狀況進行準確的判定,軟件中還添加了數據文件形式的保存與數據文件回顯功能。
??? 總體上來講,整個網絡的所有節點都受控于主機監控軟件,工作過程中網絡的每一個節點都不需要人為的參與。
2 系統硬件設計
2.1 應用芯片介紹
??? Freescale公司的MC13192符合IEEE 802.15.4標準,工作頻率是2.405~2.480 GHz,數據傳輸速率為250kbps,采用0-QPSK調試方式。這種功能豐富的雙向2.4 GHz收發器帶有一個數據調制解調器,可以在ZigBee技術應用中使用。它還具有一個優化的數字核心,有助于降低MCU處理功率,縮短執行周期。
??? 主控MCU選用Freescale公司HCS08系列的低功耗、高性能微處理器MC9S08GB60。該處理器具有60 KB的應用可編程Flash、4 KB的RAM、8通道的10位ADC、2個異步串行通信接口(SCI)、1個同步串行外部接口(SPI)以及I2C總線模塊,完全能夠滿足車載網關和節點對處理器的要求。
2.2 MCl3192與MC9S08GB60的硬件連接
??? MC13192與MC9S08GB60的硬件連接圖如圖2所示。MC13192的控制和數據傳送依靠4線串行外設接口(SPI)完成,其4個接口信號分別是MOS-I、MISO、、SPICLK。主控MCU通過控制信號退出睡眠模式或休眠模式,通過來復位收發器,通過RXTXEN來控制數據的發送和接收,或者強制收發器進入空閑模式。由傳感器輸出的模擬信號經過MCU的8通道10位ADC轉換后輸入到MCU。MCU通過SPI口進行MC13192的讀寫操作,并把傳感器采集的信號經過處理后通過MC13192發射出去。MC13192的中斷通過IRQ引腳和中斷寄存器來判斷中斷類型。MC908GB60通過引腳來控制MC13192進入不同的工作模式。對傳感器的控制信號可以從MC13192的天線接收進來,通過SPI傳送到MCU上,經過MCU的判斷處理后通過GPIO口傳送到傳感器上,完成對傳感器的控制。同時,MCU完成MC13192收發控制和所需要的MAC層操作。
?3 系統軟件設計
3.1 軟件整體設計
??? 軟件設計是本設計的核心,關鍵在于軟件的總體架構和數據結構的設計。著重要考慮的因素一個是效率,另一個是設計的清晰性。
??? 車載系統軟件由網關節點與傳感器節點兩大部分組成,這兩部分都需要完成SMAC協議的移植,并根據不同需要為上層通信應用提供API接口函數。因為SMAC協議棧編程模型采用層次設計,只有底層的PHY和MAC程序層與硬件相關,而網絡層和應用層程序則不受硬件影響。SMAC在不同硬件平臺的移植只需修改PHY和MAC層,其上各層可以屏蔽硬件差異直接運行。
??? 如圖3所示,本設計把軟件分為系統平臺層、協議層和應用層3層。同時,定義了3個API接口:系統層接口、協議層接口和應用層接口。系統層接口定義了硬件的寄存器映射,這樣C語言就能直接訪問硬件寄存器來控制硬件。系統平臺層建立在μC/OS-II實時操作系統上,為協議層提供系統服務。硬件驅動模塊提供硬件驅動程序,所有對硬件的控制都通過該模塊提供的服務。系統平臺層通過協議層接口為協議層提供服務。協議層則實現了基于IEEE 802.15.4的物理層和鏈路層以及基于ZigBee的網絡層協議。應用層通過應用層接口來調用協議層提供的服務,實現網絡的管理和數據傳輸等任務。應用配置模塊既會調用協議層提供的網絡服務,也會直接對系統進行配置和查詢,這主要是通過AT指令來實現的,因此該模塊會調用應用層接口和協議層接口提供的服務。
?
3.2 傳感器節點軟件設計
??? 基于系統長期使用的功能需求,傳感器節點中軟件設計的關鍵是既能實現所需的功能,又能最大限度地減少傳感器節點的能耗。
通過測試發現,ZigBee模塊的能耗要遠遠大于中央處理器和傳感模塊的能耗。因此,傳感器節點應用軟件的設計既要盡量使各模塊處于休眠狀態,又要盡量減少喚醒ZigBee模塊的次數。因此,在傳感器節點上電各功能模塊初始化完成、并加入了網絡后,即進入休眠狀態,中央處理器周期地被定時喚醒向網關發送數據,并接收網關的命令。傳感器節點的工作流程如圖4所示。
3.3 網關節點軟件設計
??? 車載網關向下管理傳感器節點,向上完成和PC監控中心的交互,需要進行復雜的任務管理和調度,因此,采用基于uC/OS內核的嵌入式操作系統管理整個網關,為應用任務的高效運行提供良好的軟件平臺支撐。根據網關的功能需求,將μC/OS-II、SMAC協議有機的結合,構成一個網絡化的操作環境,用戶可以方便地在其基礎上開發應用程序。基于μC/OS-II擴展的網關軟件平臺結構如圖5所示。基于μC/OS-II操作系統,分別構建系統任務SYS_task()、SMAC星型組網任務START_task()、網關和傳感器節點交互任務COMM_task()、PC臨控中心端口監聽任務SER_task()等一系列應用任務,從而實現網關軟件的應用功能。
3.4 主機監控軟件的設計
??? 本系統最終目的是將采集到的車載傳感器數據實時地傳送到主機,并在主機中得到顯示和保存。顯示的目的是獲得被車載傳感器節點所監控環境的初步情況,保存的目的是作為深入分析的數據樣本。除此以外,作為整個系統的主控方和數據采集請求的發起者,需要能夠按照要求發送數據請求信號。根據以上要求,在VB環境下開發了一個基于對話框的應用程序。這個應用程序包括了4個模塊:
??? ①實時數據顯示波形模塊。該模塊的作用是將節點的數據以波形的形式實時地進行顯示,實現的方式是利用MSChart和Timer控件。
??? ②拓撲顯示模塊。當用戶希望了解無線傳感器網絡的拓撲構建情況時,可以查看拓撲信息欄,了解網絡中節點的加入和丟失情況。
??? ③歷史數據顯示模塊。在車載網絡系統運行到一定時期,可能需要對過去某一段時間的原始數據進行后續的處理與深入的分析,以便對車載系統的狀況進行準確的判定。借助歷史數據顯示模塊,可以將監控中心從車載網關中得到的數據,按照不同節點的屬性、地址和時間分別保存到數據庫的相應字段中,并可以通過波形圖的方式將歷史數據顯示出來,供用戶分析。
??? ④控制模塊。在車載系統運行過程中可能關心某一個車載傳感器節點的數值,或者需要對某一個傳感器進行閾值設置,以便待監測的環境出現異常情況可以及時地報告給系統。這些都可以通過控制模塊對系統進行相應的設置,控制模塊還可以對系統中的某個不需要的節點進行刪除操作。
??? 總之,通過主機監控軟件用戶可以直觀且多方面地對通用無線傳感器網絡系統進行了解和使用。
4 測試與驗證
4.1 組網測試
??? 測試設備:4個MCl3192 ZigBee芯片節點,1個作為網關節點,其余3個作為傳感器節點。
??? 測試方法:網關節點上電后,4個LED同時點亮,掃描信道如果搜索到空閑信道后,LED熄滅并加入空閑信道等待。傳感器節點上電后,4個LED在掃描信道的同時,輪詢點亮。當網關節點收到傳感器節點的Beacon幀后,LED1閃爍一次;當傳感器節點收到網關節點的分配地址后,LED1也閃爍一次。至此,組網過程和地址綁定過程完成。
4.2 ZigBee射頻通信測試
??? 測試設備:ZigBee節點4個,計算機終端1臺。
??? 測試方法:根據ZigBee傳輸的幀格式,實際傳輸總字節數為(n+6),即(n+6)個字節為一個數據包。根據設定的軟件參數,如有數據包丟失則丟包數加1。若接收到數據包,則接收數據包數加1,然后與發送數據進行比較,若數據正確則正確包數加1,反之錯誤包數加1。最后統計數據結果,就可以知道數據的丟包率和誤包率。4個節點組建一個ZigBee網絡,其中1個作為網關,其余3個節點作為傳感器節點。編寫程序設定:3個節點均與網關通信,計算機終端與網關通過RS232相連,終端設備軟件記錄從3個節點接收數據的情況,節點工作在2.4 GHz頻段下,傳輸一個字節的數據,循環發送100次。最后取得3個節點的測試平均數作為數據結果進行分析。星形網射頻通信誤碼率測試結果如表1所列。
?
??? 實驗分析:在星形網絡中進行數據傳輸,測試結果明顯差于單點對單點傳輸方式。這主要是因為,在傳輸過程中節點之間存在一定的頻率干擾和其他干擾。
4.3 功耗測試
??? 在系統工作狀態和休眠狀態下,分別使用萬用表測試網關節點和傳感器節點的功耗情況,測試結果如表2所列。
結語
??? 本文分析了IEEE 802.15.4和ZigBee協議,結合通信系統和嵌入式系統的一般開發原則,在μC/OS-II操作系統上實現IEEE802.15.4協議,選擇合適的軟硬件平臺,著重于軟件支撐平臺的構建、軟件總體結構設計以及通信協議棧的實現,最終實現了一個符合ZigBee規范的車載星型無線數據采集網絡。該系統具有以下的優勢:
??? ①系統安裝方便。無線互連使得設備安裝位置靈活,同時滿足了系統安裝的自動化要求。人們只需要把設備上電就可以了。該車載網絡系統能夠自動完成網絡的配置。
??? ②可擴展性。把設備放在車載網關的覆蓋范圍以內,打開設備電源,節點將自動加入網絡。
??? ③網絡自我修復能力。如果網絡中某個設備出現故障,車載網關能夠自動監測到,發出指令將該設備復位并重新入網。
評論
查看更多