一種靜態圖像的采集傳輸系統
3 系統軟件設計
3. 1 協調器的軟件流程
圖4為系統的軟件流程,系統初始化后,協調器根據設定的信道建立網絡,ZigBee協調點選擇0x0000作為網絡地址并開始接受新節點的加入。為了減少網絡之間的信號干擾,本系統節點之間的網絡中心采取不同的信道,每個中心節點之間的信道間隔20MHz。本文引用地址:http://www.j9360.com/article/159489.htm
ZigBee協議棧通過事件觸發機制執行任務,每個事件都有對應的事件ID號和優先級。正常運行時,依據任務和事件的優先級從高到低依次查詢各個事件并執行;CPU收到緊急中斷,優先執行中斷任務。在該系統中,串口收發事件優先級最高。協調器的串口配置為DMA工作方式和不使用流控,波特率為115200kbp/s,能確保數據及時收發。
協調器收到服務器的命令并判斷系統的工作模式,遠程通信時,協調器啟動GPRS模塊。GPRS模塊與ZigBee的串口通信速率為115200kbp /s,采用透明傳輸的模式,將GPRS不支持的十六進制數據進行轉義再發送;本地通信時,直接轉發命令給相應的節點。數據的接收與發送采用確認握手機制。收到數據后,首先確認數據包的序列號;若序列號錯誤,則申請定時重發,以確保圖像數據的正確性。
3.2 數據采集節點軟件流程
數據節點采用關聯的方式加入網絡,子節點通過掃描設定信道搜索它周圍存在的父節點,只有協調器或路由器可以作為父節點,應用層從關聯表中選擇所發現的網絡并加入。子節點加入成功后,網絡層收到唯一的16位網絡地址。若是其中一個節點斷開網絡,則系統會根據最短跳數算法自動尋找最優路徑。
數據采集節點串口配置為中斷方式和不使用流控,優先處理串口任務。為及時處理大量串口數據,串口設計雙緩存機制,開辟緩存otabuf和otabuf2。該系統支持640*480、320*240和160*120三種圖像的采集;若圖像數據超過預設值,則丟棄該圖像并重新拍照。物理層僅可傳輸小于127B的數據包,除去網絡層的封裝,MAC層和物理層最大數據是89B,因此,數據讀取時,應用層采取分包傳輸,讀到的數據立即通過最近的路由方式發送到協調器。利用事件的周期性觸發,完成一張圖片的讀取。為了提高圖像的采集速度,該系統設計實時轉化串口波特率。當傳輸命令時,選用波特率115200kbp/s,快速發送數據命令和讀取相應的返回參數;當傳輸大量數據時,選用波特率38400kbp/s,使得CPU有更多的時間處理串口數據。
3.3 服務器軟件流程
在接收終端對接收到的數據進行重組、恢復圖像。圖5為遠程圖像采集系統監控中心的界面,該平臺是采用Microsoft VC++6.0編寫的基于TCP/IP協議的Sockct通信軟件,該系統主要包括三個部分:圖像顯示部分,實時顯示遠程圖像;命令發送部分,遠程控制協調器;網絡連接部分,獲取本機IP和本地端口號。本地圖像采集系統的監控中心界面是采用Microsoft VC++6.0編寫的串口通信軟件,見圖7。該界面主要包括三個部分:圖像顯示部分,實時顯示本地圖像;命令發送部分,控制協調器;串口通信部分。
評論