董航飛,許仁德
(1.南通航運職業技術學院,南通 226010;2.中國電子科技集團公司 第五十二研究所)
ZigBee技術是一種新興的近距離無線通信技術,它具有功耗低、成本低、使用方便的優點,在傳感器網絡、家庭監控、工業監控、安全系統等領域有著廣泛的應用。為了有效增加圖像數據每一幀中的數據凈載荷,提高傳輸效率,采用數據幀跨層傳輸的方法傳輸ZigBee無線圖像數據。其基本思想是:一旦邏輯鏈路建立完成,ZigBee協調器組織中的通信網絡有且僅有一條鏈路可以使用;并且數據幀采用跨層傳輸,傳輸完成后協調器斷開該鏈路;再有新任務出現時,重新建立鏈路。
邏輯鏈路建立、喚醒機制的實現步驟如圖1所示。各步驟實現如下:
① 當協調器檢測到有圖像傳輸任務后,向APL層發送鏈路建立命令,喚醒該鏈路上的傳輸設備進入常態,并保存鏈路節點地址。
② 若協調器喚醒鏈路設備不成功,需重新建立路由路徑,則啟動ZigBee協議標準中路由發現功能,自行建立鏈路。
③ 若出現超時現象,則顯示異常信息。
④ 若鏈路建立成功,協調器和該鏈路上的所有路由設備都保存下一跳的地址,當傳輸路由設備接收到數據幀任務時,就直接通過已經保存的地址完成數據幀傳輸。
圖1 邏輯鏈路建立、喚醒機制實現步驟
標準ZigBee傳輸協議中,數據傳輸從應用層到物理層逐層依次傳輸,由于每一幀圖像數據幀都包含各層的完整幀頭信息,其數據凈載荷相對減小。當傳輸較大圖片時,由于數據量大、冗余信息多,極大地降低了傳輸速率和系統的工作效率。若采用跨層傳輸方式,圖像數據幀直接從應用層傳輸到MAC層,略去網絡層數據幀頭等相關冗余信息。
ZigBee協議標準應用層的數據幀中包括11字節MAC幀頭、8字節網絡層幀頭、6字節APS幀頭、4字節APL幀頭、1字節幀長度,共30字節。而跨層傳輸方式下數據幀中僅包括1字節幀長度、11字節MAC幀頭、4字節APL幀頭,每一幀數據減少14字節。
當傳輸連續多幀的圖像數據時,提高通信效率顯而易見,并且數據量越大,效率提高越明顯。當然,只有原數據節點到目標節點的鏈路建立以后,跨層傳輸才可以實現。MAC層請求NWK層進行傳輸數據服務的流程如圖2所示。MAC層接收到應用層傳輸過來的圖像數據幀后,進行數據類型分析,并選擇相應的傳輸方式,向NWK層傳輸。協調器向終端設備發送圖像數據幀時,同樣采用基于鏈路建立、喚醒機制的數據幀跨層傳輸方式。
2 MAC層請求NWK層進行傳輸數據服務流程
根據設備特點和功能不同,該設計定義了3種FFD網絡設備:PAN Coordinator、Router和End Device。FFD網絡設備可以縮短圖像數據系統的響應時間,并采用條件編譯的方式來優化程序設計。
主函數流程的設計思想就是要包含3種網絡設備各自的主函數處理過程。其流程如圖3所示。其中,通過條件編譯選項,可以選擇End Device、Router的功能,比如End Device設備可以選擇具有路由功能。
系統復位時首先查看網絡配置是否完成,其依據是定義在外部Flash中的變量——CONFIG_COMPLETE的值。如果網絡參數被重新配置,這些參數都會在外部Flash中保存,并置位CONFIG_COMPLETE。
設備完成初始配置后運行任務函數。為便于系統程序在以后的實踐操作中可以添加新任務或者優化,該部分程序設計改進了操作系統中原有的任務劃分的設計思想,使各任務間沒有信息交換,更加簡練。若設備沒有數據傳輸任務,就進入空閑狀態。而Router和End Device在空閑狀態下確保能夠正常接收數據幀,協調器設備通過外部中斷來喚醒,并根據命令要求進入正常工作方式。
圖3 主函數流程
協調器網絡配置完成或Router、End Device添加到網絡中后,設備會進入空閑模式。協調器任務處理流程如圖4所示。當協調器有圖像傳輸任務時,檢測Flash中是否已經保存該邏輯鏈路的路由表。如果已存在,就可以發送一條建立邏輯鏈路的命令幀,喚醒該鏈路上的所有設備。因為數據傳輸過程難免出現異常情況,為確保能從各種異常情況下自動恢復,協調器任務流程中就必須包括圖像數據傳輸異常的處理過程。
圖4 協調器任務處理流程
End Device設備的功能具有選擇性,可以具有數據轉發的功能,也可以具有終端設備的無線圖像傳輸應用程序功能。終端設備中無線圖像傳輸功能涉及的應用函數比較多,包含于ZigBee協議棧處理傳輸任務的整個過程中,由于篇幅有限,不再展開分析。
為驗證該設計的可行性、高效性,利用相關設備完成基于鏈路喚醒機制的無線圖像跨層傳輸完整功能測試。內容主要包括:網絡基本功能測試,設備低功耗控制測試,基于邏輯鏈路建立、喚醒機制的圖像數據幀跨層傳輸方式測試,節點設備通信異常測試等。
測試利用簇樹網絡結構。協調器節點設備與攝像頭采用串口連接,終端節點設備通過串口與PC機連接,其測試系統硬件連接結構如圖5所示。
圖5 測試系統硬件連接結構
測試中,采用96.35kb/s作為圖像數據幀傳輸速率。串口波特率設置為所用攝像頭工作的最大速率57 600bps。該攝像頭采集640×480像素的圖像,經壓縮后其數據量一般為10~20KB。測試結果表明,在該條件下,簇樹拓撲網絡中采用基于鏈路建立、喚醒機制的圖像數據幀跨層傳輸方式時,一張圖像的傳輸時間約為0.76~1.65s。無線圖像傳輸完整功能的演示結果如圖6、圖7所示。攝像頭連續拍攝640×480像素的圖像通過協調器節點設備、路由節點設備發送給終端節點設備,終端節點設備接收到圖像數據并發送給上位機來顯示。采用按鍵觸發的形式停止圖像數據傳輸。由測試結果可以看出,圖像數據幀傳輸完整、連續。
圖6 網絡數據傳輸測試最后一幀數據圖
ZigBee技術是近年來迅速成長并運用越來越廣泛的一門技術。針對ZigBee技術在可視門禁系統運用中出現的傳輸數據效率低、實時性差的問題,設計了新型的鏈路建立、喚醒機制及數據幀跨層傳輸的模式,經過反復實驗與運用檢測,達到了預期的設計要求和結果,并成功在實際的公司項目中運用,具有很高的運用價值和廣闊的市場前景。
圖7 測試結果
[1] Communications Design Conference.ZigBee technology:Wireless Control that Simply Works[EB/OL].[2012-03].http://freedownload. is/doc/zigbee-technology-wirelesscontrol-that-simply-works-3777062.html.
[2] Gang Ding,Sahinoglu Z,Orlik P,et al.Tree-Based Data Broadcast in IEEE 802.15.4and ZigBee Networks[J].Mobile Computing,2006:1561-1574.
[3] N Baker.ZigBee and Bluetooth strengths and weaknesses for industrial application.Computing & Cortrol Engineering,2005,16(2):20-25.