- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGAARM高速图像数据采集板设计
基于FPGAARM高速图像数据采集板设计
【摘要】提出了基于FPGA+ARM的高速数据采集板的设计方法。采用FPGA完成高速数据采集,通过ARM对FPGA进行控制管理。利用DMA技术实现了FPGA与ARM之间的数据采集接口设计方案,并实现了Linux操作系统下FPGA设备的中断处理程序的开发。并通过设计千兆以太网接口实现了图像数据的实时远程传输。
【关键词】ARM;FPGA;千兆以太网;嵌入式linux;中断
1.概述
随着图像处理技术的快速发展,图像采集处理系统在提高工业生产自动化程度中的应用越来越广泛。本文结合实际系统中的前端图像处理和图像数据传输的需要,充分利用ARM的灵活性和FPGA的并行性的特点,设计了一种基于ARM+FPGA的高速图像数据采集传输系统。所选用的ARM体系结构是32位嵌入式RISC微处理器结构,该微处理器拥有丰富的指令集且编程灵活;而FPGA则在速度和并行运算方面有很大优势,适合图像处理的实时性要求;并且通过千兆以太网接口实现了采集板与上位机之间图像数据的高速远程传输。
2.硬件设计方案
2.1 系统总体设计
本设计采用的ARM芯片为三星公司的S3C2440A、FPGA芯片为Xilinx公司生产的Spartan系列的S3C500E芯片,系统组成还包括千兆以太网控制芯片AX88180、千兆PHY芯片88E1111、存储器、嵌入式Linux、网络驱动程序等(如图1所示)。
本设计的主控芯片S3C2440A是基于ARM920T核的16/32位RISC微处理器,采用了0.13um的CMOS标准宏单元和存储器单元,运行频率高达500MHz。ARM920T 实现了MMU,AMBA BUS和Harvard高速缓冲体系结构构。这一结构具有独立的16KB指令Cache和16KB数据Cache。每个都是由具有8字长的行组成。通过提供一套完整的通用系统外设,S3C2440A减少整体系统成本和无需配置额外的组件。它主要面向手持设备以及高性价比、低功耗的应用,具有非常丰富的片上资源。
FPGA芯片S3C500E主要用于图像传感器的控制、图像数据的缓存及外围芯片时序的产生。它通过控制A/D实现数据采集,并保存至SRAM,对ARM的读写信号进行译码以将目标数据读回ARM并传到上位机。ARM芯片S3C2440A负责整个系统的控制,它通过读写总线上的地址来进行指令和数据的传输以控制FPGA的所有动作[1-2]。嵌入式Linux内核负责系统任务的管理并集成TCP/IP协议,方便实现网络控制功能。S3C2440A与AX88180以总线方式连接,是通信控制的主体。S3C2440A通过网络驱动程序实现对AX88180内部寄存器编程,以及对以太网数据的发送和接收,从而完成网络与系统之间的数据传输。AX88180与88E1111之间采用RGMII接口方式互连,负责数据传送底层协议的实现。
2.2 数据采集接口设计
系统设计的难点在于数据采集接口的设计,它是数据传输的通道,同时也是连接系统前后端的桥梁。本系统采用S3C2440A和S3C500E配合共同实现数据的高速采集。
直接内存存取(DMA)作为一种独立于CPU的后台批量数据传输技术,以其快速、高效的特点在数据采集领域得到了广泛的应用。本设计中,S3C2440A采用外部DMA方式采集FPGA内部存储数据,其接口信号连接如图2所示。
接口设计的FPGA部分主要包括异步FIFO模块、复位模块和数据缓冲模块组成[3]。异步FIFO模块主要解决图像输出数据频率和数据采集的频率不匹配的问题,系统采用的异步FIFO宽度为8bits,深度为2048。复位模块在控制信号的作用下实现对系统的FIFO的复位控制。
系统采用DMA通道0采集图像数据。其中,DREQ0和DACK0分别为DMA的请求和应答信号。FPGA的空信号EMPTY与DREQ0相连,读请求RDREQ与DACK0相连。FPGA写时钟由图像输出位同步信号提供,读时钟由S3C2440A的时钟输出引脚CLKOUT0提供。CLKOUT0根据S3C2440A内部寄存器的设置可以输出几种不同的时钟频率。FIFO的读操作与ARM的DMA操作配合进行。系统采用单服务命令模式的DMA操作,每次传输一个字节数据位。当DREQ0信号变为低电平时DMA操作开始,每次传输一个字节后产生一个DACK0应答信号,而且只要DREQ0为低电平DMA操作就继续进行,直到DMA控制寄存器中的计数器为0,产生DMA中断。根据上述时序特点,将FIFO的空信号作为DMA的请求信号DREQ0。当图像输出的数据写入FIFO中时,空信号跳变为低电平启动DMA操作,同时以DACK0信号作为FIFO的读请求。每次DMA操
文档评论(0)