在NIOS-II系统中A/D数据采集接口的设计

2008-04-14 17:09:25编辑:ssb 关键字:NIOS-II  时序转换  速度匹配  速率匹配  clk  chipselect  re

  在FPGA系统中,实现对外部A/D数据采集电路的控制接口逻辑,由于其逻辑功能不是很复杂,因此可采用自定义的方式。采用这种方法进行设计有两种途径。①从软件上去实现。这种方案将NIOS处理器作为一个主控制器,通过编写程序来控制数据转换电路。由于NIOS处理器的工作频率相对于外部设备来说要高出许多,故此种方法会造成CPU资源极大的浪费;②用FPGA 的逻辑资源来实现A/D采集电路的控制逻辑。FPGA有着丰富的逻辑资源和接口资源,在其中实现并行的数据采集很少会受到硬件资源的限制,在功能上,设计的接口控制逻辑相当于一个主控制器,它是针对具体的外部电路而实现的,容易满足要求、又能节约资源,提高系统性能。因此,采用硬件逻辑去实现控制将是一种较好的方式。

  设计方案

  通过对系统需求进行仔细分析,此模块的功能设计可分为数据采集控制逻辑、数据接口、数据处理逻辑三部分,其整体功能框架图如图1。

  

  

  说明:AVALON总线主要是用于连接片内处理器与外设,以构成可编程单芯片系统。

  功能描述

  *数据采集控制逻辑:产生A/D转换需要的控制信号。

  *数据接口:提供一个外部A/D采集的数据流向AVALON总线的数据通道,主要是完成速度匹配,接口时序转换

  *数据处理单元:此部分主要是提供一些附加功能,如检测外部信号或内部其它单元的工作状态,进行简单信息处理。

  设计分析

  数据采集控制逻辑

  在此以典型的模数转换芯片ADC0804为例,进行电路设计,ADC0804的数据宽度为8位,数据转换时间最快为100ms,转换时钟信号可以由内部施密特电路和外接RC电路构成的震荡器产生,也可以直接由外部输入,其频率范围:100KHz~1460KHz。在本设计中ADC0804的时钟为最大输入频率,控制信号时序如图2。

  

  

  由ADC0804的时序可知,转换过程由一个写信号启动,转换完成后,输出INTR信号,此时可以读取数据。之后即可进入下一个转换周期。由ADC0804的转换时间可知,其最大采集频率为10KHz,只要用户设置的采样频率不超过这个数值,ADC0804就可以正常的工作。因此设计时要注意两点:①写信号的频率要低于ADC0804的最大转换频率;②在写信号之后至少要有100ms的时延,才能输出读信号。

  在此,提出两种方法来实现ADC0804的控制信号时序:①主动模式—控制电路启动A/D转换后,在INTR信号的作用下,输出读信号,同时从ADC0804的数据总线上读入数据,之后输出一个写信号,开始下一次转换。②被动模式—ADC0804的读写信号完全由控制电路按照固定的时序产生,与其自身输出无关。

  数据接口

  相对于AVALON总线信号来说,A/D采样的速率非常低,而且,AVALON总线的接口信号和ADC0804数据输出的接口信号时序不一致。因此,要实现满足要求的数据通道,要做到两点:①数据缓冲,实现速率匹配;②信号隔离,实现接口时序的转换。解决这两点,可以将两端口通过一个异步的FIFO连接,该FIFO应该是可以在不同的时钟信号下进行异步的读写。这样的一个FIFO的实现可以在Quartus-II里面用ALTERA公司提供的FIFO Core进行定制。在本设计中,定制的FIFO模块如图3。

  

  

  设计实现

  图4为在Quartus-II中设计实现的ADC0804数据采集接口控制模块的原理图。

  

  

  其中read、readdata、reset、irq分别与AVALON总线相同命名的信号线相连,readclk与AVALON总线中clk相连, AD_50与FPGA的系统时钟相连,wr_n、rd_n、writedata分别与ADC0804的写信号线、读信号线、数据线相连。ADC0804控制信号产生单元的实现,采用的是上文提到的被动模式,该单元以固定的时序产生读写信号,本设计使用的采样频率约为3200Hz,此频率可以根据用户的需要而设定( 不大于10KHz即可)。

  当系统加电后,wr_n输出一个有效的写信号启动A/D转换,经过足够的时间后(T=327μs~328μs),输出读信号,此时数据接口单元的写允许信号wr_fifo变为有效,同时外部A/D转换器的读允许信号也变为有效,此后ADC0804的数据端口上输出有效数据,在wr_clk的上升沿将A/D转换器的数据读入FIFO。控制逻辑单元的时序仿真图如图5。

  由图5可知,wr_fifo有效时,ADC0804必须在wr_clk的上升沿到来之前在其数据端口输出有效的数据。由于wr_clk的周期为1ms,ADC0804的输出锁存由其读引脚rd控制,rd变为有效即可输出有效的数据,故只要ADC0804的读信号rd在外部输入的作用下变为有效的时间不超过500ns,读操作就不会出现问题。ADC0804的rd信号三态延时最大为200ns,典型值为125ns,因此控制信号产生逻辑单元满足要求。

  

  

  当NIOS系统需要读取数据时,在read和readclk上出现的是系统AVALON总线上的读时序。时序图如图6。

  

  

  在AVALON总线中定义了两种类型的信号,一种是高电平有效,另一种是低电平有效。在本设计中选用的是高电平有效的类型。图6是低电平有效的总线信号,与之对应的高电平有效的总线信号时序图中,read在有效时为高电平对应于图6中的readn的低电平部分。而address,be-n和chipselect在此可以不与考虑,添加到AVALON总线时,系统会自动处理其连接问题。

  当系统不读取A/D转换的数据时,采集的数据由数据处理单元控制处理。数据处理单元实现了对外部信号量的异常检测,即,当外部信号的幅值超出设定范围时,该单元产生一个中断信号,通知CPU采取相关处理措施,否则,在FIFO满的时候,将其内容清空。

  

  结语

  经测试,本设计可以不间断无数据丢失的进行数据采集,CPU可以主动的读取数据,也可以在数据处理单元检测到外部异常信号时被动的获取数据,并且CPU读取数据的操作极其简单,运行时只占用很少的CPU资源,在此,谨希望本文能在如何设计NIOS系统外设方面给读者以参考借鉴。

 

关键字:NIOS-II  时序转换  速度匹配  速率匹配  clk  chipselect  re

来源: 中国测控网 引用地址:http://www.eeworld.com.cn/gykz/2008/0414/article_770.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于VXI总线的HT-7U数据采集控制系统
下一篇:光网络组网技术对比分析

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于Nios II的RTEMS嵌入式开发模式的搭建

航空航天、军工,还是民用领域RTEMS都有着极为广泛的应用。Nios II由美国Altera公司推出的基于Nios的第二代32位RISC软核,基于FPGA平台,其性能可达200MIPS,是一款可定制的高性能嵌入式软核,配合Altera官方提供的开发者套件,嵌入式工程师可以快捷、高效的进行硬件、软件的开发。2.基于Nios II的SOPC开发环境2.1 Altera SOPC BuilderSOPC Builder是一个全自动的SOPC硬件开发环境,设计者可以通过Altera提供的IP宏选择适合自己应用的外围功能模块,并进行内存基地址的分配、中断请求线和内部总线的适配。与此同时,还可以通过HDL文件来自定义外设模块,比如DM9000A
发表于 2014-03-29 22:16:18
基于Nios II的RTEMS嵌入式开发模式的搭建

基于Nios II的数字音频录放系统的设计

前言         SOPC( System On Programmable Chip)技术是SOC( System On Chip)技术和电子设计自动化(EDA)技术结合的产物。它可以将处理器、存储器、I/O接口、硬件协处理器和普通的用户逻辑等系统设计需要的功能模块都集成到一个FPGA 芯片里, 构建一个可编程的片上系统[1]。它还具有灵活的设计方式,可裁减、可扩充、可升级,具备系统可编程等功能,是一种优秀的嵌入式系统设计技术[2]。本文研究了一种基于SOPC技术的嵌入式数字音频录放系统的设计方案。系统通过在FPGA芯片上配置NiosII软核处理器和相关
发表于 2013-06-09 20:59:21
基于Nios II的数字音频录放系统的设计

在20分钟内建立一个NIOS II开发环境的方法

一、 软件安装1. 首先,安装NIOS II 开发包。采用虚拟光驱软件,如DAEMON 等将NIOS II V1.0 BUILD316E.ISO 文件映射到虚拟光驱上;点击光驱图标,会自动运行安装程序 选择第一个选项,Install;选择 Next 按钮;询问是否接收协议的时候,选择 Yes,下一个也按Yes,继续; 如果是初学者,最后一个选项可以不选, Examples 可以选择自己熟悉的语言,其他选项建议都选上; 选择 QuartusII 的安装目录,如果不是C:盘,那么从Browse 选项中指定。如e:alterakits ios2;接下来是选择一个程序组,一般情况按 Next 就可以了;开始
发表于 2012-03-20 12:30:19
在20分钟内建立一个NIOS II开发环境的方法

论NIOS-II系统中A/D数据采集接口的设计与实现

  在FPGA系统中,实现对外部A/D数据采集电路的控制接口逻辑,由于其逻辑功能不是很复杂,因此可采用自定义的方式。采用这种方法进行设计有两种途径。①从软件上去实现。这种方案将NIOS处理器作为一个主控制器,通过编写程序来控制数据转换电路。由于NIOS处理器的工作频率相对于外部设备来说要高出许多,故此种方法会造成CPU资源极大的浪费;②用FPGA 的逻辑资源来实现A/D采集电路的控制逻辑。FPGA有着丰富的逻辑资源和接口资源,在其中实现并行的数据采集很少会受到硬件资源的限制,在功能上,设计的接口控制逻辑相当于一个主控制器,它是针对具体的外部电路而实现的,容易满足要求、又能节约资源,提高系统性能。因此,采用硬件逻辑去实现控制将是一种
发表于 2012-02-24 15:54:22
论NIOS-II系统中A/D数据采集接口的设计与实现

在NIOS-II系统中A/D数据采集接口的设计与实现

  在FPGA系统中,实现对外部A/D数据采集电路的控制接口逻辑,由于其逻辑功能不是很复杂,因此可采用自定义的方式。采用这种方法进行设计有两种途径。①从软件上去实现。这种方案将NIOS处理器作为一个主控制器,通过编写程序来控制数据转换电路。由于NIOS处理器的工作频率相对于外部设备来说要高出许多,故此种方法会造成CPU资源极大的浪费;②用FPGA 的逻辑资源来实现A/D采集电路的控制逻辑。FPGA有着丰富的逻辑资源和接口资源,在其中实现并行的数据采集很少会受到硬件资源的限制,在功能上,设计的接口控制逻辑相当于一个主控制器,它是针对具体的外部电路而实现的,容易满足要求、又能节约资源,提高系统性能。因此,采用硬件逻辑去实现控制将是一种
发表于 2012-02-15 09:20:58
在NIOS-II系统中A/D数据采集接口的设计与实现

基于NiosII的USB接口模块设计

1.  引言   随着电路规模越来越大,片上系统(SoC)已经成为IC设计的发展趋势,相应地也有了更加灵活的片上可编程系统(SOPC)。Nios II CPU是一个基于流水线设计的通用RISC微处理器,拥有五级流水线和指令与数据内存分开的哈佛结构,具有可配置功能。用户可以根据需求在SOPC Builder中增减IP核,从而实现资源优化。为了构建一个更简洁高效的片上系统,用户可以自行开发IP组件,作为用户自定义逻辑添加到AVALON总线[1]。AVALON总线是一种结构相对简单的总线,用于连接Nios II和其他外设。它规定了主从部件间的端口连接关系,以及部件间通信的时序关系。   AVALON总线拥有
发表于 2012-02-08 09:33:50
基于NiosII的USB接口模块设计

小广播

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