ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:525.92KB ,
资源ID:16284235      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16284235.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM和FPGA的高速数据采集卡的设计与实现 1Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于ARM和FPGA的高速数据采集卡的设计与实现 1Word格式文档下载.docx

1、在现代采集系统中FPGA往往被用做通信系统的中枢,负责了大量的数据采集和前期处理和控制工作,FPGA作为系统的中间级主芯片承担着承前启后的重大任务。1.4.1 FPGA的特点及选型常见的FPGA一般由六部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。1.4.2 FPGA的设计步骤1.电路设计与输入 2.功能仿真3.综合优化 4.综合后仿真5.实现与布局布线 6.时序仿真和验证7.板级仿真与验证 8.调试与加载配置 1.4.3 FPGA核心电路设计FPGA各系列的最小系统板的单元组成基本相同,仅具体电路中存在着差异。一般

2、可以把其组成分为七部分:FPGA主芯片、PROM存储芯片、电源电路、全局时钟发生电路、JTAG接口电路、下载模式选择电路和接口引出插针。以该最小系统板作为控制核心,外加所需的接口电路就可以实现各种设计。1.5 主控CPU选型主控CPU相当与人的心脏,整个系统运行的快慢与它有直接关系,常见的嵌入式处理器有单片机、ARM、DSP等,它们都有各自的特点,运用的场合各有不同,设计的难度也不一样。主控CPU的选择是一个综合的过程,在选择时它必须有以下特点:1.CPU运算速度快,不能拖慢整个系统采集的效率。2.CPU内嵌LCD控制器可以驱动TFT-LCD,利于降低系统设计难度。3.所选处理器比较常见,在其

3、他设计中有广泛应用,便于代码移植,简化设计。4.基于此CPU的开发板购买方便,价格便宜,代码丰富。第二章 数据采集与触发电路设计2.1 前端采集电路设计2.1.1 AD前端调理电路前端调理电路目的就是将被测信号调理到AD9480模拟输入的电压范围。被测信号经过前端阻抗变换网络之后,进入后级运算放大器,后级选择高阻抗低噪声运算放大器ADA4817,输入阻抗高达500G。下图2-1为AD8351单端转差分的典型电路:图2-1 AD8351单端转差分的典型电路下图2-2为AD9480功能模块图:图2-2 AD9480功能模块图2.1.2 FPGA数据采集设计中使用FPGA内部的RAM来缓冲AD输出的

4、数据,EP3C25内部的RAM资源总共有608Kbits,使用这些内部的RAM作为数据缓冲单元,既可以节约成本,又可以提高硬件采集的性能。使用FPGA内部的RAM资源,设计中可以非常容易的构建前端数据缓冲所需要的双口RAM或者FIFO。下图2-3为典型的双口RAM模块图。2-3 典型的双口RAM模块图2.2 触发电路与触发控制为了保证采集数据的稳定,一般的数据采集系统中都会有触发电路,它能提供了一个稳定的触发相位点,使得重构的波形能够在上位机的显示屏上稳定显示,还保证我们能观测的感兴趣的波形。2.2.1 触发分析触发的目的是同步,触发的过程是比较。图2-4 基本的触发结构图2.2.2 触发控制

5、典型的触发信号为比较器输出的脉冲信号,触发控制是根据触发脉冲的起始位置,采集起始位置之后的一帧数据,由于每一次触发信号产生时,采集的数据都是在一个固定的值,因此将每次触发后的512个数据点组合为一帧,在显示上就会出现一个稳定的数据波形。整个控制和实现上述功能的过程就是触发控制。2.4 SDRAM控制器设计2.4.1 SDRAM控制器结构图2-5 SDRAM控制器系统结构1.控制接口模块图2-6 接口模块的结构图第三章 各芯片间的数据传输与处理3.1 采集卡各芯片速度等级的划分和数据流向按照整个系统各部分的速度,我们将系统简单的划分为三个速度等级,不管是程序设计还是PCB设计都要充分的考虑到各个

6、速度等级的特点,才能设计出合理可靠的系统,具体划分情况如下图3-1所示:图3-1 系统速度等级划分图为了提高采集、存储和显示的效率,根据各个芯片的特点,运用了下面几种处理方式来提高效率:1.在FPGA中构建一个多缓冲单元的乒乓机制采集模块,提高FPGA采集的效率,并降低了中间级传输的速度,利于中间级的数据处理。2.在中间级FPGA与后端ARM之间的通信中,使用DMA模式,大大提高了数据传输的速率,并解放了ARM,使其可以从容的进行数据处理和显示工作。3.在ARM接收数据后对采集的数据帧进行控制,保证数据传输的可靠性和正确性。3.2 ARM与FPGA通信在数据采集卡中ARM主要负责数据显示和数据

7、分析,处理的速度处于MS级;而FPGA在系统中处于数据的高速采集和高速处理,处理的速度是ns级。两个处理器的之间的数据传输属于典型的异步数据通信,它们之间通信的速度之间决定了系统处理数据的效率。FPGA与ARM之间属于大量数据交换,以异步并行读取的方式为例介绍ARM与FPGA的通信,实际设计中使用DMA方式来实现ARM与FPGA之间的大数据量通信。3.2.1 ARM存储系统分析S3C2410A存储控制器提供访问外部存储器所需要的存储器控制信号。S3C2410A支持大、小端模式,将存储空间分为8个组(Bank),每组大小是128M,共计1GB,如图3-2所示。3.3 数据的模拟输出3.3.1 模

8、拟输出电路设计模拟输出部分是由AD9707、低电压异或门76VX86和运放ADA4899组成。测试时可以通过跳线J1选择AD9707的工作模式,J1选择高电平时为PIN模式,低电平时为SPI模式,出现高电平脉冲时复位内部寄存器。电路图中AD9707的输入时钟选择差分时钟, AD9707输出选择单端输出,正向输出端IOUTA与ADA4899的反相输入端相连,反向输出端IOUTB接地,内部基准电压源REFIO与ADA4899的同相输入端相连。运算放大器ADA4899将AD9707单端输出的电流变化转换为电压变化,外部使用内部基准电压源时REFIO引脚需用一个0.1F电容接地。基本的硬件电路图如下图

9、3-3所示:图3-3 AD9707基本外围电路3.3.2 AD9707内部寄存器配置在AD9707测试之前必须按照外围电路的设计配置好AD9707工作的状态。3.3.3 使用ARM和FPGA分别配置AD97071使用ARM配置AD9707内部寄存器S3C2410具有两个SPI接口模块,每个模块分别具有两个8位移位寄存器用来接收和发送数据。数据的接收(串行移入)和发送(串行移出)是同时进行的。串行数据的速率由相应的寄存器设定。其时序很简单,主要是在CLK的控制下,两个双向移位寄存器进行数据交换。SPI接口发送数据的程序流程图如下图3-4所示:图3-4 SPI数据发送程序流程图使用S3C2410的

10、SPI端口0来配置AD9707内部寄存器的主程序如下:void Spi_MS_poll(void) int i; S16 a2=0x0080,0x0200;/地址0x00的数据为0x80;地址0x02的数据为0x00 for(i=0;i2;i+) /通过两次赋值 SPI_Port_Init(0);/SPI端口初始化 rSPPRE0=0x0; /设置波特率SCLK为20MrSPCON0=(05)|(14)|(13)|(12)|(01)|(00);/设置SPI端口为polling模式,时钟使能,SPI为主控模式 rSPPIN0=(02)|(1/禁止多主控错误检测使能,主机输出后释放MOSIif(r

11、SPSTA0&0x1) /检查SPI0的状态 rSPTDAT0=ai; i+; /发送数据,准备下一次发送数据 5)|(0/设置SPI端口为Polling模式,禁止SCK, 选择主控模式 使用ARM的SPI接口可以很方便的配置AD9707,但是在测试电路板上ARM离AD9707较远,走线比较长,布线时比较复杂,导致测试时不得不使用飞线。为了解决布线困难的问题,我们采用FPGA模拟SPI接口配置AD9707内部寄存器。2.使用FPGA配置AD9707内部寄存器FPGA的使用非常灵活,同一片FPGA通过不同的程序可以产生不同的电路功能。下面就是使用VHDL语言编写一个SPI控制器,来发送配置数据给

12、AD9707。根据图4-7中的写入时序编写程序17 18 19 20,具体代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SPI IS GENERIC(DATA:STD_LOGIC_VECTOR(11 DOWNTO 0):=110101101011);-配置数据PORT(SCLK:IN STD_LOGIC; CSB, SDIO: OUT STD_LOGIC);END SPI;ARCHITECTURE BEHAVE OF SPI IS SIGNAL COUNT : STD_L

13、OGIC_VECTOR(3 DOWNTO 0); SIGNAL REG : STD_LOGIC_VECTOR(11 DOWNTO 0); SIGNAL X : STD_LOGIC;BEGIN PROCESS(SCLK,X) -产生片选信号CSB BEGIN END PROCESS; PROCESS(SCLK) -从SDO串行发送配置数据 IF(SCLKEVENT AND SCLK=1)THEN IF(COUNT=0001)THEN REG=DATA; ELSE REG=REG (10 DOWNTO 0) & 0; END IF; SDIO =REG (11);END BEHAVE;程序编译仿真

14、后得到的时序图如下图4-9所示,整个程序综合之后仅占用4个逻辑单元,使用类属参数定义配置数据,方便用户按照自己的设计随意修改。图4-9 FPGA模拟SPI接口发送数据的时序仿真图第四章 实验报告总结 经过三个星期的实习,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈测绘为我们的社会付出。我想说,测绘确实有些辛苦,但苦中也有乐,在如今物欲很流的世界,很少有机会能与大自然

15、亲密接触,但我们可以,而且测绘也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的实习,我感觉我和同学们之间的距离更加近了;我想说,测绘确实很累,但当我们所测的数据制成成果时,心中也不免产生兴奋; 正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这有什么不好?我不断的反问自己。也许有人不喜欢野外的工作也许有人认为测绘的工作环境不好,但我认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我决定沿着自己的测绘路,执着的走下去。 对我而

16、言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆! 参考文献1周林,殷侠等编著.数据采集与分析技术M.西安:西安电子科技大学出版社,20052吴继华,王诚编著.Altera FPGA/CPLD设计(基础篇)M.北京:人民邮电出版社,20053王彦主编.基于FPGA的工程设计与应用M.西安:西安电子科技大学出版社,20074范书瑞,赵燕飞,高铁成编著.ARM处理器与C语言开发应用M.北京:北京航空航天大学出版社,20085吴继华,王诚编著.Altera FPGA/CPLD设计(高级篇)M.北京:6 唐彬,徐强,王莉薇编著.

17、数字IC设计方法、技巧与实践. 北京:机械工业出版社,20067美Steve Kilts著,孟宪元译。高级FPGA设计结构、实现和优化M. 北京:机械工业出版社,20098日桑野雅彦著.王庆译.存储器IC的应用技巧. 北京:科学出版社,2006附录1 ARM外围电路图1 ARM供电图2 LCD接口图3 JTAG电路图4 全局复位电路附录2 FPGA外围电路图1 FPGA电源供电图2 AS配置电路图3 配置方式选择电路图5 SDRAM电路附录4 ARM读取显示程序void Lcd640480(void) volatile U16 *port=(U16 *)0x20000000;/bank4起始地

18、址为0x20000000 U16 i,n,x,y,l,k=0,d512; U8 a512; rBWSCON=rBWSCON & (0xf16)|(BUS1616)|(ENWAIT18); /bank4数据位宽度设置 rBANKCON4=(B4_Tacs13)+(B4_Tcos11)+(B4_Tacc8)+(B4_Tcoh6)+(B4_Tah4)+(B4_Tacp2)+(B4_PMC); /bank4读写时序控制5;i+); /等待bank4配置有效 Lcd_Port_Init(); Lcd_Init(MODE_TFT_16BIT_640480); Glib_Init(MODE_TFT_16BI

19、T_640480); Lcd_PowerEnable(0, 1); Lcd_EnvidOnOff(1); Uart_Printf(TFT 64K COLOR(16bit/1pixel) LCD TESTn gui(); for(n=0;n512;n+=1)/读取512个数据点 an = *port; *port+;i+=1)%d ,ai);/在串口调试助手上显示512点的数据 for(l=12;ll+) x=20+l-12; y=al; PutPixel(x,y,YELLOW); MoveViewPort(MODE_TFT_16BIT_640480); Lcd_MoveViewPort(0,0,MODE_TFT_16BIT_640480); Lcd_EnvidOnOff(0); Lcd_Port_Return();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1