当前全球汽车工业面临金融危机和能源环境问题的巨大挑战,实现汽车能源动力系统的电气化,已经成为汽车产业的趋势。提高电动汽车上的各个控制单元间通信的可靠性和实现高传输速率,选择CAN总线协议。CAN总线为多主工作方式,网络上任何节点均可在任意时刻向其他节点发送信息。它采用非破坏性的基于优先权的总线仲裁技术,可靠性高。CAN总线通信距离长达10 km,通信速率最高可达1 Mb/s。CAN通信系统抗干扰性好,工作稳定。某个节点出现故障,不会导致整个系统通信的不正常。由于采用短帧的报文结构,数据传输时间短,具有很强的抗干扰性,具有高效的非破坏总线仲裁,出错检测和故障自动关闭等优点。
1 控制系统整体结构
电动车控制系统由电池管理、充电机、电动机和整车控制等模块组成。本系统总体结构如图1所示。
由图1知,CAN通信网络上共有4个通信节点。整车控制器接收BMS、CCS、电机控制器的报文提供的各种参数;充电机接收BMS发送的控制信息并根据报文数据的电压电流设置来工作;电机控制器接收BMS发送的电池状态信息设置来工作,同时电机控制器接收由整车控制器发送的控制信息并根据报文数据的转矩设置来工作。
2 CAN总线节点的硬件电路设计
整车控制模块这一节点所实现的功能主要是接收其他节点的数据信息,通过控制算法等进行数据处理,然后发送控制信息给电机控制器,从而实现电动车的正常功能运行。
整车控制节点是基于STM32F103VE设计的。ARMCortex TM-M3是一款高性能、低成本、低功耗的32位BISC处理器,可在高达72 MHz的频率下运行,拥有512 KB的片内Flash程序存储器,具有64 KB的RAM数据存储器,可进行高性能的CPU访问。该徽控制器包含1个USB2.0全速(12 Mb/s)设备、1路CAN2.0B通道、1个通用DMA控制器、3个16位的A/D转换器和1个16位的D/A转换器。同时该微控制器具有4个16位捕获/比较定时器和1个看门狗定时器,因此ARM cortexTM-M3可以满足电动车控制的需要,减少了系统硬件设计的复杂度。STM32F103VE支持J-Link实时仿真和跟踪,内部搭载有1通道的支持CAN20.B规格的CAN控制器,使得CAN通信模块的设计更加方便。整车控制节点硬件电路图如图2所示,由徽控制器STM32F103VE、CAN总线收发器82C250、2个高速光耦16N137等组成。
STM32F103VE采用单电源供电,时钟由8 MHz外部晶振产生。对Flash存储器的编程通过J-Link进行编程(IAR)实现。STM32F103VE内部集成一路CAN控制器,简化了传统单片机外接CAN控制器和CAN收发器的复杂外围电路。收发器82C250是CAN控镧器和物理总线之问的驱动器接口,它可以提供对总线的差动发送能力和对CAN控制器的差动接收能力,其位速度高达1Mb/s,与ISO11898标准兼容。它的斜率控制功能使电磁兼容性能增强,准备模式可以减少网络的功耗,准备模式中,网络一旦检测到总线上有报文就会被立即激活。同时,它可提供更强抗干扰能力,以及有热保护、短路保护、支持多达110个节点等好处。
在微控制器和CAN总线收发器之间,采用了2个高速光电耦合器6N137进行电气隔离,防止将总线干扰引入系统,提高了系统的可靠性。同时,在节点端部接有1个120 Ω终端匹配电阻,提高了数据通信的抗干扰性。
3 CAN通信协议的设计
根据ISO/OSI模型,CAN总线规范了只制定了数据链路层中的媒体访问子层和一小部分的逻辑链路控制子层,CAN的ISO标准规定了总线及驱动器的电气特性。因此需要根据自己的需求设计通信协议。
CAN协议标准2.0B的数据帧的ID长度为29位,为扩展格式数据帧结构,如图3所示。
数据帧由帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束组成。协议的设计是对标识符和数据位的定义。
本系统协议的设计参照SAEJ1939协议标准,标识符分配为优先级(P)、保留位(R)、数据页(DP)、代码域(PF)、目标域(PS)、源地址(SA)和数据域(DF)7个部分。根据需求定义了5个报文,报文标识符定义如表1所示。
整车控制器的节点地址为OxA7;BMS节点地址为OxE4;CCS节点地址为OxE5;电机控制器节点地址为OxE6。
根据实际需求,设计了5个报文,分别为:BMS发给CCS和电机控制器的2个报文,CCS和电机控制器发给整车控制器的2个报文,整车控制器发给电机的报文。根据信息的重要程度,将电机控制器和整车控制器间的报文设计为最高优先级3,其他报文优先级设计为6。
4 CAN总线节点的软件设计
系统采用基于C语言的程序设计。在IAB开发环境下进行调试和仿真。整车控制节点的软件设计主要包括4个部分:CAN控制器的初始化、报文发送、报文接收和错误处理。
4.1 CAN控制器的初始化
在启动CAN通信前必需进行CAN模块的初始化,包括硬件使能、CAN工作模式设置、总线波特率设置、设置中断、验收过滤器设置等。初始化操作在CAN模块复位的模式下进行。初始化程序流程图如图4所示。
本设计中采用的是29位扩展标示符,符合CAN2.0B的标准,所以在验收屏蔽过滤器设置中进行相应的设定。同时,本设计的CAN波特率设置为250 Kb/s,与总线上其他节点的波特率相同,才能进行正常的通信。
4.2 数据的发送
对CAN数据的发送采用查询方式,提高处理器的效率,STM32F103VE的CAN模块有3个发送邮箱,发送报文的流程为:应用程序选择一个空发送邮箱;设置标识符,数据长度和待发送数据;对CAN+TixR寄存器的TXRQ位置1,请求发送;邮箱进入挂号状态,等待发送;一旦CAN总线进入空闲状态,发送邮箱中的报文则立即发送,成功发送后,邮箱为空;通过查询CAN_TSR寄存器的TXOK位来查询报文是否发送成功。数据发送程序的流程图如图5所示。
4.3 数据的接收
对CAN报文的接收采用中断方式,提高通信的实时性。接收报文的流程如图6所示。当CAN总线发来一个报文,根据屏蔽过滤器设置的标识符进行过滤,如果是要接收的报文,则CAN控制器将总线上的报文按顺序存入接收FIFO,并进入接收中断,在中断中对接收FIFO中的报文进行存储,然后释放FIFO邮箱。如果不释放邮箱,当总线上再发送过来报文时,会直接覆盖上一个报文,从而导致报文丢失。数据接收程序流程如图6所示。
4.4 错误处理
电动车的整车控制器需要接收BMS、CCS和电机控制器这3个节点发来的报文,如果超过1 s未接收到例如BMS的报文,则通信链路超时,此时需要进行故障处理。所以在软件设计时,定义一个全局变量,在每个定时周期中加1,在接收BMS报文中断中,对此变量清零,则可以实现通信超时检测。当总线发生严重故障时,CAN节点错误寄存器累积到一定次数时,CAN控制器会关闭总线,节点脱离总线。
5 结论
在实车实验中,各个节点可以实现可靠的数据通信,可以实现电动车的加减速和匀速运行。在本电动车控制系统中,设计的CAN通信节点体积小、功耗低、处理能力强、抗干扰性好,能在电磁环境复杂的环境中稳定、可靠地工作。在电动车控制系统中可实现数据的实时快速通信,可靠性强。