基于CPLD的多定标器计数系统的设计
多定标器(MCS)是一种测量脉冲计数率随时间变化的仪器,常用于测量放射性核素的衰变曲线,核反应堆的动态特性和穆斯堡尔效应等。它的测量方式是按时间顺序测量各段时间间隔内的脉冲计数,并将计数值依次记录在存储单元内,数据获取方式就如同多个定标器在各段时间内进行计数测量[1]。我们设计了一种多定标器,利用单片机为主控器件,由CPLD对脉冲信号进行计数,并将计数值以FAT32文件格式存储到SD卡中。采样结束后,由PC机读取SD卡中的数据并进一步处理。该多定标器最小间隔时间为3μs;在两个时间道之间没有死时间、无漏计数和无重复计数;由于采用SD储存卡,道数高达数百兆。在CPLD计数系统设计过程中,我们曾采用LPM(Library ofParameterized Modules)宏功能块二进制计数器,但是测试发现数据出错概率在0.3%左右(信号源为10MHz)。改用格雷码计数器,很好地解决了数据出错的问题。
1 计数系统的总体设计
计数系统采用CPLD设计,由单片机配合读取计数值。在CPLD设计中,Clk时钟分频产生3μs定时周期的采样控制信号,控制锁存8位格雷码计数器的数值,同时触发Ready逻辑电路产生有效的Ready信号。锁存器锁存的格雷码被转换成对应的二进制码。单片机接收到有效的Ready信号后,由读操作RD控制,读取Data数据,同时也触发Ready逻辑电路使Ready信号恢复为无效,为读取下一个数据做好准备。CPLD设计结构如图1所示。
2 格雷码计数器的设计
2·1 格雷码计数原理
格雷码是一种错误最小化的编码方式,具有反射和循环等特性。从表1可以看出,格雷码的优点在于两个相邻码组之间只改变一位[2],而二进制码却出现一位或多位发生变化。在CPLD中信号的变化过程具有不同的延时时间,这一点从开发环境QuartusII的延时时序分析中可以得知。二进制计数器计数过程中,多位信号发生变化,存在着不同的延时时间。如果3μs定时周期的采样控制恰好在计数变化过程中锁存数据,这时有的计数位已经发生了改变,有的计数位还没有来得及变化,所以锁定的数据会不确定,有可能出错。这就是我们曾使用的LPM计数器读取数据出错的原因。定时采样控制信号与计数变化同时发生的概率虽然不大,但是在我们读取的几百兆数据中就能遇到,我们统计了数据出错的概率约为0.3%(信号源为10MHz)。
格雷码计数器计数时,只有一位计数位变化,定时采样的控制信号到来时,要么这位已经变化,要么还没有变化,前者计数值保存不变,后者计数值加1,这与正常计数相一致。由此可见读取格雷码计数值时,是不会出现错误数据的。
2·2 格雷码到二进制码的转换
相关文章
- 2023-07-20光栅投影轮廓测量的系统标定技术
- 2023-12-10吸收式制冷循环系统的热力学分析
- 2023-11-19轴类零件的高精度形状误差检测方法研究
- 2023-03-09铜氨液流量测量的改进
- 2023-12-14浅谈减压阀的结构设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。