你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32和CAN总线的温度监控系统设计

[复制链接]
eefishing 发布时间:2020-2-14 01:41
基于 STM32 和 CAN 总线的温度监控系统的设计,通过上位机与下位机的通信,实现对温度数据的监控,并经初步实验达到了设计的要求。

2 ]+ h9 G. z5 M% s1 系统总体方案概述0 N) L5 j! r: u5 T( N& f) \; o
系统总体框图如图 1 所示,本系统采用主站+从站的结构,CAN 主站主要实现温度数据的存储以及 CAN 总线协议和串口协议之间的桥接,CAN 从站主要实现温度的采集。CAN 从站采集的温度,经过 CAN 总线传送到 CAN 主站,主站将各从站的温度值传送到系统上位机中。上位机对各点的数据进行实时曲线显示并进行存储,上位机可以设定报警值,当节点温度超过设定值的时候,上位机发出报警声。在没有上位机的场合,主站将数据以文本文档的形式存储在主站的 SD 卡中。
# F: ?) W3 f( f5 s/ Y6 t& X* d' E # _' d: N! ?! ^7 T) a( G! k' N! M
图 1 系统总体框图

2 |5 `; L& H& G! J9 P2 系统硬件设计3 R/ Y8 Y9 ]2 r6 e6 p
2.1 CAN 主站硬件设计
% N, g% d8 ^' L$ E. [% {- X
主站电路如图 2 所示,主要有电源模块、STM32 模块、CAN 收发器模块、RS232 串口模块和 SD 卡模块。
  t7 w! j: h3 \: t
其中 STM32 模块由 STM32F103RBT6 和周边时钟、复位、调试等组成。电源模块由外部输入+5V 电压,经线性压降 AMS1117-3.3V 后供 STM32 使用。CAN 收发器模块采甩 NXP 的高速收发器 TJA1040,TJA1040 是 PCA82C250 的替代品,它完全符合 ISO11898 标准,具有高速、低功耗、低电磁辐射的优点。RS232 电平转换芯片采用 MAX3232,它具有低功耗、高数据速率以及增强型 ESD 保护等特性。采用专有的低压差发送输出级,+3.0V 至+5.5V 供电时利用内部双电荷泵保证 RS-232 性能。工作时,电荷泵仅需要四个 100nF 的小电容。SD 卡模块采用四线制 SPI 总线与 SD 卡相连接。
" m% P# W* T9 \8 t+ h  l) n; N
2.2 CAN 从站硬件设计
  T2 u$ l: f& x: S2 b# A从站电路如图 3 所示,主要有电源模块、STM32 模块,CAN 收发器模块,PT100 模块和从站地址选择模块。# }: ?/ q2 R" j" b2 L, j, I9 C
图 2CAN 主站电路框图        图 3CAN 从站电路框图

9 V; S8 P+ K; y" a$ m其中电源模块、STM32 模块和 CAN 收发器模块与 CAN 主站相同。PT100 模块,采用传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过 TL431 稳至 2.5V。从电桥获取的差分信号通过两级运放放大后输入 STM32 的 AD 输入口。从站地址选择模块由 8 位拨码开关组成,连接到 STM32I/O 的 PC6-PC13。
, d& c, |& h% O, e$ W' t! t4 z- H
3 系统软件设计5 a7 C5 p& B& o! f7 `
本系统软件由 CAN 主站软件、从站软件以及 Delphi 上位机软件构成。其中 CAN 主站和从站程序用 C 语言编写,上位机程序用 ObieetPascal 编写。

  A4 q+ t  {' K, S/ C2 h# j% M3.1 CAN 主站软件设计# f6 R" V" u0 b# }
CAN 主站的功能是发送远程帧向从站查询数据、通过 AD 的转换结果计算芯片内部温度传感器的温度值、接收从站发送的数据帧、发送温度数据到上位机或存储数据到 SD 卡。CAN 主站程序如图 4 所示。
8 c% i2 l) _  n) X. t, n
图 3CAN 主站程序流程图图 5 写 SD 卡程序流程图

2 }9 `/ y/ H1 }1 r8 J8 X0 j写 SD 卡部分程序流程图如图 5 所示,SD 卡部分主要用到了移植的 FATFS 文件系统提供的访问 FAT 卷的应用接口(ApplicationInterface)。主要用到了以下函数:
& r5 u9 I) [8 E
·f_mount- 注册 / 注销一个工作区域
+ b  ^% x4 D9 L& A6 A1 t
·f_open- 打开 / 创建一个文件

2 q) c* @- \* }( {·f_close- 关闭一个文件

5 w" X! N; K: O0 z2 d·f_lseek- 移动 / 写指针,扩展文件大小

0 J8 o0 `" I2 ~( w3 y/ p9 I0 s·f_puts- 写字符串
( \2 }( a) X/ ?8 g6 m
·f_printf- 写一个格式化字符串
5 B9 V2 v- O2 w' Q' q8 _  c  ]4 R$ e
3.2 CAN 从站软件设计' t/ s. _7 j" ^- U( n1 u- w
CAN 从站的主要功能是通过 AD 转换器检测 PT100 电桥的差分输出电压,然后计算得出此节点的温度值,最后通过 CAN 总线传送给 CAN 主站。其中只有在 CAN 从站收到与自己节点号相同的主站发送的远程帧的时候,从站 CAN 控制器才发出一个数据帧。CAN 从站程序流程图如图 6 所示。
. F1 h6 e' A2 S- N# d6 L
图 6CAN 从站程序流程图图 7Delphi 实时曲线部分流程图
) R  M3 @6 C+ \" z
3.3 Delphi 上位机软件设计
7 s' e6 f- f# ]. I本上位机软件主要实现了五个功能:实时曲线显示当前各从节点的温度;打印实时曲线;将实时曲线保存为图片;将实时曲线的数据保存为 TXT 文档以及实时温度超过报警值时报警。

# e8 `2 f& m9 U. I0 s8 y本系统上位机串口通讯控件采用 SPCOMM,该控件具有丰富的与串口通信密切相关的属性及事件,支持多线程;提供了对串口的各种操作。图形控件采用 TChart,TCharc 是 Delphi 里面一个标准的图形显示控件。它可以静态设计(AtDesignTIme)也可以动态生成。该系统设计采用的版本为 TeeChart7;实时曲线部分流程图如图 7 所示。上位机程序完成后界面如图 8 所示。! [, q2 W* X( W- b- T7 R
图 7 上位机界面
# `9 Z+ p) W' [/ U; H
4 结束语$ x' [+ x- w6 Q2 s/ F/ W0 w
本文介绍了基于 STM32 和 CAN 总线的温度监控系统的设计,初步实验证明,上述的硬件及软件设计基本达到了设计要求。本系统适用于多节点、远距离的场合,并具有实时性好、可靠性高的特点,具有一定的应用价值。
收藏 评论0 发布时间:2020-2-14 01:41

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版