数据采集模块说明.doc
10页数据采集模块说明数据采集模块主要是实现各路模拟信号的采集,AD转换,数值运算和传送数据的显示部 分由嵌入式部分完成AD选用的是美信公司生产的MAX197,八路模拟通道,多量程输入, 本系统使用的是0〜5伏输入,因此各路模拟信号都要转化为0〜5伏电压信号详见各路 说明)AD的八个通道设置分别为:CH0:热电阻一线端CH1:热电阻二线端CH2:热电偶CH3: PN 结CH4:电压型湿度CH5:电压型温度CH6:电流型湿度CH7:电流型温度与嵌入式的通信协议为:(有待完善)系统上电后,①查询检测等待嵌入式端命令,命令为一个0〜7之间正整数n(通道序号),若 n值正确,则将n值返回给嵌入式端②然后等待嵌入式端的确认信号,暂定为字符'T'(这 里可以加延时程序,当延时时间内未收到嵌入式端的确认信号,则退出这部分程序参加文 件“中断实现的延时函数”若确认信号不正确则发送错误信息(字符'W')③确认信号 准确接收到之后,进行AD采集,根据不同的n值转入相应的处理程序处理完毕后,将结 果送给嵌入式端,结果为六位,其中数据部分为前五位,第一位为符号位(0为正, 1为负), 后四位数据位(精确到小数点后两位),以ASCII码形式由高位到低位发送,小数点需要嵌 入式显示部分自行添加。
第六位为字符‘$'做为结束符若起初嵌入式端发送的n值不是0〜7之间的正整数,系统则发送错误信息(字符F')告知 嵌入式端双方采用232串口进行通信,波特率位9600bps (可变)帧格式为:校验位数据位 停止 位 NULL 8 1注:双方均以ASCII码形式进行数据通信各通道的处理:1•热电阻部分(PT100):硬件电路中,热电阻采用的是三线制接法(以消除线上电阻),采 用LM234构成的恒流源电路(电流约为0.134/120安培)将电阻转化为电压信号,然后将该 信号放大10倍(由OP07构成的正比例放大器,理论发大倍数10.1倍Vo=Vi*(1+Rf/R1)) #送入 AD三线制的另一端也放大10倍(理论10.1倍)#后送入AD热电阻采用的是三线制接法(以消除线上电阻),因此必将有一路传送该信号(CH1),所以 在热电阻部分的软件处理需要两路信号(CH0,CH1)进行数值运算如图,Vl = (Rx+2r)*i ,V2=r*i,所以软件的数值运算为:首先计算V=V1-2V2 (V1,V2由 CHO和CH1路采集而来),(注意此时的电压值都为数字的)然后将电压信号还原为电阻, R=V*5000/4095/1000*120/0.134/10 # (V*5000/4095/1000 是将数字形式转化为模拟形式, 5000mV对应FFF (十进制为4096)),最后根据热电阻(PT100)的分度表【4】采用查表 和插值运算【3】得出相应温度值。
由于表中存储的电阻值已经扩大了100倍,(为了避免浮 点数),所以查表前计算得到的电阻值还要扩大100倍2•热电偶部分(K型):硬件电路按照0〜40mV的输入设计的,大约可测温度范围0〜967 度放大125倍后送入AD (由OP07构成的两级放大电路,第一级放大5倍(实际Rf使用 的是5.1K #)第二级放大25倍(实际Rf使用的是24K+1K) #)由于,热电偶存在冷 端补偿的问题,电路设计了利用PN结测温法进行补偿(详见PN结部分)热电偶测温原理:【1】不同导体构成回路时,因两结点温度不同,就会在结点两端有电势输 出(热电效应)所产生的热电动势主要由两部分组成:接触电动势(不同导体接触,由于 电子密度不同产生)和温差电动势(同一导体两端温度不同产生)当材料一定时,那么热 电动势只与两个结点的温度由关,即:Eab(T,T0)=E(T)-E(T0)通常希望T0=0或为常数时,则Eab(T,T0)=E(T)可见,保持冷端为 0度或为一常数时使用热电偶的前提条件要求冷端温度必须恒定,时因 为热电偶所产生的热电势不仅与被测温度有关,而且还和冷端温度有关,只有在冷端温度固 定后,热电势才和被测温度有单一的函数关系,保持冷端为0度,是因为经常使用的热电偶 的分度表和显示仪表是以热电偶的冷端温度为0度作为先决条件的,为了直接应用分度表, 就必须使冷端温度为 0 度。
但在实际测量中,冷端的温度往往是波动的,从而造成测量误差 为了尽量减小这种误差,就需要设法使冷端温度保持0度,或先保持恒定,然后进行补正(就 使消除因冷端温度不使 0 度而带来的误差)冷端温度的处理方法有很多,这里采用冷端温 度的补正的方法 1)热电动势补正法当冷端温度变化后,(t0变化到t1),热电偶算产生的热电势分别为:E(t,t0)=E(t)-E(t0)E(t,t1)=E(t)-E(t1)两式相减得,E(t,t0)-E(t,t1)=E(t1)-E(t0)=E(t1,t0) 即E(t,t0)=E(t,t1)+E(t1,t0)其中,E(t,tl为热电偶实际测得的热电动势,而E(tl,tO)为热电偶冷端温度有tO变化到t1相 应的热电动势,这两个值都可以由热电偶分度表【4】查出所对应的温度值2).温度补正法 热电动势补正法计算比较麻烦,简单的方法式将实际中测量热电偶冷端温度为补正值,但误 差比法1要大(但对一般的工业生产来说还是允许的)此法对热电特性线性度较差的热电 偶不适用实际中,工业上还采用温度补正系数K修正(补正系数由相应表格查得) 综合考虑,该系统采取的是第一种补正方法3. PN结部分:该部分的设计思路是基于PN结的温度特性,用PN结来测量热电偶冷端温度 (室温),用以进行热电偶测温的补正。
PN 结的温度特性【2】: PN 结的正向压降具有负的温度系数,并且在一定范围内随温度近 似呈线性变化,利用该性质可将PN结作为温度传感器使用注意为避免自身发热影响测 量精度,通过PN结的电流不宜过大,应取0.1mA左右)实验测量PN结正向压降与温度关 系数据V-T,在计算出各温度的正向压降与0度时的正向压降的差值的关系△V-T,作图, 计算出PN结正向压降与温度的具体函数关系在硬件电路中,PN结部分采用的是三极管(NPN 9013)的be结,电压信号取出后放大5 倍(实际电路是4.9倍,OP07构成的正比例放大电路Rf=3.9K #),送入ADPN结部分的软件处理:由于实际电路中的PN结的V-T关系还未标定,所以程序中是人为 设定的一组关系(并认为是线性的),即:V=-2.26T+628(单位毫伏)(实际PN结函数关系 标定后,该式还要改正)具体的数值运算为:AD采集来的PN结电压信号(CH3,注意式 数字形式的),还原回最初的采集值V=Temp*5000/4095/5 #,然后根据V-T关系的得出T = (628—V)/2.26*100 (乘以100的目的是为了精度要求,规定的是保留两位小数),取出温 度的整数部分i=T/100) (i为char型),查热电偶分度【4】表得出此温度下对应的热电势值(插值法【3】计算),即得到公式E(t,t0)=E(t,t1)+E(t1,t0)中的E(t1,t0)部分,已备热电偶部分 运算使用。
热电偶部分的软件处理:由于冷端补偿的存在,热电偶测温也要采集两路信号,一路热电偶 端实际测量信号(CH2,用以获得E(t,t1)),另一路是冷端补偿信号(CH3,用以获得E(t1,t0)) 其中玖t,t1)=V*5000/4095/125*1000 # (乘以1000的目的是因为程序中存储的热电偶分度 表【4】都扩大了 1000倍(为避免浮点 数)),E(t1,t0)已经由PN结部分给出,则 E(t,t0)=E(t,t1)+E(t1,t0),根据E(t,t0)值反查分度表【4】(加插值运算【3】)得到相应T值, 传送给嵌入式端4. 电压型传感器部分:由于该部分使用的是已经完成线性化处理的传感器,因此无论是硬件 还是软件设计都比较简单该部分选用的是霍尼韦尔公司生产的CHT3W2TLD型温湿度变 送器,0〜5伏输出,可测量温度范围为-10〜60度,湿度为0〜100%, 12伏电源,四线输 出zwstf- ukus■liHUEM CESn IQ 3J IM" WM ?! Sfl IW KLAIht硬件电路直接将变送器的输出接入AD,软件部分根据线性关系直接计算得到T值送入嵌入 式端具体数值运算为:湿度部分(CH4): RH=V*5000/4095*100/5000*10 (最后乘以10 的目的是为了精度要求,规定湿度部分保留一位小数);温度部分:T=V*70/5000*100-10*100 (乘以100的目的是为了精度要求,规定温度部分保留二位小数)。
5•电流型传感器部分:该部分选用的是霍尼韦尔公司生产的CHT3W1TLD型温湿度变送器, 4〜20mA输出,可测量温度范围为-10〜60度,湿度为0〜100%, 24伏电源,三线输出 硬件电路通过串接250欧姆电阻(100+150)将4〜20mA电流信号转变位1〜5V电压信号 送入 ADw=£=el/WLg因为变送器输出已经完成了线性化处理,所以软件部分根据线性关系直接计算得到T值送 入嵌入式端即可具体数值运算为:湿度部分(CH6) RH=(V*5000/4095-1000)*100/4000*10 温度部分(CH7): T=(V*5000/4095-1000)*70/4000*100-10*100]注:带有#号的部分为存在误差的地方精度是如何保证得??? 第二版硬件电路??PN 结部分还有待商榷??查一下三级管的结构,和电路中实际电流的大小『1』 温度测量与控制,姜忠良,陈秀云,北京:清华大学出版社,2005.8『2』 半导体 PN 结测闻实验的设计,彭庶修,吴汉水,占俐琳(论文)【3】 插值计算法:插值法也是线性化处理的一种常用方法差值原理为: 设某传感器的输出特性曲线(例如电阻-温度特性曲线),如图所示尸市乂』JTj 才冲T 丄h JF图分段先行插值原理由图可以看出,当已知某一输入值xi以后,要想求出值yi并非易事,因为其函数关系式y=f(t) 并不是简单的线性方程。
为使问题简化,可以把该曲线按一定要求分成若干段,然后把相邻 两分段点用直线连起来(如图中虚线所示),用此直线代替相应的各段曲线,即可求出输入 值x所对应的输出值y例如,设x在(x.,x.+1)之间,则其对应的逼近值为y = y + 丁乂 门一 y (x - x )i Xi + 1一 Xi i将上式进行化简,可得和其中y = y + k (x - x)i i iy = yi o+ kx(2)(3)yi o = yi- kixi为第i段直线的斜率式(2)是点斜式直线方程,而式(3)为截矩式直线方程上两式中,只要n取得 足够大,即可获得良好的精度在对曲线进行分段,选取各插值基点时,为了使基点的选取 更合理,不同的曲线采用不同的方法分段主要有两种方法:等距分段法和非等距分段法 等距分段法即沿 x 轴等距离地选取插值基点这种方法的主要优点是使式( 1)中的x -x =常数,因而使计算变得简单但是函数的曲率和斜率变化比较大时,会产生一定i +1 i的误差;要想减少误差,必须把基点分得很细,这样势必占用较多的内存,并使计算机所占 用的机时加长非等距分段法的特点是函数基点的分段不是等距的,通常将常用刻度范围插值距离划分小一 点,而使非常用刻度区域的插值距离大一点,但非等值插值点的选取比较麻烦。
本系统采用的是等距分段法,表格中存储的是以一度为间隔的整度数分度表以热电阻为例, 为了计算某一特定的温度值,首先需要确认最接。





