API数据接口的设计与应用(提升数据接口的效率和安全性)
261
2022-11-06
基于NIOS处理器实现A/D数据采集电路的控制接口逻辑设计
设计方案
通过对系统需求进行仔细分析,此模块的功能设计可分为数据采集控制逻辑、数据接口、数据处理逻辑三部分,其整体功能框架图如图1。
说明:AVALON总线主要是用于连接片内处理器与外设,以构成可编程单芯片系统。
功能描述
数据采集控制逻辑:产生A/D转换需要的控制信号。
数据接口:提供一个外部A/D采集的数据流向AVALON总线的数据通道,主要是完成速度匹配,接口时序转换。
数据处理单元:此部分主要是提供一些附加功能,如检测外部信号或内部其它单元的工作状态,进行简单信息处理。
设计分析
数据采集控制逻辑
由ADC0804的时序可知,转换过程由一个写信号启动,转换完成后,输出INTR信号,此时可以读取数据。之后即可
进入下一个转换周期。由ADC0804的转换时间可知,其最大采集频率为10KHz,只要用户设置的采样频率不超过这个数值,ADC0804就可以正常的工作。因此设计时要注意两点:①写信号的频率要低于ADC0804的最大转换频率;②在写信号之后至少要有100ms的时延,才能输出读信号。
在此,提出两种方法来实现ADC0804的控制信号时序:①主动模式—控制电路启动A/D转换后,在INTR信号的作用下,输出读信号,同时从ADC0804的数据总线上读入数据,之后输出一个写信号,开始下一次转换。②被动模式—ADC0804的读写信号完全由控制电路按照固定的时序产生,与其自身输出无关。
数据接口
设计实现
图4为在Quartus-II中设计实现的ADC0804数据采集接口控制模块的原理图。
图4 A/D数据采集控制模块原理图
当系统加电后,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满的时候,将其内容清空。
结语
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~