基于CAN总线的智能节点的设计
摘要:CAN总线性能优越,是当前的研究热点,本文提出一种基于STM32F107和SN65HVD230组成的CAN总线智能节点测试系统。分别设计了基于CAN总线智能节点系统的硬件结构和软件设计,实现了稳定可靠的数据测量控制,提高了工业现场的可操作性。实际应用表明,该方案提出的智能节点组态灵活、结构简单、性能稳定、扩展性好。
本文引用地址:http://www.amcfsurvey.com/article/201610/307873.htm关键词:CAN总线;智能节点;STM32F107
现场总线是工业自动化领域中实现分布式控制而产生的工业级局域网,其可以实现控制系统内各节点的实时数据通信,具有良好的可靠性,成为当前工业控制领域内的研究热点。在众多现场总线中,CAN总线以其高性能的特点,被广泛应用于航天航空、工业控制、环境监测,医疗设备等多个方面。基于CAN总线的控制节点可实现对工业控制中多点
的分布式控制,具有重要的研究价值。
1 总体结构设计
CAN总线采用了不同于传统的分布式控制系统的构架,由分散于工业控制中现场智能节点完成传统系统中主机的常规测试与控制。因此基于CAN总线的分布式控制系统的主机不必监控底层设备,实现高性能的高层次控制与管理。一般基于CAN总线的工业分布式控制系统中由主机、数据转换器以及智能节点组成。
整个系统的结构如图1所示,主机和智能节点通过CAN总线连接,智能节点作为从机通过CAN接口连接CAN总线。主机由基于LabVIEW设计的监测软件和硬件资源组成,主要实现对智能节点的监测以及测试数据的显示和存储。数据转换器是串口转CAN总线实现数据的转换,并实现转发。各个智能节点都挂接到 CAN总线上,将采集到的数据发送到CAN总线上或者接受CAN总线上数据进行处理。智能节点主要由微控制器、CAN收发器以及相应I/O接口组成。
智能节点设计使用STM32F107作为其主控芯片,集成多项高性能工业标准接口的互联型微处理器,其采用32位ARM Cortex—M3核心,主频高达72 MHz,其出色的兼容性以及高性能,低价格,具有较大的RAM和ROM,对于程序量较大的嵌入式系统有良好的支持,广泛应用于工业控制中。
新STM32外设丰富强大,包括10个定时器,其中一些不仅可以进行普通的定时还可以进行脉冲捕获、以及PWM生成;2个12位AD模数转换器,其最大采样率高达2M sample/s、2个12位DA数模转换器、2个I2C接口、5个UART接口支持最高921 600 bps和3个SPI端口和高质量数字音频接口IIS,拥有全速USB(OTG)接口,支持2路CAN2.0B接口,以及高速以太网10/100 MAC模块接口。
CAN收发器选择德州仪器的SN65HVD230,该器件具有高速率、高抗干扰能力和高可靠性CAN总线的串行通信。该芯片在CAN总线系统中具有广泛的应用,便于更换。
2 系统硬件设计
一般的CAN总线智能节点由三个部分:微控制器、CAN总线控制器以及CAN总线收发器组成。微控制器STM32F107内部已经集成了CAN总线控制器,故本文涉及的智能节点主要由STM32F107和CAN总线收发器组成。
图2是基于STM32F107智能节点系统的CAN总线部分原理图。图中STM32F107的PD0和PD1脚分别为CANRX和CANTX引脚,为 CAN总线的输入输出管脚,连接CAN总线收发器才能与CAN物理总线相连。CAN收发器SN65HVD230,具有速度高达1 Mbps的差分发送、差分接收能力,提供三种工作模式:高速、低电流待机和斜率控制。自身具有短路保护、失地保护、过压保护和过热保护。常态下工作电压是 -2V~7V,瞬时耐压范围是-25V~25V。CAN收发器SN65HVD230第8引脚经10 k电阻与PD15连接,这样可以由微控制器控制其工作模式,当PD 15为低电平时为高速工作模式,PD15为高电平时为低电流待机模式。CAN收发器SN65HVD230与CAN总线的接口设计时采用较强的抗干扰措施,以及过流保护等方式。其中与CANH、CANL串连的5 k电阻可起到一定的限流作用;并联在CANH、CANL和地之间的32 pF的小电容,防止高频干扰,同时具有一定的防电磁辐射能力;在CAN总线的输入端与地之间接的防雷击管,可以滤除CAN总线输入端和地之间的瞬态突变干扰。
复位电路则是包括按键复位电路和上电自动复位电路组成,加强其可靠性。本文为了系统的调试,集成了JTAG的调试接口。
3 系统软件设计
基于CAN总线的智能节点主程序流程如图3所示,其发送方式通过查询实现,而发送数据方式通过中断来实现。智能节点的主程序主要包括系统及外设初始化、CAN控制器初始化、数据发送、数据接收部分。
在CAN控制器初始化时,必须要求其控制寄存器中复位位置较高时,才可以访问寄存器。因此,在初始化寄存器前,系统必须确保已经进入复位状态,在访问CAN总线时寄存器中的内容决定波特率的大小。总线定时寄存器的初始化值应根据CAN控制器的晶振频率进行设计。
数据发送时,CAN控制器将数据发送到CAN总线是由CAN控制器自动完成的,发送主程序将发送数据的信息帧发送到CAN的发送缓冲区,然后启动发送命令即可。
数据接收时,CAN控制器从CAN总线将数据读取到CAN接收缓冲区也是自动完成的。接收程序需要从接收缓冲区读取数据。设计时充分考虑读接收缓存器(RBF0和RBF1)内容后,微控制器必须通过置释放接收缓存位为高,从而释放缓存器,使得另一个立即变为有效。
4 结束语
以STM32F107微处理器为核心,设计了CAN总线的智能数据采集节点,该系统充分发挥CAN总线的优点,具有高可靠性、高抗干扰性、高传输率以及灵活的组网方式等。该智能节点可实现分布式多节点测试,实现了测试过程智能化和网络化,在工业测控领域有广阔的应用前景,尤其是处理数据较多和实时性严苛的环境下,该设计节点会更加有优势。
- STM32单片机中文官网
- STM32单片机官方开发工具
- STM32单片机参考设计
评论