一种基于FPGA的新型数字电压表研究与设计
3.2 档位转换电路
为了增加数字电压表的测量范围,设计了档位选择电路。采用精密电阻分压方法,简洁实用。ADC0809有8路数据输入端口,原理上可以分为8个档位。从实用性出发,只分了两档,如图5所示。图5中电位器负责电阻校准。尽管采用精密电阻,各电阻值的制造误差不可避免,用电位器来微调校准以保证测量精度。ADC0809的输入范围为0~5 V,档位的切换是通过程序来控制ADC0809各个通道的选通来自动实现。只要输入的电压范围超过5 V,则档位自动切换到另一档,即选通通道INl。
当输入电压范围为O~5 V时,INO导通。此时U=U26,当输入电压范围为5~50 V时,FPGA判断选择档位,INl导通。此时有U=U27即U=(R1+R3)/(R1+R2+R3)=U26/10。
由于ADC0809数字量输出为8位,数字量化范围为0~255,当输入电压为满量程5 V时,转换电路对输入电压的分辨能力为:
3.3 FPGA内部模块设计
(1)码制转换模块。在此码制变换模块DATA_CONVERSION功能是将AD0809采样送来的8位二进制数转换为可被LCD识别的字符型LCD码。首先,将8位二进制码变换为BCD码;然后,再分别进行转换,得到字符型码,并送入译码显示模块。
(2)译码驱动模块。数字电压值的显示由LCD实现。选用了HY系列字符型液晶显示模块HD44780。实现了低功耗,而且可带单位双排显示,字体美观大方。
整个电路十分简洁。系统工作过程:FPGA芯片EP2C5T144对ADC0809及LCD进行初始化。当有输入信号Vi时,由FPGA向ADC0809传送控制信号控制字,使其对输入的模拟信号进行转换,变为8位的数字信号并送到输出端。由FPGA经过码制变换等处理后,再通过LCD的接口驱动,向其发送数据。当ADC0809采样完成后,FPGA中的码字转换模块将数据转换为LCD可识别的字符型数据,然后送至驱动模块,由其驱动LCD,将字符型数据送到LCD的DO~D7端,实现显示。
4 关键算法实现
4.1 档位自动切换算法
将数字电压表分为两个档位,分别是0~5 V,0~50 V。档位切换算法如下:
设定初始量程为0~5 V。采集100个数据点,对输入信号Vi的采样值取绝对值的最大值,将其作为Vi的最大值的估计值。如果Vi的最大绝对值估计值小于5 V,则将档位切换到O~5 V,否则,切换到0~50 V。
评论