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