世纪电源网社区logo
社区
Datasheet
标题
返回顶部
讨论

分享:STM32和CAN总线在温度监控系统中的应用

[复制链接]
查看: 3496 |回复: 0
1
世纪电源网-SUN
  • 积分:2025
  • |
  • 主题:76
  • |
  • 帖子:236
积分:2025
LV8
副总工程师
  • 2019-9-25 10:35:31
引言
     现代工业控制领域通常要测量很多信号,将其转化为计算机可以识别的二进制信号,并利用计算机监视和记录各种测量的信号。这个过程就要涉及到信号的采集和处理。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总线的温度监控系统的设计,初步实验证明,上述的硬件及软件设计基本达到了设计要求。本系统适用于多节点、远距离的场合,并具有实时性好、可靠性高的特点,具有一定的应用价值。


收藏收藏
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号