您的位置 首页 被动

根据NIOS处理器完成A/D数据收集电路的操控接口逻辑设计

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

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。

依据NIOS处理器完结A/D数据收集电路的操控接口逻辑规划


由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数据收集接口操控模块的原理图。

图4 A/D数据收集操控模块原理图

其间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,因而操控信号发生逻辑单元满足要求。

图5 操控信号时序仿真

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

图6 根本从端口读传输

在AVALON总线中界说了两种类型的信号,一种是高电平有用,另一种是低电平有用。在本规划中选用的是高电平有用的类型。图6是低电平有用的总线信号,与之对应的高电平有用的总线信号时序图中,read在有用时为高电平对应于图6中的readn的低电平部分。而address,be-n和chipselect在此能够不与考虑,添加到AVALON总线时,体系会自动处理其衔接问题。

当体系不读取A/D转化的数据时,收集的数据由数据处理单元操控处理。数据处理单元完结了对外部信号量的反常检测即,当外部信号的幅值超出设定规模时,该单元发生一个中止信号,告诉CPU采纳相关处理办法,不然,在FIFO满的时分,将其内容清空。

结语

经测验,本规划能够不间断无数据丢掉的进行数据收集,CPU能够自动的读取数据,也能够在数据处理单元检测到外部反常信号时被迫的获取数据,而且CPU读取数据的操作极端简略,运行时只占用很少的CPU资源,在此,谨期望本文能在怎么规划NIOS体系外设方面给读者以参阅学习。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/98030.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部