基于LPC2210和SZ1510的車(chē)載數(shù)字視頻壓縮記錄系統(tǒng)設(shè)計(jì)
2.2 控制及存儲(chǔ)電路設(shè)計(jì)
本文引用地址:http://www.ex-cimer.com/article/85789.htm考慮到控制部分的體積、可靠性和控制能力,本系統(tǒng)中的CPU采用Philips公司的ARM7TD-MI-S內(nèi)核微控制器LPC2210。這是一個(gè)能夠支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-S CPU。對(duì)于代碼規(guī)模有嚴(yán)格控制的應(yīng)用,可使用16位Thumb模式,該模式可將代碼規(guī)模降低30%以上,而性能的損失卻非常小。LPC2210采用144腳封裝,具有極低的功耗。另外,該芯片還具有多個(gè)32位定時(shí)器、8路10位ADC、PWM輸出以及多達(dá)9個(gè)外部中斷。通過(guò)配置總線(xiàn),LPC2210最多可提供76個(gè)GPIO。
LPC2210可與SZ1510的HOST接口相連,并可通過(guò)HOST接口對(duì)SZ1510進(jìn)行控制和設(shè)置。正常工作時(shí),LPC2210把從HOST接口輸出的MPEG-1格式視頻流以文件形式送人電子盤(pán)進(jìn)行存儲(chǔ)。LPC2210與SZ1510的接口電路如圖2所示。其中,HAD[0…15]接到ARM的P2.0~P2.15A作為16根數(shù)據(jù)線(xiàn);P3.0接到HALE腳可實(shí)現(xiàn)SZ1510內(nèi)部IOAR(I/O Address Registerl)和IODR(I/O DataRegister)寄存器的選擇;P1.1和P3.27分別接讀、寫(xiě)選通管腳HRD和HWR;通過(guò)將P3.24接到HCS可選通SZ1510;將P0.9接到HINT可發(fā)送SZ1510中斷請(qǐng)求信號(hào)。
從重量和可靠性出發(fā),本記錄單元最終選用電子盤(pán)來(lái)實(shí)現(xiàn)。該電子盤(pán)的主體為Flash芯片,該芯片耐沖擊,耐高溫,體積小,壽命長(zhǎng),適合在汽車(chē)環(huán)境下工作。雖然電子盤(pán)的價(jià)格昂貴,但是考慮到系統(tǒng)只采集1路視頻信號(hào),記錄的數(shù)據(jù)量也不是很大(計(jì)算后得出記錄單元的容量為3G時(shí)),記錄長(zhǎng)度可達(dá)4.5個(gè)小時(shí),所以,選用電子盤(pán)完全能夠?qū)崿F(xiàn)任務(wù)要求。
LPC2210的GPIO引腳與IDE接口的連接電路如圖3所示。圖中,P2.16~P2.31為數(shù)據(jù)線(xiàn),P1.16~P1.20為地址和選通信號(hào),P0.17和P0.20為設(shè)備的復(fù)位和狀態(tài)請(qǐng)求信號(hào),用P0.21和P0.19則可實(shí)現(xiàn)讀寫(xiě)控制。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的所有軟件程序事先均應(yīng)通過(guò)JTAG口燒錄到ARM中,這樣,系統(tǒng)上電后便可自動(dòng)運(yùn)行這些程序以控制系統(tǒng)的工作。系統(tǒng)軟件工作流程圖如圖4所示。
3.1 SZ1510的寄存器配置
SZ1510有128個(gè)寄存器,每個(gè)寄存器都有一個(gè)索引號(hào),外部主機(jī)是通過(guò)HOST接口(HALE管腳)來(lái)設(shè)置SZ1510內(nèi)部的兩個(gè)寄存器IOAR (I/O地址寄存器)、IODR(I/O數(shù)據(jù)寄存器)以實(shí)現(xiàn)對(duì)SZ1510的控制和配置。訪(fǎng)問(wèn)時(shí),首先由主機(jī)的A0管腳發(fā)送一個(gè)低電平到HALE管腳以選中IOAR寄存器,然后將要訪(fǎng)問(wèn)的寄存器索引號(hào)寫(xiě)入IOAR;接著由主機(jī)的A0管腳發(fā)送一個(gè)高電平到HALE管腳,以選中IODR寄存器,然后再將要寫(xiě)入的數(shù)據(jù)寫(xiě)入IODR,這樣,SZ1510就會(huì)自動(dòng)把配置的數(shù)據(jù)送到指定地址的寄存器。
對(duì)Z1510進(jìn)行初始化時(shí),先由主機(jī)寫(xiě)任意值到0x0B寄存器;接著在主機(jī)至少等待1微秒后,向Int_enable中斷使能寄存器寫(xiě)入0x40,以使能RDY(Ready)中斷;然后,主機(jī)便等待SZ1510的Ready(Int_source[6])中斷;之后,當(dāng)主機(jī)等到RDY中斷后,它將清除RDY中斷并開(kāi)始向SZ1510的內(nèi)部DSP裝載二進(jìn)制代碼。
3.2 SZ1510的二進(jìn)制代碼裝載
由于復(fù)位后內(nèi)部寄存器的內(nèi)容是未知的,因此,主機(jī)必須進(jìn)行程序代碼的裝載,以初始化視頻編碼核的可編程RAM。SZ1510內(nèi)部的程序空間是以塊(Blank)為單位進(jìn)行劃分的,每塊的大小是256字節(jié)。用于視頻編碼核的二進(jìn)制代碼的裝載空間為0x000~0x004和0x00c六個(gè)塊,共1.5k字節(jié)代碼。具體裝載時(shí),先由主機(jī)向0x2E寄存器寫(xiě)0x01,以表示外部的SDRAM是1M×16bits;接著由主機(jī)向0x0C寄存器寫(xiě)0x03,以使能FIFOReady和End of Data中斷;然后由主機(jī)向0x11寄存器寫(xiě)0x1,以設(shè)定工作模式為內(nèi)部?jī)?nèi)存寫(xiě)模式;再由主機(jī)向0x10寫(xiě)0x20,以設(shè)定SZ1510輸出數(shù)據(jù)的FIFO大小為256字節(jié);最后對(duì)每塊程序空間進(jìn)行二進(jìn)制代碼裝載,其具體過(guò)程如下:
(1)主機(jī)寫(xiě)0x3F寄存器,選擇下載程序空間;
(2)主機(jī)向0x08寄存器寫(xiě)0x04,發(fā)送開(kāi)始命令;
(3)主機(jī)等待Ready中斷;
(4)主機(jī)通過(guò)讀0x0e寄存器,清除Ready中斷;
(5)主機(jī)向Data_in寄存器0x01寫(xiě)256個(gè)字節(jié);
(6)主機(jī)等待EOD(End 0f Data)中斷,
(7)主機(jī)通過(guò)讀0x0e寄存器,清除EOD中斷;
(8)主機(jī)查程序空間的代碼是否裝載完畢,如沒(méi)有則繼續(xù)裝載。
4 結(jié)束語(yǔ)
本系統(tǒng)可實(shí)時(shí)長(zhǎng)時(shí)間記錄攝像頭傳輸?shù)钠?chē)外部及車(chē)內(nèi)各儀表顯示的視頻信號(hào),所記錄的壓縮數(shù)據(jù)流符合MPEG-1圖像壓縮標(biāo)準(zhǔn)。本設(shè)計(jì)中采用的壓縮視頻流速率為1.5 Mbps。對(duì)于一個(gè)3GB的電子盤(pán),本系統(tǒng)可連續(xù)記錄超過(guò)4.5個(gè)小時(shí)的汽車(chē)視頻數(shù)據(jù)。由此可見(jiàn),本系統(tǒng)體積小、功耗低,便于移動(dòng)環(huán)境下對(duì)視頻數(shù)據(jù)的實(shí)時(shí)長(zhǎng)時(shí)間壓縮數(shù)據(jù)記錄。
評(píng)論