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