基于ADSP-BF532的嵌入式網絡視頻服務器的設計
圖1為該系統(tǒng)組成結構圖,具體設計如下:系統(tǒng)前端視頻采集由ADV7183實現,視頻數據采集格式為YUV422Planar,采集的數據經過ADSP-BF532的PPI接口直接存儲在SDRAM里,ADV7183在自己的時鐘控制下通過PPI接口自動向SDRAM單元送數據,當采集完一場數據時DMA產生中斷,在DMA的中斷服務程序里根據實際設定情況完成視頻處理;音頻采集由AD1836以及外圍相應的電路來實現,音頻采集格式為單聲道,8000Samples/s,每個采樣用16Bits量化,采集的數據經過ADSP-BF532的PPI接口直接存儲在SDRAM里,當設定存放音頻采集數據的緩存器滿時DMA產生中斷,在DMA的中斷服務程序里根據實際設定情況處理音頻數據;ADSP-BF532一方面把采集來的視頻音頻數據經SPI接口送入MPC860進行處理,通過MPC860的MII接口與物理網絡相連接,然后送到PC機上供實時監(jiān)看和監(jiān)聽;一方面實時處理采集的音視頻數據,壓縮編碼元成后的數據送到PC機,并存入硬盤。系統(tǒng)配置JTAG接口,運用于調試階段。本文主要研究嵌入式視頻服務器中的視頻數據的處理,對于音頻數據不予介紹。
3 系統(tǒng)的軟件設計與優(yōu)化
系統(tǒng)在Blackfin系列的軟件開發(fā)環(huán)境Visual DSP++ 3.1下實現,主要分為視頻外設編程、視頻編碼編程、視頻傳輸編程以及系統(tǒng)優(yōu)化部分。
3.1 系統(tǒng)外設軟件設計
視頻輸入設備ADV7183:ADSP-BF532通過I2C總線配置ADV7183采集圖像的亮度、對比度、色度和飽和度等。ADV7183的內部控制寄存器訪問通過I2C總線接口完成。
視頻輸入PPI接口:半雙工形式,最大16位數據傳輸,輸入時采用二維DMA方法,每采集一幀圖像進行一次處理。二維DMA程序如下:
本程序采用標準的ITU-656接收模式,接收視頻數據字節(jié)流:
X_COUNT=360;Y_COUNT=288;
X_MODIFY=4;Y_MODIY=4;
按以上設置執(zhí)行二維DMA后,從首地址開始的內存數據排列:
0,4,8,…… 356
360,360+4,360+8,…… 360+356
2×360,2×360+4,2×360+8 …… 2×360+356
…… …… …… …… ……
284×360,284×360+4,284×360+8,……284×360+356
視頻輸出UART接口:利用ADSP-BF532提供的UART口,加快調試過程。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論