圖像處理技術(shù)的快速發(fā)展,使得圖像采集處理系統(tǒng)在提高農(nóng)業(yè)生產(chǎn)自動(dòng)化程度中的應(yīng)用越來(lái)越廣泛。目前的圖像采集系統(tǒng)有的基于CCD攝像機(jī)、圖像采集卡和計(jì)算 機(jī),有的基于CCD攝像機(jī)、解碼器、FPGA和DSP,而有的基于CMOS圖像傳感器芯片、FPGA和DSP,它們?cè)趯?shí)時(shí)性,靈活性,可維護(hù)性方面各有優(yōu) 缺點(diǎn)。而在農(nóng)業(yè)生產(chǎn)中,以基于CCD攝像機(jī)、圖像采集卡和計(jì)算機(jī)的系統(tǒng)居多。本文結(jié)合實(shí)際系統(tǒng)中的前端圖像處理和圖像數(shù)據(jù)傳輸需要.充分利用ARM的靈活 性和FPGA的并行性特點(diǎn),設(shè)計(jì)了一種基于ARM+FPGA的圖像快速采集傳輸系統(tǒng)。所選的ARM (Ad-vanced RISC Machines)體系結(jié)構(gòu)是32位嵌入式RISC微處理器結(jié)構(gòu),該微處理器擁有豐富的指令集且編程靈活。而FPGA(Field ProgrammableGate Array)則在速度和并行運(yùn)算方面有很大優(yōu)勢(shì),適合圖像處理的實(shí)時(shí)性要求。本文選用Intel公司的Xcale PXA255和Xilinx公司的Spartan-3XC3S1000來(lái)實(shí)現(xiàn)本系統(tǒng)的設(shè)計(jì)。
1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
本系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。圖中,圖像傳感器模塊負(fù)責(zé)圖像采集,F(xiàn)PGA用來(lái)控制CMOS圖像傳感器芯片,ARM負(fù)責(zé)圖像數(shù)據(jù)的交換、以太網(wǎng)芯片的控制 及UDP/IP協(xié)議的實(shí)現(xiàn),以太網(wǎng)模塊主要實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸,SDRAM用于存儲(chǔ)圖像數(shù)據(jù),F(xiàn)LASH為程序存儲(chǔ)器。系統(tǒng)工作時(shí),先由FPGA將 CMOS傳感器采集的數(shù)據(jù)存儲(chǔ)到雙口SRAM,再由ARM從FPGA的雙口SRAM中讀取數(shù)據(jù)并存儲(chǔ)到SDRAM,存滿一幀圖像數(shù)據(jù)后,ARM便通過以太 網(wǎng)芯片將數(shù)據(jù)發(fā)送給上位機(jī)。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 CMOS圖像傳感器模塊
本系統(tǒng)采用OV9650作為圖像采集傳感器。OV9650是Omni Vision公司的彩色CMOS圖像傳感器,可支持SXVGA,VGA,QVGA,QQVGA,CIF,QCIF,QQCIF模式和SCCB接口,并具有 自動(dòng)曝光控制、自動(dòng)增益控制、自動(dòng)白平衡、自動(dòng)帶通濾波、自動(dòng)黑級(jí)校準(zhǔn)等功能。OV9650的最大幀速率在VGA格式時(shí)為30 fps,在SXVGA格式時(shí)為15 fps。本系統(tǒng)采用VGA格式。
2.2 FPGA模塊
FPGA主要用于圖像傳感器的控制、圖像數(shù)據(jù)的緩存及外圍芯片時(shí)序的產(chǎn)生??紤]到圖像處理算法的實(shí)現(xiàn)需要,本系統(tǒng)選用了Xilinx公司的XC3S1000,它屬于SPARTAN-3系列,容量為100萬(wàn)門。在本設(shè)計(jì)中,F(xiàn)PGA通常運(yùn)行于80 MHz。XC3S1000與OV9650的接口電路示意圖如圖2所示。FPGA的內(nèi)部結(jié)構(gòu)包括CMOS控制單元、SC-CB接口單元、雙口RAM單元、FIFO單元等。其中CMOS控制單元又包括幀同步模塊、場(chǎng)同步模塊、像素時(shí)鐘模塊等。
2.3 ARM處理器模塊
本系統(tǒng)的ARM處理器選用PXA255,用于實(shí)現(xiàn)圖像數(shù)據(jù)交換和以太網(wǎng)數(shù)據(jù)傳輸?shù)裙δ堋XA255是Intel公司推出的基于第五代ARM RISC體系結(jié)構(gòu)ARMV5TE的微處理器。CPU的運(yùn)行頻率最高為400 MHz,有32 KB指令Cache,32 KB數(shù)據(jù)Cache,2 KB微數(shù)Cache,并帶有豐富的串行外設(shè)接口,并可支持各種存儲(chǔ)器芯片。本系統(tǒng)采用兩片SDRAM和兩片F(xiàn)LASH存儲(chǔ)器,其中SDRAM用于圖像數(shù)據(jù)暫存,本系統(tǒng)選用SAMSUNG公司的K4S561632C-TC75,容量為32 MB。而FLASH程序存儲(chǔ)器則選用Intel公司的E28F128J3A-150來(lái)作為NOR FLASH,容量為16 MB。
2.4 以太網(wǎng)傳輸模塊
本系統(tǒng)的以太網(wǎng)芯片選用LAN91C113。這是SMSC公司推出的快速以太網(wǎng)10/100 Mbps控制器,支持多種嵌入式處理器主機(jī)接口。LAN91C1B內(nèi)部有8 KB的FIFO,可用于接收和發(fā)送數(shù)據(jù)的存儲(chǔ)。此外,LAN91C113芯片還集成了CSMA/CD協(xié)議的MAC(媒體訪問控制層)和PHY(物理 層),IEEE802.3/802.3u-100BASE-TX/10Base-T規(guī)范。本系統(tǒng)中,LAN91C113的串行EEPROM接口與 AT93C46相連。PXA255訪問LAN91C113采用異步靜態(tài)存儲(chǔ)器方式,LAN91C113的地址使能信號(hào)AEN與PXA255的靜態(tài)芯片片選 四相連。PXA255與LAN91C113接口示意圖如圖3所示。
3 系統(tǒng)主要模塊的工作原理及實(shí)現(xiàn)
3.1 FPGA圖像采集的實(shí)現(xiàn)
OV9650的數(shù)據(jù)輸出采用Bayer原始數(shù)據(jù)輸出格式,每個(gè)象素同時(shí)只輸出一種顏色。奇數(shù)掃描行輸出RGRG…,偶數(shù)掃描行輸出GBGB…。FPGA負(fù)責(zé)圖像傳感器數(shù)據(jù)的采集。
上電后,系統(tǒng)首先對(duì)CMOS圖像采集芯片進(jìn)行初始化,以確定其工作模式。這些參數(shù)受OV9650內(nèi)部相應(yīng)寄存器值的控制。FPGA通過控制SCCB總線來(lái)完成參數(shù)的配置。
系統(tǒng)配置完畢后,便可進(jìn)行圖像數(shù)據(jù)的采集。圖4和圖5是數(shù)據(jù)采集與輸出的時(shí)序圖。其中VSYNC是場(chǎng)同步信號(hào)。HREF是水平同步信號(hào)。PCLK是象素?cái)?shù) 據(jù)輸出同步信號(hào)。HREF為高時(shí)即可開始有效數(shù)據(jù)采集,而PCLK下降沿的到來(lái)則表明數(shù)據(jù)的產(chǎn)生,PCLK每出現(xiàn)一個(gè)下降沿,系統(tǒng)便傳輸一位數(shù)據(jù)。在 HREF為高電平期間,系統(tǒng)共可傳輸640位數(shù)據(jù)。在一幀圖像中,即VSYNC為低電平期間,HREF會(huì)出現(xiàn)480次高電平。而下一個(gè)VSYNC信號(hào)上升 沿的到來(lái)則表明分辨率640×480的圖像采集過程的結(jié)束。
3.2 FPGA與ARM的數(shù)據(jù)交換
FPGA內(nèi)部用一個(gè)8 KByte雙口SRAM作為圖像存儲(chǔ)區(qū)。為了實(shí)現(xiàn)圖像數(shù)據(jù)的實(shí)時(shí)采集與處理,應(yīng)使圖像數(shù)據(jù)的采集與外部圖像數(shù)據(jù)的讀取同時(shí)進(jìn)行。因此本系統(tǒng)采用雙緩存結(jié) 構(gòu)。實(shí)現(xiàn)方法是把8 KB的SRAM劃分成兩個(gè)大小為4 KB的SRAM(設(shè)為SRAM1和SRAM2),每片SRAM一次存儲(chǔ)六行圖像數(shù)據(jù)。這樣,在同一時(shí)刻,一片可用于存儲(chǔ)圖像數(shù)據(jù),另一片可用于外部ARM 對(duì)圖像數(shù)據(jù)的讀取。兩塊SRAM存儲(chǔ)區(qū)乒乓式切換。當(dāng)圖像數(shù)據(jù)寫滿SRAM1時(shí),F(xiàn)PGA向ARM發(fā)送一個(gè)中斷信號(hào),之后,ARM響應(yīng)中斷并讀取 SRAM1中的圖像數(shù)據(jù),同時(shí)將其寫入到SDRAM中。之后,圖像傳感器的數(shù)據(jù)將寫入SRAM2,當(dāng)圖像數(shù)據(jù)寫滿SRAM2時(shí),F(xiàn)PGA也向ARM發(fā)送一 個(gè)中斷信號(hào)。ARM響應(yīng)中斷并讀取SRAM2中的圖像數(shù)據(jù).同時(shí)將其寫人到SDRAM中。之后,圖像傳感器的數(shù)據(jù)將再次寫入SRAM1。
3.3 以太網(wǎng)數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)
為實(shí)現(xiàn)圖像數(shù)據(jù)的網(wǎng)絡(luò)傳輸,本系統(tǒng)基于PXA255開發(fā)了UDP/IP協(xié)議實(shí)現(xiàn)程序,以將圖像數(shù)據(jù)存儲(chǔ)在SDRAM中。一個(gè)完整的數(shù)據(jù)幀格式包括以太網(wǎng) 頭、IP頭、UDP頭和一行圖像數(shù)據(jù),其系統(tǒng)工作流程圖見圖6所示。上電后,系統(tǒng)將等待FPGA中斷,如果中斷產(chǎn)生,則由PXA255讀取FPGA中的數(shù) 據(jù)并寫到SDRAM中。然后判斷是否讀完一幀圖像數(shù)據(jù),若讀完,則發(fā)送UDP包,并將圖像數(shù)據(jù)通過以太網(wǎng)發(fā)送到上位機(jī),否則繼續(xù)等待FPGA中斷。
4 結(jié)束語(yǔ)
本文介紹了用ARM和FPGA實(shí)現(xiàn)的一個(gè)實(shí)時(shí)圖像采集傳輸系統(tǒng)的設(shè)計(jì)方案,本系統(tǒng)設(shè)計(jì)方案采用FPGA技術(shù)來(lái)為作物識(shí)別、雜草識(shí)別等圖像處理算法的實(shí)時(shí)實(shí)現(xiàn)提供了平臺(tái)。
引言