新闻中心

EEPW首页>汽车电子>设计应用> 一种基于CAN总线的电动车控制系统设计方案

一种基于CAN总线的电动车控制系统设计方案

作者: 时间:2014-09-11 来源:网络 收藏

  4总线节点的软件设计

本文引用地址://m.amcfsurvey.com/article/262818.htm

  系统采用基于C语言的程序设计。在IAB开发环境下进行调试和仿真。整车控制节点的软件设计主要包括4个部分:控制器的初始化、报文发送、报文接收和错误处理。

  4.1控制器的初始化

  在启动CAN通信前必需进行CAN模块的初始化,包括硬件使能、CAN工作模式设置、总线波特率设置、设置中断、验收过滤器设置等。初始化操作在CAN模块复位的模式下进行。初始化程序流程图如图4所示。

5.jpg

  本设计中采用的是29位扩展标示符,符合CAN2.0B的标准,所以在验收屏蔽过滤器设置中进行相应的设定。同时,本设计的CAN波特率设置为250 Kb/s,与总线上其他节点的波特率相同,才能进行正常的通信。

  4.2 数据的发送

  对CAN数据的发送采用查询方式,提高处理器的效率,F103VE的CAN模块有3个发送邮箱,发送报文的流程为:应用程序选择一个空发送邮箱;设置标识符,数据长度和待发送数据;对CAN+TixR寄存器的TXRQ位置1,请求发送;一旦CAN总线进入空闲状态,发送邮箱中的报文则立即发送,成功发送后,邮箱为空;通过查询CAN_TSR寄存器的TXOK位来查询报文是否发送成功。数据发送程序的流程图如图5所示。

6.jpg

  4.3 数据的接收

  对CAN报文的接收采用中断方式,提高通信的实时性。接收报文的流程如图6所示。当CAN总线发来一个报文,根据屏蔽过滤器设置的标识符进行过滤,如果是要接收的报文,则CAN控制器将总线上的报文按顺序存入接收FIFO,并进入接收中断,在中断中对接收FIFO中的报文进行存储,然后释放 FIFO邮箱。如果不释放邮箱,当总线上再发送过来报文时,会直接覆盖上一个报文,从而导致报文丢失。数据接收程序流程如图6所示。

7.jpg

  4.4 错误处理

  电动车的整车控制器需要接收BMS、CCS和电机控制器这3个节点发来的报文,如果超过1 s未接收到例如BMS的报文,则通信链路超时,此时需要进行故障处理。所以在软件设计时,定义一个全局变量,在每个定时周期中加1,在接收BMS报文中断中,对此变量清零,则可以实现通信超时检测。当总线发生严重故障时,CAN节点错误寄存器累积到一定次数时,CAN控制器会关闭总线,节点脱离总线。

  5 结论

  在实车实验中,各个节点可以实现可靠的数据通信,可以实现电动车的加减速和匀速运行。在本电动车控制系统中,设计的CAN通信节点体积小、功耗低、处理能力强、抗干扰性好,能在电磁环境复杂的环境中稳定、可靠地工作。在电动车控制系统中可实现数据的实时快速通信,可靠性

光耦相关文章:光耦原理


晶振相关文章:晶振原理
双控开关相关文章:双控开关原理

上一页 1 2 下一页

关键词:CANSTM32局域网

评论


相关推荐

技术专区

关闭