论文部分内容阅读
【摘要】 本文提出一种STM32F103系列RAM微控制器和CAN总线驱动器SN65HVD230为核心来搭建CAN节点。给出了CAN节点硬件架构的实现,分析了软件开发流程,实现了数据稳定可靠的传输。
【关键词】 STM32F103 CAN总线 SN65HVD230
CAN总线以其较高的通讯速率、良好的抗电磁干扰能力可实现高可靠性串行通信,因而在工业现场、汽车、智能家居得到广泛的运用,是当前最具前景的现场总线之一。
一、CAN节点硬件架构
1.1 硬件模块介绍
SN65HVD230是德州仪器公司生产的CAN总线收发器。该收发器具有差分收发能力,最高速率可达1Mb/s。具有高速、斜率和等待3种不同的工作模式。其工作模式控制可通过Rs控制引脚来实现。在高速模式下,收发器的通信速率达到最高.此时没有内部输出上升斜率和下降斜率的限制。该方式下,最大速率的限制与电缆的长度有关。为了减少因电平快速上升而引起的电磁干扰,引入了斜率控制方式。待机状态,系统只“听”发送过来的消息。在“听”状态下,收发器的发送功能处于关断状态,接收功能仍处于有效状态。
1.2 电路设计实现
由于STM32F103单片机自带一路CAN控制器,所以只需外设一片CAN收发器芯片。RAM单片机的CAN信号接收引脚RX和发送引脚TX直接连接到CAN收发器T的RXD和TXD端。CANH与CANL之间接一个120欧姆的终端电阻,主要用于远距离传输时的阻抗匹配和增强电磁兼容性能。如图1 CAN节点电路设计所示。
二、软件设计
2.1 SN65HVD230初始化配置
在程序初始化中对CAN控制器的一些内部寄存器进行设置,位定时器BCR1、BCR2的内容确定系统的通信波特率和同步跳转宽度,两个寄存器的设置必须使本节点和其他节点有相同的通信波特率,否则通信无法完成。CAN控制器对总线的通信管理有发送数据和接收数据。当本节点需要向其他节点传送数据时,CAN控制器将发送邮箱中的数据按规定的格式发送到CAN总线上,总线上其他节点根据设计好的验收码和验收屏蔽码来判断是否接收该数据。其他节点发送到CAN总线上的数据,如果其描述符不能通过本节点的验收滤波器,CAN控制器不对该数据验收;如果描述符通过本节点验收滤波器,CAN控制器将CAN总线上的数据顺序存入空的接收邮箱中,并向RAM发送中断请求,RAM 响应中断,把接收邮箱中的数据取出。
2.2数据的接收
系统各节点的功能主要是将本节点的数据传送给网络其他节点,以及接收网络上其他节点传送来的数据。下面给出测量单元向CAN 总线发送数据的程序流程图,系统的时为8MHz,控制器的波特率设置为500kbps。如图2所示,即为CAN节点数据收发程序流程图。
三、结束语
本文提出的基于RAM的CAN 智能节点控制器,既考虑了CAN总线实现的简单化,又兼顾了智能节点的应用于不同场合时的可扩展性和灵活性。该智能节点集成度高、性能稳定,是适合工业测控领域的一种理想实现方案。
参 考 文 献
[1] 肖广兵,万茂松.基于STM32的系统设计[M].北京:电子工业出版社,2013:74—75.
[2] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[3] 吴恒,夏立.基于CAN总线的船舶火灾报警系统的设计[J].青岛大学学报,2004,17:67—70.
【关键词】 STM32F103 CAN总线 SN65HVD230
CAN总线以其较高的通讯速率、良好的抗电磁干扰能力可实现高可靠性串行通信,因而在工业现场、汽车、智能家居得到广泛的运用,是当前最具前景的现场总线之一。
一、CAN节点硬件架构
1.1 硬件模块介绍
SN65HVD230是德州仪器公司生产的CAN总线收发器。该收发器具有差分收发能力,最高速率可达1Mb/s。具有高速、斜率和等待3种不同的工作模式。其工作模式控制可通过Rs控制引脚来实现。在高速模式下,收发器的通信速率达到最高.此时没有内部输出上升斜率和下降斜率的限制。该方式下,最大速率的限制与电缆的长度有关。为了减少因电平快速上升而引起的电磁干扰,引入了斜率控制方式。待机状态,系统只“听”发送过来的消息。在“听”状态下,收发器的发送功能处于关断状态,接收功能仍处于有效状态。
1.2 电路设计实现
由于STM32F103单片机自带一路CAN控制器,所以只需外设一片CAN收发器芯片。RAM单片机的CAN信号接收引脚RX和发送引脚TX直接连接到CAN收发器T的RXD和TXD端。CANH与CANL之间接一个120欧姆的终端电阻,主要用于远距离传输时的阻抗匹配和增强电磁兼容性能。如图1 CAN节点电路设计所示。
二、软件设计
2.1 SN65HVD230初始化配置
在程序初始化中对CAN控制器的一些内部寄存器进行设置,位定时器BCR1、BCR2的内容确定系统的通信波特率和同步跳转宽度,两个寄存器的设置必须使本节点和其他节点有相同的通信波特率,否则通信无法完成。CAN控制器对总线的通信管理有发送数据和接收数据。当本节点需要向其他节点传送数据时,CAN控制器将发送邮箱中的数据按规定的格式发送到CAN总线上,总线上其他节点根据设计好的验收码和验收屏蔽码来判断是否接收该数据。其他节点发送到CAN总线上的数据,如果其描述符不能通过本节点的验收滤波器,CAN控制器不对该数据验收;如果描述符通过本节点验收滤波器,CAN控制器将CAN总线上的数据顺序存入空的接收邮箱中,并向RAM发送中断请求,RAM 响应中断,把接收邮箱中的数据取出。
2.2数据的接收
系统各节点的功能主要是将本节点的数据传送给网络其他节点,以及接收网络上其他节点传送来的数据。下面给出测量单元向CAN 总线发送数据的程序流程图,系统的时为8MHz,控制器的波特率设置为500kbps。如图2所示,即为CAN节点数据收发程序流程图。
三、结束语
本文提出的基于RAM的CAN 智能节点控制器,既考虑了CAN总线实现的简单化,又兼顾了智能节点的应用于不同场合时的可扩展性和灵活性。该智能节点集成度高、性能稳定,是适合工业测控领域的一种理想实现方案。
参 考 文 献
[1] 肖广兵,万茂松.基于STM32的系统设计[M].北京:电子工业出版社,2013:74—75.
[2] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[3] 吴恒,夏立.基于CAN总线的船舶火灾报警系统的设计[J].青岛大学学报,2004,17:67—70.