孫長國,王瑩,劉志宏
(解放軍92117部隊,北京100072)
隨著網絡和通信技術的高速發展,人們對無線通信的需求也越來越高。為避免復雜的線路連接,人們希望通過一個小型的、短距離的無線網絡為簡單的數據傳輸提供服務。
無線串口接口簡單、兼容性好,能夠實現點對點的無線數據傳輸,但只有實現真正透明傳輸,才能實現應用簡單,適用范圍廣泛的特點。
因此,無線串口通信的設計就顯得尤為重要。本文提出的基于SimpliciTI網絡協議的無線串口橋技術,采用了數據幀的自適應接收、自動跳頻抗干擾技術、超低功耗設計技術等實現了模塊的高可靠性、小型化等特點,通信系統結構簡單,操作方便,實時性很高。在遠程控制、無線數據采集等多個領域具有很好的應用和發展前景。
藍牙和ZigBee作為標準、優秀的通信技術,兩者在各自定義的領域可以發揮重要作用。盡管如此,基于國際標準的技術也有缺點。首先,為滿足標準,在初始設計和兼容性測試中必須付出高昂費用。其次,就其字面意義而言,標準必須是“通用性極強”的解決方案,但由于競爭對手也掌握相同的技術,所以很難使產品在競爭激烈的全球市場中實現差異化。最后,標準解決方案很少有機會實現足夠的靈活性,例如,為了確保兼容性就需要大量數據包開銷,從而增加數據傳輸時間和功耗,無線產品的功耗降低空間就極其有限。
SimpliciTI網絡協議是TI公司于2007年推出的針對簡單小型無線網絡的專有低功耗網絡協議,目前已經發展10余個版本。該網絡協議能夠簡化實施工作,盡可能降低微控制器的資源占用,具有低成本、低功耗、源代碼公開且免費、支持具有睡眠狀態功能的設備、易于開發等特點。該協議能“開盒即用”地在CC110x/CC2500等多種RF收發器上運行[1]。
對于SimpliciTI協議的具體內容,這里不再贅述,下面主要結合無線串口橋技術,探討一下SimpliciTI網絡協議的具體應用。
SimpliciTI網絡協議專為簡單的RF網絡而設計,對適合網狀路由與標準化配置的大型網絡的ZigBee而言是一種很好的補充。協議對端到端的通信具有良好支持,其典型的拓撲結構如圖1所示,這就為無線串口橋設計提供了良好基礎。

圖1 SimpliciTI協議典型拓撲結構
硬件設計采用CC1110無線單片機+FT232R串口芯片設計,單個節點硬件電路原理圖如圖2所示。
CC1110單片機可以無縫運行SimpliciTI協議棧,并支持串口數據通信[2],只要一個電感電容組成的匹配網絡就可以實現無線通信;采用FT232R串口芯片,實現虛擬USB接口,方便與計算機連接。節點設計采用 USB供電,并設計一個工作狀態指示燈,用于無線數據收發狀態指示。整個節點設計具有高可靠、小型化、低成本等特點。

圖2 單個節點硬件電路原理圖
為解決無線通信的可靠性、實時性問題,實現真正的透明傳輸,設計利用SimpliciTI協議提供的回調函數,實現了數據幀自動接收,大大提高了通信效率和可靠性。
SimpliciTI協議提供了一個通用的回調函數sRxCallback,該函數通過SMPL_Init(sRxCallback)函數進行了注冊,并實現了網絡初始化,生成一個LinkID,這是節點在網絡里的唯一標識。一旦有無線數據接收,系統進入中斷服務程序調用該函數,并通過SMPL_Receive(sLinkID2,msg,&len))&&len)從射頻層RX FIFO獲取數據,并存儲在接收幀隊列,如果接收隊列滿,則隊列里的舊幀將被丟棄,之后,中斷例程被釋放。回調函數運行在接收中斷例程里提高了工作效率,實現了較小延遲的數據接收。
SimpliciTI協議1.2.0版已經具備了頻率捷變和管理功能。自動調頻技術結合CC1110單片機的CCA(Clear Channel Assessment,空閑信道評估)功能,并利用SimpliciTI協議頻率捷變能力,提高了無線通信的抗干擾能力。自動跳頻流程圖如圖3所示。

圖3 自動跳頻流程圖
CC1110單片機的空閑信道評估功能主要通過接收信號強度RSSI實現的,CC1110無線通信的接收信號靈敏度是-110dBm,而SimpliciTI協議中,可靠的接收信號門限設置為-70dBm,提高了接收數據的可靠性。實際計算RSSI的平均值,這樣才能得到有效的信道評估值[3]。如果信道評估失敗,則更換信道,信道數量一般設置為4個,信道間隔多達1MHz,從而保證了信道可用[4]。
無線串口通信系統的主要功能是實現串口數據的無線收發。PC機上的監控等指令按照一定的通信協議的格式通過RS232串口發送到無線節點,數據通過校驗并經無線串口橋簡單協議將數據無線發送出去。同時,另一個節點進行偵聽,如收到有效數據,則將數據按照通信協議格式解包,加上幀頭和校驗位后,通過RS232串口發送到PC機上。
本系統軟件開發采用基于SimpliciTI-1.2.0協議,采用IAR Embedded Workbench 7.60作為開發環境,編程采用C語言,使得系統設計十分方便。這里給出了整個系統程序設計流程圖,如圖4所示。

圖4 軟件系統流程圖
兩個節點各自完成初始化后,ED節點開始進行信道掃描,使用SimpliciTI協議內部自帶的SMPL_Ping(sLinkID)函數,該函數可實現對信道列表內的所有信道進行掃描,類似于TCP/IP協議的Ping功能。當另一個節點AP收到后,發送應答指令,這樣ED節點就實現了信道發現并鎖定,然后通過Join到Link等過程[5],實現數據通信。
在串口收發數據和無線收發數據時,都需要根據具體的應用來擬定數據格式。表1給出了通信的幀格式,整個幀格式實際上就是SimpliciTI協議的數據載荷,而串口通信數據幀這里沒有給出具體的格式,用戶可以根據具體的應用加以變化,使得串口通信實現真正的透明傳輸,即所發即所收。

表1 通信幀格式
為了測試本系統的無線傳輸可靠性,搭建了一個簡單的測試平臺,對丟包率進行了測試試驗。節點1為AP模塊,節點2為ED模塊,將兩個模塊分別連接計算機串口,使用串口調試助手SSCOMV3.0進行收發測試。值得注意的是,串口是全雙工通信,而無線則是半雙工通信,因此,同一時刻,收發測試是單向的。表2給出了誤碼率的測試結果,實驗室測試距離為10m。發送測試數據為:99H0AH 01H01H01H00H00H00H00HA6H,共計10個字節。

表2 測試實驗統計表(持續時間為5min)
測試結果表明,只要保證足夠的發送間隔,數據包的送達率可達到較高水平,對于出現丟包的情況,可以通過用戶應用程序重發校驗機制予以解決。
采用基于SimpliciTI協議的無線串口橋通信系統,從硬件電路設計、數據自適應接收技術、自動跳頻技術、幀格式及軟件編程等幾個方面進行了詳細設計,真正實現了數據的透明傳輸。測試結果表明,該系統硬件結構簡單、數據傳輸可靠、易擴展、實時性好。實際應用后,大大減小了線路連接的復雜程度,從而避免了施工布線、電線老化等問題,可廣泛應用于遠程控制、無線數據采集等多個領域,具有很好的應用和推廣前景。
[1]李文仲,段朝玉.CC1100/CC2510無線單片機和無線自組織網絡入門與實踐[M].北京:北京航空航天大學出版社,2008:221-242.
[2]楊鵬云,佟云峰,宋學青.基于CC1110的點對多點無線通信系統[J].云南大學學報:自然科學版,2009,31(S2):304-307.
[3]楊寧,史儀凱,袁小慶.SimpliciTI網絡頻率捷變機制的研究[J].傳感技術學報,2011,12(24):1739-1742.
[4]Sung Tienwen,Yang Chusing.An Adaptive Joining Mechanismfor Improving the Connection Ratio of Zigbee Wireless Sensor Net-works[J].International Journal of Communication Systems,2010,23(2):231-251.
[5]曾學為,孫玲玲,李少將.基于SimpliciTI協議的無線傳感網絡系統設計[J].杭州電子科技大學學報,2011,12(31):5-8.