吳國慶
WU Guo-qing
(青海民族大學 物理與電子信息工程學院,西寧 810007)
數字圖像處理是一門理論和實踐緊密相結合的課程,單純采用Matlab軟件的實驗方法拉開了理論和應用的距離。為了取得面向實際應用的實驗效果,本文設計、實現了一種采用TI公司的多媒體DSP芯片TMS320DM642的圖像處理實驗系統(tǒng)。
本系統(tǒng)采用高性能的DSP芯片TMS320DM642作為核心處理器,擴展了SDRAM和FLASH存儲器,集成了CCD、TV、JTAG仿真接口、UART等外設,充分利用了片上資源。系統(tǒng)既可以脫機工作,也可以通過接口進行二次開發(fā),整合到其他系統(tǒng)中去。
圖1 系統(tǒng)硬件組成結構圖
系統(tǒng)硬件組成如圖1所示。以TMS320DM642為核心,外部擴展了存儲器SDRAM和Flash,分別用于程序運行和程序存儲;通過控制視頻編解碼器完成視頻的采集和輸出;并通過McBSP接口實現UART,方便系統(tǒng)與外界的通信。
TMS32ODM642是TI公司2003年推出的一款針對多媒體處理領域應用的高速DSP處理器,基于C64X核心架構,集成了豐富的外圍設備和接口,最高主頻達到了720MHZ,并行處理指令的能力最大可達每個指令周期處理8條32位指令,因此最大指令處理速度為5760MIPS。超長指令字(VLIW)的DM642核具64個32位字長的通用寄存器,8個獨立的功能單元(.L1,.L2,.S1,.S2,.D1;.D2,.M1和.M2),2個寄存器文件(A和B)和2個數據交叉通道(1X和2X)。這些硬件資源對等分配為兩個相同的組,每組占用一個數據交叉通道。DM642每周期能夠提供4個16位MAC,兩級緩存:一級程序緩存L1P是一個128 Kbit的直接映射緩存,另一級數據緩存L1D是一個128 Kbit雙路結合設置緩存。L2緩存器能被配置成映射存儲器、高速緩存或者兩者結合。TMS32ODM642的一個很重要的外設就是VideoPort,它可以很方便的讀寫外部的視頻解碼器,TI公司提供了針對TMS32ODM642的視頻解碼器的驅動程序,用戶只需開發(fā)應用程序即可,為系統(tǒng)的開發(fā)帶來極大的方便[1]。
在高速圖像采集和存儲系統(tǒng)中因涉及到圖像數據輸入和輸出,必然需要大的中間緩存,由于SDRAM具有的大容量、高速度和低價格的優(yōu)勢,使用SDRAM作為數據緩存是一種非常有效的方法[2]。系統(tǒng)選用的是MICRON公司生產的SDRAM存儲器,SDRAM由1片型號是MT48LC4M32B2的芯片夠成,用來儲存程序、數據和視頻。Flash選用SST公司推出的多用途、高性能、低電壓、基于CMOS的SST39VF800A,其擦寫次數高達100000次,在系統(tǒng)啟動時作為Boot ROM使用。通信接口中利用DM642已有的同步串口McBSP與EDMA實現UART的方法,以滿足與控制計算機進行串口通信的要求。
本系統(tǒng)選用的視頻編碼器是Philips公司的可編程視頻輸入處理芯片SAA7111A,它通過簡潔的I2C 總線與其它器件和設備連接可以將視頻信號轉換為多種格式的數字信號。 SAA7111A采用CMOS工藝,內部包含兩路模擬處理通道,可以選擇視頻源并可抗混疊濾波,同時還可以進行模數變換、自動鉗位、自動增益控制、時鐘產生、多制式解碼等,另外還可以對亮度、對比度和飽和度進行控制。系統(tǒng)內部鎖相環(huán)技術的集成使得其可靠性有了很大的提高,并極大地降低了設計復雜度。本系統(tǒng)選擇了ADI公司的ADV7171作為視頻解碼芯片,可以將數字視頻信號編碼成普通電視所能接收的NTSC 或 PAL 制式的復合電視信號。該編碼器可以接收或者產生HSYNC,VSYNC或者FIELD 等時序信號。當編碼器處于主動模式,可以通過調節(jié)這些信號來改變脈沖的寬度和位置。ADV7171的設置是通過有兩個從地址的雙線,串行,雙向輸入輸出口來完成的(和I2C兼容)。
無論是在普通模式還是省電或者睡眠模式,先進的電源管理使得電能的消耗得到最佳的控制。DM642需要高精度、穩(wěn)定的雙電源供電。本系統(tǒng)采用的TPS54310 ,3V 至 6V 輸入,0.9V 到 3.3V 可調輸出,連續(xù)額定電流達3A。TMS320DM642 芯片需要兩種電源,分別為 CPU核心(CVDD)和外圍 IO 接口(DVDD)供電。本系統(tǒng)采用了一個5V 電源驅動兩個 MOSFET的開關電源(TPS54310)分別供給CPU核心電壓CVDD(1.4V)和外圍電壓 DVDD(3.3V),完全滿足DM642 正常工作的要求。
TI對自己的DSP產品提供軟件開發(fā)支持,本系統(tǒng)的軟件開發(fā)是在CCS(Code Composer Studio)編譯環(huán)境下,基于DSP/BIOS環(huán)境下進行的。因為本系統(tǒng)主要用于數字圖像處理實驗,所以軟件采用了模塊化設計,針對具體的功能需求,通過配置不同的客戶程序,可以實現特定的應用。
應用主程序需要先完成CSL(Chip Support Library)庫的初始化,以便在程序中能調用相關的芯片級支持庫函數。隨后,開EDMA中斷,并使能EDMA中的I2C通道的中斷;開VP1、VP2口中斷;初始化并啟動I2C的數據傳輸,完成對視頻解碼芯片SAA7111A和視頻編碼芯片ADV7171的寄存器的參數初始化數配置;配置和啟動VP0和VP1視頻口;最后進入空閑等待循環(huán)。視頻的采集以中斷的方式進行,當一幀圖像采集完后,觸發(fā)VP0中斷,系統(tǒng)調用相應的中斷子程序對圖像數據進行處理計算,最后將參數通過UART傳輸給控制計算機。
DM642的EDMA控制器負責片內L2存儲器與其它設備之間的數據傳輸。能提供超過2Gb/s的外部帶寬,有64個通道,每1個通道都有1個事件與之關聯,由這些事件觸發(fā)相應通道的傳輸。A/D和D/A芯片的初始化過程通過EDMA中的I2C通道來實現。要傳輸的數據參數在EDMA的參數RAM表中進行配置,其中主要包括源數據起始地址、目的地址、地址的修改方式、要傳輸的數據格式和大小。對二個芯片的初始化數據參數分別配置在二個不同的RAM表中。第一次I2C通道的EDMA數據傳輸完畢后由EDMA控制器向CPU發(fā)出中斷,中斷處理程序載入第二次I2C傳輸的RAM參數表,啟動第二次傳輸過程。從而完成二個芯片的初始化過程。
對應于YUV4:2:2的格式視頻數據采集,EDMA中用于VP0的數據傳輸有三個通道。系統(tǒng)中將視頻端口VP0配置為連續(xù)幀采集的方式,也就是啟動第一幀的采集后,后面幀的采集連續(xù)進行不需要另外的幀同步信號。在隔行掃描模式下,每幀分為兩場,兩場在時域上是分開的,通過EDMA鏈表可自動實現場合成,不需占用額外的CPU時間。EDMA的參數RAM存放了有關的傳輸參數,這些參數用于產生EDMA讀寫操作所需要的地址。在使用EDMA通道傳輸奇數場與偶數場時,分別使用不同的EDMA參數RAM。每一幀數據通過EDMA傳輸至SDRAM完畢之后,VP0會向CPU發(fā)出一個中斷,相應的中斷程序對會對采集到的圖像數據進行處里。DM642的視頻采集端口VP0的FIFO中采集的數據超過了門限值寄存器中設定的門限值時,觸發(fā)一個EDMA傳輸,將數據從采集FIFO搬移到采集緩存區(qū)給DSP進行處理[3]。
當視頻顯示端口VP1的FIFO中數據為空時,觸發(fā)1個EDMA傳輸,將處理后數據從顯示緩沖區(qū)搬移到該FIFO中,并經SAA7171轉化為模擬視頻數字信號,然后等待中斷顯示圖像。視頻輸出功能在實際應用中可以根據需要將中間處理圖像結果數據通過EDMA中的VP1通道直接寫入視頻FIFO。
系統(tǒng)中通過軟件的方法實現通信接口功能,利用已有的McBSP和EDMA實現UART功能[4]。同步串口依賴三條分離的信號線(數據、幀同步和時鐘)來實現數據的傳輸,而異步通信只是在一根信號線上進行。要用同步串口實現異步傳輸,需要通過在數據的首尾加入起始位和停止位,讓接收方知道數據傳輸何時開始和停止。用McBSP實現UART功能,除了對McBSP進行正確設置外,還需要正確設置EDMA,對McBSP收發(fā)數據進行軟件處理。EDMA實現內存到McBSP之間的高效數據搬移,數據處理軟件對待發(fā)送的數據進行編碼,對接收到的數據進行解碼。
以下是學生利用本系統(tǒng)作的課程設計,汽車牌照的識別系統(tǒng)。通過JTAG口把程序下載到系統(tǒng)設計的硬件平臺上進行脫機運行。該系統(tǒng)是計算機圖像處理與字符識別技術的應用,它主要由牌照圖像的采集和預處理、牌照區(qū)域的定位和提取、牌照字符的分割和識別等幾個部分組成,如圖2 所示。
圖2 牌照識別處理過程
由于牌照污漬、牌照字符的分割失敗、部分字符的形狀相似性等許多原因使得系統(tǒng)識別效果并不是始終如一的理想。圖3 為系統(tǒng)處理后的一個比較理想結果。
圖3 處理后的字符圖像
設計實現了一種基于DM642的圖像處理實驗系統(tǒng),由于開放的軟硬件設計,使其可用于實現多種數字圖像處理的場合,軟件采用了模塊化設計,針對具體的功能需求,通過配置不同的客戶程序實現特定的應用,可以廣泛應用在學生的實驗、課程設計和畢業(yè)設計中。
[1] 卞紅雨,等.Texas Instruments.TMS320C6000系列DSP的CPU與外設[M].北京:清華大學出版社,2007.
[2] 張偉偉,薛模根,袁魏華.基于DSP和USB2.0的高速偏振圖像采集處理系統(tǒng)[J].電子技術應用,2008(9):54-56.
[3] Texas Instruments Incorporated.TMS 320 DM642 data sheet[S].Houston:Texas,2007.
[4] 王曉劍,潘順良,沈為群,等.TMS320DM642中利用McBSP與EDMA實現UART[J].電子測量與技術.2008.31(2):103-105.