基于DSP/BIOS大空間網絡型火災探測系統設計
當算法處理任務接收到SCOM隊列送來的視頻數據后,分別送入火焰與煙霧兩個檢測通道。如果發現火焰或者煙霧疑似區域,兩個通道會分別將區域坐標返回,利用返回的坐標對疑似區域進行定位跟蹤,然后將跟蹤結果送入JPEG圖像壓縮任務;如果兩個通道都沒有返回疑似區域坐標,則直接將原始視頻數據送至下一個任務。煙霧檢測算法分為圖像預處理模塊、圖像分割模塊、特征提取模塊、目標識別及坐標提取模塊,這4個算法模塊分別對應4個核對像。核與核以及核與通道之間采用ICC模塊進行通信,任務通道通過調用這些核對象來完成對整個煙霧檢測算法的執行過程。煙霧一般分為白煙、黃煙和黑煙,難以從顏色或形狀上對其進行檢測,所以應該對煙霧的半透明性、整體移動性、邊界閃爍性、主方向性和擴散性等方面進行分析。
3.3 網絡傳輸任務
TI公司結合其C6000系列芯片推出的NDK(Network Developer's Kit)網絡開發包采用緊湊的設計方法,實現了利用較少的資源消耗來支持TCP/IP協議棧,在實際應用中,NDK僅用約200 kB的程序空間和95 kB數據空間即可支持常規的TCP/IP服務,其中包括應用層的telnet、DHCP、HTTP等。同時NDK還集成了類似于網卡的物理層收發器的驅動程序。
NDK開發包包括Network Tools、OS Adaptation Layer、TCP/IP Stack Library、Hardware Adaptation Layer、Network Control這5個模塊,要開發基于NDK的網絡應用程序,必須利用以上5個模塊構建一個完整的TCP/IP功能環境。首先靜態創建網絡初始化任務,在該任務中構建TCP/IP協議棧的過程是:(1)在調用協議棧其他API函數之前,必須先調用函數NC_SystemOpen(),用它來初始化協議棧及系統環境,它的兩個參數Priority和OpMode分別決定了調度任務的優先級和調度器何時開始執行。(2)調用函數CfgNew()創建新的協議棧配置,返回配置句柄hCfg,對該句柄添加網絡層與應用層的相關配置。(3)調用函數NC_NetStart()來啟動網絡事件調度器。真正的網絡收發任務是由NetworkRx和NetworkTx完成,這兩個任務就是在指針NetworkIPAddr所指的函數中通過TaskCreate動態創建的。在系統結束時還會調用函數CfgFree()與NC_SystemClose()分別用來釋放配置內存及關閉TCP/IP協議棧。
設計在NetworkRx、NetworkTx任務中開發的是基于Client/Server與Browser/Server兩種模式的應用程序。在Client/Server模式中,DM642作為服務器,PC作為客戶端,由于該系統對實時性的要求較高且允許在一定范圍內的丟包及出錯現象發生,所以NetworkTx在傳輸層采用面向無連接的UDP協議。NetworkRx接收的是PC對DM642的控制命令,即服務器、客戶端雙方定義好的少數數據結構,所以NetworkRx在傳輸層采用了面向連接的TCP協議。該模式下的應用程序是采用Socket網絡編程的方式進行開發的,以太網在鏈路層的最大傳輸單元為1500Byte,所以必須對每幀視頻在IP層進行分片操作。同時需要在上位機上開發基于VC++6.0的客戶端程序,為實現視頻數據高質量的顯示效果,系統采用微軟公司推出的流媒體處理開發包Directshow對視頻數據進行譯碼顯示。
在Browser/Server模式中,利用DM642的嵌入式文件系統創建Web服務器,便于將火災現場的視頻信息以網頁的形式送入局域網,再經過路由器的端口映射傳至因特網。例如,在局域網內部設置Web服務器的IP地址為192.168.0.11,在地址欄輸入該地址,Web服務器訪問結果如圖6所示。本文引用地址:http://www.104case.com/article/149019.htm
4 結束語
通過實例介紹了基于DSP/BIOS的大空間網絡型火災探測系統的具體開發流程。利用對TMS320DM642外圍電路的分析和對接口驅動芯片的詳細闡述,開發了基于DSE/BIOS與RF5系統架構的應用程序。另外,系統把煙霧、火焰檢測算法集成于RF5架構的算法內核,并且采用TI的NDK進行網絡開發,這樣將更加有利于系統的移植以及產品的升級與推廣。
評論