基于FPGA的高精度频率线性F/V转换系统设计
摘要 设计了一种线性F/V转换系统。传感器输出的脉冲频率信号经信号调理电路调理后输入FPGA,FPGA测量脉冲信号的频率,根据系统精度要求,需设计Q格式定点运算,测得的频率经FPGA定点运算后得到与频率大小成线性关系的D/A转换的数字量,控制串行DAC7551输出相应的电压值。实验结果表明,系统的转换精度优于0.1%,改变系统的设计参数可实现更高精度的频率信号到电压信号的转换。
关键词 F/V转换;精度;FPGA;Q8定点运算;DAC7551
脉冲型流量传感器是流量仪表中一类主要的流量传感器,如涡轮流量传感器、涡街流量传感器、远传型容积式流量计等。这类传感器需将被测参数转化为电模拟量显示出来。频率电压转换器作为一种功能器件,在测量仪器、自动控制、遥感遥测以及信号传输各个领域都有着广泛的应用。传统的F/V转换器多采用模拟电路或单片机实现。采用模拟电路设计的F/V转换器多采用如LM331、AD650等实现频率信号到电压信号的转换,设计的系统具有转换精度不高、待测频率范围固定、误差较大的缺点;单片机设计的F/V转换系统虽然有一定程度的改善,但由于自身测频基准时钟频率的限制,仍然无法满足高精度转换的要求。本文根据系统要求:流量传感器输出的脉冲信号频率范围10~3 000 Hz,输出模拟电压信号范围0~5 V,精度优于0.1%。采用FPGA实现脉冲信号频率的测量,设计的系统满足要求。
1 系统分析
F/V转换的误差主要存在于计数测量信号周期时的误差、运算时的截位误差和D/A变换器的量化误差等。
首先考虑测量周期的误差:选择最大频率信号3 000 Hz,其周期为333.3μs,0.1%误差是333.3 ns。选用12 MHz时钟作为时基信号,周期测量误差为83.33 ns,对应83.33×5×0.1%/333.33=1.3 mV,误差余量为3.7 mV。
M位D/A转换器的误差为5 000/2(M+1)mV,所以M只需>10位就可以满足精度要求,考虑到D/A自身的误差,可以选择12位以上且INL<1 LSB的D/A,以保证转换精度。
输入的频率信号最小为10 Hz,所以最大计数值为1 200 000,需要21位长的计数器。
考虑截位误差,使用Matlab仿真,得到使用12 MHz计数频率12位D/A时,需要使用Q8定点运算才能保证系统精度,误差曲线如图1所示。使用Q8格式作定点运算时只需先将数据转换为Q8定点数,然后进行计算,最后将结果转换回一般格式即可(Q格式:小数点位于第n位元之右侧,称为Qn格式)。
2 系统总体结构
系统整体结构如图2所示。FPGA测量经隔离整形后的脉冲信号的频率,经Q8定点运算、截位等处理后得到D/A转换的数字量,D/A输出的电压信号经RC滤波后得到最终与输入脉冲频率大小成线性关系的电压信号。由于流量传感器输出的脉冲信号频率可能会在10~3 000 Hz范围连续变化,不一定是固定值,为保证系统转换精度,利用FPGA计数连续两个待测脉冲上升沿间的时基脉冲个数的方法得到脉冲信号的周期,周期的倒数即为脉冲信号的频率。对固定频率的测量较为简单,本文主要讨论对变化频率的测量,系统可用于对固定频率的测量。由于FPGA对待测脉冲信号的处理时间远小于待测脉冲信号的周期,所以在下一个脉冲到来之前,FPGA已经完成对前一个脉冲的处理。
3 系统电路设计
3.1 信号调理电路
为保障系统对信号源的抗干扰能力,传感器输出的脉冲信号需经光电隔离并整形后再送入FPGA处理。信号调理芯片采用Silicon Labs的低功耗6通道数字隔离器Si8660BD—B—IS,可实现多路信号同时处理,它具有抗电磁干扰能力强、功耗低、隔离电压高、寿命长的特点,且具有施密特整形电路的功能。其内部电路如图3所示,信号调理电路如图4所示。
3.2 D/A转换电路
数模转换器是一种数字和模拟混合信号处理电路。D/A转换芯片采用串行DAC7551,+5 V电源供电,12 bit精度,INL为±0.35 LSB,轨至轨电压输出,输出电压建立时间最大为5μs,输出电阻1Ω,满足系统要求。设计的D/A转换电路如图5所示。
3.3 外部参考电压电路及RC滤波电路
出于对精度及稳定性的要求,希望参考电压源尽量对供电电源电压和工艺参数以及芯片的工作温度是相对独立的。Ref5050为BB公司生产的高精度+5 V输出稳压模块,最大温度漂移为8×10-6/℃,输出最大误差电压为输出总电压的0.1%,输入电压范围为5.2~18 V,输出电流范围为±10 mA,常作为电路中的基准电压源。外部参考电压电路如图6所示。
RC滤波电路较简单,可用电阻电容构成的一阶RC滤波电路即可,在此不再赘述。
3.4 FPGA内部电路结构
FPGA选用Altera公司EP2C5T144C8 芯片,5000LE
F V转换 FPGA Q8定点运算 DAC7551 相关文章:
- VXWORKS内核分析(11-11)
- 关于ntfs和内核问题(11-12)
- 对中国Linux标准战略与战术的思考(11-12)
- VxWorks中怎么从Flash BOOT(11-15)
- 新桌面Linux标准问世促进Linux普及(11-12)
- 在Linux系统中批量建立用户的shell (04-08)