基于FPGA和ARM的圖像采集傳輸系統(tǒng)
引言
圖像處理技術(shù)的快速發(fā)展,使得圖像采集處理系統(tǒng)在提高農(nóng)業(yè)生產(chǎn)自動化程度中的應(yīng)用越來越廣泛。目前的圖像采集系統(tǒng)有的基于CCD攝像機(jī)、圖像采集卡和計(jì)算機(jī),有的基于CCD攝像機(jī)、解碼器、FPGA和DSP,而有的基于CMOS圖像傳感器芯片、FPGA和DSP,它們在實(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í)性要求。本文選用Intel公司的Xcale PXA255和Xilinx公司的Spartan-3XC3S1000來實(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用來控制CMOS圖像傳感器芯片,ARM負(fù)責(zé)圖像數(shù)據(jù)的交換、以太網(wǎng)芯片的控制及UDP/IP協(xié)議的實(shí)現(xiàn),以太網(wǎng)模塊主要實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸,SDRAM用于存儲圖像數(shù)據(jù),F(xiàn)LASH為程序存儲器。系統(tǒng)工作時(shí),先由FPGA將CMOS傳感器采集的數(shù)據(jù)存儲到雙口SRAM,再由ARM從FPGA的雙口SRAM中讀取數(shù)據(jù)并存儲到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接口,并具有自動曝光控制、自動增益控制、自動白平衡、自動帶通濾波、自動黑級校準(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萬門。在本設(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控制單元又包括幀同步模塊、場同步模塊、像素時(shí)鐘模塊等。
2.3 ARM處理器模塊
本系統(tǒng)的ARM處理器選用PXA255,用于實(shí)現(xiàn)圖像數(shù)據(jù)交換和以太網(wǎng)數(shù)據(jù)傳輸?shù)裙δ?。PXA255是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è)接口,并可支持各種存儲器芯片。本系統(tǒng)采用兩片SDRAM和兩片F(xiàn)LASH存儲器,其中SDRAM用于圖像數(shù)據(jù)暫存,本系統(tǒng)選用SAMSUNG公司的K4S561632C-TC75,容量為32 MB。而FLASH程序存儲器則選用Intel公司的E28F128J3A-150來作為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ù)的存儲。此外,LAN91C113芯片還集成了CSMA/CD協(xié)議的MAC(媒體訪問控制層)和PHY(物理層),IEEE802.3/802.3u-100BASE-TX/10Base-T規(guī)范。本系統(tǒng)中,LAN91C113的串行EEPROM接口與AT93C46相連。PXA255訪問LAN91C113采用異步靜態(tài)存儲器方式,LAN91C113的地址使能信號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)首先對CMOS圖像采集芯片進(jìn)行初始化,以確定其工作模式。這些參數(shù)受OV9650內(nèi)部相應(yīng)寄存器值的控制。FPGA通過控制SCCB總線來完成參數(shù)的配置。
系統(tǒng)配置完畢后,便可進(jìn)行圖像數(shù)據(jù)的采集。圖4和圖5是數(shù)據(jù)采集與輸出的時(shí)序圖。其中VSYNC是場同步信號。HREF是水平同步信號。PCLK是象素?cái)?shù)據(jù)輸出同步信號。HREF為高時(shí)即可開始有效數(shù)據(jù)采集,而PCLK下降沿的到來則表明數(shù)據(jù)的產(chǎn)生,PCLK每出現(xiàn)一個(gè)下降沿,系統(tǒng)便傳輸一位數(shù)據(jù)。在HREF為高電平期間,系統(tǒng)共可傳輸640位數(shù)據(jù)。在一幀圖像中,即VSYNC為低電平期間,HREF會出現(xiàn)480次高電平。而下一個(gè)VSYNC信號上升沿的到來則表明分辨率640
評論