一種嵌入式視頻記錄系統(tǒng)的設計與實現(xiàn)
壓縮編碼采用Zapex公司的視頻壓縮芯片SZ1510,它是一個實時MPEG-1和運動JPEG圖像編碼器,內(nèi)置TI的TMS320C54XDSP,協(xié)調(diào)完成芯片功能,性能優(yōu)異。工作頻率外部為27MHZ,內(nèi)部(邏輯)為81MHZ,可配置到94.5MHZ。內(nèi)核工作電壓1.8V,I/O口可以驅動3.3V。采用0.18UM CMOS4LM技術設計,消耗功率僅為0.2W;144IQFP封裝。整個芯片內(nèi)部可以分為6個非常靈活的功能模塊,分別是視頻接口,視頻編碼器核心,DSP輔助系統(tǒng),存儲器接口,主設備及串行接口和DMA控制器,相互連接成為一個大的可變的模塊化整體。
4 軟件設計
由于DOS不支持視頻壓縮,因而本系統(tǒng)采用Windows操作系統(tǒng)及VC++進行開發(fā)。首先在普通PC機上設計程序,再利用U盤將設計程序在DIMM-PC上進行調(diào)試。在系統(tǒng)啟動時[6],主控計算機首先對壓縮卡進行初始化,當設置好MPEG-1壓縮格式及數(shù)據(jù)速率后,壓縮卡開始工作,并在主控計算機的控制下將壓縮后的圖像數(shù)據(jù)寫入硬盤。在工作過程中,主控計算機還將不斷監(jiān)視相關信號,并在圖像中加入相應的標志,直到接收到關機信號,系統(tǒng)自動結束壓縮卡的工作,并關閉主機。
4.1 系統(tǒng)自檢
系統(tǒng)啟動后,將依據(jù)硬件的器件號與廠商號找到壓縮卡,得到總線器件號,由此得到系統(tǒng)BIOS分配給器件的地址。壓縮卡自檢信息包括卡硬件自檢和視頻信號源自檢,即壓縮卡有無故障以及在壓縮卡無故障的情況下輸入有無視頻源。如果自檢到該卡無視頻信號源則不對該卡的輸出數(shù)據(jù)進行存儲。如果壓縮卡有故障或未插壓縮卡,系統(tǒng)BIOS就不會為壓縮卡分配總線器件號,依據(jù)事先正常工作條件下得到的總線器件號就可以判斷哪一塊卡出現(xiàn)故障或該卡沒有插入正確。自檢信息在地面通電檢查時通過串口送至地面檢測設備,以便故障定位和維修。
4.2 硬件初始化
4.2.1 SZ1510的初始化
SZ1510共有128個寄存器,每個寄存器有一個索引號。但外界對這些寄存器的訪問都是通過IOAR(I/O Adress Register)和IODR(I/O Data Register)來完成的。如果向SZ1510某個寄存器寫數(shù)據(jù)。則首先將這個寄存器的索引號寫入IOAR,然后將要寫的數(shù)據(jù)寫入IODR,則SZ1510將自動把數(shù)據(jù)送到某個寄存器。
SZ1510的初始化如下:
(1) 上電后,主機向SZ1510中斷使能寄存器寫入0x40使能Ready中斷。
(2) 主機等候SZ1510的Ready中斷。
(3) 等到Ready中斷后,主機清除該中斷并向SZ1510的0x6E寄存器寫入0x0A,配置它內(nèi)部的DSP時鐘為94.5MHZ。
(4) 主機向0x013寄存器寫入0x55,對SZ1510進行軟復位。
(5) 主機向中斷使能寄存器0x0C寫入0x40使能Ready中斷。
(6) 主機等候RDY中斷。
(7) 等到Ready中斷,則進行SAA7113的初始化。
(8) SZ1510進行軟復位,即向0x0B寄存器寫入0x55,0x0C寄存器寫0x40。
(9) 等待Ready中斷,等到則進行SZ1510的內(nèi)部DSP二進制代碼裝載。
(10) 進行SZ1510內(nèi)部視頻壓縮核的二進制代碼裝載。
4.2.2 SAA7113的初始化
SAA7113初始化的步驟如下:
(1) 裝載0x280-0x2BF 64個塊共16k的二進制代碼。
(2) SAA7113寄存器配置,流程如下:
?I2C任務的初始化:分別向寄存器0x2E寫0x01,0x0C寫0x80,0x11寫0x05,0x08寫0x04,0x0C寫0x80,0x08寫0xC2
?I2C寫操作:向0x42寄存器寫SAA7113設備號0x4A,0x43寄存器寫要寫的數(shù)據(jù)索引號(又叫子地址),0x44寄存器寫本次I2C寫操作要寫入數(shù)據(jù)的長度(一次最多能寫11個數(shù)據(jù))。
?向0x08命令寄存器寫0xC0,等待DSP中斷。
?重復以上的操作直到SAA7113的寄存器配置完畢。
4.2.3 SZ1510二進制代碼的裝載
SZ1510用內(nèi)部的程序空間來裝載二進制代碼。這段空間是按塊(Blank)為單位,每塊的大小是256字節(jié)。
用于SAA7113的程序空間是0x280-0x2BF共64塊。所以共有16k字節(jié)二進制代碼要裝載。用于DSP的程序空間塊是0x10F-0x113,0x13A-0x13B,0x280-0x2BF共71個塊,約18k字節(jié)代碼要裝載。其中0x280-0x2BF與SAA7113相重合,所以SAA7113的二進制代碼裝載要先于SZ1510的DSP裝載,且在SAA7113的二進制代碼裝載后要進行SZ1510的復位。否則SAA7113的代碼裝載將不起作用。
用于視頻編碼核的二進制代碼的裝載空間為0x000-0x004,0x00c-0x00c六個塊,共1.5k字節(jié)代碼。
4.2.4 SZ1510視頻數(shù)據(jù)的獲取
SZ1510內(nèi)部有一個256字節(jié)的FIFO。一旦這個FIFO達到門限時,即產(chǎn)生一個FIFO Ready中斷,通知主機讀取FIFO中的數(shù)據(jù)(通過256次讀Data_out寄存器來完成)。所以讀取FIFO中視頻數(shù)據(jù)要放到中斷的下部去完成。
5 結論
該視頻記錄系統(tǒng)已經(jīng)完成了測試工作,已在某型飛機上投入使用,作為某型飛機的機載視頻記錄系統(tǒng),運行穩(wěn)定可靠,取得較好的效果。項目經(jīng)濟效益(200萬元)??砷L時間實時記錄采集到的音視頻信號,采用1.5G硬盤,可連續(xù)錄制3小時,隨著半導體存儲器容量的不斷增長,系統(tǒng)的記錄時間還將進一步延長。正常工作情況下,程序啟動首先檢查磁盤空間,刪除最早記錄的文件,文件存儲方法采用盤滿循環(huán)存儲,當剩余空間不滿足條件時,將覆蓋最早的文件。
作者的創(chuàng)新:
設計并實現(xiàn)了基于嵌入式控制模塊DIMM-PC/520IU和專用視頻處理芯片SZ1510硬件平臺的MPEG-1視頻記錄系統(tǒng),實現(xiàn)了系統(tǒng)的高度集成。對壓縮卡、控制單元和電源部分等分別設計成模塊,統(tǒng)一插裝在底板上并鎖緊,可以方便地拔插和維修。本系統(tǒng)結構緊湊,使用方便,性能出色,耗能低。
評論