沈玉德,韓桂英
(大連民族學院 信息與通信工程學院,遼寧 大連 116600)
隨著社會的不斷發(fā)展,工業(yè)生產(chǎn)和生活領(lǐng)域有許多圖像采集和監(jiān)控需求,并且要求也越來越高,大部分傳統(tǒng)的圖像監(jiān)測裝置已經(jīng)不能滿足現(xiàn)狀而且有價格高、體積大、功耗大、速度慢、精度低等缺點,已不利于大范圍的使用和推廣。本方案正是以此為出發(fā)點,設(shè)計一種基于CPLD和AVR的高速、低功耗圖像采集系統(tǒng)。目前圖像采集常用的兩種圖像傳感器為CCD傳感器和CMOS傳感器。CCD傳感器一般輸出模擬信號,需要經(jīng)過視頻解碼器解碼得到數(shù)字信號再傳入CPU中處理,而CMOS圖像傳感器直接輸出的是數(shù)字信號,可與CPU直接相連,且可直接通過IIC總線來設(shè)置圖像分辨率大小、曝光、增益等參數(shù),無需再用視頻解碼器。相對于CCD圖像傳感器而言,CMOS圖像傳感器具有功耗低,體積小,傳輸數(shù)據(jù)速度快且方便控制等優(yōu)點。因此CMOS圖像傳感器更適合應用在微處理器中[1]。CPLD是復雜的可編程邏輯器件,規(guī)模大,適合在時序邏輯電路中的應用,在信號處理領(lǐng)域也有廣泛的應用[2-4]。根據(jù)總體功能設(shè)計可用CPLD增加系統(tǒng)的集成性,擴展性等,本系統(tǒng)采用CPLD完成系統(tǒng)所需的邏輯功能以及和SRAM構(gòu)成快速緩存裝置,實現(xiàn)頻率不同的AVR單片機和CMOS圖像采集系統(tǒng)的連接,同時提高了整個系統(tǒng)模塊的控制和開發(fā)空間。與傳統(tǒng)模式的圖像采集系統(tǒng)相比,該系統(tǒng)可以快速采集圖像信息以及進行簡單的分析處理,且體積小、成本低、功耗低、設(shè)計靈活等特點,便于大范圍的推廣。
本采集系統(tǒng)包括了圖像采集、邏輯控制、圖像緩存與圖像處理、傳輸?shù)?個部分。對比CCD與CMOS圖像傳感器的各自優(yōu)缺點,系統(tǒng)選擇CMOS數(shù)字圖像傳感器來構(gòu)建本系統(tǒng)的數(shù)字化采集單元;圖像存儲部分采用CPLD和SRAM相結(jié)合的方案對圖像數(shù)據(jù)進行高速緩存;將AVR單片機作為圖像采集系統(tǒng)的核心模塊控制各個子模塊,并對被采集圖像數(shù)據(jù)進行簡單處理和傳輸;利用RS232總線作為圖像采集系統(tǒng)與任務機進行圖像數(shù)據(jù)傳輸?shù)慕涌?,用按鍵及TFT彩屏實現(xiàn)人機交互,方便系統(tǒng)調(diào)試,用SD卡進行圖像的外部存儲。系統(tǒng)上電時,AVR單片機通過SCCB總線對CMOS圖像傳感器(OV7670)進行初始化[2],CMOS圖像傳感器通過CPLD將采集的圖像數(shù)據(jù)寫入SRAM中,AVR單片機通過對CPLD內(nèi)部總線的控制,讀取SRAM中的圖像數(shù)據(jù)并進行簡單的處理,隨后可用TFT彩屏顯示圖像,并可通過按鍵模塊選擇將一幀圖像數(shù)據(jù)存儲在SD卡中或通過UART模塊傳輸給上位機進行進一步處理,從而實現(xiàn)了圖像采集系統(tǒng)的數(shù)字化采集、處理、傳輸和存儲。整個系統(tǒng)由AVR單片機控制管理,大大提高了系統(tǒng)的實時性、穩(wěn)定性和易維護性。系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖Fig.1 System framework
本系統(tǒng)采用高性能、低功耗的AVR單片機ATmega128作為系統(tǒng)核心控制器[3-4],主要完成對CMOS圖像傳感器、TFT彩屏、SD卡的初始化以及控制CPLD內(nèi)部總線等。CPLD使用Altera公司的EPM240T100C5芯片,生成系統(tǒng)所需的各種邏輯電路和快速讀寫SRAM功能,大大提高了圖像的采集效率。圖像采集部分使用CMOS圖像傳感器OV7670作為圖像采集器, OV7670具有標準的SCCB接口,適合低壓嵌入式應用,用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式,并且價格低廉是本系統(tǒng)的不二選擇。SRAM選用ISSI公司的IS61LV5128AL芯片,3.3V供電,存儲容量為512K字節(jié)。本系統(tǒng)選用2.8英寸TFT帶觸摸屏的ILI9325模塊,人機交互快捷方便。圖像存儲部分采用自彈式SD卡,具有通用性并且便于PC讀取的特點。
本系統(tǒng)從實際出發(fā),采用性價比高的8位AVR微處理器ATmega128作為CPU來控制其他功能模塊,主要功能模塊有圖像采集模塊、CPLD模塊、SRAM緩存模塊、TFT顯示模塊、UART模塊、SD卡存儲模塊等。硬件系統(tǒng)工作流程為:1)系統(tǒng)上電后AVR通過SCCB總線接口對圖像傳感器OV7670進行初始化;2)CPLD根據(jù)圖像傳感器的時序信號進行讀寫SRAM,將一幀完整的圖像數(shù)據(jù)保存在SRAM中;3)一幀圖像采集完成后,AVR通過CPLD讀取SRAM中的數(shù)據(jù),進行簡單的圖像處理并且用TFT顯示,或者通過串口輸出給上位機。
本系統(tǒng)采用的Atmega128單片機、MAX II系列CPLD、ILI9325 TFT、SRAM以及SD卡都統(tǒng)一使用3.3 V電壓,通過電源轉(zhuǎn)換芯片AMS1117-3.3可將+5 V轉(zhuǎn)換成+3.3 V電壓,提供穩(wěn)定的供電電壓。OV7670所需電源模擬電壓在2.45~3.0 V之間,可直接串接二極管壓降0.7 V后獲得2.6 V的電源模擬電壓,十分簡化了電源電路的復雜程度。
圖2 系統(tǒng)主控電路Fig.2 Main system circuit
ATmega128的外圍電路主要包括晶振模塊、復位電路、JTAG在線調(diào)試下載接口、SPI模式的SD卡接口電路(可同時接ISP下載接口)、串口通信電路、SCCB總線、TFT控制電路以及數(shù)據(jù)傳輸電路等。各模塊設(shè)計為:1)CPU晶振選用16 MHz;2)JTAG接口與IEEE.1149.1標準兼容,遵循JTAG標準的邊界掃描功能;3)SD卡選擇SPI模式,其接口定義如圖3所示,可同時連接ISP模式的程序下載接口;4)大部分的AVR芯片都含有一個硬件串行通信接口UART,利用該接口可以實現(xiàn)控制系統(tǒng)與PC的通信構(gòu)成RS-232 的網(wǎng)絡,AVR系統(tǒng)輸出圖像就可以在PC機上顯示;5)利用2個I/O口分別接OV7670圖像傳感器的SDA和SCL,生成SCCB總線,ATmega128直接完成對圖像傳感器的初始化;6)通過對TFT讀寫的控制,PC口經(jīng)8位數(shù)據(jù)模式連接TFT數(shù)據(jù)接口,實現(xiàn)人機交互,方便系統(tǒng)調(diào)試。
圖3 系統(tǒng)主控電路Fig.3 SPI mode of SD
CPLD選 用 了Altera公 司MAX II系 列 中 的EPM240T100C5芯片,通過AVR單片機控制主要完成對SRAM的快速讀寫,以及生成系統(tǒng)所需邏輯單元;由AVR單片機控制其內(nèi)部的總線開關(guān)確定把CMOS圖像采集系統(tǒng)采集的數(shù)據(jù)是否繼續(xù)發(fā)送,同時單片機控制CPLD內(nèi)部總線,使CPLD快速對SRAM進行讀寫操作,并且通過外部中斷的方式判斷一幀數(shù)據(jù)的完整性。CPLD對應連接SRAM的地址總線、數(shù)據(jù)總線和控制總線,同時擴展了信號的輸入總線和輸出總線,并在CPLD內(nèi)部構(gòu)成系統(tǒng)所需邏輯單元,簡化了電路的復雜度,提高可靠性[5-6]。SRAM選用ISSI公司的IS61LV5128AL,512k×8bit,總共有(A0...A18)共 19根地址線,8位數(shù)據(jù)線。圖像傳感器輸出為8位數(shù)據(jù),ATmega128位8位微處理器,選用8位SRAM降低了程序編寫的難度。SRAM接口圖如圖4所示。
綜上所述,系統(tǒng)在硬件結(jié)構(gòu)設(shè)計方面完善合理,盡可能的降低成本,充分利用資源,同時也提高了系統(tǒng)的工作效率和可靠性。
AVR單片機程序的設(shè)計,選用了AVR_GCC編輯器,該編輯器更新速度快,代碼效率高,可移植性強。并在AVR Studio中實現(xiàn)模擬仿真。PC機通過JTAG接口,對ATmega128單片機進行在線編程和調(diào)試。
本系統(tǒng)的單片機程序由主程序和中斷子程序構(gòu)成。系統(tǒng)上電后,單片機的主程序?qū)Ω髂K進行初始化,并且完成對顯示屏的寫操作,等待中斷響應通過CPLD從SRAM中讀取一幀圖像數(shù)據(jù);主程序還有掃描判斷語句,判斷是否有外部觸發(fā),如果有外部觸發(fā)通過CPLD內(nèi)部總線,只讀取SRAM中一幀圖像數(shù)據(jù),通過簡單處理以圖片形式存儲在SD卡中或通過串口發(fā)送并在PC機上進行進一步處理。程序流程如圖5所示。
圖5 系統(tǒng)程序流程圖Fig.5 System program flowchart
CPLD于單片機相比,一個非常重要的優(yōu)勢在于它的高速性。尤其在圖像采集等需要高速傳輸數(shù)據(jù)時非常合適。本系統(tǒng)用的是VHDL語言在QUARTUS Ⅱ 平臺進行了調(diào)試、仿真、下載。
本系統(tǒng)中CPLD的核心作用是快速讀寫SRAM,主要通過CPLD的內(nèi)部接口管理電路來實現(xiàn)。系統(tǒng)啟動后:CPLD通過OV7670圖像傳感器為每一個像素數(shù)據(jù)產(chǎn)生的像素時鐘PCLK、行有效時鐘HREF和幀同步時鐘VSYNC,用來生成讀寫SRAM相應的地址信號;根據(jù)地址信號和AVR單片機提供的讀寫信號來判斷CPLD接口電路的工作狀態(tài);最后CPLD根據(jù)工作狀態(tài),控制數(shù)據(jù)/地址接口模塊進行對應的操作。值得注意的是,CPLD內(nèi)部各個程序單元都統(tǒng)一由OV7670的像素時鐘PCLK驅(qū)動,達到整體系統(tǒng)同步的作用。SRAM的片選信號CE、寫有效信號WE和讀有效信號OE中,根據(jù)實踐經(jīng)驗可以直接將片選信號CE和讀有效信號OE接地,只根據(jù)寫有效信號WE就可以控制CPLD對SRAM的讀寫操作,這樣一來不僅節(jié)省了CPLD和SRAM連接的管腳數(shù),同樣也簡化了軟件的編寫。在仿真軟件中達到了預期的邏輯控制,確保了圖像傳感器的正常高速工作。仿真波形如圖6所示。
圖6 仿真波形Fig.6 SRAM simulation waveform
該系統(tǒng)基于CPLD與AVR構(gòu)建了圖像采集的硬件平臺,軟件設(shè)計采用模塊化設(shè)計思想,提高了系統(tǒng)的可靠性和維護性。該系統(tǒng)在系統(tǒng)在QUARTUS II軟件和AVR Studio中進行了仿真并達到了預期的控制和采集功能。該系統(tǒng)具有功耗低、體積小、傳輸數(shù)據(jù)速度快且控制方便等優(yōu)點,在圖像檢測及相應的領(lǐng)域具有一定的推廣價值。
[1]吳文忠.基于ARM9的CMOS圖像采集系統(tǒng)的設(shè)計與實現(xiàn)[J].微型機與應用,2011,30:83-86.
WU Wen-zhong.Design and implementation of CMOS image acquisition system based on ARM9[J].Microcomputer & Its Applications,2011,30:83-86.
[2]AH_wangph.OV7670/0V7171CMOS VGA圖像傳感器[EB/OL].[2010-12-09]. http://wenku.baidu.com/view/796a397816888486 8762d671.html.pdf.
[3]金鐘夫.AVR ATmega128單片機C程序設(shè)計與實踐[M].北京:北京航空航天大學出版社, 2008.
[4]黃任.AVR單片機與CPLD/FPGA綜合應用入門[M].北京航空航天大學出版社, 2004.
[5]王道憲.CPLD/FPGA編程邏輯器件應用與開發(fā)[M].國防工業(yè)出版社, 2004.
[6]孔德明.基于CPLD控制的實用數(shù)據(jù)采集系統(tǒng)[J].電子產(chǎn)品世界, 2005,19:101-103.
KONG De-ming.A practical data acquisition system based on CPLD[J].Electronic Engineering and Product World, 2005,19:101-103.