一種基于高速DSP的圖像處理應用平臺的設計
完成某一特定任務(wù)的圖像處理系統,其硬件方案大體上有三種:使用通用計算機[1]、使用ASIC(Application Specific Integrated Circuit)[2]和使用DSP(Digital Signal Processor)[3]。使用通用計算機的方案可以應用現有的硬件設備,選擇合適的操作系統,只需要進(jìn)行應用程序的開(kāi)發(fā)。其優(yōu)點(diǎn)在于開(kāi)發(fā)周期短,費用較低,而且產(chǎn)品易于維護和升級;缺點(diǎn)是運算速度受到限制,對于算法的運算量和復雜度很高的應用場(chǎng)合,難以達到實(shí)時(shí)性要求。該方案有二種應用場(chǎng)合:算法開(kāi)發(fā)初中期階段及一些實(shí)時(shí)性要求不高的領(lǐng)域。使用ASIC的方案中,所有的運算都由硬件實(shí)現,因此實(shí)時(shí)性會(huì )非常好,但硬件的設計是一大難點(diǎn),而且系統一旦定型,不方便對其進(jìn)行升級。使用高速DSP可以說(shuō)是二種方案的折衷,一方面在硬件實(shí)現上只需根據需求進(jìn)行DSP外圍接口電路的設計,另一方面,隨著(zhù)DSP技術(shù)的快速發(fā)展,高性能芯片的不斷推出,其運算能力也能滿(mǎn)足一般圖像處理的要求。而且,系統功能由算法軟件來(lái)實(shí)現,對系統的維護和升級也很方便。
本文采用TI公司的多媒體DSP芯片TMS320DM642[4](簡(jiǎn)稱(chēng)DM642),實(shí)現了一種圖像處理系統基本功能的應用平臺,包含視頻輸入、視頻輸出以及串行通信等功能。
2、系統硬件設計
系統硬件組成如圖1所示。以DM642為核心,外部擴展了存儲器SDRAM和Flash,分別用于程序運行和程序存儲;通過(guò)控制視頻編解碼器完成視頻的采集和輸出;并通過(guò)McBSP接口實(shí)現UART,方便視覺(jué)系統與外界的通信。
圖 1 DSP視覺(jué)系統硬件組成結構圖
系統中,擴展的外部存儲器包括ROM和SDRAM。其中,ROM采用Atmel公司的Flash,型號是AT49BV1614,其容量為16MBits,在系統啟動(dòng)時(shí)作為Boot ROM使用;SDRAM由兩片4Banks×512K×32Bits規格的芯片夠成,型號是HY57V643220CT,用來(lái)儲存程序、數據和視頻。視頻ADC采用Phillips公司的SAA7113,轉換精度9Bits,擁有有4個(gè)模擬輸入通道,可輸入4路模擬視頻信號,輸出接口(VP0)有一個(gè),支持PAL、NTSC、SECAM這三種主要的模擬視頻制式。視頻輸出DAC芯片采用的是Analog Devices公司推出的ADV7176視頻編碼器,轉換精度為10Bits,最高信噪比達80dB,它在DM642的行、場(chǎng)同步信號及自己的時(shí)鐘控制下從DM642中讀出數據,經(jīng)過(guò)D/A轉換后輸出到TV顯示器上進(jìn)行顯示。通信接口中利用DM642已有的同步串口McBSP與EDMA實(shí)現UART的方法,硬件上加入一片MAX3323E,實(shí)現CMOS邏輯電平和RS-232邏輯電平之間轉換,以滿(mǎn)足與控制計算機進(jìn)行串口通信的要求。
3、系統軟件設計
TI為了對自己的DSP 產(chǎn)品提供軟件開(kāi)發(fā)支持,推出了DSP /BIOS(Basic Input Output System)搶先型、可裁剪的實(shí)時(shí)多任務(wù)操作系統,它與CCS(Code Composer Studio)編譯環(huán)境集成在一起。使用DSP/BIOS可以進(jìn)行高效的應用程序開(kāi)發(fā)。本文圖像系統的軟件開(kāi)發(fā)是基于DSP /BIOS環(huán)境下進(jìn)行的。
3.1 軟件設計流程
本文圖像處理系統的軟件流程如圖2所示。應用主程序需要先完成CSL(Chip Support Library)庫的初始化,以便在程序中能調用相關(guān)的芯片級支持庫函數。隨后,開(kāi)EDMA中斷,并使能EDMA中的I2C通道的中斷;開(kāi)VP1、VP2口中斷;初始化并啟動(dòng)I2C的數據傳輸,完成對視頻解碼芯片SAA7113和視頻編碼芯片ADV7176的寄存器的參數初始化數配置;配置和啟動(dòng)VP1和VP2視頻口;最后進(jìn)入空閑等待循環(huán)。視頻的采集以中斷的方式進(jìn)行,當一幀圖像采集完后,觸發(fā)VP1中斷,系統調用相應的中斷子程序對圖像數據進(jìn)行處理計算,求出位置和姿態(tài)等參數,最后將參數通過(guò)UART傳輸給控制計算機。
圖2 主程序流程
DM642 的EDMA 控制器負責片內L2存儲器與其它設備之間的數據傳輸。能提供超過(guò)2Gb/s 的外部帶寬,有64 個(gè)通道, 每1個(gè)通道都有1個(gè)事件與之關(guān)聯(lián),由這些事件觸發(fā)相應通道的傳輸。上面流程中A/D、D/A的芯片初始化的參數傳輸和視頻數據的采集都是通過(guò)EDMA來(lái)實(shí)現的。
3.2 A/D和D/A芯片的初始化
A/D和D/A芯片的初始化過(guò)程通過(guò)EDMA中的I2C通道來(lái)實(shí)現。要傳輸的數據參數在EDMA 的參數RAM表中進(jìn)行配置,其中主要包括源數據起始地址、目的地址、地址的修改方式、要傳輸的數據格式和大小。對二個(gè)芯片的初始化數據參數分別配置在二個(gè)不同的RAM表中。第一次I2C通道的EDMA數據傳輸完畢后由EDMA控制器向CPU發(fā)出中斷,中斷處理程序載入第二次I2C傳輸的RAM參數表,啟動(dòng)第二次傳輸過(guò)程。從而完成二個(gè)芯片的初始化過(guò)程。
3.3 視頻采集與輸出
對應于YUV 4:2:2的格式視頻數據采集,EDMA中用于VP1的數據傳輸有三個(gè)通道。系統中將視頻端口VP1配置為連續幀采集的方式,也就是啟動(dòng)第一幀的采集后,后面幀的采集連續進(jìn)行不需要另外的幀同步信號。
在隔行掃描模式下,每幀分為兩場(chǎng),兩場(chǎng)在時(shí)域上是分開(kāi)的,通過(guò)EDMA 鏈表可自動(dòng)實(shí)現場(chǎng)合成,不需占用額外的CPU 時(shí)間。EDMA 的參數RAM 存放了有關(guān)的傳輸參數, 這些參數用于產(chǎn)生EDMA 讀寫(xiě)操作所需要的地址。在使用EDMA 通道傳輸奇數場(chǎng)與偶數場(chǎng)時(shí),分別使用不同的EDMA 參數RAM。兩組參數RAM 的目的地址分別指向存儲圖像的第一行與第二行象素的首地址, 并且兩組參數RAM 通過(guò)鏈接地址(Linking Address)循環(huán)相連,并將源地址傳輸方式設置為1維的,目標地址方式設置為2維的。在EDMA 通道的傳輸中,奇數場(chǎng)傳輸任務(wù)的結束會(huì )自動(dòng)地根據當前參數RAM的鏈接地址裝載傳輸偶數場(chǎng)的參數RAM,進(jìn)行偶數場(chǎng)的傳輸。通過(guò)設定幀索引(Frame Index)值可以讓奇數場(chǎng)與偶數場(chǎng)數據在幀緩沖區中被隔行存儲,這樣在無(wú)需占用額外CPU 時(shí)間的前提下就實(shí)現了場(chǎng)合成。另外,由于兩組參數RAM 通過(guò)鏈接地址循環(huán)相連,則奇數場(chǎng)與偶數場(chǎng)的數據傳輸連續不斷地交替進(jìn)行下去,這就形成了連續幀的數據采集。每一幀數據通過(guò)EDMA傳輸至SDRAM完畢之后,VP1會(huì )向CPU發(fā)出一個(gè)中斷,相應的中斷程序對會(huì )對采集到的圖像數據進(jìn)行處里。
大批量的圖像數據傳輸和復雜算法的處理一直是高速數字圖像處理器的速度瓶頸,從上面的數據傳輸過(guò)程上可以看出, 利用DM642 的EDMA 功能可以在不中斷DSP算法處理工作的同時(shí)完成圖像數據的搬移,在有效地解決了大批量圖像數據傳輸速度瓶頸的同時(shí),又能讓DSP 的處理器核專(zhuān)門(mén)從事算法處理工作,極大地提高了系統的并行性能。
視頻輸出功能在本系統中主要用于早期開(kāi)發(fā)階段的調試。實(shí)際應用中可以根據需要將中間處理圖像結果數據通過(guò)EDMA中的VP2通道直接寫(xiě)入視頻FIFO。
3.4 通信接口功能的實(shí)現
系統中,通過(guò)軟件的方法,不增加硬件的復雜度,利用已有的McBSP和EDMA實(shí)現UART功能。
同步串口依賴(lài)三條分離的信號線(xiàn)(數據、幀同步和時(shí)鐘)來(lái)實(shí)現數據的傳輸,而異步通信只是在一根信號線(xiàn)上進(jìn)行。要用同步串口實(shí)現異步傳輸,需要通過(guò)在數據的首尾加入起始位和停止位,讓接收方知道數據傳輸何時(shí)開(kāi)始和停止。用McBSP實(shí)現UART功能,除了對McBSP進(jìn)行正確設置外,還需要正確設置EDMA,對McBSP收發(fā)數據進(jìn)行軟件處理。EDMA實(shí)現內存到McBSP之間的高效數據搬移,數據處理軟件對待發(fā)送的數據進(jìn)行編碼,對接收到的數據進(jìn)行解碼。對McBSP和EDMA的設置及編解碼程序的設計詳見(jiàn)文獻[5]。
4、結論
研究了一種基于DM642的圖像處理應用平臺的設計與實(shí)現,其實(shí)現的基本功能包括視頻輸入和輸出,與外界的UART接口通信等。介紹了系統硬件組成,以及軟件功能模塊的實(shí)現。由于軟件采用了模塊化設計,針對具體的功能需求,通過(guò)配置不同的客戶(hù)程序,可以實(shí)現特定的應用,因而系統具有好的應用前景。
評論