STM32单片机仿真开发实例 课件 6.4 数字式远程温度传感器的设计.pptx

STM32单片机仿真开发实例 课件 6.4 数字式远程温度传感器的设计.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;能力目标:

认知工业自动化产品中的数字式远程温度传感器,在理解的基础上掌握其主要功能,并完成产品主要功能的设计。

任务要求:

绘制数字式远程温度传感器的仿真电路,并完成STM32单片机程序的设计,要求实现如下功能:

(1)能检测0~40℃之间的温度变化,分辨率1℃;

(2)具备串口通信功能,支持Modbus_RTU通信协议。;6.4.1远程温度传感器简介

顾名思义,远程温度传感器就是具备远程数据传送能力的温度传感器。

本次任务,我们将设计一款利用热敏电阻与ADC检测温度,并利用RS-485网络传送温度值的远程温度传感器。;6.4.2热敏电阻

热敏电阻,顾名思义是一种对温度敏感的特殊电阻元件,分为如下两类:

①PTC(PositiveTemperatureCoefficient,正温度系数)电阻

②NTC(NegativeTemperatureCoefficient,负温度系数)电阻

;NTC电阻的温度和阻值之间的计算关系为:

式中:

t——随机温度值(单位℃);

Rt——与温度t对应的阻值(单位Ω);

(t0,R0)——曲线上t0=25℃时的电阻阻值;

B——热敏指数。

;温度转换算法:

可由以下三步进行推算:

(由D计算Ut)(由Ut计算Rt)(由Rt计算t)

实际上STM32的CPU没有这么强的计算能力,最后一步的对数运算必须借助于“泰勒级数”展开计算,运算效率太低,必须借助于“①查表法”+“②分段线性化”。

;①查表法

由以下计算式,推算若干特征点数值

②分段线性化

利用“分段线性化”来减轻CPU的计算负担,

但误差不可避免。;6.4.3DMA与ADC

DMA(DirectMemoryAccess,直接存储器访问)技术的作用在于提供外设与存储器或者存储器之间的高速数据传递,这一过程不经过CPU干预。DMA支持的外设包括通用和高级定时器、ADC、SPI、I2C和USART,等等。

以ADC为例,比较阻塞方式、中断方式、DMA方式三者间的区别:

显然,DMA方式效率最高,ADC的转换和存储过程完全不需要CPU干预,程序对于ADC转换的结果随用随取。;6.4.4Modbus_RTU通信协议补充

本次任务将要用到的功能码是“读(多个)寄存???”。;“读寄存器”指令,完整的指令格式如表所示。

说明:

◆地址域,由1个字节构成,即Modbus从站地址,范围0~247(248~255保留);

◆起始地址,由2个字节构成,即第一个寄存器的地址,地址范围为0x0000~0xFFFF;

◆寄存器数量,由2个字节构成,即从第一个寄存器开始连续若干个寄存器,,范围1~2000;

◆校验码,由2个字节构成,即CRC校验码;

◆字节数,由1个字节构成,即寄存器数值占用的字节个数(N),注意寄存器长度是2个字节;

◆寄存器数值,由N个字节构成,是寄存器数量的2倍。;下面是“读寄存器”108~110(Hex:006BH~006DH)的实例:

其中:

最后获取的寄存器108~110的值分别是:022BH、0、0064H。;6.4.5仿真电路的绘制;6.4.6任务程序的编写

首先确立ADC转换的数字量与温度值之间的关系,由仿真电路可知NTC电阻阻值Rt与ADC读取数字量D之间的关系:

式中,Dmax为数字量最大值,当ADC设定为右对齐时,Dmax取0FFFH,当ADC设定为左对齐时,Dmax取FFF0H。;借助于Excel建立t-Rt计算关系及Rt-D计算关系,最终得到t-D计算关系,如图。;计算得到0~40℃之间每隔1℃的温度值t对应的数字量D,如图。;当ADC转换结果D介于两个特征值之间时,比如D2D≤D1时,由公式;具体可采用:

(1)ADC的阻塞编程法

(现场操作演示…)

(2)ADC的DMA编程法

DMA参数设定如下图所示。;本次任务涉及到的与DMA相关的API函数是:

HAL_ADC_Start_DMA启动ADC函数(带DMA);Tobecontinued...

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档