基于SOPC技术的多通道实时温度采集系统
2.4 FPGA逻辑控制模块
基于FPGA的采集控制单元,采用自顶而下的模块化设计方法,使用Verilog HDL语言完成各控制模块的设计。FPGA逻辑控制模块包括A/D采样控制模块、FIFO读写控制模块和SPC3控制模块。
2.4.1 A/D采样控制模块
A/D采样控制模块负责控制外部ADS8402芯片多路模拟输入量的选通,并实现对A/D采样过程的合理控制。
由于ADS8402对16通道的模拟量采取分时转换的方式,因此在启动转换的同时还要进行通道选择。ADS8402设置了4根通道地址线A0、A1、A2、A3,以及地址锁存允许信号ALE.当ALE变高时,锁存由A0、A1、A2、A3编码所确定的通道号,将该通道的模拟量接入A/D转换器进行转换。依据这样的特性,设计一个带复位端的十六进制计数器,其计数输出端Q3、Q2、Q1、Q0分别与ADS8402的4根地址线相连。计数器上电复位以确保系统从0号通道开始采样。将ADS8402的转换结束信号EOC作为计数器的时钟信号,实现一路转换结束后自动启动对下一路模拟输入的采样控制。
图2 ADS8402采样控制状态转换图
A/D采样过程的控制采用有限状态机来实现,把某一通道的采样过程划分为7个状态,如图2所示。首先S0状态对各个控制信号进行初始化。在S1状态产生ALE信号的上升沿,锁存通道地址。启动信号START应在产生ALE信号的同一时钟下降沿产生,由于VHDL语言在同一进程内不允许时钟的两个沿作为敏感变量,所以将产生START信号单列为一个状态S2,启动转换。在启动转换后,ADS8402使EOC置为低电平,设置S3状态等待A/D转换结束。转换结束后,EOC信号由低电平转换为高电平,状态机进入S4状态,开启输出允许OE.状态机进入S5状态,开启数据锁存信号LOCK锁存数据。为产生与其他进程通信的信号,状态机设置S6作为最后一个状态,然后跳转回SO初始状态。
2.4.2 FIFO读写控制模块
采用2片FIFO轮流读写操作,实现FPGA与PC机之间的数据缓存。乒乓传输控制原理示意图如图3所示,图中的实线箭头与虚线箭头分别代表不同的读写数据周期。输入数据流通过输入数据流选择单元,等时地将数据流分配到FIFO1、FIFO2中。在第1个缓冲周期,将输入的数据流缓存到FIFO1.在第2个缓冲周期,通过输入数据流选择单元的切换,将输入的数据流缓存到FIFO2,与此同时,将FIFO1缓存的第1个周期的数据通过输出数据流选择单元的选择,送到数据流运算处理模块被运算处理。在第3个缓冲周期,通过输入数据流选择单元的再次切换,将输入的数据流缓存到FIFO1,与此同时,将FIFO2缓存的第2个周期的数据通过输出数据流选择单元的切换,送到数据流运算处理模块被运算处理。如此循环,周而复始。
图3 FIFO乒乓传输控制原理
2.4.3 SPC3控制模块
由于SPC3集成了完整的DP协议,因此在进行通信时,FPGA不用参与处理DP状态机。主要任务是根据SPC3产生的中断,将SPC3接收到的数据转存,组织要通过SPC3发给的数据,并根据要求组织外部诊断。在SPC3正常工作之前,需要进行初始化,以配置需要的寄存器,包括设置协议芯片的中断允许,写入从站识别号和地址,设置SPC3方式寄存器,设置诊断缓冲区,配置缓冲区、地址缓冲区、初始化长度,并根据以上初始值得出各个缓冲区的指针和辅助缓冲区的指针。通信模块的控制流程如图4所示。
图4 通信模块控制流程
图片新闻
最新活动更多
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
11月29日立即预约>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.5立即观看>> 松下新能源中国布局:锂一次电池新品介绍
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论