一种十六通道湿度测量系统的制作方法

文档序号:33329160发布日期:2023-03-04 00:04阅读:25来源:国知局
一种十六通道湿度测量系统的制作方法

1.本发明涉及湿度测量技术领域,尤其涉及一种十六通道湿度测量系统。


背景技术:

2.空气湿度是重要的气象要素之一。气象、环保、国防、工农业生产、科研、航天等各行各业,经常需要对环境的空气湿度实施测量与控制。对一般用途来讲,测量某个点的空气湿度一般都采用单个仪器来实现,但是在某些应用领域里需要同时测量多路湿度或者十多路湿度,比如气象部门,需要对空中垂直方向上的各个高度层的湿度进行测量;大型的仓储场所,需要各个检测点进行湿度检测,其他日常生活中也很多时候会用到多点甚至几十个点需要同时测量湿度的情形。
3.假如每个检测点用单个测量仪器来完成,众多的检测点还需要组网完成数据收集,那么系统就变得相当复杂,同时成本也会按倍数增加。假如需要对某一个垂直高度上测量不同高度层的湿度,需要严格区分相互之间的湿度差异的话,那么多个单独仪器测量的系统误差就可能影响精准测量。在普通环境中,湿度这个参数是最难准确测量的,这是因为测量湿度要比测量温度复杂得多,温度是个独立的被测量,而湿度却受其他因素(例如大气压强、温度等)的影响,随时可能在变化,因此需要采取同一个测量电路实现多路甚至十几路的测量方法才是比较合理的测量方式。
4.在现有技术中,采取集成的温度和湿度传感器进行环境检测,通过多路温度和湿度电路设计,每路对应一个外部接口,实现多路同时测量并且具有良好的一致性系统误差。例如,需要监控粮仓的温湿度,粮仓温湿度检测需要大面积多点测量,单个仪器组成监测网成本比较高,而且每个站点的测量系统误差不一致会影响监测网的质量,需要通过多通道测量仪器作为节点,再采取zigbee无线通信技术,形成星型传输网络完成数据采集及传输,对粮仓实现多点实时监测和监控。但是,采用这种多通道的测量方式,每一通道对应一个ad转换器,输出数字信号以后再通过单片机或者用户终端进行数据收集、汇总,这种组成方法电路复杂,成本相对较高。


技术实现要素:

5.本发明的目的在于提供一种十六通道湿度测量系统,其能够有效解决现有技术中所存在的上述技术问题。
6.为了实现上述目的,本发明的一实施例提供了一种十六通道湿度测量系统,包括湿度传感器、十六通道选择开关单元、a/d转换单元、微控制单元和显示单元;
7.所述十六通道选择开关单元包括第一adg1607模拟开关和第二adg1607模拟开关,所述第一adg1607模拟开关的s1a引脚~s8a引脚分别对应连接所述湿度传感器的湿度信号正极输出端jh1-2至jh8-2,所述第一adg1607模拟开关的s1b引脚~s8b引脚分别对应连接所述湿度传感器的湿度信号负极输出端jh1-3至jh8-3;所述第二adg1607模拟开关的s1a引脚~s8a引脚分别对应连接所述湿度传感器的湿度信号正极输出端jh9-2~jh16-2,所述第
二adg1607模拟开关的s1b引脚~s8b引脚分别对应连接所述湿度传感器的湿度信号正极输出端jh9-3~jh16-3;
8.所述第一adg1607模拟开关的a0引脚、a1引脚及a2引脚作为地址控制信号端连接至所述微控制单元的第一~第三pio口,所述第一adg1607模拟开关的a0引脚、a1引脚及a2引脚组合8个地址对应8路开关通道,通过所述微控制单元的第一~第三pio口对应控制决定,所述第一adg1607模拟开关的使能en引脚作为片选控制信号连接至所述微控制单元的第四pio口,通过所述微控制单元的第四pio口控制决定所述第一adg1607模拟开关是否工作;
9.所述第二adg1607模拟开关的a0引脚、a1引脚及a2引脚作为地址控制信号端连接至所述微控制单元的第五~第七pio口,所述第二adg1607模拟开关的a0引脚、a1引脚及a2引脚组合8个地址对应8路开关通道,通过所述微控制单元的第五~第七pio口对应控制决定,所述第二adg1607模拟开关的使能en引脚作为片选控制信号连接至所述微控制单元的第八pio口,通过所述微控制单元的第八pio口控制决定所述第二adg1607模拟开关是否工作;
10.所述第一adg1607模拟开关的da引脚和第二adg1607模拟开关的da引脚的连接点作为正极输出信号公共端vda连接至a/d转换单元的模拟信号正极输入端,所述第一adg1607模拟开关的db引脚和第二adg1607模拟开关的db引脚的连接点作为负极输出信号公共端vdb连接至a/d转换单元的模拟信号负极输入端,所述a/d转换单元的数字信号输出端和受控端分别连接至所述微控制单元的相应引脚,所述微控制单元与所述显示单元连接;
11.所述十六通道选择开关单元通过所述第一adg1607模拟开关和第二adg1607模拟开关组合,并通过所述微控制单元的控制,按照十六通道湿度信号输入顺序的逻辑时序分别设置高或低电平的组合,形成十六通道选择控制开关矩阵,以分别控制从通道1到通道16逐个转换,从而将所述湿度传感器的16通道的湿度模拟信号进行分时切换以逐路输送至所述a/d转换单元进行模数转换,所述a/d转换单元在所述微控制单元的控制下将输入的湿度模拟信号进行模数转换后得到湿度数字数据并发送给所述微控制单元,所述微控制单元通过所述显示单元显示所述湿度数字数据;
12.其中,通过所述微控制单元控制所述十六通道选择开关单元的十六通道的分时切换,且控制每个通道的转换与上一个通道的转换的时间间隔为预设的等待稳定时间。
13.作为上述方案的改进,所述微控制单元包括单片机stm32f207芯片,所述单片机stm32f207芯片的pf8、pf9、pf10引脚作为所述第一~第三pio口连接所述第一adg1607模拟开关的a0引脚、a1引脚及a2引脚,所述单片机stm32f207芯片的pf11引脚作为所述第四pio口连接所述第一adg1607模拟开关的使能en引脚;所述单片机stm32f207芯片的pf12、pf13、pf14引脚作为所述第五~第七pio口连接所述第二adg1607模拟开关的a0引脚、a1引脚及a2引脚,所述单片机stm32f207芯片的pf15引脚作为所述第八pio口连接所述第二adg1607模拟开关的使能en引脚。
14.作为上述方案的改进,所述a/d转换单元包括ad7792/ad7793模数转换芯片,所述ad7792/ad7793模数转换芯片的时钟信号引脚sclk、din引脚、dout引脚分别对应连接所述单片机stm32f207芯片的adc_clck_2引脚、adc_din_2引脚、adc_dout_2引脚,所述ad7792/
ad7793模数转换芯片的cs引脚接地;
15.所述ad7792/ad7793模数转换芯片的ain1(+)引脚作为所述模拟信号正极输入端,ain1(-)引脚作为所述模拟信号负极输入端,所述ad7792/ad7793模数转换芯片的ain1(+)引脚、ain1(-)引脚通过一平衡输入电路与所述十六通道选择开关单元的正极输出信号公共端vda、负极输出信号公共端vdb连接,所述平衡输入电路包括第一电容c401、第二电容c402、第三电容c403、第一电阻r401、第二电阻r402和第三电阻r403,所述ad7792/ad7793模数转换芯片的ain1(+)引脚通过所述第一电容c401接地,并通过所述第二电阻r402连接所述正极输出信号公共端vda,所述ad7792/ad7793模数转换芯片的ain1(-)引脚通过所述第二电容c402接地,并通过所述第一电阻r401连接所述负极输出信号公共端vdb,所述ad7792/ad7793模数转换芯片的ain1(+)引脚和ain1(-)引脚之间连接所述第三电容c403,所述正极输出信号公共端vda和负极输出信号公共端vdb之间连接所述第三电阻r403;
16.所述负极输出信号公共端vdb作为接地端,所述正极输出信号公共端vda对地的滤波电路由所述第一电容c401、第三电容c403和第二电阻r402构成,时间常数t=r*(u1+u2),其中,r为第二电阻r402的阻值,u1、u2分别是第一电容c401、第三电容c403的电容量;所述预设的等待稳定时间t0大于所述时间常数t。
17.作为上述方案的改进,所述预设的等待稳定时间t0设定为:1000t<t0<5000t。
18.作为上述方案的改进,所述ad7792/ad7793模数转换芯片的ref(+)/ain3(+)引脚和avdd引脚均连接至一5v基准电压芯片的输出端,所述5v基准电压芯片的输出端通过第四电容c409接地。
19.作为上述方案的改进,通过所述微控制单元控制所述十六通道选择开关单元的十六通道的分时切换,以切换16个通道作为一个循环周期,每一分钟切换至少60个循环周期。
20.作为上述方案的改进,还包括pcb板,通过所述pcb板的底层和顶层布线以连接所述第一adg1607模拟开关、第二adg1607模拟开关、单片机stm32f207芯片和ad7792/ad7793模数转换芯片,并使所述正极输出信号公共端vda到所述ad7792/ad7793模数转换芯片的ain1(+)引脚的第一走线与所述负极输出信号公共端vdb到所述ad7792/ad7793模数转换芯片的ain1(-)引脚的第二走线保持平行且走线长度相等。
21.作为上述方案的改进,通过所述pcb板的底层和顶层布线,还使所述ad7792/ad7793模数转换芯片与所述5v基准电压芯片贴近设置,且使所述第四电容c409与所述5v基准电压芯片贴近设置;所述pcb板的底层和顶层还敷设有铜层。
22.作为上述方案的改进,所述十六通道湿度测量系统还包括第一接口电路,所述第一接口电路包括第一插排,所述第一插排作为湿度传感器的信号接口,所述第一插排的32个引脚分别对应连接所述第一adg1607模拟开关、第二adg1607模拟开关的s1a引脚~s8a引脚和s1b引脚~s8b引脚。
23.作为上述方案的改进,所述第一adg1607模拟开关、第二adg1607模拟开关的vdd引脚分别连接+12v电源,且所述第一adg1607模拟开关的vdd引脚通过第五电容c404接地,所述第二adg1607模拟开关的vdd通过第六电容c405接地;所述ad7792/ad7793模数转换芯片的dvdd连接+3.3v电源,并通过第七电容c406接地;所述ad7792/ad7793模数转换芯片的din引脚通过第四电阻r405连接+3.3v电源,所述ad7792/ad7793模数转换芯片的dout引脚通过第五电阻r406连接+3.3v电源。
24.作为上述方案的改进,所述十六通道湿度测量系统还包括第二接口电路;所述第二接口电路包括第二插排,所述第二插排作为单片机stm32f207芯片的控制信号接口和电源输入接口,所述第二插排的第一~第八引脚对应连接至所述第一adg1607模拟开关、第二adg1607模拟开关的a0引脚、a1引脚、a2引脚及使能en引脚,所述第二插排的第九~第十一引脚对应连接至所述ad7792/ad7793模数转换芯片的时钟信号引脚sclk、din引脚和dout引脚;所述第二插排的第十二~第十五引脚均通过第一电感l401连接+12v电源输入端,所述+12v电源输入端通过第一电解电容c410接地,所述+12v电源输入端还通过第一双向瞬态二极管d401接地;所述第二插排的第十六~第十九引脚均通过第二电感l402连接+5v电源输入端,所述+5v电源输入端通过第二电解电容c411接地,所述+5v电源输入端还通过第二双向瞬态二极管d402接地;所述第二插排的第二十~第二十三引脚均通过第三电感l403连接+3.3v电源输入端,所述+3.3v电源输入端通过第三电解电容c412接地,所述+3.3v电源输入端还通过第三双向瞬态二极管d403接地。
25.与现有技术相比,本发明实施例提供的一种十六通道湿度测量系统,具有如下技术效果:通过两个adg1607电子模拟开关构成开关阵列,共用一个ad7792数模转换器,由单片机控制实施分时切换模拟开关,构成16路湿度测量电路,以分时采集各路湿度传感器输出的电压信号模拟量,从而解决多路湿度测量各个通道系统误差一致性以及简化adc电路的问题,不仅能够明显降低成本,更重要的是能够确保每一路的系统误差相对一致,测量出来的湿度值能够客观反映各通道的真实情况,这对于精密测量应用中是首要考虑的因素。另外采用本发明提供的电子模拟开关阵列形成的多通道测量电路适合于电压型模拟测量电路应用,因为通过的电流小,开关内阻也小,开关导通的内阻造成的压降就可以忽略不计,对测量结果影响非常微小。另外,本发明提供的电路开关为无机械触点,能够长期频繁使用。在自动气象站设备中应用,其性能指标达到设计要求,满足气象观测设备对湿度的精准测量需要。
附图说明
26.为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1是本发明实施例提供的一种十六通道湿度测量系统的结构示意图。
28.图2是本发明实施例提供的一种十六通道湿度测量系统的十六通道选择开关单元的电路结构图。
29.图3是本发明实施例提供的一种十六通道湿度测量系统的a/d转换单元的电路结构图。
30.图4是本发明实施例提供的一种十六通道湿度测量系统的第一接口和第二接口的电路结构图。
31.图5是本发明实施例提供的一种十六通道湿度测量系统的pcb板布线图。
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
34.此外,术语“第一”、“第二“仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
35.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
36.参考图1,本发明实施例提供了一种十六通道湿度测量系统,包括湿度传感器1、十六通道选择开关单元2、a/d转换单元3、微控制单元4和显示单元5。
37.结合图2所示,所述十六通道选择开关单元2包括第一adg1607模拟开关u401和第二adg1607模拟开关u402,所述第一adg1607模拟开关u401的s1a引脚~s8a引脚分别对应连接所述湿度传感器1的湿度信号正极输出端jh1-2至jh8-2,所述第一adg1607模拟开关u401的s1b引脚~s8b引脚分别对应连接所述湿度传感器1的湿度信号负极输出端jh1-3至jh8-3。所述第二adg1607模拟开关u402的s1a引脚~s8a引脚分别对应连接所述湿度传感器1的湿度信号正极输出端jh9-2~jh16-2,所述第二adg1607模拟开关u402的s1b引脚~s8b引脚分别对应连接所述湿度传感器1的湿度信号正极输出端jh9-3~jh16-3。
38.所述第一adg1607模拟开关u401的a0引脚、a1引脚及a2引脚作为地址控制信号端连接至所述微控制单元4的第一~第三pio口,所述第一adg1607模拟开关u401的a0引脚、a1引脚及a2引脚组合8个地址对应8路开关通道,通过所述微控制单元4的第一~第三pio口对应控制决定,所述第一adg1607模拟开关u401的使能en引脚作为片选控制信号连接至所述微控制单元4的第四pio口,通过所述微控制单元4的第四pio口控制决定所述第一adg1607模拟开关u401是否工作。
39.所述第二adg1607模拟开关u402的a0引脚、a1引脚及a2引脚作为地址控制信号端连接至所述微控制单元4的第五~第七pio口,所述第二adg1607模拟开关u402的a0引脚、a1引脚及a2引脚组合8个地址对应8路开关通道,通过所述微控制单元4的第五~第七pio口对应控制决定,所述第二adg1607模拟开关u402的使能en引脚作为片选控制信号连接至所述微控制单元4的第八pio口,通过所述微控制单元4的第八pio口控制决定所述第二adg1607模拟开关u402是否工作。
40.所述第一adg1607模拟开关u401的da引脚和第二adg1607模拟开关u402的da引脚
的连接点作为正极输出信号公共端vda连接至a/d转换单元的模拟信号正极输入端,所述第一adg1607模拟开关u401的db引脚和第二adg1607模拟开关u402的db引脚的连接点作为负极输出信号公共端vdb连接至a/d转换单元的模拟信号负极输入端,所述a/d转换单元3的数字信号输出端和受控端分别连接至所述微控制单元4的相应引脚,所述微控制单元4与所述显示单元5连接。
41.具体的,所述十六通道选择开关单元2通过所述第一adg1607模拟开关u401和第二adg1607模拟开关u402组合,并通过所述微控制单元4的控制,按照十六通道湿度信号输入顺序的逻辑时序分别设置高或低电平的组合,形成十六通道选择控制开关矩阵,以分别控制从通道1到通道16逐个转换,从而将所述湿度传感器的16通道的湿度模拟信号进行分时切换以逐路输送至所述a/d转换单元3进行模数转换,所述a/d转换单元3在所述微控制单元4的控制下将输入的湿度模拟信号进行模数转换后得到湿度数字数据并发送给所述微控制单元4,所述微控制单元4通过所述显示单元5显示所述湿度数字数据。
42.其中,通过所述微控制单元4控制所述十六通道选择开关单元2的十六通道的分时切换,且控制每个通道的转换与上一个通道的转换的时间间隔为预设的等待稳定时间。
43.具体的,所述微控制单元4包括单片机stm32f207芯片(图未示),所述单片机stm32f207芯片的pf8、pf9、pf10引脚作为所述第一~第三pio口连接所述第一adg1607模拟开关u401的a0引脚、a1引脚及a2引脚,所述单片机stm32f207芯片的pf11引脚作为所述第四pio口连接所述第一adg1607模拟开关u401的使能en引脚。所述单片机stm32f207芯片的pf12、pf13、pf14引脚作为所述第五~第七pio口连接所述第二adg1607模拟开关u402的a0引脚、a1引脚及a2引脚,所述单片机stm32f207芯片的pf15引脚作为所述第八pio口连接所述第二adg1607模拟开关u402的使能en引脚。
44.可见,在本实施例中,为了实现共用一路ad转换电路,16通道的湿度信号输入需要一个16通道的开关阵列进行分时切换。本实施例的电子模拟开关采用两片adg1607八转一转换开关,这种芯片的特点是转换速度快,导通电阻极小,控制灵活等特点。由两片adg1607模拟开关u401和u402组成16通道。u401的s1a-s8a和u402的s1a-s8a分别连接湿度信号输入端(正极)jh1-2至jh16-2;u401的s1b-s8b和u402的s1b-s8b分别连接湿度信号输入端(负极)jh1-3至jh16-3;u401的地址控制引脚a0、a1、a2组合8个地址对应8路开关通道,由pf8、pf9、pf10决定,pf11接使能en引脚为片选控制信号,决定该芯片是否工作。u402的控制方法类似。u401和u402的组合变成了16路开关。16路开关阵列的构成如图2所示。整个16路开关是通过软件的时序分别控制从通道1到通道16逐个转换。
45.优选的,通过所述微控制单元4控制所述十六通道选择开关单元2的十六通道的分时切换,以切换16个通道作为一个循环周期,每一分钟切换至少60个循环周期。
46.进一步的,如图2所示,所述第一adg1607模拟开关u401的vdd引脚、第二adg1607模拟开关u402的vdd引脚分别连接+12v电源,且所述第一adg1607模拟开关u401的vdd引脚通过第五电容c404接地,所述第二adg1607模拟开关u402的vdd通过第六电容c405接地。可以理解的,所述第一adg1607模拟开关u401和第二adg1607模拟开关u402通过连接+12v电源供电,能够有效提高其开关导通性。
47.结合图2和图3,湿度传感器1可采用湿敏电容作为敏感器件以输出电压信号,一般输出的电压信号为0~1v。要把湿度传感器1输出的模拟信号变成数字信号,a/d转换单元3
可采用ad7792/ad7793模数转换芯片,其中,本实施例采用了ad7792模数转换芯片u411,它具有3个通道,内置基准源,内置一个低噪声的16位/24位σ-δ型adc,有3个差分模拟输入端口,前端还有片内低噪声仪表放大器,可直接输入放大微小信号,当信号通道的增益设置为64、数据更新速率为4.17hz时,其均方根(rms)噪声为40nv左右。非常适合于高精度测量的应用中。
48.其中,所述ad7792模数转换芯片u411的时钟信号引脚sclk、din引脚、dout引脚分别对应连接所述单片机stm32f207芯片的adc_clck_2引脚、adc_din_2引脚、adc_dout_2引脚,所述ad7792模数转换芯片u411的cs引脚接地。所述ad7792模数转换芯片u411通信接口使用三线spi方式,cs是片选信号控制线,连接单片机stm32f207芯片,当单片机stm32f207芯片的引脚输出低电平时,则单片机stm32f207芯片可以与ad7792模数转换芯片u411进行通信,由于本方案只采用一个ad7792模数转换芯片u411,所以cs可以直接接地,单片机stm32f207芯片任何时候均可与之通信。硬件上ad7792模数转换芯片u411的时钟信号线sclk与单片机stm32f207芯片的adc_clck_2连接,单片机stm32f207芯片送出时钟信号与ad7792模数转换芯片u411同步。din等同于spi总线mosi信号,即单片机stm32f207芯片作为主机输出,ad7792模数转换芯片u411作为从机输入,由单片机stm32f207芯片的adc_din_2引脚控制。dout等同于spi总线miso信号,即ad7792模数转换芯片u411作为从机输出,单片机stm32f207芯片作为主机输入,由单片机stm32f207芯片的adc_dout_2引脚操作。三线spi按照规定时序设置寄存器或者读取ad数据。
49.进一步的,如图3所示,所述ad7792模数转换芯片u411的ain1(+)引脚作为所述模拟信号正极输入端,ain1(-)引脚作为所述模拟信号负极输入端,所述ad7792模数转换芯片u411的ain1(+)引脚、ain1(-)引脚通过一平衡输入电路与所述十六通道选择开关单元2的正极输出信号公共端vda、负极输出信号公共端vdb连接。其中,所述平衡输入电路包括第一电容c401、第二电容c402、第三电容c403、第一电阻r401、第二电阻r402和第三电阻r403,所述ad7792模数转换芯片u411的ain1(+)引脚通过所述第一电容c401接地,并通过所述第二电阻r402连接所述正极输出信号公共端vda,所述ad7792模数转换芯片u411的ain1(-)引脚通过所述第二电容c402接地,并通过所述第一电阻r401连接所述负极输出信号公共端vdb,所述ad7792模数转换芯片的ain1(+)引脚和ain1(-)引脚之间连接所述第三电容c403,所述正极输出信号公共端vda和负极输出信号公共端vdb之间连接所述第三电阻r403。
50.具体的,所述负极输出信号公共端vdb作为接地端,所述正极输出信号公共端vda对地的滤波电路由所述第一电容c401、第三电容c403和第二电阻r402构成,时间常数t=r*(u1+u2),其中,r为第二电阻r402的阻值,u1、u2分别是第一电容c401、第三电容c403的电容量;所述预设的等待稳定时间t0大于所述时间常数t。例如,第二电阻r402的阻值r=10kω,第一电容c401、第三电容c403的电容量u1、u2均为470pf,那么时间常数t=rc=10*1000*(470+470)*10-12=9.4(us),这个时间常数只有9.4微秒,因此能够滤掉高频干扰信号。
51.可以理解的,ad7792模数转换芯片u411的模拟输入是电压型差分共模输入,电压信号正极接ain1(+)引脚,电压信号负极接ain1(-)引脚,通常在湿度传感器的输出电压负极为接地gnd端,相当于ad7792模数转换芯片u411的电压信号负极接ain1(-)引脚接地。连接在模拟输入端的c401、c402、c403、r401、r402、r403这六个元件组成平衡输入电路,rc电路的时间常数很小,能够比较好的滤除信号高频毛刺,特别是模拟开关切换的瞬间产生的
干扰尖峰毛刺。正因为有了这个滤波电路,每一个通道切换的时候就需要一定的等待稳定时间,也就是说每个通道转换以后需要等待至少10微秒以上,等待ad转换电路的输入完全稳定以后再读取ad数据,否则读到的数据会存在误差。可以理解的,在本实施例中,预设的每一个通道切换的等待稳定时间t0设定为:1000t<t0<5000t,当时间常数t=rc=10*1000*(470+470)*10-12=9.4(us)时,预设的等待稳定时间t0优选为10~50毫秒。
52.另外,ad7792模数转换芯片u411的输入电阻非常高,输入电路的第三电阻r403作为并联电阻是为了输入通道没有信号输入时加速放电而设计的,从而避免输入信号在滤波电容上的电荷积累而可能影响测量精度。
53.进一步的,继续参考图3,所述ad7792模数转换芯片u411的ref(+)/ain3(+)引脚和avdd引脚均连接至一5v基准电压芯片u412的输出端,所述5v基准电压芯片u412的输出端vout(f)、vout(s)通过第四电容c409接地。所述5v基准电压芯片u412的输入端vin连接+12v电源,并通过第八电容c408接地。所述5v基准电压芯片u412的接地端gnd接地。可以理解的,ad7792模数转换芯片u411需要一个基准参考电压,这里由一个高精度、低噪声、低漂移的电压基准芯片u412(adr395)提供+5v,接至u411的ref(+)引脚,与对地(即ref(-)引脚)构成5v参考电压。同时作为ad7792模数转换芯片u411的电源avdd,从而提供一个非常稳定的电源来确保ad转换精度。第四电容c409是高频滤波电容,能够滤掉干扰信号对ad转换的影响。
54.进一步的,所述ad7792模数转换芯片u411的dvdd连接+3.3v电源,并通过第七电容c406接地。所述ad7792模数转换芯片u411的din引脚通过第四电阻r405连接+3.3v电源,所述ad7792/ad7793模数转换芯片的dout引脚通过第五电阻r406连接+3.3v电源。
55.参考图4,考虑到湿度传感器采用四线制连接,电压型信号如通道1的jh1-2和jh1-3,jh1-3在传感器输出端是接地(gnd)的。本实施例提供的十六通道湿度测量系统还包括第一接口电路,所述第一接口电路包括第一插排p401,所述第一插排p401作为湿度传感器的信号接口,16个电压通道通过第一插排p401插排引入,所述第一插排p401的32个引脚分别对应连接所述第一adg1607模拟开关、第二adg1607模拟开关的s1a引脚~s8a引脚和s1b引脚~s8b引脚。
56.继续参考图4,本实施例提供的所述十六通道湿度测量系统还包括第二接口电路。所述第二接口电路包括第二插排p402,所述第二插排p402作为单片机stm32f207芯片的控制信号接口和电源输入接口,所述第二插排p402的第一~第八引脚(对应为1~8脚)对应连接至所述第一adg1607模拟开关、第二adg1607模拟开关的a0引脚、a1引脚、a2引脚及使能en引脚,所述第二插排p402的第九~第十一引脚(对应为9、11、13脚)对应连接至所述ad7792/ad7793模数转换芯片的时钟信号引脚sclk、din引脚和dout引脚;所述第二插排p402的第十二~第十五引脚(对应为19、21、23、25脚)均通过第一电感l401连接+12v电源输入端,所述+12v电源输入端通过第一电解电容c410接地,所述+12v电源输入端还通过第一双向瞬态二极管d401接地。所述第二插排的第十六~第十九引脚(对应为27、29、31、33脚)均通过第二电感l402连接+5v电源输入端,所述+5v电源输入端通过第二电解电容c411接地,所述+5v电源输入端还通过第二双向瞬态二极管d402接地。所述第二插排的第二十~第二十三引脚(对应为20、22、24、26脚)均通过第三电感l403连接+3.3v电源输入端,所述+3.3v电源输入端通过第三电解电容c412接地,所述+3.3v电源输入端还通过第三双向瞬态二极管d403接地。可见,本实施例提供的十六通道湿度测量系统所引入的12v、5v和3.3v电源,都加了lc电
路进行滤波,如图4中的第一电感l401和第一电解电容c410、第二电感l402和第二电解电容c411、第三电感l403和第三电解电容c412,避免与外设互相干扰。这里的电感器件第一电感l401、第二电感l402和第三电感l403使用磁珠代替。另外,为了避免浪涌冲击,例如雷电冲击,每个电源收入端电路都加上双向瞬态二极管进行有效抑制,如图4中的第一双向瞬态二极管d401、第二双向瞬态二极管d402、第三双向瞬态二极管d403。
57.进一步的,参考图5,本实施例提供的十六通道湿度测量系统还包括pcb板,通过所述pcb板的底层和顶层布线以连接所述第一adg1607模拟开关、第二adg1607模拟开关、单片机stm32f207芯片和ad7792/ad7793模数转换芯片,并使所述正极输出信号公共端vda到所述ad7792/ad7793模数转换芯片的ain1(+)引脚的第一走线与所述负极输出信号公共端vdb到所述ad7792/ad7793模数转换芯片的ain1(-)引脚的第二走线保持平行且走线长度相等,从而避免由于第一走线和第二走线线上的电阻值不一致可能会引起测量系统误差。另外,通过所述pcb板的底层和顶层布线,还使所述ad7792/ad7793模数转换芯片与所述5v基准电压芯片贴近设置,以减少线间的感应干扰。另外,通过布线使所述第四电容c409与所述5v基准电压芯片贴近设置,以获得最好的滤波效果。可以理解的,所述pcb板的底层和顶层还敷设有铜层(图中未示)。
58.可以理解的,本实施例提供的十六通道湿度测量系统的控制由单片机stm32f207实现。软件代码采用keil51内嵌式c语言编程。两个头文件stm32f2xx_gpio.h和stm32f2xx_rcc.h包含了对stm32f207单片机全部初始化所需的定义。
59.首先要对单片机的pio口进行初始化,把pf8、pf9、pf10、pf11、pf12、pf13、pf14、pf15初始化为状态控制脚,设置为输入输出属性,按照十六通道湿度信号输入顺序的逻辑时序分别设置高或低电平的组合,形成十六通道选择控制开关矩阵。
60.头文件adc.h包含了ad初始化定义。ad转换电路ad7792初始化按照固定的步骤要求完成。关键是初始化的参数需要根据应用电路的实际需求进行合理的设置,比如说ad转换数据更新率、信号放大倍数等,这些参数都会直接影响到了测量电路的转换速度和测量精度[13-15]。由例程my_initadc(void)完成ad7792初始化。
[0061]
所用的湿度传感器测量相对湿度值0%-100%(即0rh-100rh),对于输出电压范围为0~0.5v,ad7792采用的基准电压为5v,即是全量程可以达到0~5v之间。为了提高转换分辨率,设置ad7792的增益为8倍,使信号电压变化在0~4v之间。ad7792是十六位ad转换器,按照这样的计算,转换的分辨率可以达到0.0019rh,完全满足测量分辨率要求。
[0062]
下面给出初始化及ad转换器数据读取例程的源代码供读者移植或者参考。
[0063]
#include"stm32f2xx_gpio.h"
[0064]
#include"stm32f2xx_rcc.h"
[0065]
#include"adc.h"
[0066]
在使用ad7792之前,必须完成初始化各个步骤,芯片才能进入正常工作状态,特别是需要进行内部零点校准和内部满刻度线性校准的过程。为了便于读者快速理解初始化设置,给出注解内容供参考,ad7792初始化步骤:
[0067]
步骤1、通信寄存器:0 0 101 0 00
‑‑
0x28选择下一步写io寄存器,io寄存器(8位可读可写):0000 00 11
‑‑
0x03电流源接至iout1,1ma
[0068]
步骤2、通信寄存器:0 0 010 0 00
‑‑
0x10选择下一步写配置寄存器,配置寄存器
(16位可读可写):00 0 1 0 011 0 00 1 0 000
‑‑‑‑
0x1310偏置电压发生器禁用,禁用熔断电流,单极性模式,增益=8,选择外部基准电压,输入有缓冲器,通道1(an+和an-)
[0069]
步骤3、通信寄存器:0 0 001 0 00
‑‑
0x08选择下一步写模式寄存器,模式寄存器(16位可读可写):100 00000 00 00 0101
‑‑
0x8005内部零点校准,内部时钟64khz不送clk引脚,转换更新速率50hz
[0070]
步骤4、通信寄存器:0 0 001 0 00
‑‑
0x08选择下一步写模式寄存器,模式寄存器(16位可读可写):101 00000 00 00 0101
‑‑‑
0xa005内部满刻度校准,内部时钟64khz不送clk引脚,转换更新速率50hz
[0071]
步骤5、通信寄存器:0 0 001 0 00
‑‑
0x08选择下一步写模式寄存器,模式寄存器(16位可读可写):110 00000 00 00 0101
‑‑‑
0xc005系统零点校准,内部时钟64khz不送clk引脚,转换更新速率50hz
[0072]
步骤6、通信寄存器:0 0 001 0 00
‑‑‑
0x08选择下一步写模式寄存器,模式寄存器(16位可读可写):111 00000 00 00 0101
‑‑‑
0xe005系统满刻度校准,内部时钟64khz不送clk引脚,转换更新速率50hz
[0073]
步骤7、通信寄存器:0 0 001 0 00
‑‑
0x08选择下一步写模式寄存器,模式寄存器(16位可读可写):000 00000 00 00 0101
‑‑‑
0x0005连续转换模式,内部时钟64khz不送clk引脚,转换更新速率50hz
[0074]
步骤8、通信寄存器:0 1 011 0 00
‑‑
0x58选择下一步读数据寄存器,不连续读数据。
[0075]
ad7792上电以后或者工作过程中,有时候可能会接口迷失无法受控,为了保险起见,初始化之前需要恢复接口状态,可以保持din高电平,经过32个以上时钟周期,通信口就可恢复到默认模式。数模转换电路初始化例程如下。
[0076]
void my_initadc(void)
[0077]
{unsigned char i;
[0078]
currentgain=gain_1;currentchanneel=channel1;
[0079]
adc_clk1;delay_1us(10);adc_din1;
[0080]
//下一行完成复位ad7792的通信口到默认状态
[0081]
for(i=0;i《32;i++){adc_clk0;delay_1us(10);adc_clk1;delay_1us(10);}
[0082]
writetoreg_adc(0x28);//选择下一步写io寄存器,
[0083]
writetoreg_adc(0x03);//电流源接至iout1,1ma
[0084]
delay_1ms(1);
[0085]
writetoreg_adc(0x10);//选择下一步写配置寄存器,
[0086]
writetoreg_adc(0x13);//0x13偏置电压发生器禁用,禁用熔断电流,单极性模式,增益=8,
[0087]
writetoreg_adc(0x10);//10外部基准电压,输入有缓冲器,通道1(an+和an-)
[0088]
delay_1ms(1);
[0089]
writetoreg_adc(0x08);//选择下一步写模式寄存器,
[0090]
writetoreg_adc(0x80);//内部零点校准,内部时钟64khz不送clk引脚,转换更新速率50hz
[0091]
writetoreg_adc(0x05);
[0092]
delay_1ms(50);//对于转换速率为50hz来说,自校准设置以后必须延时2个转换周期,即是40ms以上
[0093]
writetoreg_adc(0x08);//选择下一步写模式寄存器,
[0094]
writetoreg_adc(0xa0);//内部满刻度校准,内部时钟64khz不送clk引脚,转换更新速率50hz
[0095]
writetoreg_adc(0x05);
[0096]
delay_1ms(50);//对于转换速率为50hz来说,自校准设置以后必须延时2个转换周期,即是40ms以上
[0097]
writetoreg_adc(0x08);//选择下一步写模式寄存器,
[0098]
writetoreg_adc(0x00);//连续转换模式,内部时钟64khz,且不送clk引脚,转换更新速50hz
[0099]
writetoreg_adc(0x05);
[0100]
delay_1ms(1);
[0101]
}
[0102]
下面例程通过时序控制按顺序切换模拟开关来选择各个信号通道,实现分时测量,注意开关切换后的需要一定的稳定时间才能再读数,否则数据不准确,笔者的经验大概需要20ms-50ms。
[0103]
void set_rh(char port,unsigned char gain)
[0104]
{//湿度通道从port=1开始
[0105]
selectswitch_b(port-1);
[0106]
delay_1ms(50);//注意这里50ms的延时是必须的,太短会造成输入信号由于开关转换还没有稳定下来而转换数据不准确。
[0107]
select_channel_gain(channel2,gain);
[0108]
}
[0109]
void read_rh(char port)
[0110]
{//湿度通道从port=1开始
[0111]
rh_tempbuf[port-1][real]=readadc_16bitvalue(channel2);
[0112]
}
[0113]
void selectswitch_b(unsigned char port)
[0114]
{//port=0,1,2,3,4......15
[0115]
//控制线使用pf端口
[0116]
gpio_resetbits(gpiof,gpio_pin_8|gpio_pin_9|gpio_pin_10|gpio_pin_11|gpio_pin_12|gpio_pin_13|gpio_pin_14|gpio_pin_15);//全部控制线置低电平
[0117]
if(port==0){gpio_setbits(gpiof,gpio_pin_11);}//控制字=ox08
[0118]
else if(port==1){gpio_setbits(gpiof,gpio_pin_11|gpio_pin_8);}
[0119]
else if(port==2){gpio_setbits(gpiof,gpio_pin_11|gpio_pin_9);}
[0120]
else if(port==3){gpio_setbits(gpiof,gpio_pin_11|gpio_pin_8|gpio_pin_9);}
[0121]
else if(port==4){gpio_setbits(gpiof,gpio_pin_11|gpio_pin_10);}
[0122]
else if(port==5){gpio_setbits(gpiof,gpio_pin_11|gpio_pin_10|gpio_pin_8);}
[0123]
else if(port==6){gpio_setbits(gpiof,gpio_pin_11|gpio_pin_10|gpio_pin_9);}
[0124]
elseif(port==7){gpio_setbits(gpiof,gpio_pin_11|gpio_pin_10|gpio_pin_9|gpio_pin_8);}
[0125]
else if(port==8){gpio_setbits(gpiof,gpio_pin_15);}//控制字=ox08
[0126]
else if(port==9){gpio_setbits(gpiof,gpio_pin_15|gpio_pin_12);}
[0127]
else if(port==10){gpio_setbits(gpiof,gpio_pin_15|gpio_pin_13);}
[0128]
else if(port==11){gpio_setbits(gpiof,gpio_pin_15|gpio_pin_13|gpio_pin_12);}
[0129]
else if(port==12){gpio_setbits(gpiof,gpio_pin_15|gpio_pin_14);}
[0130]
else if(port==13){gpio_setbits(gpiof,gpio_pin_15|gpio_pin_14|gpio_pin_12);}
[0131]
else if(port==14){gpio_setbits(gpiof,gpio_pin_15|gpio_pin_14|gpio_pin_13);}
[0132]
elseif(port==15){gpio_setbits(gpiof,gpio_pin_15|gpio_pin_14|gpio_pin_13|gpio_pin_12);}
[0133]
}
[0134]
如下例程完成寄存器写参数设置:unsigned int writetoreg_adc(unsigned int byteword){
[0135]
unsigned int ad16bit,token;
[0136]
unsigned char i;
[0137]
adc_din1;
[0138]
adc_clk1;delay_1us(10);//begin token=0x80;ad16bit=byteword;
[0139]
for(i=0;i《8;i++)
[0140]
{if(ad16bit&token)adc_din1;//input data bit else adc_din0;
[0141]
adc_clk0;delay_1us(10);
[0142]
adc_clk1;delay_1us(10);
[0143]
token=token》》1;
[0144]
}
[0145]
adc_clk1;adc_din1;//end return(true);
[0146]
}
[0147]
如下例程完成读取寄存器数据:
[0148]
unsigned int readformreg_adc(unsigned char nbyte){
[0149]
unsigned int ad16bit;
[0150]
unsigned char i,j;
[0151]
adc_din1;
[0152]
adc_clk1;//begin
[0153]
ad16bit=0x00;
[0154]
for(j=0;j《nbyte;j++)
[0155]
{for(i=0;i《8;i++)
[0156]
{adc_clk0;delay_1us(10);
[0157]
ad16bit=ad16bit《《1;
[0158]
if(adc_dout==1)ad16bit=ad16bit|0x01;//input data bit
[0159]
adc_clk1;delay_1us(10);
[0160]
}
[0161]
}
[0162]
adc_clk1;//end
[0163]
adc_din1;
[0164]
return(ad16bit);
[0165]
}
[0166]
等待输入信号稳定以后,ad转换器的数据就可以正常读取出来,下面是读16位数据例程:
[0167]
unsigned int readadc_16bitvalue(unsigned char channel)
[0168]
{
[0169]
unsigned int ad16bit;
[0170]
unsigned char i,status;
[0171]
adc_din1;
[0172]
adc_clk1;delay_1us(10);//begin
[0173]
writetoreg_adc(0x40);//选择下一步读状态寄存器,当前通道
[0174]
status=readformreg_adc(1);
[0175]
while((status&0x80)==0x80)//wait for the end of convertion by polling the status register rdy bit
[0176]
{//等待转换完成
[0177]
writetoreg_adc(0x40);
[0178]
status=readformreg_adc(1);
[0179]
}
[0180]
writetoreg_adc(0x58);//选择下一步读数据寄存器,读当前通道数据
[0181]
ad16bit=0x00;
[0182]
for(i=0;i《16;i++)
[0183]
{ad16bit=ad16bit《《1;
[0184]
adc_clk0;delay_1us(10);
[0185]
if(adc_dout==1)
[0186]
ad16bit=ad16bit|0x01;//input data bit
[0187]
adc_clk1;delay_1us(10);
[0188]
}
[0189]
adc_clk1;adc_din1;//end
[0190]
return(ad16bit);
[0191]
}
[0192]
综上,本发明实施例提供的一种十六通道湿度测量系统,通过两个adg1607电子模拟开关构成开关阵列,共用一个ad7792数模转换器,由单片机控制实施分时切换模拟开关,构成16路湿度测量电路,以分时采集各路湿度传感器输出的电压信号模拟量,从而解决多路湿度测量各个通道系统误差一致性以及简化adc电路的问题,不仅能够明显降低成本,更重要的是能够确保每一路的系统误差相对一致,测量出来的湿度值能够客观反映各通道的真实情况,这对于精密测量应用中是首要考虑的因素。另外采用本发明提供的电子模拟开关阵列形成的多通道测量电路适合于电压型模拟测量电路应用,因为通过的电流小,开关内阻也小,开关导通的内阻造成的压降就可以忽略不计,对测量结果影响非常微小。另外,本发明提供的电路开关为无机械触点,能够长期频繁使用。在自动气象站设备中应用,其性能指标达到设计要求,满足气象观测设备对湿度的精准测量需要。
[0193]
以上所揭露的仅为本发明一些较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1