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