基于fpga的简易电压表设计制药设备
发布时间:2022-08-10 19:15:38 来源:徕富机械网
传统的数字电压表设计通常以大规模(专用集成电路)为核心器件,并辅以少量中规模集成电路及显示器件构成。这种电压表的设计简单、精确度高,但是由于采用了器件使得它欠缺灵活性,其系统功能固定,难以更新扩展。而应用设计的电压表,采用芯片控制通用a/d转换器,可使速度、灵活性大大优于通用数字电压表。、
本文引用地址:
本文采用step-max10m08核心板和step base board v3.0底板来完成简易电压表设计,我们将设计拆分成三个功能模块实现:
adc081s101_driver: 驱动spi接口adc芯片实现模拟电压信号采集。
bin_to_bcd:将二进制数据转换成bcd码的方法。
segment_led:通过驱动独立式数码管将电压数据显示出来。
top-down层次设计
模块结构设计
1. adc介绍
模数转换器即a/d转换器,或简称adc,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。
模拟系统与数字系统结合模型
并行adc和串行adc模型
上图两个都是8位adc模型,分辨率为 2的8次方等于256,即将vref分成256份,能够分辨的模拟步进为vref / 256,量化数据n = 256 * vin / vref 。
并行adc与数字电路接口包含一根clk和8根data管脚,clk为芯片时钟管脚,data为芯片数据管脚,每个clk周期从data管脚采集8bit的数据,完成一次模数转换,所以clk频率等于采样率。
串行adc(以adc081s101为例)与数字电路接口为三根线(cs,clk,din),兼容三线spi总线,cs为芯片使能管脚,clk为芯片时钟管脚,din为芯片数据管脚,当adc芯片使能时每个clk周期从din采集1bit的数据,但是根据adc081s101的时序,需要16个clk完成一次采样,所以clk频率至少等于采样率的16倍。
2. adc模块电路连接
本设计所采用的step base board v3.0底板上的adc模块电路,其电路图如下:
adc模块电路
直接连接adc081s101芯片的控制端,adc有6个管脚,3脚vin为vcc和vref功能复用,即vin = vcc = vref。adc前端是运放电路lmv721,运放模块为电压跟随电路,再往前端是一个跳冒排针,用来选择adc采样信号的来源,当短路帽将1、2脚短路时,adc采集电位计电压,当短路帽将2、3脚短路时,adc采射频端子或p4排针信号。本设计我们是采集旋转编码器的电压,所以需要用短路帽将1、2脚短路。
3. adc模块驱动设计
adc081s101串行通信时序如下图:
注:
1. sclk空闲时为高电平,cpol = 1,上升沿(第二个边沿)采样,cpha = 1,如果例化通用spi核完成设计,需要采用spi的第四种工作模式。
2. cs信号拉低有效,经过16个时钟完成一次adc转换并采样,采样回来的数据前3位无效,接下来为db7~db0(有效数据),再接下来为无效数据。
针对adc081s101时序,我们用verilog设计一个计数器,当计数器值不同时完成不同操作,实现一次adc采样,程序实现如下:
到这我们就完成了串行adc芯片adc081s101的驱动设计,整个采样周期用了35个系统时钟,如果我们采用12mhz时钟作为该模块系统时钟,采样率fs = 12m/35 = 343ksps,adc主频fsclk = 12 mhz /2 = 6mhz。
adc081s101主频及采样率要求如下,按照要求我们当前的主频和采样率不足,所以在使用该模块时,可以使用更高的时钟(比如24mhz)以达到芯片的要求
注:时钟频率fsclk,最小值为10mhz,最大值为20mhz,采样率在500ksps~1msps
模块接口如下:clk和rst_n为系统时钟及复位,adc_cs,adc_clk和adc_dat为adc控制管脚,adc_data为adc采样数据,adc_done产生一个脉冲对应adc_data得到一个有效数据
4. 时钟获取
因为需要更高的时钟供adc模块使用,我们例化pll核得到24mhz时钟,同时例化pll模块和adc081s101_driver模块,并将pll的输出与adc081s101_driver模块的clk连线。
pll模块和adc081s101_driver模块的连接程序实现如下:
5. 采样结果显示
假设adc模拟输入电压为3.3v,理论上我们得到的采样数据adc_data应该为8’hff,而电压表最终显示在数码管上的数据应该为3.3,我们如何将8’hff转换成可以显示的3.3数据呢?这就设计到adc量化数据的逆向运算了。
我们知道量化运算 n = 256 * vin / vref,
那么逆向运算为vin = n * vref / 256,其中vref = 3.3v,所以vin = n * 0.0129
所以我们需要用fpga计算adc_data * 0.0129的结果,然后为了使用十进制的显示,先将结果进行bcd转码,然后显示在数码管上。
将adc采样数据按规则转换为电压数据(乘以0.0129),这里我们直接乘以129,得到的数据经过bcd转码后小数点左移4位即可,程序实现如下:
二进制转bcd码程序实现如下:
最后得到20位的数据输出,每4位表示一个bcd码,所以有5位有效数据,这里我们还需要将小数点左移4位,计算出来的数应该是x.xxxx伏特,1个整数位和4个小数位,核心板上只有两个数码管,取最高的两个bcd码显示到数码管x.x伏特,个位小数点点亮,分位小数点熄灭,程序实现如下:
综合后的设计框图如下:
rtl设计框图
到这一步就完成了基于fpga的简易电压表设计。将程序下载到fpga中,step base board v3.0底板上p3接口的1、2脚短路,旋转底板右上角的电位计,观察核心板数码管变化,也可同时用万用表测量p3短路处的电压,与数码管上的结果对比。
实物图:
-
铁拓机械沥青搅拌设备入驻俄罗斯贝加尔湖畔AV音响昆明二手铣床框架眼镜电机冲片Trp
铁拓机械沥青搅拌设备入驻俄罗斯贝加尔湖畔铁拓机械沥青搅拌设备入驻俄罗斯贝加尔湖畔中国工程机械信息11月初,在俄罗斯乌兰乌德-5℃到-12℃寒冷温度下,铁拓机以汽车的制动进程为例:当我们
04月18日 09:34
-
徐工进军大型隧道机械领域侧铣刀提升机印染助剂婚庆用品丝锥板牙Trp
徐工进军大型隧道机械领域导读: 12月18日下午,徐工集团与江苏凯宫重工投资合作协议暨项目落户江宁滨江开发区签约仪式在南京隆重举行,双方将合作生产盾构机等各类大型隧道机械设备。徐州市
04月18日 04:41
-
帝坦轮胎三家美国工厂恢复生产啤酒箱气动球阀冲施肥刀座芝麻油Trp
帝坦轮胎三家美国工厂恢复生产美国汽车零部件供应商帝坦国际旗下帝坦轮胎近日宣布,其Des Moines工厂、伊利诺伊州Freeport工厂和俄亥俄州Brya大众配件n工厂从12月26日开始均已恢复轮喷头胎生产。其
04月18日 01:06
-
1月27日国内塑料LLDPE出厂价大全涉外家政泰兴标准胶铜接头生财技术Trp
1月27日国内塑料LLDP过滤筛E出厂价大全品名牌号生产企业价格涨跌备注LLDPEYLF-1802扬子石化111500LLDPELL103AA兰州石化115000LLDPEDFDA-7042齐鲁石化111000LLDPEDFDA-7042中油华南113000LLDPEDFDA-7042广州石化113500LLDPE粉料
04月17日 21:41
-
韩国OLED发光材料界两座山德山与斗山贵港雾化器施肥机煎炸锅旋转舞台Trp
韩国OLED发光材料界“两座山” 德山与斗山当今OLED显示面板生产,无疑还是韩国走在最前头。虽然OLED有机发光材料的核心专利以及供应主要掌握在欧美还有日本几家企业手中,但是韩国的三星Display
04月17日 18:56
-
变频器在精密深孔机械加工中的应用射频天线河间打字机给水泵泵轴承TRp
变频器在精密深孔机械加工中的应用引言在难加工材料上加工精密深孔,历来都是机械加工中的难点之一。长期以来,较为普遍的方式为采用钻原扩原铰的工艺。以后虽有枪钻、BTA 钻、喷吸钻等深孔
04月03日 06:16