基于SOC的高精度红外测温系统设计
3.系统软件设计
红外线温度检测系统的软件设计主要有如下几个主要模块:初始化模块﹑I/O口查询模块﹑AD转化模块﹑数据处理模块﹑数据纠正模块﹑显示驱动模块等。另外还一个中断程序处理模块:0外部中断,主要用于参数设定。
软件设计流程如图 3所示。
整个程序采用 c51编写,初始化模块主要是初始化各路报警信号,将发射率等参数设定成默认的值并显示。主程序不断通过 I/O口查询模块扫描 AD转换模块送过来的 12位数字信号,本程序中采用的是 SPI总线的通信方式,串行的接口方式节约了大量 IO口。接受过来的数字信号通过数据处理模块处理之后按查表的方式得出温度值,把该温度值经过数据纠正模块纠正后送显示模块显示,并将数据传给上位机界面进行显示,从而完成了一路温度测量。在程序的运行过程中,随时可以对发射率,报警值等参数进行设定。当功能键按下的时候触发单片机的 0外部中断,在中断程序中对参数设定按键进行扫描,并将结果存储起来。每路测温结束后系统通过 RS485将温度值传送给上位机,在 VB界面上显示。
对于一个测量系统,其精度和准确度是非常重要的。虽然本设计选用 12位AD,给本设计的高精度奠定了基础,但是由于传感器,AD等电子器件自身不可避免的误差和外界的干扰,测量结果难免会有些偏差。因此和研究其他仪器仪表一样,在本设计中,也进行了大量实验,通过对实验数据的处理,进一步提高了准确度。采用的主要方法是曲线拟合的最小二乘法。现将其原理介绍如下:
在函数的最佳平方逼近中,函数 f(x)∈C[a,b],如果 f(x)只在一组离散点集{xi,i=0,1,…,m}上给定,那么我们就需要对实验数据{(xi,yi),i=0,1,…,m}进行曲线拟合,其中,yi= f(xi)。若要求函数 y="S" ((*)x)与所给数据{(xi,yi),i=0,1,…,m}拟合,则误差δi= S *(x)-yi。设Φ 1(x),Φ2(x),…, Φn(x)是C[a,b]上线性无关函数族,在Φ =SPAN{Φ1(x),Φ2(x),…, Φ n(x)}中找一函数S ((*)x),使其误差平方和最小即可。因为实验数据量很大,故在实际运算中,可以借助MATLAB等数学工具,通过调用或者编写相关函数来完成曲线拟合,最后选择适当的结果输出。
- 为您的应用选择正确温度传感器(04-02)
- 探讨热电偶的测温原理(07-31)
- 模块电源的热分析及处理设计(06-08)
- 电子线路的故障排除和调试(08-22)
- 集成放大器冷结补偿的热电偶温度测量系统(08-27)
- 具有0.5°C精度的隔离式4通道热电偶/RTD温度测量系统(10-16)