图 5 CAN总 线 初 始 化
图 6 CAN的 发 送 数 据 流 程
图 7 CAN接 收 数 据 的 流 程
例如:电池管理系统向整车系统发送总电压的格式,见表1所列。
表1 BCU_VCU_VOLTAGE(0x08)向VCU送回电池组当前的电压 备注 ID FRM_BCU_VCU 0x40 FrameType DataFrame DataLength 3 DataByte0 BCU_VCU_VOLTAGE 0x08 DataByte1 VoltageLowByte LowByte(10×电压值) DataByte2 VoltageHighByte HighByte(10×电压值)
其中,ID为接收节点总线的地址,电压值先乘10取整再发送,0x08表示发送帧的内容为电池组的电压。
5 CAN总线应用问题
在硬件方面必须考虑合理的供电,注意对各个CAN器件的电源、地之间的滤波,以及复位电路的设计;同时在实际进行印刷电路板的设计时,合理布线,要加强地线,增强系统的抗干扰性。
在软件设计时,CAN总线定时器的设置非常关键,BTR0决定传播时间段、相位缓冲段1和相位缓冲段2;BTR1决定同步跳转宽度和分频值。在位定时寄存器中,TSEG1,TSEG2,SJW和BRP设定的值要比其功能值小1,因此设定范围是[0.....N-1]而不是[1.....N]。所以位时间可以由[TSEG1+TSEG2+3]tq或者[同步段+传播段+相位缓冲段1+相位缓冲段2]tq得到,其中,tq由系统时钟tSCL和波特率预分频值BRP决定:tq=BRP/tSCL。同时,还要注意由于不同节点的CAN系统时钟是由不同振荡器提供的,每个节点的实际CAN系统时钟频率与实际位时有一容差,环境温度的变化和振荡器老化影响起始容差,为确保准确地进行数据传输,必须保证每个节点对CAN系统时钟频率都在特定的频率容差限值以内,因此,在选择振荡器时要以对振荡器容差范围要求最高的节点为准。而且,在一个可以扩展的总线结构中,最大节点延迟和总线最大长度必须考虑,一般情况下,延迟为5.5ns/m。
在实际运行中,经常会遇到CAN总线不通或者总线突然关闭现象,其主要原因是由于在数据传输过程中出现丢帧现象,从而引起出错,当错误计数器达到一定时会自动关闭总线,因此,必须在软件设计的过程中,及时对其错误状态ES位进行判别,在出现错误时需对SJA1000进行软件复位,恢复通讯。
6 结语
在“863重大专项”电动汽车的电池管理模块的研制中,就是采用CAN总线通讯的分布式结构。通过对镍氢电池组、锂电池组的台架试验结果表明了系统结构的先进性,实现了各模块的独自功能,工作正常可靠,锂电池组系统的CAN总线的节点数增加到12,在强电磁干扰下,仍能正常工作,而且线路连接十分简单、实用。
两种电池组的参数、测量方法、电池个数、安全要求都不相同,分组也不一样,但系统均能有效地适应,反映出其具有良好的适应性和较大的灵活性。
参考文献
[1] 邬宽明.CAN总线原理和应用系统的设计[M].北京,航空航天大学出版社,1996.
[2] PHILIPS Semiconductors公司.SJA1000 Stand-alone CAN controller[M].1997.
[3] PHILIPS Semiconductors公司.DATA SHEET SJA1000 Stand-alone CAN controller[M].1997.
[4] 董雄鹤.新型分布式电池管理系统的研究和实现[D].北京,清华大学,2002.
上一篇:开关电源并联系统的数字均流技术