基于ZigBee的航標遙測終端
2 終端的硬件組成
根據功能要求,設計的航標遙測終端組成框圖如圖2所示,主要由處理器模塊、ZigBee/CDMA通信模塊、GPS定位模塊、航標燈數據采集模塊及供電系統組成。本文引用地址:http://www.104case.com/article/156591.htm
處理器模塊是以S3C2410 32 b RISC ARM9處理器為中心,主要由時鐘/復位單元、存儲系統、調試接口等組成。它是整個終端的核心,負責整個終端系統的管理、控制運行、數據采集以及通信協議的解析和數據處理。S3C2410微處理器具有3個串口,即UART0,UART1,UART2,通過合理分配串口,并設計控制電路,對不足的串口資源進行復用,使其滿足應用需求。ZigBee/CDMA通信模塊的作用是負責終端和控制中心之間的遠程雙向無線數據傳輸。GPS定位模塊用于實現終端的定位,使終端可以實時監視浮標是否產生漂移。由于目前的航標燈均自帶有數據采集模塊,并通過RS 485輸出數據。因此,終端通過發送采集指令給航標燈,航標燈數據就會自動傳輸給終端,即只需要利用一個RS 485到RS 232轉換器就可實現對航標燈數據的采集。處理器與外圍通信模塊的通訊是通過串口連接,處理器可以通過AT指令對通信模塊進行操作和控制,從而實現ZigBee/CDMA網絡的無線接入,并與控制中心建立通信鏈路,以提供遠程數據雙向傳輸的通道。通過以太網控制器芯片DM9000擴展一個網口,以滿足運用,同時方便調試開發的功能。由于輸入是12 V,而不同的模塊所需的電壓不一樣,所以要進行電壓的轉換,即供電系統部分。由于采用了ARM9嵌入式系統和模塊化設計,使系統硬件的外圍電路相對簡單,因此具體電路本文將不介紹。
3 終端軟件設計
3.1 多線程設計
終端軟件是在Linux 2.4.18操作系統內核上采用多線程開發的。與進程相比,線程很小,創建一個線程可以使用相對較少的CPU時間,提高了CPU并行處理的能力。因此,多線程編程與多進程編程相比,在性能和通信等方面都有顯著的優勢,所以終端軟件的開發采用單個進程多線程的編程方式實現。
在整個終端軟件系統中,創建了五個線程:主線程、通信線程、遙測遙控線程、協議處理線程及定時處理線程。主線程是進程對應的線程,是整個軟件的控制線程,它控制其他線程的工作,具體包括創建管道、打開驅動、建立線程及安裝觸發線程的信號等功能;通信線程負責終端通信方式的選擇、通信模塊的驅動及收發數據等工作;遙測遙控線程主要負責航標數據采集、GPS數據采集、遙測數據的上傳及遙控命令的執行;協議處理線程根據通信協議對數據進行變換、格式轉換、打包和解包;定時處理線程主要完成周期性的控制,包括定時數據上傳、定時故障和異常判斷與報警、定時休眠、重新啟動等。
由于整個終端需要處理的任務較多,下面僅介紹幾個關鍵功能模塊的設計。
評論