STM32 在温度监控系统中的应用

发布者:烟雨江湖最新更新时间:2023-09-10 来源: zhihu关键字:STM32  温度监控系统  信号 手机看文章 扫描二维码
随时随地手机看文章

引言
现代工业控制领域通常要测量很多信号,将其转化为计算机可以识别的二进制信号,并利用计算机监视和记录各种测量的信号。这个过程就要涉及到信号的采集和处理。CAN 总线是一种串行多主总线,它卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。本文介绍了基于 STM32 和 CAN 总线的温度监控系统的设计,通过上位机与下位机的通信,实现对温度数据的监控,并经初步实验达到了设计的要求。

1 系统总体方案概述
系统总体框图如图 1 所示,本系统采用主站+从站的结构,CAN 主站主要实现温度数据的存储以及 CAN 总线协议和串口协议之间的桥接,CAN 从站主要实现温度的采集。CAN 从站采集的温度,经过 CAN 总线传送到 CAN 主站,主站将各从站的温度值传送到系统上位机中。上位机对各点的数据进行实时曲线显示并进行存储,上位机可以设定报警值,当节点温度超过设定值的时候,上位机发出报警声。在没有上位机的场合,主站将数据以文本文档的形式存储在主站的 SD 卡中。


图 1 系统总体框图

2 系统硬件设计
2.1 CAN 主站硬件设计
主站电路如图 2 所示,主要有电源模块、STM32 模块、CAN 收发器模块、RS232 串口模块和 SD 卡模块。

其中 STM32 模块由 STM32F103RBT6 和周边时钟、复位、调试等组成。电源模块由外部输入+5V 电压,经线性压降 AMS1117-3.3V 后供 STM32 使用。CAN 收发器模块采甩 NXP 的高速收发器 TJA1040,TJA1040 是 PCA82C250 的替代品,它完全符合 ISO 11898 标准,具有高速、低功耗、低电磁辐射的优点。RS232 电平转换芯片采用 MAX3232,它具有低功耗、高数据速率以及增强型 ESD 保护等特性。采用专有的低压差发送输出级,+3.0 V 至+5.5V 供电时利用内部双电荷泵保证 RS-232 性能。工作时,电荷泵仅需要四个 100 nF 的小电容。SD 卡模块采用四线制 SPI 总线与 SD 卡相连接。

2.2 CAN 从站硬件设计
从站电路如图 3 所示,主要有电源模块、STM32 模块,CAN 收发器模块,PT100 模块和从站地址选择模块。


图 2 CAN 主站电路框图 图 3 CAN 从站电路框图

其中电源模块、STM32 模块和 CAN 收发器模块与 CAN 主站相同。PT100 模块,采用传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过 TL431 稳至 2.5V。从电桥获取的差分信号通过两级运放放大后输入 STM32 的 AD 输入口。从站地址选择模块由 8 位拨码开关组成,连接到 STM32 I/O 的 PC6-PC13。

3 系统软件设计
本系统软件由 CAN 主站软件、从站软件以及 Delphi 上位机软件构成。其中 CAN 主站和从站程序用 C 语言编写,上位机程序用 Obieet Pascal 编写。

3.1 CAN 主站软件设计
CAN 主站的功能是发送远程帧向从站查询数据、通过 AD 的转换结果计算芯片内部温度传感器的温度值、接收从站发送的数据帧、发送温度数据到上位机或存储数据到 SD 卡。CAN 主站程序如图 4 所示。


图 4 CAN 主站程序流程图 图 5 写 SD 卡程序流程图

写 SD 卡部分程序流程图如图 5 所示,SD 卡部分主要用到了移植的 FATFS 文件系统提供的访问 FAT 卷的应用接口(Application Interface)。主要用到了以下函数:

·f_mount- 注册/注销一个工作区域

·f_open- 打开/创建一个文件

·f_close- 关闭一个文件

·f_lseek- 移动/写指针,扩展文件大小

·f_puts- 写字符串

·f_printf- 写一个格式化字符串

3.2 CAN 从站软件设计
CAN 从站的主要功能是通过 AD 转换器检测 PT100 电桥的差分输出电压,然后计算得出此节点的温度值,最后通过 CAN 总线传送给 CAN 主站。其中只有在 CAN 从站收到与自己节点号相同的主站发送的远程帧的时候,从站 CAN 控制器才发出一个数据帧。CAN 从站程序流程图如图 6 所示。


图 6 CAN 从站程序流程图 图 7 Delphi 实时曲线部分流程图

3.3 Delphi 上位机软件设计
本上位机软件主要实现了五个功能:实时曲线显示当前各从节点的温度;打印实时曲线;将实时曲线保存为图片;将实时曲线的数据保存为 TXT 文档以及实时温度超过报警值时报警。

本系统上位机串口通讯控件采用 SPCOMM,该控件具有丰富的与串口通信密切相关的属性及事件,支持多线程;提供了对串口的各种操作。图形控件采用 TChart,TCharc 是 Delphi 里面一个标准的图形显示控件。它可以静态设计(At Design TIme)也可以动态生成。该系统设计采用的版本为 TeeChart 7;实时曲线部分流程图如图 7 所示。上位机程序完成后界面如图 8 所示。


图 8 上位机界面

4 结束语
本文介绍了基于 STM32 和 CAN 总线的温度监控系统的设计,初步实验证明,上述的硬件及软件设计基本达到了设计要求。本系统适用于多节点、远距离的场合,并具有实时性好、可靠性高的特点,具有一定的应用价值。


关键字:STM32  温度监控系统  信号 引用地址:STM32 在温度监控系统中的应用

上一篇:基于STM32的景点语音自动导览系统的研究与设计
下一篇:基于STM32的高性能、低成本芯片的税控器方案设计

推荐阅读最新更新时间:2024-11-13 01:44

stm32 蜂鸣器
蜂鸣器分为两种型号:有源蜂鸣器和无源蜂鸣器 区别:有源的只用提供一个驱动电压就可以工作,但是无源的蜂鸣器需要提供规定赫兹的脉冲信号才能发出声音,声音的大小可以根据占空比进行调节。 #include system.h /*蜂鸣器时钟端口、引脚定义*/ #define BEEP_PORT GPIOB #define BEEP_PIN GPIO_Pin_5 #define BEEP_PORT_RCC RCC_APB2Periph_GPIOB #define beepPBout(5) void BEEP_Init(void); #endif void BEEP_Init() //端口初始化 { GPIO_InitT
[单片机]
Cadence 推出新版 Palladium Z2 应用,率先支持四态硬件仿真和混合信号建模技术加速 SoC 验证
Cadence 推出新版 Palladium Z2 应用,率先支持四态硬件仿真和混合信号建模技术来加速 SoC 验证 内容提要 • 四态硬件仿真应用可加速需要 X 态传播的仿真任务 • 实数建模应用可加速混合信号设计软件仿真 • 动态功耗分析应用可将复杂 SoC 的功耗分析任务加快 5 倍 中国上海,2024 年 1 月 22 日 —— 楷登电子(美国 Cadence 公司,)近日宣布推出一套新的应用,可显著增强旗舰产品 Palladium® Z2 Enterprise Emulation System 的功能。 这些针对特定领域的应用可帮助客户管理不断增加的系统设计复杂性,提高系统级精度,并可加速低功耗验证,尤其适
[嵌入式]
STM32开发笔记75: 使用STM32CubeMX点亮一个LED
单片机型号:STM32L053R8T6 今天调试在自己的程序框架下调试RTC始终不成功,只要初始化RTC就进入死机状态。现在重温一下STM32CubeMX的使用方法,看STM32CubeMX生成的程序是否有RTC初始化不成功的问题。本日志从工程的建立讲到点亮一个LED。 1、启动STM32CubeMX,我现在使用的版本是5.2.1。 2、File-New Project,选择相应的芯片类型。 3、双击相应的芯片类型后,进入配置界面。进行SYS配置,选中Debug Serial Wire,由于我习惯于使用FreeRTOS所以在我的项目中Timebase Source都选择定时器。 4、进行RCC设置。 5、
[单片机]
<font color='red'>STM32</font>开发笔记75: 使用STM32CubeMX点亮一个LED
STM32的UART DMA传输总结
使用DMA传输可以连续获取或发送一段信息而不占用中断或延时,在通信频繁或有大段信息要传输时非常有用。 由上表可知,要使用USART1TX/RX我们选择通道4和5 1、 DMA传输方式: (1) DMA_Mode_Normal,当通道配置为非循环模式时,传输结束后(即传输计数变为0)将不再产生DMA操作。要开始新的DMA传输,需要3个步骤:在关闭DMA通道的情况下,在DMA_CNDTRx寄存器中重新写入传输数目,然后重新开启DMA。 void DMA1_Channel5_IRQHandler(void) {//由于不同的中断源拥有同一个中断矢量入口,所以需要判断中断标志 if(DMA_GetFlagStatus(DMA1_F
[单片机]
14. 独立看门狗实验
一。 看门狗概述 1. 为什么要用看门狗 2. 看门狗要解决的问题 STM32有两个看门狗 独立看门狗 窗口看门狗 3. 独立看门狗的功能描述 键值寄存器 KR (1)往KR中写入0xCCCC的时候,开始启动看门狗。 (2)计数器开始从其复位值0xFFF递减,当计数到0的时候会产生一个复位信号RESET。 (3)如果在某个时候往KR寄存器中写入0xAAAA(喂狗),自动重装载寄存器RLR的值就会重新加载到计数器中,从而避免看门狗复位。 如果能够及时喂狗,计数器的值就无法到0,从而程序可以正常运行。 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰, 造成程序跑
[单片机]
14. 独立看门狗实验
stm32 推挽输出和开漏输出
stm32的IO口电路如上图所示: 所谓推挽输出:在输出高电平时,P-MOS管导通;低电平时,N-MOS管导通。两个管子轮流导通,一个负责灌电流,一个负责拉电流。推挽输出的低电平为0v,高电平为3.3V. 开漏输出:输出低电平时,N-MOS管导通,使输出接地,若控制输出1(无法直接输出高电平),则既不输出高电平,也不输出低电平,为高阻态。正常使用时必须外接上拉电阻。 推挽输出一般用于输出电平为0V和3.3V的场合,而开漏输出一般用于电平不匹配的场合,如需要输出5V,就需要在外部接一个上拉电阻,电源为5V。
[单片机]
<font color='red'>stm32</font> 推挽输出和开漏输出
基于STM32平台实现SVPWM调制
SVPWM SVPWM是空间矢量脉宽调制(Space Vector Pulse Width Modulation)的简称,通常由三相逆变器的六个功率开关管组成,经过特定的时序和换相所所产生的脉冲宽度调制波,最终输出的波形可能会十分接近理想的正弦波形。具体如下图所示;左侧为复平面,即空间矢量,右侧为时域的正弦波形。 关于SVPWM原理的文章非常多,这里可以推荐一下网上一个非常不错的教程《SVPWM的原理及法则推导和控制算法详解第五修改版》,本文将如何实现SVPWM进行简单的介绍。 IQMATH TI的片子很香,控制方面,TI无疑是做的最好的方案之一,相对来说资料也非常齐全;另外TI针对没有浮点运算器的定点DSP推出了IQMATH
[单片机]
基于<font color='red'>STM32</font>平台实现SVPWM调制
GD32单片机和STM32单片机的区别
一、前言 什么GD32? GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。 所以GD32和STM32有很多地方都是一样的,不过GD32毕竟是不同的产品,不可能所有东西都沿用STM32,有些自主开发的东西还是有区别的。相同的地方我们就不说了,下面我给大家讲一下不同的地方。 二、区别 1、内核 GD32采用二代的M3内核,STM32主要采用一代M3内核,下图是ARM公司的M3内核勘误表,GD使用的内核只有752419这一个BUG。 2、主频 使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M 使用HSI(高速内部时钟):GD32的主频最大10
[单片机]
GD32单片机和<font color='red'>STM32</font>单片机的区别

推荐帖子

LPC810的电源模式设置,sleep,deep sleep
请问我设置SCB-SCR&=~SCB_SCR_SLEEPDEEP_Msk;//设置为休眠模式,SCB-SCR|=SCB_SCR_SLEEPONEXIT_Msk;//进入休眠模式为何定时器能工作,而串口不能啊,同时主函数也不运行了。这是为何。这是时钟的配置#defineSYSOSCCTRL_Val0x00000000//Reset:0x000#defineWDTOSCCTRL_Val0x00000000//Reset:0
楞伽山人 NXP MCU
出青风 QF-TM4C123 TI LM4F232 Cortex-M4 开发板
本帖最后由nwcheroes于2014-7-2123:48编辑 青风QF-TM4C123开发板,做毕设的时候用过一段时间,做完就放着吃灰了。现在和jlink打包一起出,资料光盘都有http://item.taobao.com/item.htm?id=40208434125出青风QF-TM4C123TILM4F232Cortex-M4开发板
nwcheroes 淘e淘
[转贴]我的嵌入式之路
前言这个题目很大,给人一种感觉我好像很成功,其实不然。实际上自己水平不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己真实的学习历程表达出来,希望对后来者有借鉴的意义,甚幸!工作三年、几成废人!我2000年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家内陆某个省级机关工作,家里八辈是农民,并且很偏远,能够进入这样的地方是祖坟有风水。但在毕业前夕有个进入it的机会,我本想进去的,家里人极力反对,阻力可想而知。同时要交4000元的违约金,对我来说是天文数字
liqin3004 嵌入式系统
DCDC模块电源滤波的问题
注意:DCDC模块要注意电源滤波的问题,尤其在AD和传感器供电电路中使用的金升阳的WAR0512S-3WR2模块,如下图,没有加LC滤波电路因为该模块为开关电源,最初没经过计算,只在输出端加了10uF的滤波电容,电源输出的纹波如下图(注意,频率大约1KHz),这种电源的噪声一般是开关电源的开关频率造成的。在模块后添加LC滤波电路后,LC低通滤波电路的滤波频率约为足以滤除上面的约1KHz
Aguilera 模拟与混合信号
示波器高压探头的问题
【不懂就问】如图下,是一个示波器高压探头这个图的意思是不是表明,该探头的共模电压可以达到600-1000v(就是可以把600-1000v的电位当做地),然后在此基础上,两个探头间的电压峰值是1300v?示波器高压探头的问题CAT等级可不是什么“共模电压”,而是指设备满足使用者人身安全的电气应用环境。CAT1指通过变压器或隔离的电源适配器的二次电气侧,CAT2则是一般工作、生活中的交流电网一次侧从电源插座引出的部分,CAT3则是指与交流电网直接连接的一次侧。1300V是探头两线间准许的最
shaorc 模拟电子
分享LMP7721的微电流测试
本帖最后由dontium于2015-1-2311:28编辑微弱电流测试,在半导体、绝缘材料、电场测试、弱光测试、射线探测等领域应用广泛。微弱电路测试用的最多的电路就是IV转换电路,最简单也用的最多电路如下图所示:分享LMP7721的微电流测试本帖最后由dontium于2015-1-2311:28编辑再简单介绍下TI的超低输入偏置电流的运放LMP7721。 LMP7721的Ib不大于20fA,典型值达到3fA,相当不错,尤其是其VosLMP772
music_586 模拟与混合信号
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved