新闻中心

EEPW首页 > 汽车电子 > 设计应用 > CAN总线在车辆分布式控制系统中的应用

CAN总线在车辆分布式控制系统中的应用

作者:时间:2009-06-19来源:网络收藏

4.3驱动节点通信程序设计
监控节点的通信采用2.0A协议,通信模块的软件设计主要由初始化子程序、报文接收子程序、报文发送子程序三部分组成。其中初始化子程序是实现通信的关键,它主要用来完成控制器工作方式的选择,即对P87C591中控制器控制段中的寄存器进行设置,包括:定时寄存器和输出控制寄存器设置;接收验收滤波寄存器和滤波屏蔽寄存器设置;设置发送数据帧类型(标准帧或扩展帧)、标识符、数据长度。监控节点与CAN之间的数据交换是通过发送子程序和接收子程序实现的。
报文发送时只需将等待发送的数据按照特定格式组合成一帧报文,送入SJA1000的发送缓冲区中,然后启动SJA1000发送。在这之前必须先作一些判断,如:是否正在接收,发送缓冲区是否锁定等。当SJA1000正在发送报文时,发送缓冲器被写锁定。所以在放置一个新报文到发送缓冲器之前,主控制器必须检查状态寄存器的“发送缓冲器状态标志”。否则,发送缓冲器被锁定,新的报文不能被写入。一个正在等待的报文会从存储器复制到发送缓冲器后,置位命令寄存器TR标志产生发送请求,发送过程由SJA1000独立完成。
报文接收子程序只负责节点报文的接收。基于SJA1000的报文接有两种方式:中断方式和查询方式。为了保证接收报文的准确性,选择实时性较高的中断方式。在中断方式下,如果SJA1000已接收一个报文,并且报文已通过验收滤波器并放在接收FIFO,那么会产生一个接收中断,通知处理器有报文已接收。接收子程序就是完成响应这个中断并把数据分类、解码,最后发送到相应的报文存储器。
5 结束语
本文设计的基于CAN总线在轨道车辆经过现场调试,可以对驱动电机的运行速度、方向进行实时控制;电源的电压、电流、温度信号通过驱动节点传送给监控计算机;操作台节点、驱动节点与监控计算机之间的数据通信稳定可靠;可以通过参数设置模块修改节点的地址和波特率。实验表明了控制系统的适用性和可靠性,开发过程中所提出的技术方案和实现方法可以在分布式监控系统及工业底层监控网络的设计中推广应用。
本文作者创新点: 在轨道车辆控制系统设计中采用CAN总线技术,实现了多电机的分布式驱动控制;并在驱动节点的软/硬件设计中均采用了模块化的结构,缩短了设计开发周期。

本文引用地址:http://www.eepw.com.cn/article/197878.htm

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭