基于DSP TMS320VC5402的水表號碼圖像采集系統(tǒng)的研究
1引言
隨著科學(xué)研究對圖像采集的要求日益提高,對號碼圖像采集系統(tǒng)的存儲量、速度都提出了越來越高的技術(shù)要求。為了實現(xiàn)號碼圖像的自動讀取, 以前采用CCD圖像傳感器加顯示器推出新型高集成視頻解碼/解交織和縮放系統(tǒng)方案 >視頻解碼芯片SA7113實現(xiàn)號碼圖像的采集,經(jīng)過數(shù)據(jù)緩存器FIFO后存入外擴(kuò)的隨機(jī)存儲器RAM中, 圖像的截取是通過可編程邏輯器件CPLD來實現(xiàn)的[1][2]。雖然該種方法實現(xiàn)了圖像的截取,但硬件電路復(fù)雜,增加了設(shè)計成本。本文使用的信號處理器TMS320VC5416的片上程序存儲器ROM為16K,數(shù)據(jù)存儲器RAM為128K,而一幅640*480的灰度圖像就有300K左右,顯然處理器的存儲容量不夠。因此本文針對這種情況采用具有圖像截取功能的CMOS數(shù)字圖像傳感器OV7620,取代CCD模擬傳感器加視頻解碼芯片SA7113,簡化了硬件電路,解決了信號處理器TMS320VC5416的存儲容量有限的問題。
2系統(tǒng)采集方案的確定
號碼圖像采集的方法有一種是采用CCD圖像傳感器加視頻解碼芯片,從CCD攝像頭出來的視頻模擬信號需經(jīng)過視頻解碼器轉(zhuǎn)換為視頻數(shù)字信號,再經(jīng)過先進(jìn)先出存儲器FIFO緩存,最后通過可編程邏輯器件CPLD進(jìn)行圖像截取才能進(jìn)入信號處理器(DSP)處理。由于DSP的控制能力比較差,本身的通用I/O口少,而對視頻解碼器的控制是通過內(nèi)置的I2C總線來實現(xiàn)的。為了實現(xiàn)對視頻解碼器的控制,I2C總線是用單片機(jī)的P1口模擬完成對視頻解碼器的初始化,雖然這種方案實現(xiàn)了號碼采集,但硬件結(jié)構(gòu)復(fù)雜。
TMS320VC5416最大允許訪問的數(shù)據(jù)存儲空間為128K,而一幅640*480的灰度圖像就需要大約300K的存儲空間,因此系統(tǒng)針對信號處理器的TMS320VC5416存儲容量有限的特點(diǎn),選擇了內(nèi)部集成模數(shù)轉(zhuǎn)換器A/D且具有圖像開窗功能的CMOS圖像傳感器OV7620。這種傳感器具有內(nèi)部默認(rèn)工作模式和I2C總線模式,為實現(xiàn)圖像截取功能,將TMS320VC5416的主機(jī)接口HPI改為通用I/O口,分別用HD2和HD3模擬I2C總線的數(shù)據(jù)線SDA和時鐘線SCL進(jìn)行I2C總線的設(shè)置。通過設(shè)置OV7620內(nèi)部各個寄存器實現(xiàn)開窗等
一系列功能,將感興趣的圖像截取出來,數(shù)據(jù)輸出只采集OV7620低8位(Y7-Y0)亮度數(shù)據(jù),減少了TMS320VC5416的數(shù)據(jù)存儲量和處理量,節(jié)省了TMS320VC5416的存儲空間。
3 采集系統(tǒng)硬件設(shè)計
3.1號碼圖像采集系統(tǒng)的基本結(jié)構(gòu)
如圖1所示,該號碼圖像采集系統(tǒng)是由CMOS圖像傳感器OV7620,信號處理器TMS320VC5416及數(shù)據(jù)隔離器74LVCH16245A三部分組成。
這里主要介紹圖像傳感器的確定和圖像采集系統(tǒng)的實現(xiàn)過程,系統(tǒng)采用CMOS數(shù)字圖像傳感器OV7620采集水表號碼,存入TMS320VC5416內(nèi)部的RAM中,在OV7620與TMS320VC5416之間采用菲利普公司的74LVCH16245A作為數(shù)據(jù)隔離芯片。用TMS320VC5416的HD2和HD3分別模擬數(shù)據(jù)線SDA和時鐘SCL, 即在硬件電路上保證圖像傳感器工作在I2C總線格式,在軟件上系統(tǒng)將TMS320VC5416的HP0改為通用I/O口作為水表號碼采集的使能。當(dāng)/1OE為低電平時,74LVCH16245A將數(shù)據(jù)通道打開,TMS320VC5416開始接收數(shù)據(jù)從而系統(tǒng)完成水表號碼的采集工作。
3.2圖像傳感器OV7620
由圖2所示,圖像傳感器OV7620內(nèi)部集成了行列選擇電路、模數(shù)轉(zhuǎn)換電路、視頻時序產(chǎn)生電路等,并可與I2C總線接口。大大簡化了其外圍電路設(shè)計,外圍電路僅有石英晶體和一些電阻、電容等元器件組成。OV7620的開窗特征允許用戶根據(jù)實際需要設(shè)置有效圖像數(shù)據(jù)窗口的大小。其范圍從4×2到664×492,并且該窗口能夠被置于664×492邊界范圍內(nèi)的任何位置,同時窗口大小的變化不會改變輸出數(shù)據(jù)速率和幀速,它僅僅是通過調(diào)整行頻參考信號的有效時間來實現(xiàn)的。在速度方面可通過設(shè)置寄存器11(時鐘速率控制)改變采集速度,降低采集速度可為識別處理水表號碼提供時間,這對于系統(tǒng)采集有效數(shù)據(jù)以及提高系統(tǒng)性能等方面都起到了很大幫助,因此系統(tǒng)選用了具有圖像截取功能的CMOS數(shù)字圖像傳感器OV7620。
3.3圖像采集硬件電路的實現(xiàn)
在圖像傳感器OV7620和TMS320VC5416之間需加一個數(shù)據(jù)隔離信號,通知信號處理器TMS320VC5416接收圖像。本文用的是菲利普公司的帶方向控制的數(shù)據(jù)接收、發(fā)送器74HC16245A,它的作用是數(shù)據(jù)隔離。
由于TMS320VC5416工作在160MHz時對同步信號進(jìn)行判斷大約需要7個時鐘周期(45ns左右),而OV7620的輸入時鐘為27MHz,所以需要對OV7620的輸入時鐘進(jìn)行二分頻來產(chǎn)生象素時鐘(13.5MHz 74ns),設(shè)置時鐘速率控制寄存器(Clock rate control)為0x80實現(xiàn)二分頻,實現(xiàn)DSP與傳感器之間同步工作。
系統(tǒng)上電后,TMS320VC5416通過I2C總線對CMOS圖像傳感器OV7620的工作寄存器進(jìn)行初始化設(shè)置,包括開窗大小、位置,場頻,掃描方式等。OV7620即開始按要求采集并輸出圖像信號,包括行同步信號HREF、場同步信號VSYNC、像素時鐘信號PCLK和圖像信號,隨后CMOS圖像傳感器OV7620在使能信號的控制下將采集到的圖像存入TMS320VC5416中,完成圖像的采集。
圖像采集的關(guān)鍵是圖像采集起始點(diǎn)的精確控制,本系統(tǒng)是在I2C總線模式下設(shè)置OV7620的內(nèi)部寄存器實現(xiàn)各個同步信號極性的控制,VSYNC的上升沿表示一幀新圖像的到來,HREF是水平同步信號,其上升沿表示一列圖像數(shù)據(jù)的開始,PCLK是輸出數(shù)據(jù)同步信號。HREF為高電平即可開始有效地數(shù)據(jù)采集,而PCLK下降沿的到來則表明數(shù)據(jù)的產(chǎn)生,PCLK每出現(xiàn)一個下降沿,系統(tǒng)便傳輸一位數(shù)據(jù)。HREF為高電平期間,系統(tǒng)共傳輸640位數(shù)據(jù)。即在一幀圖像中,即VSYNC為低電平期間,HREF會出現(xiàn)480次高電平。而下一個VSYNC信號上升沿的到來則表明分辨率640×480的圖像采集過程的結(jié)束。
4號碼采集系統(tǒng)中軟件設(shè)計
4.1通用I/O控制器和通用I/O狀態(tài)寄存器配置
TMS320VC5416主機(jī)接口(HPI)用于在主從模式下,實現(xiàn)DSP與外部器件通信,它具有一個增強(qiáng)型HPI接口,該接口用8-bit數(shù)據(jù)總線(HD0-HD7)與主機(jī)交換信息[3]。通過設(shè)置通用I/O控制寄存器(GPIOCR)和通用I/O狀態(tài)寄存器(GPIOSR)相應(yīng)位,可以將HD0- HD7轉(zhuǎn)換成通用I/O,再通過軟件編程,實現(xiàn)與I2C總線的接口。相關(guān)的控制器如圖3所示。
在本系統(tǒng)是將TMS320VC5416的HPIENA直接接地,這時HD7~HD0作為通用I/O口 使用,HD7 ~ HD0的輸入輸出狀態(tài)由GPIOCR的相應(yīng)位(DIR7~DIR0)控制,當(dāng)DIRx為0時,HDx作為輸入腳,當(dāng)DIRx為1時,DIRx作為輸出腳,GPIOSR中的I07 ~ I00作為對應(yīng)的(HD7~HD0)輸入輸出數(shù)據(jù)位。
4.2 I2C總線簡介
集成電路芯片間總線I2C [4](Inter – Integrated Circuit)是Philips公司提出的一種允許在簡單的二線總線上工作的串行接口和軟件協(xié)議,主要用于傳感器與控制器件間的數(shù)據(jù)通信。
I2C總線上只有時鐘SCL為高電平時的數(shù)據(jù)才有效,而且SDA上高/低電平的轉(zhuǎn)換只能在SCL為低電平時完成;最后以Stop終止傳輸,釋放總線。
4.3 軟件編程實現(xiàn)HPI與I2C總線接口
首先設(shè)置寄存器,將相應(yīng)的HPI接口改為通用的I/O口,然后通過軟件編程實現(xiàn)I2C總線協(xié)議[5],在此僅以I2C總線啟動為例簡單介紹說明如何實現(xiàn)的:(其中HD2為SDA,HD3為SCL)
4.4實驗結(jié)果
為了測試系統(tǒng)的實際效果,本文采用普通的白熾燈為光源,CMOS圖像傳感器OV7620開窗為200×40情況下采集了水表號碼圖像,由圖5可以看出所采集到的圖像達(dá)到了設(shè)計要求,為后續(xù)圖像的識別處理奠定了基礎(chǔ)。
5 結(jié)論
系統(tǒng)選用具有圖像開窗功能的CMOS數(shù)字圖像傳感器OV7620采集水表號碼圖像, OV7620內(nèi)部集成了模數(shù)轉(zhuǎn)換器A/D和視頻時序產(chǎn)生電路,不但簡化了硬件電路結(jié)構(gòu),降低了系統(tǒng)的成本,而且從640×480圖像中截取200×40的有效圖像,大大降低了圖像的存儲量和處理量,解決了信號處理器TMS320VC5416的存儲空間不足的問題。
創(chuàng)新點(diǎn):1.采用OV7620采集號碼圖像,簡化了硬件電路 。
2.將TMS320VC5416的HPI接口改為通用I/O口,實現(xiàn)與I2C總線接口。
3.利用OV7620開窗功能實現(xiàn)圖像的截取,解決TMS320VC5416存儲空間不足的問題。
評論