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