收藏 分销(赏)

数据采集模块说明.doc

上传人:s4****5z 文档编号:8897011 上传时间:2025-03-07 格式:DOC 页数:7 大小:88KB 下载积分:10 金币
下载 相关 举报
数据采集模块说明.doc_第1页
第1页 / 共7页
数据采集模块说明.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
数据采集模块说明 数据采集模块主要是实现各路模拟信号的采集,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为负),后四位数据位(精确到小数点后两位),以ASCⅡ码形式由高位到低位发送,小数点需要嵌入式显示部分自行添加。第六位为字符‘$’做为结束符。 若起初嵌入式端发送的n值不是0~7之间的正整数,系统则发送错误信息(字符’F’)告知嵌入式端。 双方采用232串口进行通信,波特率位9600bps(可变)。帧格式为:校验位 数据位 停止位 。 NULL 8 1 注:双方均以ASCⅡ码形式进行数据通信。 各通道的处理: 1.热电阻部分(PT100):硬件电路中,热电阻采用的是三线制接法(以消除线上电阻),采用LM234构成的恒流源电路(电流约为0.134/120安培)将电阻转化为电压信号,然后将该信号放大10倍(由OP07构成的正比例放大器,理论发大倍数10.1倍。Vo=Vi*(1+Rf/R1))#送入AD。 三线制的另一端也放大10倍(理论10.1倍)#后送入AD。 热电阻采用的是三线制接法(以消除线上电阻),因此必将有一路传送该信号(CH1),所以在热电阻部分的软件处理需要两路信号(CH0,CH1)进行数值运算。 如图,V1=(Rx+2r)*i ,V2=r*i ,所以软件的数值运算为:首先计算V=V1-2V2(V1,V2由CH0和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,t1为热电偶实际测得的热电动势,而E(t1,t0)为热电偶冷端温度有t0变化到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 #),送入AD。 PN结部分的软件处理:由于实际电路中的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))。 其中E(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伏电源,四线输出。 硬件电路直接将变送器的输出接入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电压信号送入AD。 因为变送器输出已经完成了线性化处理,所以软件部分根据线性关系直接计算得到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】 插值计算法:插值法也是线性化处理的一种常用方法。差值原理为: 设某传感器的输出特性曲线(例如电阻-温度特性曲线),如图所示 图 分段先行插值原理 由图可以看出,当已知某一输入值xi以后,要想求出值yi并非易事,因为其函数关系式y=f(t)并不是简单的线性方程。为使问题简化,可以把该曲线按一定要求分成若干段,然后把相邻两分段点用直线连起来(如图中虚线所示),用此直线代替相应的各段曲线,即可求出输入值x所对应的输出值y。例如,设x在(xi,xi+1)之间,则其对应的逼近值为 (1) 将上式进行化简,可得 (2) 和 (3) 其中 为第i段直线的斜率 式(2)是点斜式直线方程,而式(3)为截矩式直线方程。上两式中,只要n取得足够大,即可获得良好的精度。在对曲线进行分段,选取各插值基点时,为了使基点的选取更合理,不同的曲线采用不同的方法分段。主要有两种方法:等距分段法和非等距分段法。等距分段法即沿x轴等距离地选取插值基点。这种方法的主要优点是使式(1)中的常数,因而使计算变得简单。但是函数的曲率和斜率变化比较大时,会产生一定的误差;要想减少误差,必须把基点分得很细,这样势必占用较多的内存,并使计算机所占用的机时加长。 非等距分段法的特点是函数基点的分段不是等距的,通常将常用刻度范围插值距离划分小一点,而使非常用刻度区域的插值距离大一点,但非等值插值点的选取比较麻烦。 本系统采用的是等距分段法,表格中存储的是以一度为间隔的整度数分度表。以热电阻为例,为了计算某一特定的温度值,首先需要确认最接近的两个电阻值(一个低于测量值,一个高于测量值),然后用插值法确定测量温度值。例如:如果测试的电阻值为109.0,查询表格精度为1度,那么2个最接近的值是108.96(23度)和109.35(24度),则利用插值法进行计算:[(测量值-最接近的低阻值)/(最接近的高阻值-最接近的低阻值)]*(分辨率)+最接近的低温度值=[(109.0-108.96)/(109.35-108.96)]*1+23=23.10,当然为了精度要求(保留两位小数),实际程序中的计算公式为:[(109.0-108.96)/(109.35-108.96)]*100*1+23*100=2310。 【4】查表法是一种常用的线性化处理方法。在测控系统中,有些参数的计算是非常复杂的,如一些非线性参数,它们不是用一般算术运算就可以算出来的,而需要涉及到指数、对数、三角函数,以及积分、微分等运算,所有这些运算用编程实现都比较复杂,有些甚至无法建立相应的数学模型。为了解决这些问题,可以采用查表法。所谓查表法,就是把事先计算或测得的数据按一定顺序编制成表格,查表程序的任务就是根据被测参数的值或者中间结果,查出最终所需要的结果。 本程序中编制了两个表格,分别是热电偶(K型)的分度表TableV和热电阻(PT100)的分度表TableR。 TableV是一个具有101个元素的数组,分别对应0~100度的热电偶的热电势值,为了避免浮点数,表中的数值均扩大了1000倍,成为正整数。数组的下标对应0~100的温度值,在计算结束后,返回温度值,该值也扩大为整数,扩大的倍数与精度有关(该程序中扩大了100倍,即精确到小数点后两位)。 TableR也是一个具有有101个元素的数组,分别对应0~100度的热电阻的电阻值,为了避免浮点数,表中的数值均扩大了100倍,成为正整数。数组的下标对应0~100的温度值,返回温度值,该值也扩大为整数,扩大的倍数与精度有关(该程序中扩大了100倍,即精确到小数点后两位)。 【3】【4】部分参考《机电一体化检测系统》和《查表法校正铂电阻的非线性误差》,王小宁,史俊富(论文)。 程序大致流程图如下:只是一个简略图,具体细节并未画出,尚待完善。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服