新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種嵌入式視頻記錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

一種嵌入式視頻記錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2009-05-07 來(lái)源:網(wǎng)絡(luò) 收藏

壓縮編碼采用Zapex公司的壓縮芯片,它是一個(gè)實(shí)時(shí)MPEG-1和運(yùn)動(dòng)JPEG圖像編碼器,內(nèi)置TI的TMS320C54XDSP,協(xié)調(diào)完成芯片功能,性能優(yōu)異。工作頻率外部為27MHZ,內(nèi)部(邏輯)為81MHZ,可配置到94.5MHZ。內(nèi)核工作電壓1.8V,I/O口可以驅(qū)動(dòng)3.3V。采用0.18UM CMOS4LM技術(shù),消耗功率僅為0.2W;144IQFP封裝。整個(gè)芯片內(nèi)部可以分為6個(gè)非常靈活的功能模塊,分別是接口,編碼器核心,DSP輔助,存儲(chǔ)器接口,主設(shè)備及串行接口和DMA控制器,相互連接成為一個(gè)大的可變的模塊化整體。

4 軟件

由于DOS不支持視頻壓縮,因而本采用Windows操作及VC++進(jìn)行開(kāi)發(fā)。首先在普通PC機(jī)上程序,再利用U盤(pán)將設(shè)計(jì)程序在DIMM-PC上進(jìn)行調(diào)試。在系統(tǒng)啟動(dòng)時(shí)[6],主控計(jì)算機(jī)首先對(duì)壓縮卡進(jìn)行初始化,當(dāng)設(shè)置好MPEG-1壓縮格式及數(shù)據(jù)速率后,壓縮卡開(kāi)始工作,并在主控計(jì)算機(jī)的控制下將壓縮后的圖像數(shù)據(jù)寫(xiě)入硬盤(pán)。在工作過(guò)程中,主控計(jì)算機(jī)還將不斷監(jiān)視相關(guān)信號(hào),并在圖像中加入相應(yīng)的標(biāo)志,直到接收到關(guān)機(jī)信號(hào),系統(tǒng)自動(dòng)結(jié)束壓縮卡的工作,并關(guān)閉主機(jī)。

4.1 系統(tǒng)自檢

系統(tǒng)啟動(dòng)后,將依據(jù)硬件的器件號(hào)與廠(chǎng)商號(hào)找到壓縮卡,得到總線(xiàn)器件號(hào),由此得到系統(tǒng)BIOS分配給器件的地址。壓縮卡自檢信息包括卡硬件自檢和視頻信號(hào)源自檢,即壓縮卡有無(wú)故障以及在壓縮卡無(wú)故障的情況下輸入有無(wú)視頻源。如果自檢到該卡無(wú)視頻信號(hào)源則不對(duì)該卡的輸出數(shù)據(jù)進(jìn)行存儲(chǔ)。如果壓縮卡有故障或未插壓縮卡,系統(tǒng)BIOS就不會(huì)為壓縮卡分配總線(xiàn)器件號(hào),依據(jù)事先正常工作條件下得到的總線(xiàn)器件號(hào)就可以判斷哪一塊卡出現(xiàn)故障或該卡沒(méi)有插入正確。自檢信息在地面通電檢查時(shí)通過(guò)串口送至地面檢測(cè)設(shè)備,以便故障定位和維修。

4.2 硬件初始化

4.2.1 的初始化

共有128個(gè)寄存器,每個(gè)寄存器有一個(gè)索引號(hào)。但外界對(duì)這些寄存器的訪(fǎng)問(wèn)都是通過(guò)IOAR(I/O Adress Register)和IODR(I/O Data Register)來(lái)完成的。如果向SZ1510某個(gè)寄存器寫(xiě)數(shù)據(jù)。則首先將這個(gè)寄存器的索引號(hào)寫(xiě)入IOAR,然后將要寫(xiě)的數(shù)據(jù)寫(xiě)入IODR,則SZ1510將自動(dòng)把數(shù)據(jù)送到某個(gè)寄存器。

SZ1510的初始化如下:

(1) 上電后,主機(jī)向SZ1510中斷使能寄存器寫(xiě)入0x40使能Ready中斷。

(2) 主機(jī)等候SZ1510的Ready中斷。

(3) 等到Ready中斷后,主機(jī)清除該中斷并向SZ1510的0x6E寄存器寫(xiě)入0x0A,配置它內(nèi)部的DSP時(shí)鐘為94.5MHZ。

(4) 主機(jī)向0x013寄存器寫(xiě)入0x55,對(duì)SZ1510進(jìn)行軟復(fù)位。

(5) 主機(jī)向中斷使能寄存器0x0C寫(xiě)入0x40使能Ready中斷。

(6) 主機(jī)等候RDY中斷。

(7) 等到Ready中斷,則進(jìn)行SAA7113的初始化。

(8) SZ1510進(jìn)行軟復(fù)位,即向0x0B寄存器寫(xiě)入0x55,0x0C寄存器寫(xiě)0x40。

(9) 等待Ready中斷,等到則進(jìn)行SZ1510的內(nèi)部DSP二進(jìn)制代碼裝載。

(10) 進(jìn)行SZ1510內(nèi)部視頻壓縮核的二進(jìn)制代碼裝載。

4.2.2 SAA7113的初始化

SAA7113初始化的步驟如下:

(1) 裝載0x280-0x2BF 64個(gè)塊共16k的二進(jìn)制代碼。

(2) SAA7113寄存器配置,流程如下:

?I2C任務(wù)的初始化:分別向寄存器0x2E寫(xiě)0x01,0x0C寫(xiě)0x80,0x11寫(xiě)0x05,0x08寫(xiě)0x04,0x0C寫(xiě)0x80,0x08寫(xiě)0xC2

?I2C寫(xiě)操作:向0x42寄存器寫(xiě)SAA7113設(shè)備號(hào)0x4A,0x43寄存器寫(xiě)要寫(xiě)的數(shù)據(jù)索引號(hào)(又叫子地址),0x44寄存器寫(xiě)本次I2C寫(xiě)操作要寫(xiě)入數(shù)據(jù)的長(zhǎng)度(一次最多能寫(xiě)11個(gè)數(shù)據(jù))。

?向0x08命令寄存器寫(xiě)0xC0,等待DSP中斷。

?重復(fù)以上的操作直到SAA7113的寄存器配置完畢。

4.2.3 SZ1510二進(jìn)制代碼的裝載

SZ1510用內(nèi)部的程序空間來(lái)裝載二進(jìn)制代碼。這段空間是按塊(Blank)為單位,每塊的大小是256字節(jié)。

用于SAA7113的程序空間是0x280-0x2BF共64塊。所以共有16k字節(jié)二進(jìn)制代碼要裝載。用于DSP的程序空間塊是0x10F-0x113,0x13A-0x13B,0x280-0x2BF共71個(gè)塊,約18k字節(jié)代碼要裝載。其中0x280-0x2BF與SAA7113相重合,所以SAA7113的二進(jìn)制代碼裝載要先于SZ1510的DSP裝載,且在SAA7113的二進(jìn)制代碼裝載后要進(jìn)行SZ1510的復(fù)位。否則SAA7113的代碼裝載將不起作用。

用于視頻編碼核的二進(jìn)制代碼的裝載空間為0x000-0x004,0x00c-0x00c六個(gè)塊,共1.5k字節(jié)代碼。

4.2.4 SZ1510視頻數(shù)據(jù)的獲取

SZ1510內(nèi)部有一個(gè)256字節(jié)的FIFO。一旦這個(gè)FIFO達(dá)到門(mén)限時(shí),即產(chǎn)生一個(gè)FIFO Ready中斷,通知主機(jī)讀取FIFO中的數(shù)據(jù)(通過(guò)256次讀Data_out寄存器來(lái)完成)。所以讀取FIFO中視頻數(shù)據(jù)要放到中斷的下部去完成。

5 結(jié)論

該視頻系統(tǒng)已經(jīng)完成了測(cè)試工作,已在某型飛機(jī)上投入使用,作為某型飛機(jī)的機(jī)載視頻系統(tǒng),運(yùn)行穩(wěn)定可靠,取得較好的效果。項(xiàng)目經(jīng)濟(jì)效益(200萬(wàn)元)??砷L(zhǎng)時(shí)間實(shí)時(shí)采集到的音視頻信號(hào),采用1.5G硬盤(pán),可連續(xù)錄制3小時(shí),隨著半導(dǎo)體存儲(chǔ)器容量的不斷增長(zhǎng),系統(tǒng)的記錄時(shí)間還將進(jìn)一步延長(zhǎng)。正常工作情況下,程序啟動(dòng)首先檢查磁盤(pán)空間,刪除最早記錄的文件,文件存儲(chǔ)方法采用盤(pán)滿(mǎn)循環(huán)存儲(chǔ),當(dāng)剩余空間不滿(mǎn)足條件時(shí),將覆蓋最早的文件。

作者的創(chuàng)新:

設(shè)計(jì)并了基于控制模塊和專(zhuān)用視頻處理芯片SZ1510硬件平臺(tái)的MPEG-1系統(tǒng),了系統(tǒng)的高度集成。對(duì)壓縮卡、控制單元和電源部分等分別設(shè)計(jì)成模塊,統(tǒng)一插裝在底板上并鎖緊,可以方便地拔插和維修。本系統(tǒng)結(jié)構(gòu)緊湊,使用方便,性能出色,耗能低。

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉