基于TMS320DM270的長途客運車無線視頻監(jiān)控系統(tǒng)的設
驅動程序設計
設備驅動程序是內核的一部分,是操作系統(tǒng)內核和機器硬件之間的接口。Linux操作系統(tǒng)將所有的設備看作具體的文件,對與用戶而言,可以通過設備驅動程序所提供的一組入口點(open()、close()、read()、write()、ioctl()等)來完成對設備文件的訪問和控制。在Linux系統(tǒng)里,設備驅動程序提供的這組入口點是由結構
向系統(tǒng)注冊設備,登記驅動程序所提供的入口點。當應用程序對設備操作時,會根據file_operations結構中的函數指針找到相應的操作函數并進行調用。圖3中的驅動程序都是按照上述來完成的。
應用程序設計
在應用程序中設計了兩個進程:GPS進程和視頻進程,應用程序流程圖如圖4所示。
GPS進程,首先設置車載終端的IP地址,初始化GPS模塊,然后通過Linux Socket編程和服務器建立鏈接,等待服務器命令,如果10秒鐘內沒有收到命令,則通過CDMA發(fā)送GPS數據到服務器。
視頻進程,首先注冊信號量SIGUSR1,其次是對視頻相關硬件(DSP、TVP5150、CCDC、Preview engine)的初始化,初始化的具體實現是在各個驅動程序中完成的,然后利用Linux Socket編程和服務器建立鏈接,最后啟動MPEG-4編碼器。當視頻進程成收到SIGUSR1信號后,便通過CDMA傳送編碼好的視頻數據。
ARM與DSP通訊
整個程序運行過程中時刻存在著ARM與DSP之間的通訊。
在視頻編碼開始前,DSP的引導由ARM來控制,首先ARM將DSP掛起在復位狀態(tài),隨后向DSP下載MPEG-4編碼程序,最后喚醒DSP開始編碼。DSP的引導順序如圖5所示。
在視頻編碼過程中,ARM與DSP通過HPIB進行通信。ARM管理著DSP數據空間的數據輸入輸出。在DSP數據空間定義了一段內存空間作為命令寄存器,然后通過HPI訪問這些寄存器,這就是ARM與DSP之間的一個通訊接口,ARM和DSP都可以異步地向對方發(fā)出命令,不存在主從關系。為了建立這種雙向通訊,系統(tǒng)設計了兩組寄存器,一組用于ARM(命令由DSP發(fā)出),另一組用于DSP(命令由ARM發(fā)出)。在編碼過程中就是利用這組寄存器以及HPI中斷完成了圖像數據的讀取、編碼和發(fā)送。DSP的HPI中斷過程如圖6所示。DSP通過寫寄存器并發(fā)出HPI中斷,向ARM發(fā)送命令。ARM在HPI中斷服務程序中判斷命令類型并執(zhí)行,其中一種命令是DPS向ARM請求原始圖像數據進行編碼;另一種命令是DPS請求ARM發(fā)送壓縮后的MPEG-4視頻數據,在這個命令中會向視頻進程發(fā)出SIGUSR1信號。ARM執(zhí)行完命令之后發(fā)出HPI通知DSP。
結語
本系統(tǒng)把無線視頻監(jiān)控技術和GPS定位系統(tǒng)相結合,同單一的GPS定位系統(tǒng)相比有明顯的優(yōu)勢。在實際測試中,實現了視頻和GPS的同步傳輸。視頻傳輸速度可達8幀/秒,圖像分辨率達到CIF格式。同時通過對GPS數據的解析,可準確的確定客車的位置和速度。隨著MPEG-4算法的優(yōu)化,無線網絡的不斷發(fā)展以及3G的推出,傳輸效果將會更加的理想。雖然該系統(tǒng)是為長途客運車而設計,但它的整個解決方案可用于其它需要遠程監(jiān)控的行業(yè),比如可廣泛應用于軍事、交通、油田、煤礦以及手持娛樂設備等。
評論