基于CPLD的电池管理双CAN控制器的设计与实现

电源与新能源 时间:2018-08-27来源:网络

CAN报文发送函数负责电池管理系统向整车控制器发送报文,发送时需将待发送的数据按CAN协议格式组合成一帧报文,送入SJA1000发送缓冲区中,然后启动发送命令。CAN发送程序如下:

if((TempData 0x10) != 0x10) //CAN控制器空闲

{

if((TempData 0x08) != 0x0) //最近一次发送已成功

{

if((TempData 0x04) == 0x04)

//CPU可以向发送缓冲器写报文

{

…… //配置发送报文

SJA1000_WRITE(REG_ COMMAND,0x01);//发送报文指令

}

}

}

接收CAN报文

CAN报文接收函数主要负责接收整车控制器发送的控制指令,来完成对充放电继电器、风扇以及电池等器件的控制。CAN接收程序如下:

if(TempData != 0)

{

if((TempData 0x80) == 0x80) //总线关闭

{

…… //总线关闭处理

}

if((TempData 0x02) == 0x02) //数据溢出

{

…… //数据溢出处理

}

if((TempData 0x01) == 0x01) //RXFIFO存在完整有效的报文

{

…… //读取缓冲区报文

结语

本文设计的基于CPLD的双CAN控制器已运用于实际应用中,电池管理系统运行可靠,CAN报文收发平稳,完全适合混合动力汽车的使用。

1 2

关键词: CPLD 电池管理 双CAN控制器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章


用户评论

请文明上网,做现代文明人
验证码:
查看电脑版