基于单片机S3C2410的嵌入式温度传感器设计

  • 投稿
  • 更新时间2018-06-22
  • 阅读量124次
  • 评分0
  • 0
  • 0

  摘要:传统基于谐振式MEMS的嵌入式温度传感器无法解决复杂环境中温度信号内不稳定部分的不利干扰,存在稳定性差和测量精度低的问题。设计基于S3C2410的嵌入式温度传感器,将S3C2410芯片嵌入到温度传感器中,设计的温度传感器硬件部分中的温度传感器电路转换时,将AD590传感器输出的与温度成正比的电流转化为电压,将TLC2252作为双运放放大电路的双通道的差分式输入方法,通过差值抵减提高温度传感器整体的稳定性。温度传感器的软件部分的RS422串行接口,采用合适的编码方式对RS422接口进行驱动,通过非线性自校模型采用软件算法准确调整电路中的非线性误差,调整后的结果即为温度传感器测得的温度值。实验结果表明,所设计的嵌入式温度传感器能显著提高温度测量精度,检测效率和稳定性较高。


  0引言


  随着现代工业发展进程的不断加快,社会科学技术的飞速发展,人们日常生活对各种工业产品的要求也越来越高,温度传感器与人们生活密切相关,除了大型的工业设备中需要其进行温度控制外,在日常生活中也能看到各种温度传感器的应用,如热水器、空调、汽车等数码产品中都应用了温度传感器,嵌入式的温度传感器的产生减少了温度传感器的体积,方便进行工业设计[1]。因此,设计出高质量的嵌入式温度传感器,提高温度信号测量精度以及稳定性,具有重要的应用价值。传统基于谐振式MEMS的嵌入式温度传感器,无法解决复杂环境中温度信号中不稳定部分的不利干扰,并且不能对温度传感器电路中的非线性误差进行准确调控,存在稳定性差和测量精度低的问题。为了解决该问题,本文设计基于S3C2410的嵌入式温度传感器,来提高温度传感器的温度测量精度和稳定性。


  1基于S3C2410的嵌入式温度传感器设计


  1.1S3C2410基本介绍和结构设计


  基于S3C2410的嵌入式温度传感器的处理器采用ARM9芯片的S3C2410,该芯片是由韩国三星电子公司生产的32位RISC处理器,该处理器特点包括:16kB指令Cache、负责数据存储器管理单元MMU以及16kB数据Cache,三者共同作用能提高主存储器的带宽和温度传感器的使用性能。其外部的存储控制器可同时扩展成8组,每组内存容量达到128MB,并支持从NANDflash存储器的启动[2]。2个USB主机总线接口和1个USB设备总线端口;兼容MMCSD卡接口等。S3C2410结构主要由ARM920T内核及其片内外设构成,ARM9的内核ARM9TDMI、32kB的Cache以及MMU共同构成ARM920T的内核;ARM920T片内外设分为高速外设和低速外设两部分,用AHB总线和APB总线表示[2]。


  1.2温度传感器硬件设计


  本文设计的嵌入式温度传感器的硬件部分由温度传感器电路、电压转换电路、A/D转换电路、存储模块以及通信模块共同构成,图1为本文设计嵌入式温度传感器的硬件组成图。


  1.2.1温度传感器电路转换设计


  AD590传感器具有线性良好、温度测量灵敏度和精度较高的特点。本文利用AD590传感器进行温度采集及电路转换[3]。基于图1温度传感器的硬件组成,对AD590传感器温度采集及传感器电路转换进行设计,可将AD590传感器输出的与温度成正比的电流转化为电压,详细的转换过程如下:


  AD590温度传感器输出电流(单位:μA)为:


  [I=273+T](1)


  式中,T为温度(单位:℃)。


  测得电压值(单位:V)为:


  [V=(273+T)×104=273+T100](2)


  为了保证电压测量结果的准确和输出电流[I]不被分流,采用电压跟随器使输出电压[Vo]与输入电压大小保持一致。由于电源在供应较多的电子器件时易出现电源携带杂波现象,采用齐纳二极管来稳定电压,根据可变电阻分压将输出电压结果修正为2.73。


  1.2.2电压转换电路设计


  本文嵌入式温度传感器的温度适用范围在0~120℃,传感器输出的电压值区间为[0V,2.4V],而ADS7842的电压输入在-0.3V至VCC之间,其中VCC为电压为5V的直流电压,因此经由A/D芯片接入电路的电压需要进行调整,该输入电压的调整过程就是电压转换电路设计。


  利用TLC2252作為双运放放大电路,设计嵌入式温度传感器运放模块。利用双运放放大电路中的双运放差动[4],在对电路放大效果、性能和结构等方面都好于单运放前置放大电路,采用双运放放大电路可用于反馈电阻的扩展,降低电阻产生的热噪声电流,干扰温度传感器的正常运行。电压转换电路输入端的设计利用双通道的差分式输入方法,采用该方法可使信号输入过程中的不稳定部分通过差值进行抵减[5],使温度传感器整体稳定性得以提高。双运放电压转换电路如图2所示。


  由图2可知,[V(+)]和[V(-)]均为放大器差动的高阻输入,放大器输出为[Vo],基准电压或偏置输入为[Vr]。


  1.3嵌入式温度传感器软件设计


  1.3.1软件总体设计流程


  在本文基于S3C2410的嵌入式温度传感器的软件设计中,软件设计流程包括温度传感器初始化、A/D程序转换和非线性自校正、在线标校以及RS422总线输出。软件设计流程图如图3所示。


  软件设计流程中各流程的主要工作任务如下:


  1)温度传感器初始化:主要是完成温度传感器中各个器件的工作状态初始化[6],如FPGA和STM32F405。


  2)A/D程序转换和非线性自校正:经由ADG506模拟开关传输为模拟的数字信号,模拟的数字信号可被由FPGA控制的ADS8322进行转换为数字信号[7]。利用STM32F405的控制作用将测量得到的数据进行非线性自校正模型拟合。


  3)在线标校:将拟合后数据采用STM32F405处理器进行控制,按照在线标校模型实施在线标校。


  4)RS422总线输出:即输出在线标校后的温度数据值。


  1.3.2RS422串行接口控制设计


  软件设计过程中,RS422串行接口控制设计,应选择恰当的编码方式对RS422接口进行驱动,依照相关的规定实现RS422通信单元与接收装置间的数据通信[8]。图4为RS422软件功能结构图。


  从图4可以看出,RS422软件功能结构图包括接收器、解码器、发送器和编码器四个器件。


  1.3.3非线性自校模型


  本文对电路中非线性误差调整算法采用最小二乘法与牛顿迭代法相结合的算法,若对电路全程实施拟合,会对部分温度段内的测量结果造成影响,采用分段拟合的方式则可以降低温度测量的误差[9]。本文采用式(3)所示的多项式拟合公式进行电路的分段拟合。


  依照规定,选择符合要求的温度精度,比较两次迭代过程结果是否符合温度要求,若符合要求则结束运算,得校正后的数值为温度传感器测得温度结果。


  2实验分析


  为了验证本文基于S3C2410的嵌入式温度传感器对温度测量的精度情况,以某工业制造企业为实验背景,对某种类型生产设备的运行过程中的发热情况进行检测,分别采用本文温度传感器、基于谐振式MEMS嵌入式温度传感器和分布式光纤温度传感器进行温度检测,将测得结果与生产设备的实际温度进行对比分析,三种温度传感器检测的温度值同实际温度值的相似精度,如表1和图5所示。


  从图5可以得出,采用本文温度传感器测得的温度结果与实际温度在不同温度下的相似精度较高,均达到94%以上,且随着检测温度的不断提升,本文温度传感器对温度的检测精度逐渐增强;基于谐振式MEMS的嵌入式温度传感器对温度的检测结果与实际值差别较大,且随着温度增加差别越来越明显;分布式光纤温度传感器测得温度与实际温度差别最大。综上,说明本文温度传感器在实际应用中对温度的灵敏度较高,对温度的检测效果明显。


  3结论


  本文设计的基于S3C2410的嵌入式温度传感器,可以在不同的环境温度下对温度进行准确测量,缩短温度检测时间,提高温度传感器的实际应用效果。


  作者:蒋礼林