基于DSP/BIOS大空間網(wǎng)絡(luò )型火災探測系統設計
系統軟件設計流程如圖4所示。首先對DSP/BIOS模塊進(jìn)行靜態(tài)配置,包括設置內、外部存儲器的映射空間,創(chuàng )建多任務(wù)線(xiàn)程及所需堆棧,配置TI網(wǎng)絡(luò )開(kāi)發(fā)包NDK的啟動(dòng)環(huán)境,分配旗語(yǔ)、郵箱通信機制的存儲位置及大小等。其中創(chuàng )建的多任務(wù)線(xiàn)程包括系統控制任務(wù)、視頻輸入任務(wù)、算法處理任務(wù)、圖像JPEG壓縮任務(wù)、網(wǎng)絡(luò )初始化任務(wù)、串口通信任務(wù)。在應用程序進(jìn)入DSE/BIOS線(xiàn)程調度器之前,處理器需要完成3個(gè)模塊的初始化:(1)芯片板級間的初始化,包括CSL、RAM、Cache及EDMA的設置。(2)RF5模塊的初始化,包括通道模塊,SCOM模塊及ICC模塊。一個(gè)任務(wù)可以創(chuàng )建多個(gè)通道,每個(gè)通道可以包含多個(gè)內核,每個(gè)內核只能包含一種標準算法。(3)視頻捕獲(FVID)通道的建立與啟動(dòng)。本文引用地址:http://dyxdggzs.com/article/149019.htm
應用程序的Main()函數在完成系統初始化任務(wù)后退出,程序控制權正式交給DSP/BIOS任務(wù)線(xiàn)程調度器,根據優(yōu)先級和RF5中的任務(wù)切換準則調度各任務(wù)線(xiàn)程。為保證網(wǎng)絡(luò )傳輸的實(shí)時(shí)性,應將網(wǎng)絡(luò )初始化任務(wù)的優(yōu)先級配置成高于其他任務(wù)的優(yōu)先級。處于同一優(yōu)先級的任務(wù)之間利用同步通信機制SCOM模塊進(jìn)行信息傳遞,同時(shí)基于RF5的SCOM通信機制內部,制定了任務(wù)調用及切換規則,這樣就避免了多個(gè)任務(wù)同時(shí)訪(fǎng)問(wèn)一個(gè)隊列指針的情況。
3.1 視頻輸入任務(wù)
系統主線(xiàn)程已經(jīng)創(chuàng )建且打開(kāi)了視頻捕獲通道,并初始化了FVID對象。該任務(wù)首先啟動(dòng)SCOM消息隊列,從捕獲通道的緩沖區獲取一幀圖片,然后利用SCOM隊列指針將視頻數據傳輸至算法處理任務(wù)。此時(shí),該任務(wù)處于阻塞狀態(tài),等待算法處理任務(wù)接收完成的返回消息,系統切換至算法處理任務(wù),直到接收到返回消息,視頻輸入任務(wù)才處于等待狀態(tài),等待下一個(gè)循環(huán)重新采集視頻。每一個(gè)任務(wù)都不斷地處于等待消息與處理數據的狀態(tài)中。
3.2 算法處理任務(wù)
該任務(wù)分別創(chuàng )建了火焰檢測通道對象FIRE_CHAN_Obj與煙霧檢測通道對象SMOCK_CHAN_Obj。每一個(gè)核對像都要在被初始化以后再調用注冊函數CHAN_regCell(),通過(guò)這種方式可以將每一個(gè)核對象注冊到相應的任務(wù)通道中。最后,線(xiàn)程調用函數CHAN_open()為每個(gè)指定的通道(chanNum)傳遞核對像,這樣通道通過(guò)調用核對像來(lái)執行檢測算法。煙霧檢測算法流程如圖5所示。
評論