新闻中心

EEPW首页>电源与新能源>设计应用> 一种分布式电池管理系统的设计和实现

一种分布式电池管理系统的设计和实现

作者: 时间:2013-07-17 来源:网络 收藏

图4CAN总线系统结构图

CAN总线的软件设计

CAN总线的三层结构模型为:物理层、数据链路层和应用层。其中物理层和数据链路层的功能由SJA1000完成,系统的开发主要在应用层软件的设计上,它主要由三个子程序:初始化子程序、发送数据和接收数据程序。同时,还包括一些数据溢出中断以及帧出错的处理。

SJA1000在上电硬件复位之后,必须对其进行软件初始化之后才可以进行数据通讯,初始化过程主要包括对其复位模式下配置时钟分频寄存器CDR、总线定时寄存器BTR0和BTR1、验收代码寄存器ACR、验收屏蔽寄存器AMR及输出寄存器OCR等,实现对总线的速率、验收屏蔽码、输出引脚驱动方式、总线模式及时钟分频进行定义。具体的流程如图5所示。下面为SJA1000发送和接收数据的流程,基本过程为主器将数据保存到SJA1000发送缓冲器,然后对命令寄存器的发送请求TR标志位进行置位开始发送;接收过程为SJA1000将从总线上接收到的数据存入接收缓冲器,通过其中断标志位通知主器来处理接收到的信息,接收完毕之后清空缓冲器,等待下次接收,具体的流程如图6和图7所示。

图5CAN总线初始化

图6CAN的发送数据流程

图7CAN接收数据的流程

例如:电池管理系统向整车系统发送总电压的格式,见表1所列。

表1BCU_VCU_VOLTAGE(0x08)向VCU送回电池组当前的电压

其中,ID为接收节点总线的地址,电压值先乘10取整再发送,0x08表示发送帧的内容为电池组的电压。

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进行软件复位,恢复通讯。

在863重大专项电动汽车的电池管理模块的研制中,就是采用CAN总线通讯的分布式结构。通过对镍氢电池组、锂电池组的台架试验结果表明了系统结构的先进性,实现了各模块的独自功能,工作正常可靠,锂电池组系统的CAN总线的节点数增加到12,在强电磁干扰下,仍能正常工作,而且线路连接十分简单、实用。

两种电池组的参数、测量方法、电池个数、安全要求都不相同,分组也不一样,但系统均能有效地适应,反映出其具有良好的适应性和较大的灵活性。


上一页 1 2 下一页

关键词:通信控制测试

评论


相关推荐

技术专区

关闭