機載數(shù)字視頻記錄系統(tǒng)方案設(shè)計
1 系統(tǒng)總體設(shè)計與工作原理
本系統(tǒng)的主要目標(biāo)之一是實現(xiàn)系統(tǒng)的小型化,為此采用硬件壓縮,核心芯片采用zepax公司的sz1510高性能壓縮編碼芯片。sz1510可工作于mjpeg、mpeg-1編碼以及vcd格式的視頻編碼等多種模式,mjpeg編碼圖像質(zhì)量很好,但碼率很高,需大容量的磁盤存儲器,由于磁盤存儲器對工作環(huán)境要求較高,在機載環(huán)境下若采用磁盤存儲器則必須增加相應(yīng)的減震、恒溫等防護設(shè)備,從而導(dǎo)致體積大大增加,而mpeg-1編碼壓縮比高,碼率相對較低,且圖像質(zhì)量滿足實際需要和系統(tǒng)設(shè)計要求,因此本系統(tǒng)選用mpeg-1編碼方案,同時,通過采用大容量的半導(dǎo)體存儲器,大大減少了系統(tǒng)的體積,提高了系統(tǒng)的抗震性、可靠性,實現(xiàn)了系統(tǒng)的小型化。
系統(tǒng)的總體結(jié)構(gòu)如圖1所示,硬件電路主要包括視頻音頻解碼單元、壓縮編碼單元、譯碼邏輯及接口單元、
控制單元、存儲單元5個部分。
系統(tǒng)上電后,som2386初始化音視頻編碼模塊,系統(tǒng)正常啟動后,saa7113對輸入的復(fù)合視頻信號進行解碼,生成ccir-601數(shù)字視頻流,ak4550采集輸入的模擬音頻信號,生成pcm數(shù)字音頻流,分別送入壓縮編碼芯片sz1510,壓縮成mpeg-1系統(tǒng)流后,在som2386控制下以文件形式存儲到電子硬盤。
2 硬件設(shè)計
為提高系統(tǒng)的可維護性及降低維修成本,本系統(tǒng)硬件結(jié)構(gòu)采用模塊化的設(shè)計方法,系統(tǒng)分為3個模塊:
a)視頻音頻解碼及壓縮編碼模塊:包括saa7113、mk2703、ak4550、sz1510、sdram;
b)邏輯連接、轉(zhuǎn)換及接口模塊:包括epm7128、max232、rs232接口、ide接口、控制、狀態(tài)信號接口;
c)控制及存儲模塊:包括som2386和電子硬盤。
各模塊分別做成相對獨立的電路板,模塊間用接插件相連,若系統(tǒng)中某個模塊出現(xiàn)故障,只需更換該模塊,不必更換整個系統(tǒng),有利于節(jié)約時間和降低成本。
2.1 視頻音頻解碼及壓縮解碼部分設(shè)計
視頻解碼器采用philips公司的saa7113,是一種可編程視頻處理芯片,通過簡單的i2c總線可對其實現(xiàn)編程控制,具有4路視頻輸入、抗混疊濾波、自動鉗位和增益控制、多制式解碼以及亮度、對比度和飽和度控制等功能,為系統(tǒng)設(shè)計帶來極大的方便,它對輸入的pal制式復(fù)合視頻信號進行采樣,解碼后生成8bit/象素的ccir-601數(shù)字視頻流(顏色空間為ycbcr,取樣為4:2:2),送到視頻壓縮芯片sz1510的數(shù)字視頻輸入接口,它的輸入時鐘由24.576mhz的有源晶振提供,為sz1510提供場同步信號vs和行同步信號hs,同時,27mhz的像素時鐘分為兩路:一路直接輸出至sz1510,作為其內(nèi)部的數(shù)字視頻的采樣時鐘;另一路通過鎖相環(huán)時鐘芯片mk2703降為48khz時鐘amclm,作為音頻編解碼芯片ak4550的系統(tǒng)時鐘,以實現(xiàn)視頻和音頻的準(zhǔn)確同步,sz1510利用其gpio接口模擬的i2c總線對saa7113進行初始化。
音頻解碼器采用ak4550,它對模擬音頻進行高信噪比16bit數(shù)字采樣,生成pcm數(shù)字音頻流。
壓縮編碼由芯片sz1510和視頻幀緩存sdram(1m×16bit)組成,sz1510是一款高性能的mjpeg、mpeg-1編碼芯片,支持多種工作模式和比特率模式,內(nèi)部主要由視頻編碼核、tms320c54x高性能dsp核、接口電路、dma控制器和時鐘產(chǎn)生電路等組成,視頻編碼核的結(jié)構(gòu)如圖2所示。
sz1510對輸入其內(nèi)部的視頻流首先經(jīng)過視頻預(yù)處理、自動裁減、 場景切換檢測,轉(zhuǎn)換為cif格式的視頻幀,然后,經(jīng)過運動估計、運動補償,離散余弦變換/反離散余弦變換和可變長編碼等處理,生成mpeg-1視頻基本流并存儲于sdram中,同時,dsp核完成mpeg-1音頻編碼以及mpeg-1格式的音/視頻的組合,生成mpeg-1格式的系統(tǒng)流,然后經(jīng)過輸出端口大小為256b的fifo緩沖進行數(shù)據(jù)的輸出,正常工作時,當(dāng)fifo滿時就產(chǎn)生一個frdy(fifo讀)中斷通知主機讀取fifo中的數(shù)據(jù),主機通過z56次讀data_out寄存器完成數(shù)據(jù)的讀取,當(dāng)sz1510發(fā)出一個eod(數(shù)據(jù)結(jié)束)中斷時,數(shù)據(jù)傳輸結(jié)束。
2.2 接口邏輯、控制及存儲部分設(shè)計
系統(tǒng)中的各種接口邏輯、地址譯碼等由epm7128實現(xiàn),其主要功能有sz1510配置寄存器的地址譯碼,控制、狀態(tài)信號寄存器的地址譯碼,產(chǎn)生硬件復(fù)位信號,實現(xiàn)sz1510與控制模塊som2386的接口,其中,sz1510配置寄存器和控制、狀態(tài)信號寄存器是作為i/o端口與som2386相連的,控制、狀態(tài)信號主要用于向外部輸出自檢信號以及接收來自外部的記錄開關(guān)控制信號等。
系統(tǒng)的控制由som2386完成,som2386是一款高性能、尺寸緊湊的嵌入式控制模塊,他板載嵌入式高性能16位處理器,rdc161,該處理器內(nèi)部為32位risc架構(gòu),并與80c186處理器兼容,其指令與其他x86微處理器兼容,模塊在單一閃存芯片上集成了系統(tǒng)bios和1.44mb閃存,支持標(biāo)準(zhǔn)ide接口和兩個串口。som2386與壓縮編碼芯片sz1510的host接口相連,通過host接口對sz1510進行控制和配置。正常工作時把從host接口輸出的mpeg-1格式的系統(tǒng)流以文件形式送入存儲單元,系統(tǒng)的ide接口從som2386直接引出,為給dom(電子硬盤)提供電源,ide接口的pin20與+5v電源相連,其余引腳信號定義與ide標(biāo)準(zhǔn)相同,som2386模塊的串口1通過驅(qū)動芯片max232提供rs-232的調(diào)試接口。
存儲單元采用dom,它由控制單元和存儲單元組成,是用固態(tài)電子器件存儲芯片陣列而制成的硬盤,其接口規(guī)范和定義以及使用方法上與普遍硬盤完成完全相同,其突出優(yōu)點是體積小、抗震性好、工作溫度范圍寬,并且只需單一的5v電源供電,適合于機載環(huán)境。
3 軟件設(shè)計
3.1 sz1510的寄存器配置和二進制代碼下載
外部主機通過host接口與sz1510內(nèi)部的兩個寄存器ioar(i/o地址寄存器)、iodr(i/o數(shù)據(jù)寄存器)來實現(xiàn)sz1510的控制和配置。主機在配置sz1510內(nèi)部某一寄存器時,首先把這個寄存器的地址寫入ioar,然后把配置的數(shù)據(jù)寫入iodr,這樣sz1510會自動把配置的數(shù)據(jù)送到指定地址的寄存器,例如,初始化時主機寫數(shù)據(jù)0x44到寄存器0x11,必須通過以下過程實現(xiàn):
a)寫傳輸:haddr=0,data=0x11;
b)寫傳輸: haddr=1,data=0x44;
sz1510內(nèi)部有一段程序存儲空間,用來裝載內(nèi)核的二進制代碼,這段空間以塊為單位,每快的存儲空間大小為256b,dsp核的代碼存儲空間為0x280-0x2bf,視頻編碼核的代碼存儲空間為0x0000-0x0004和0x000c,二進制代碼裝載的具體過程如下:
a)向0x2e寄存器寫1x01,表明外部sdram為1m×16bit;
b)向0x0c寄存器寫0x03,使能frdy和eod中斷;
c)向0x11寄存器寫0x18,選擇內(nèi)部存儲器寫模式;
d)向0x10寄存器寫0x20,設(shè)定輸出fifo大小為256b;
e)對每塊存儲空間裝載二進制代碼,具有如下:向0x08寄存器寫0x04,發(fā)送開始命令,等待frdy中斷,清除frdy中斷,向0x01寄存器(data_in)寫256b,等待eod中斷,清除eod中斷。
3.2 i2c外設(shè)配置
saa7113的配置是由sz1510通過其i2c總線來實現(xiàn)。由于sz1510內(nèi)部存儲空間容量的限制,使得加載的sz1510內(nèi)核程序代碼會覆蓋i2c外設(shè)的配置程序代碼,因此,任何i2c外設(shè)的配置必須在sz11510內(nèi)核程序代碼的下載和配置前完成,主機通過使用sz1510內(nèi)部host端口寄存器0x42-0x4f(每個8bit寬)與sz1510中的i2c服務(wù)例程交互,并通過i2c總線配置任何一個連接到sz1510上的外部器件,所有的命令代碼都必須寫入sz1510地址為0x08處的命令寄存器,sz1510通過地址為0x0d的寄存器寫入代碼為0x80的中斷來通知主機。i2c寫過程如下:
a)向0x08寄存器寫“初始化i2c”命令代碼0xc2;
b)輸入數(shù)據(jù)至sz1510并向0x08寄存器寫“i2c寫”命令代碼0x0c;
c)數(shù)據(jù)輸入完成后,sz1510向0x0d寄存器寫中斷命令代碼0x80,通知主機。
通過sz1510的i2c總線配置saa7113的時序流程如圖3所示。
3.3 系統(tǒng)的軟件調(diào)試及工作流程
通過從som2386模塊上串口1引出的rs-232接口可以很方便地對系統(tǒng)進行軟件調(diào)試,由于cpu芯片rdc1610指令與其他x86微處理器兼容,且模塊bios中集成了虛擬顯示/鍵盤技術(shù),調(diào)試時在pc機上運行虛擬顯示軟件pcvid3v0.exe,即可獲得和本地pc的dos環(huán)境完全相仿的效果,可直接運行dos下的所有命令,調(diào)試是可以通過debug命令直接訪問sz1510的寄存器和控制、狀態(tài)端口寄存器等。
系統(tǒng)的所有軟件程序做成一個批處理文件,存儲與控制模塊som2386上虛擬軟盤的一指定目錄中,系統(tǒng)上電后自動運行此目錄下的程序,控制系統(tǒng)的工作。系統(tǒng)上電后,整個系統(tǒng)的工作流程如圖4所示。
4 結(jié)束語
由于空中背景比較單一,設(shè)定系統(tǒng)工作于vbr模式,能降低碼率,并保持圖像質(zhì)量的穩(wěn)定,實驗結(jié)果表明系統(tǒng)設(shè)計結(jié)構(gòu)可行,若采用2gb的電子硬盤,記錄時間可達8h左右,隨著半導(dǎo)體存儲器容量的不斷增長,系統(tǒng)的記錄時間還將進一步延長,同時,將來還可以通過修改軟件,設(shè)定sz1510工作于mjpeg編碼模式,進一步提高記錄視頻的圖像質(zhì)量,因此,系統(tǒng)具有較大的升級潛力,本結(jié)構(gòu)緊湊、體積小(尺寸僅為90mm×60mm×25mm)、重量輕、使用方便,已在某型飛機上投入使用,并且運行穩(wěn)定可靠,取得較好的效果。