基于CAN总线的多点温度采集系统设计
扫描二维码
随时随地手机看文章
引 言
数据采集系统是工农业生产的重中之重,温度信息更是与人们的日常生活息息相关。以 485 总线为通信方式的采集系统是市场的主流,但是却存在组网能力差、传输速率低、可靠性不高等的缺点。因此,需要研发可以满足远距离传输与控制要求并具有良好网络通讯能力的温度采集系统以满足时代发展需求。
控制器局域网络 CAN(Controller Area Network)是一种能有效支持实时控制和分布式控制的串行通信网络,将 CAN 总线技术运用于温度采集系统中,不仅可以降低误码传送率, 还可提高系统内部的通信实时性。因此,基于 CAN总线设计的温度采集系统具有组网能力强、传输快、可靠性高等优点 [1]。
1 系统总体结构
CAN 总线技术作为一种成本合理、可靠的、先进的、功能完善的远程通讯方式正在被广泛运用,将 CAN 总线运用于温度采集系统非常具有现实意义。本文设计了一种基于 CAN 总线的多点温度采集系统,该系统以STM32F103 作为中央处理器,用 3 个温度传感器DS18B20 获取 3 个点的温度并传递到主机系统进行显示,CAN 总线被作为主机与从机之间的通信介质。通过上位机预设高临界、低温度值使得在此范围之外的温度会导致系统报警 ;TJA1050 完成单片机与CAN 总线的通信。本系统设计原理如图 1 所示。
2 系统硬件电路设计
主机部分和从机部分是基于 CAN 总线的温度采集系统设计的两大模块。主机部分由MCU 主控单片机、仿真下载、RESET 复位、串口、CAN 收发器、时钟电路、SB 转串口等组成;从机部分主要由 MCU 主控单片机、时钟电路、仿真下载、RESET 复位、DS18B20 温度传感器等组成。整个系统的结构框图如图 2 所示。
本系统所采用的控制芯片是STM32F103C8T6,它的优点是功耗低、管脚数量少,成本低。32 字节的存储器可以满足存储程序和数据的要求 ;有外部中断与内部中断两种中断方式 ;外部中断控制器可通过 19 路触发器产生外部中断请求,内部中断控制器完成 43 路中断;内部自带 CAN 控制器; STM32F103 满足CAN2.0A/B 协议[2],具备输入输出口,大部分管脚具有数模转换功能的特性,并且输出、输入、外围电路转换等功能均可通过GPIO 口利用软件来实现。
DS18B20 具备宽泛的电压范围使其不仅可以连接外部电源,还可与硬件连接作为寄生电源,具备- 55°C ~ +125°C 广泛的温度测量范围,然而它之所以具备如此强大的市场竞争力却是由于其在- 10°C ~ +85°C 之间的精度为 0.5°C。单总线接口方式使其运用起来十分方便,仅需要一根线便可实现双向通讯,将多个传感器并用于一个系统中,组成一个可快速将温度转化为数字的网络。
CAN 总线收发器 TJA1050 遵从 ISO 11898(国际标准) 标准,其优势是速率高并具有电磁兼容性 [3]。最高达到1 Mb/s, 这可以使信息传输速率大大提升,并且可以通过连接 110 个以 上的节点特征将各个温度节点进行组网,满足收集不同区域多 个温度节点信息的要求。
CH340G 在本系统中被用作一个 USB 转串口的工具,它 具有全速 USB 接口,并且兼容 USB2.0,CH340 的驱动程序 能够仿真标准串口,因此与绝大部分应用程序完全兼容 [4]。本 系统中用于主机系统 STM32 单片机与 PC 机之间的连接,使 用目的是保证主机系统正常与 PC 机连接。硬件全双工串口, 支持波特率100 b/s~3 Mb/s的特点可以与CAN协议完美结合。
3 系统软件设计
系统软件主要由主机软件、从机软件 2 部分构成。以下 将分别介绍这两部分的程序流程图与主要功能。
3.1 主机软件设计
主机程序的功能是 :主机模块读取 CAN 总线上传的温 度信息并传送到 PC 机中,在读取到温度信息时刷新温度显示, 并在检测到报警值修改后发送报警值修改命令。主机软件设 计流程如图 3 所示。
3.2 从机软件设计
从机系统的功能是 :采集 DS18B20 温度传感器的温度信 息,并将所读取到的温度通过 CAN 总线传输到主机系统中, 并且在收到报警设定命令时重新设定温度报警值。从机软件 设计流程图如图 4 所示。
4 系统测试
3 路温度实时显示与 26°C 超温报警是本系统的两个主要技术指标。图 5 是温度显示的测试界面。接收与发送均采用ASCII 形式,并且串口通信波特率为 9 600。
从图 5 可知在测试环境温度 25°C 下,3 个温度传感器分别显示的温度为 24.50°C、25.87°C、25.68°C,由于 3 个温度传感器存在细微差异,因此所测温度略有不同。对传感器 2、传感器 3 进行升温,在温度超过 26°C 后马上出现报警提示。测试结果表明 :本系统所设计的温度传感器误差较小,并且报警功能较为灵敏。
5 结 语
采用内置 CAN 总线的STM32 单片机与高精度显示温度传感器DS18B20 结合而设计的基于 CAN 总线的温度采集系统具有体积小、功耗低、集成度高、准确性较高等优点。实际调试结果表明该温度传感器不仅可以对 3 路温度实时显示, 并且具备超温报警功能,在工农业生产等方面均有较大价值。