基于ARM和FPGA实时图像采集传输系统的设计

发布者:王岚枫最新更新时间:2020-09-18 来源: elecfans关键字:ARM  FPGA  实时图像采集  传输系统 手机看文章 扫描二维码
随时随地手机看文章

图像处理技术的快速发展,使得图像采集处理系统在提高农业生产自动化程度中的应用越来越广泛。目前的图像采集系统有的基于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便通过以太 网芯片将数据发送给上位机。

基于FPGA+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控制单元又包括帧同步模块、场同步模块、像素时钟模块等。

基于FPGA+ARM的图像采集传输系统

 

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所示。

基于FPGA+ARM的图像采集传输系统

 

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的图像采集过程的结束。

基于FPGA+ARM的图像采集传输系统

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中断。

基于FPGA+ARM的图像采集传输系统

 

4 结束语

本文介绍了用ARM和FPGA实现的一个实时图像采集传输系统的设计方案,本系统设计方案采用FPGA技术来为作物识别、杂草识别等图像处理算法的实时实现提供了平台。

关键字:ARM  FPGA  实时图像采集  传输系统 引用地址:基于ARM和FPGA实时图像采集传输系统的设计

上一篇:基于VirtualBox虚拟机-Ubuntu操作系统的ARM嵌入式平台搭建
下一篇:基于arm的嵌入式棒料剪切生产线数控系统

推荐阅读最新更新时间:2024-11-08 20:41

痞子衡嵌入式:ARM Cortex-M文件那些事(7)- 反汇编文件
  痞子衡在第四、五、六节课分别介绍了编译器/链接器生成的3种output文件(relocatable、map、exectuable文件),这3种文件都是侧重的代码经过汇编/链链接后的二进制数据在存储中分布情况。如果想知道二进制数据对应的机器码具体是什么意思应该怎么办?痞子衡今天要介绍的反汇编文件会给你答案。 一、标准汇编源文件   使用IAR进行编译的时候会在D:myProjectbspbuildsdemoReleaseList目录下生成.s文件,每一个relocatable文件都对应着一个.s文件,这是编译器对C源文件进行汇编后得到的汇编文件。以task.c汇编生成的task.s为例:   task.s文件就是用汇编语
[单片机]
ARM高级业务发展经理:Enlighten是什么?能用在哪里?
日前,ARM高级业务发展经理Alex Shang介绍了全局光照技术Enlighten,该技术未来除了在游戏上有广阔空间外,包括建筑行业、广播行业、电子商务和汽车等领域都将有广阔发展空间。以下是详细发言 给大家介绍一下全局光照以及Enlighten这个全局光照的技术是如何实现,它对数字画面的创建,它在应用领域它带来的优势是哪些,给大家做一个介绍。 我们先看一下画面。这个demo是通过UE4的引擎来创建的一个场景,这个也是我们在今年GDC上的一个demo,它是在一个很大的世界的开放场景,大概是25平方公里,5 5的面积上创建的一个大世界的场景。这也是现在游戏领域的一个趋势,就是场面越来越大,画面越来越丰富,在这样一个应用场景下如何实
[手机便携]
<font color='red'>ARM</font>高级业务发展经理:Enlighten是什么?能用在哪里?
基于ARM uCLinux的网络控制系统设计与实现
引言 随着网络和通信技术的发展,嵌入式系统现已进入高速发展阶段。并在社会各个领域得到了广泛的应用。本文介绍了一种采用ARM+uCLinux作为开发平台。实现基于TCP/IP的远程系统监控.从而取代传统单片机来实现数据采集、预处理和通信功能;并依靠互联网将数据向上位机传送,同时支持远端客户对设备进行远程控制,从而实现远程监控功能的具体方法。 1 系统平台的构建 本系统由嵌入式平台服务器、前端控制器、前端传感器、客户端和配置PC组成。开发时可通过配置PC来下载系统和应用软件。嵌入式系统平台能够收集现场数据。并传送到远端客户机,之后由远端客户机对数据进行处理,接着发送控制信号给系统服务器,以便通过前端控制器对设备进行远程控制
[嵌入式]
基于FPGA的四阶IIR数字滤波器
摘要:采用FPGA实现四阶IIR数字滤波器,通过两个二阶节级联构成数字椭圆低通滤波器。通带内波纹小于0.1dB,阻带衰减大于32dB。 关键词:四阶 IIR 椭圆滤波器 补码阵列乘法器 常用的数字滤波器有FIR数字滤波器和IIR数字滤波器。FIR数字滤波器具有精确的线性相位特性,在信号处理方面应用极为广泛,而且可以采用事先设计调试好的FIR数字滤波器IP Core来完成设计,例如Altera公司提供的针对Altera系列可编程器件的MegaCore,但是需要向Altera公司购买或申请试用版。另外,对于相同的设计指标,FIR滤波器所要求的阶数比IIR滤波器高5~10倍,成本较高,而且信号的延迟也较大。IIR滤波器所要求的阶数
[应用]
朱老师ARM裸机学习笔记(二):S5PV210的内存映射
S5PV210简介 S5PV210是基于ARM Crotex-A8架构32位CPU的微处理器。 内部拥有32根地址线和32位数据线,32根地址线决定了CPU的地址空间最大为4G,这4G的内存空间如何分配,就是内存映射 S5PV210内存映射 S5PV210 datasheet中section 01_02章节 MEMORY MAP有讲。 内存分布图如下 内存分布表如下 专业名词解释 ROM : Read Only Memory 只读存储器(只不能直接通过地址总线更改数据的存储器) RAM : Ramdom Access Memory 随机访问存储器 (随机存储器,指可以随便在任何一个地址读写数据,例如内存;与之对应的是顺序
[单片机]
朱老师<font color='red'>ARM</font>裸机学习笔记(二):S5PV210的内存映射
英飞凌与ARM宣布签订战略性架构许可协议
英飞凌科技股份公司(FSE: IFX/ OTCQX: IFNNY)和ARM(LSE: ARM /Nasdaq: ARMH)近日宣布,将在面向芯片卡和安全应用的安全控制器领域展开长期战略合作。根据这份协议,英飞凌将获得ARMv6M和ARMv7M架构的使用许可。利用其自有的兼容ARM®架构的专用CPU内核,结合行业许可应用最广泛的32位CPU技术优势,英飞凌将满足安全市场当前及未来对基于硬件的安全应用的需求。 英飞凌是唯一获得专用于安全应用的ARM架构许可的ARM合作伙伴。根据这份协议,英飞凌能够将其创新安全技术整合到CPU内核中,同时保持与标准ARM处理器指令集的兼容性。通过这种方法,可以重复利用代码,并可利用广博的A
[嵌入式]
新一代SoC架构底定 ARM揭橥四大发展蓝图
在公布新一代绘图处理GPU架构Mali-T604、并且完成Linaro 10.11第一阶段工程周期之后,ARM在下一阶段整体行动运算市场的发展策略为何?今日ARM在台北的年度技术研讨会上,我们透过观察欲归纳出一些轮廓。 除了智能型手机之外,联网电视(Connected TV)、平板装置(Tablet)和嵌入式MCU,便是ARM正在积极投入的主要领域。在多媒体视讯的应用风潮下,针对特定的行动运算目标,ARM透过推出Mali-T604绘图GPU处理架构,已经补足好了3D绘图的关键板块。Mali-T604的重要性不仅是完备了ARM在绘图处理GPU架构的能力,也是结束与Imagination合作关系后,完整地掌握绘图架构发展蓝图
[嵌入式]
11.汇编代码简单操作
使用汇编的原因很简单,就是汇编代码的高效。在机器启动的时候,利用汇编的高效,对硬件进行初始化,为加载内核,提供条件。 目前常用的ARM汇编指令有两种: *ARM标准汇编:适用于ARM公司的汇编器,适合在Windows平台下使用。 *GNU汇编:使用与GNU交叉编译工具链中的汇编器,适合于Linux平台开发。 3.汇编程序框架:注意下面的操作环境是Redhat 6.4 + eclipse C/C++ +CDT插件。 汇编代码的基本框架 汇编用到的地方,启动代码,效率要求高效的地方。 上面是启动代码的框架。 下面搭建框架: start.S: .text .global _start _start: mov r2,#2
[单片机]
11.汇编代码简单操作
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved