国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA和ARM的圖像采集系統(tǒng)設計

2012-04-29 04:27:38鐘磊韓進
電腦知識與技術 2012年1期
關鍵詞:圖像采集

鐘磊 韓進

摘要:為解決圖像數(shù)據(jù)采集過程中對準確性和實時性的要求,給出了基于ARM和FPGA的圖像數(shù)據(jù)采集系統(tǒng)的設計方法。系統(tǒng)利用CMOS圖像采集傳感器把外界的圖像模擬信號轉化為數(shù)字信號,采用FPGA控制圖像傳感器完成圖像采集工作,通過ARM對FPGA采集的數(shù)據(jù)進行處理,并且利用嵌入式操作系統(tǒng)Linux實現(xiàn)對FPGA的實時控制。該系統(tǒng)功耗低、性能穩(wěn)定,提高了圖像采集的準確性和實時性。

關鍵詞:ARM;FPGA;圖像采集;CMOS;Linux

中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2012)01-0211-03

The Design of Image Acquisition System Based FPGA and ARM

ZHONG Lei, HAN Jin

(Shandong University of Science and Technology, Qingdao 266590, China)

Abstract: In order to solve the question of accuracy and real-time in image data acquisition process,the method that designing image acquisition system based FPGA and ARM is put forward.This system uses CMOS image sensor to capture image analog signals outside into digital signals,and uses FPGA to control image sensor to complete the work.It is to do with acquisition data through the control from ARM to FPGA,and use embedded Linux operation system to achieve real-time control of FPGA.This system is low power,high performance,do improve the accuracy and real-time.

Key words: ARM;FPGA; image acquisition; CMOS; Linux

圖像處理技術的快速發(fā)展,使得圖像采集處理系統(tǒng)在提高工業(yè)生產(chǎn)自動化程度中的應用越來越廣泛。目前的圖像采集系統(tǒng)有的基于CCD攝像機、圖像采集卡和計算機,有的基于CCD攝像機、解碼器、FPGA和DSP,而有的基于CMOS圖像傳感器芯片、FPGA和DSP,但在準確性和實時性方面都不理想[1]。本文結合實際系統(tǒng)中的前端圖像處理和圖像數(shù)據(jù)傳輸需要,充分利用ARM的靈活性和FPGA的并行性特點,設計了一種基于ARM和FPGA的圖像快速采集傳輸系統(tǒng),采用基于Marvell的PXA310處理器和Linux的開發(fā)平臺,而FPGA采用Xilinx公司的Spartan-3XC3S1000來實現(xiàn)本系統(tǒng)的設計。

1系統(tǒng)的總體設計

本系統(tǒng)的總體設計如圖1所示,其中圖像傳感器模塊負責圖像采集,F(xiàn)PGA用來控制CMOS圖像傳感器芯片,PXA310負責圖像數(shù)據(jù)的交換、以太網(wǎng)芯片的控制及UDP/IP協(xié)議的實現(xiàn),以太網(wǎng)模塊主要實現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸,SDRAM用于存儲圖像數(shù)據(jù),F(xiàn)LASH為程序存儲器。

系統(tǒng)工作時,先由FPGA將CMOS傳感器采集的數(shù)據(jù)存儲到雙口SRAM,再由PXA310從FPGA的雙口SRAM中讀取數(shù)據(jù)并存儲到SDRAM,存滿一幀圖像數(shù)據(jù)后,PXA310便通過以太網(wǎng)芯片將數(shù)據(jù)發(fā)送給上位機。

2系統(tǒng)硬件設計

2.1圖像采集模塊

本系統(tǒng)采用OV9650作為圖像采集傳感器。OV9650是Omni Vision公司的彩色CMOS圖像傳感器,可支持SXVGA,VGA,QV? GA,QQVGA,CIF,QCIF,QQCIF模式和SCCB接口,并具有自動曝光控制、自動增益控制、自動白平衡、自動帶通濾波、自動黑級校準等功能。OV9650的最大幀速率在VGA格式時為30 fps,在SXVGA格式時為15 fps。本系統(tǒng)采用VGA格式[2]。

FPGA主要用于圖像傳感器的控制、圖像數(shù)據(jù)的緩存及外圍芯片時序的產(chǎn)生。考慮到圖像處理算法的實現(xiàn)需要,本系統(tǒng)選用了Xilinx公司的XC3S1000,它屬于SPARTAN-3系列,容量為100萬門。在本設計中,F(xiàn)PGA通常運行于80 MHz,XC3S1000與OV9650的接口電路如圖2所示,F(xiàn)PGA的內(nèi)部結構包括CMOS控制單元、SC-CB接口單元、雙口RAM單元、FIFO單元等,其中CMOS控制單元又包括幀同步模塊、場同步模塊、像素時鐘模塊等。

2.2 ARM處理器模塊

本系統(tǒng)的ARM處理器選用PXA310,用于實現(xiàn)圖像數(shù)據(jù)交換和以太網(wǎng)數(shù)據(jù)傳輸?shù)裙δ?。PXA310是Marvell公司推出的基于In? ter-XScale架構的微處理器,運行頻率最高為625MHz,帶有豐富的串行外設接口,并可支持各種存儲器芯片[3]。

本系統(tǒng)采用兩片SDRAM和兩片F(xiàn)LASH存儲器,其中SDRAM用于圖像數(shù)據(jù)暫存,選用SAMSUNG公司的K4S561632C-TC75,容量為32 MB。而FLASH程序存儲器則選用Intel公司的E28F128J3A-150來作為NOR FLASH,容量為16 MB。

2.3以太網(wǎng)傳輸模塊

本系統(tǒng)的以太網(wǎng)芯片選用LAN91C113,這是SMSC公司推出的快速以太網(wǎng)10/100 Mbps控制器,支持多種嵌入式處理器主機接口。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相連。PXA310訪問LAN91C113采用異步靜態(tài)存儲器方式,LAN91C113的地址使能信號AEN與PXA310的靜態(tài)芯片片選四相連。PXA310與LAN91C113接口如圖3所示。

3系統(tǒng)主要模塊的軟件實現(xiàn)

3.1 FPGA圖像采集的實現(xiàn)

OV9650的數(shù)據(jù)輸出采用Bayer原始數(shù)據(jù)輸出格式,每個象素同時只輸出一種顏色,奇數(shù)掃描行輸出RGRG…,偶數(shù)掃描行輸出GBGB…,F(xiàn)PGA負責圖像傳感器數(shù)據(jù)的采集。上電后,系統(tǒng)首先對CMOS圖像采集芯片進行初始化,以確定其工作模式,這些參數(shù)受OV9650內(nèi)部相應寄存器值的控制,F(xiàn)PGA通過控制SCCB總線來完成參數(shù)的配置。

為控制FPGA實現(xiàn)數(shù)據(jù)采集,需要一個FPGA模塊的驅動程序,在系統(tǒng)中FPGA模塊會在新采集的數(shù)據(jù)量達到閥值后向PXA310發(fā)出中斷信號,驅動程序接受并處理這個中斷。

驅動程序實現(xiàn)的主要功能有初始化FPGA模塊,注冊FPGA設備,申請中斷號;接受FPGA模塊的中斷信號,并進行中斷處理;通過DMA通知應用程序有新數(shù)據(jù)到達;將FPGA的存儲空間映射到用戶進程空間。

我們使用Linux內(nèi)核中提供的兩個宏module_init()和module_exit()來對模塊[4]進行注冊于卸載:

module_init(FPGA_init);

module_exit(FPGA_exit);

首先,我們需要對FPGA模塊進行初始化:

struct file_operations fpga_fops = {

.open = fpga_open,

.ioctl = fpga_ioctl,

.fasyne = fpga_fasync,

.release = fpga_release,

.mmap = fpga_mmap,

};

然后,我們需要對FPGA設備進行注冊:

register_chrdev_region(devno,1,”fpga_fops”);

cdev_init(&dev.cdev,&fpga_fops);

dev.cdev.owner = THIS_MODULE;

cdev_add(&dev.cdev,devno,1);

最后,在驅動程序結束時我們需要對設備進行卸載:

cdev_del(&dev.cdev);

unregister_chrdev_region(MKDEV(fpga_major,0),1);

3.2 FPGA與ARM的數(shù)據(jù)交換

FPGA內(nèi)部用一個8 KByte雙口SRAM作為圖像存儲區(qū)。為了實現(xiàn)圖像數(shù)據(jù)的實時采集

與處理,應使圖像數(shù)據(jù)的采集與外部圖像數(shù)據(jù)的讀取同時進行,因此本系統(tǒng)采用雙緩存結構。

實現(xiàn)方法是把8 KB的SRAM劃分成兩個大小為4 KB的SRAM(設為SRAM1和SRAM2),每片SRAM一次存儲六行圖像數(shù)據(jù),這樣,在同一時刻,一片可用于存儲圖像數(shù)據(jù),另一片可用于外部ARM對圖像數(shù)據(jù)的讀取。兩塊SRAM存儲區(qū)乒乓式切換,當圖像數(shù)據(jù)寫滿SRAM1時,F(xiàn)PGA向ARM發(fā)送一個中斷信號,ARM響應中斷并讀取SRAM1中的圖像數(shù)據(jù),同時將其寫入到SDRAM中。之后,圖像傳感器的數(shù)據(jù)將寫入SRAM2,當圖像數(shù)據(jù)寫滿SRAM2時,F(xiàn)PGA也向ARM發(fā)送一個中斷信號,ARM響應中斷并讀取SRAM2中的圖像數(shù)據(jù),同時將其寫人到SDRAM中。之后,圖像傳感器的數(shù)據(jù)將再次寫入SRAM1。

3.3以太網(wǎng)數(shù)據(jù)傳輸?shù)膶崿F(xiàn)

為實現(xiàn)圖像數(shù)據(jù)的網(wǎng)絡傳輸,本系統(tǒng)基于PXA310開發(fā)了UDP/IP協(xié)議實現(xiàn)程序,以將圖像數(shù)據(jù)存儲在SDRAM中。一個完整的數(shù)據(jù)幀格式包括以太網(wǎng)頭、IP頭、UDP頭和一行圖像數(shù)據(jù),其系統(tǒng)工作流程圖見圖4所示。

上電后,系統(tǒng)將等待FPGA中斷,如果中斷產(chǎn)生,則由PXA310讀取FPGA中的數(shù)據(jù)并寫到SDRAM中。然后判斷是否讀完一幀圖像數(shù)據(jù),若讀完,則發(fā)送UDP包,并將圖像數(shù)據(jù)通過以太網(wǎng)發(fā)送到上位機,否則繼續(xù)等待FPGA中斷。

4結束語

本文給出了基于ARM和FPGA的實時高數(shù)據(jù)圖像采集系統(tǒng),ARM具有成本低、功能豐富、開發(fā)簡單,F(xiàn)PGA可以設計為各種邏輯功能,設計靈活并且并行處理,因此運行速度快,適合于高速場合。利用兩者的優(yōu)點所構建的ARM和FPGA平臺具有更好的處理速度和處理能力,可以滿足實時性的要求。隨著ARM和FPGA綜合激活素的發(fā)展,ARM和FPGA綜合技術正在向著并行運算技術以及分布式運算技術方向發(fā)展。

參考文獻:

[1]樸現(xiàn)磊,熊繼軍,沈三民.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設計[J].微計算機信息,2008,24(2): 209-211.

[2]梁志毅.基于ARM Linux的高速數(shù)據(jù)采集技術研究[D].北京:北京交通大學,2006.

[3]楊庭棟.多媒體處理器PXA310在智能手機中的應用研究[D].上海:上海交通大學,2010.

[4]弓雷.ARM嵌入式Linux系統(tǒng)開發(fā)詳解[M].北京:清華大學出版社,2010:38-88.

[5]宋寶華.Linux設備驅動開發(fā)詳解[M].北京:人民郵電出版社,2008:75-111.

[6]馮忠?guī)X,童英華.嵌入式Linux的設備驅動程序設計及交叉編譯[J].計算機工程與應用,2008,44(6):121-123.

[7]王洪輝.嵌入式系統(tǒng)Linux內(nèi)核開發(fā)實戰(zhàn)指南(ARM平臺)[M].北京:電子工業(yè)出版社,2009:43-54.

[8]劉淼.嵌入式系統(tǒng)接口設計與Linux驅動程序設計[M].北京:北京航空航天大學出版社,2006:350-359.

猜你喜歡
圖像采集
機器視覺技術的發(fā)展及其應用
科技視界(2016年25期)2016-11-25 19:53:52
視覺拉線檢測器的設計與實現(xiàn)
科技視界(2016年25期)2016-11-25 09:27:34
視覺導航系統(tǒng)中圖像采集及處理技術綜述
科技視界(2016年24期)2016-10-11 12:57:04
基于ARM處理器的指紋識別技術研究
宁阳县| 宝鸡市| 灵宝市| 临邑县| 金门县| 宜宾市| 巨野县| 尼勒克县| 南雄市| 甘谷县| 南皮县| 鄢陵县| 黄龙县| 鲜城| 分宜县| 马鞍山市| 博爱县| 桐城市| 鹤壁市| 长寿区| 昌邑市| 宜章县| 新乡县| 镇江市| 法库县| 霍州市| 柳江县| 嵊州市| 精河县| 扎赉特旗| 维西| 芜湖市| 马尔康县| 曲沃县| 鲁山县| 金堂县| 喀喇| 西畴县| 长寿区| 南城县| 伊春市|