«上一篇
文章快速检索     高级检索
下一篇»
  应用科技  2020, Vol. 47 Issue (2): 48-52  DOI: 10.11991/yykj.201906014
0

引用本文  

王壮鹏, 肖兵, 刘落实, 等. 基于I2C总线的电池管理系统通信方法[J]. 应用科技, 2020, 47(2): 48-52. DOI: 10.11991/yykj.201906014.
WANG Zhuangpeng, XIAO Bing, LIU Luoshi, et al. A communication method for battery management system base on I2C bus[J]. Applied Science and Technology, 2020, 47(2): 48-52. DOI: 10.11991/yykj.201906014.

基金项目

国家自然科学基金项目(61563010)

通信作者

王壮鹏,E-mail:501908140@qq.com

作者简介

王壮鹏,男,硕士研究生;
肖兵,男,教授,博士生导师

文章历史

收稿日期:2019-06-24
网络出版日期:2020-01-03
基于I2C总线的电池管理系统通信方法
王壮鹏1, 肖兵1, 刘落实2, 欧奔1    
1. 华南理工大学 自动化科学与工程学院,广东 广州 510641;
2. 广州智维电子科技有限公司,广东 广州 510006
摘要:电池管理系统作为新能源汽车的一项关键技术在能量管理方面有着十分重要的作用。为了解决电池管理系统中主控制器与芯片的通信问题,本文提出了一种使用三极管等半导体元件设计出的电平迁移电路模块,并用双线级联的电平迁移电路,实现各个芯片端口的信息交互。该模块无需采用隔离电路,就能实现不同电压芯片间的多主通信,实验结果表明,电路工作正常,实现了预期效果。
关键词电池管理系统    电平迁移    隔离电路    I2C总线    双线串行接口    多主机工作模式    双线多主通信    通信数据包    
A communication method for battery management system base on I2C bus
WANG Zhuangpeng1, XIAO Bing1, LIU Luoshi2, OU Ben1    
1. College of Automation Science and Engineering, South China University of Technology, Guangzhou 510641, China;
2. Guangzhou Triv Electronic Technologies Co.LTD, Guangzhou 510006, China
Abstract: The battery management system (BMS), as a key technology for new energy vehicles, plays an important role in energy management. To solve the communication problem between the main controller and the chip in the BMS, we propose a level shifting circuit module designed with semiconductor components, such as triodes, and use the I2C bus to connect the circuit modules to realize the information interaction of each chip port. These modules realize the communication between different voltage chips without isolation circuits. The experimental results show that the circuit design works well and the expected effect is achieved.
Keywords: battery management system    level shifting    isolation circuit    I2C bus    two-wire serial interface    multi-master operating mode    two-wire multi-master communication    communication data package    

I2C通信的设计初衷是解决一块电路板上不同芯片的数据交换问题。然而在电池管理系统中,动力电池包通常由一定数量的电池串联与并联而成。例如540 V电压的电池包可能由几十节电池组串联而成。所以,管理不同电池组的模拟前端芯片(analog front end,AFE)具有不同的参考“地”电压[1]。为了解决这个问题,通常采用光耦、变压器或者数字隔离器的方式来解决。这些方法存在3点不足之处:1)光耦只能通过二极管单向传输信号,其传输速度慢,且易老化;2)变压器无法实现微小化,存在电磁泄漏;3)每个接口都需要数字隔离器,其花费高,无扩展性。

市面上不乏使用其他隔离技术的芯片和仪器。例如,低功耗双向I2C隔离芯片——ISO1540和二位双向I2C电平转换器——PCA9306。ISO1540芯片内部有2条隔离式双向通道,分别应用于时钟线和数据线,每条信号线通过单通道数字隔离器进行隔离,可实现I2C总线上的电平位移。但由于每个芯片都需要独立电源或稳压芯片提供工作电压,所以使用该芯片的隔离电路较复杂,且成本高昂。PCA9306器件具备2组连接I2C总线的漏极开路端口,转换器打开时,可实现端口间的双向数据交互。但该器件的2个转换端口需共用同一个参考“地”,所以该器件并不适用于电池管理系统;但其电平迁移的思路具有启发意义。

本设计为一种电平迁移的通信方法,减少了ISO1540隔离芯片和独立电源的使用,使电路更加简单实用;同时也克服了PCA9306器件的2个转换端口需要使用同一接地端的局限性,建立了主控制器和不同参考电位的模拟前端芯片之间的通信。

1 I2C电平迁移电路设计方法

有别于普通I2C并联通信方式,本设计使用若干场效应管及电阻搭建起电平迁移模块;再将该模块连接到相邻AFE的时钟线(supply chain logistics,SCL)和双向数据线(serialdata,SDA)上,并采用芯片间双线级联的方式,实现不同参考电平的AFE之间的双向通信;最后根据I2C多主机工作模式原理,定义通信数据包,开发相应的程序。总体通信思想如图1所示。

Download:
图 1 电池管理系统结构示意

电路设计的核心是电平迁移模块。该模块由2个N沟道场效应管(field effect transistor,FET)、1个P沟道FET和4个电阻连接而成。在低电平芯片向高电平芯片通信的过程中,Q1、R1、R2起着重要作用。Q1栅极接Vcc1,低电平芯片的信号由Q1的源极输入,漏极输出,信号经过电阻R1被高电平芯片接收。通过调节R1和R2阻值的比例,使高电平芯片的接收端口处于合适的工作电平。

为了实现高电平芯片向低电平芯片的通信,首先需要一个N沟道FET和一个P沟道FET以及电阻R3、R4来限制电流。然后将高电平芯片的输出端口与Q2的栅极相连,信号从Q2的栅极输入,漏极输出,流入Q3的栅极,再从Q3的漏极输出给低电平芯片的接收端。最后连接Q2源极与Vcc2,Q3源极与低电平芯片的“地”,实现电平迁移模块的双向通信。

电平迁移模块原理图如图2所示。

Download:
图 2 电平迁移模块原理

I2C总线在半双工模式下可实现多主机级联的交互通信。该总线有SDA和SCL两条线路通过限流电阻接到电源电压。2条总线接地视为逻辑0,接高电平视为逻辑1,连接在总线上的各个器件以此为标准进行通信[2]。I2C总线级联式结构如图3所示。

Download:
图 3 I2C级联通信示意

将每组电池包(4节1组)即其对应的AFE用若干组I2C总线SDA、SCL和电平迁移模块按图4的形式连接起来,得到完整的通信系统电路连接图。

Download:
图 4 通信系统I2C电路连接

在电池管理系统中,可供选择的AFE种类较多,本设计采用ATmega32HVB单片机作为AFE。该芯片具有双线串行接口(two-wire serial interface, TWI),可以接收和发送信息,支持多主机通信[3]。在同一组总线上,最多可以连接128个该芯片,具有良好的扩展性。TWI硬件规范与I2C相同,但有别于普通I2C通信仅能采用“主−从”通信模式,TWI支持多主通信,而多主通信比主从方式更适合电池管理系统的应用需求[4]

该系统的通信过程可分为无冲突通信和有冲突通信[5]。正常状态下,总线上的每个控制芯片会按照周期次序,轮流向主控制器发送电池状态信息。例如第3号芯片先向空闲总线发送数据包(“开始”指令、数据接收地址与读写控制符、第3个电池组的状态信息、“停止”指令),然后2号芯片通过总线接收到此信息,再将该信息通过总线发送给1号芯片,最后传递给主控制器。这种通信方式为无冲突通信。

若在第3号芯片向总线发送状态信息的同时,第5号芯片向主控制器发出的故障信息已传递到与3号芯片相连的SDA6线上,此时需要I2C总线对这2种信息进行仲裁[6],优先级更高的故障信息会赢得仲裁并占领总线。当3号芯片监听到SDA6线上的信息与发送信息不一致时,会停止发送状态信息,转而接收SDA6线上的故障信息并将其发送到SDA5线上;随后故障信息经过电平迁移电路传递到SDA4线上,并被2号芯片接收;2号芯片再将接收到的故障信息发送到SDA3线上,故障信息经过电平迁移电路到达SDA2线上后,被1号芯片接收;最后1号芯片重复2号芯片的操作,将故障信息传递给主控制器。这种通信方式为有冲突通信[7]

该设计有2大优点:1)最小电路模块仅采用3个SO223封装的小场效应管及若干电阻,其成本比带有隔离集成芯片的电路的成本低很多。减少隔离芯片的使用,不仅能降低系统成本,而且能简化电路设计。2)该系统采用的TWI双线级联式结构支持多主通信。当有任意电池组出现故障时,主控制器能很快接收到故障模块发出的报错信息。多主工作模式相比于需要主机一直查询从机状态的主从模式电路延迟更低,更加高效[8]

2 实验结果

完成通信部分的设计后,需要最后对系统进行调试,并分析调试结果。本设计通过间接调试电池监测芯片的监测功能,分析监测芯片的输入输出数据,来评估通信系统的性能。

整体测试平台的具体示意图如图5所示,分为上位机、连接器、下位机3层。上位机是普通PC,运行MATLAB、自动代码生成器、CAN通信程序;连接器为JTAG仿真器和USB-CAN分析仪,分别负责程序下载和上、下位机的通信;下位机硬件为电池管理系统,该系统搭载本文设计的通信方法,运行着底层驱动、基础功能代码、类BASIC解释器等模块。

Download:
图 5 测试系统示意

主控制器F28M35与电池管理芯片ATmega32HVB的通信通过TWI实现[9]。首先完成ATmega32HVB相关的调用接口,然后在F28M35上编写调用程序,实现对ATmega32HVB的数据读写。整体实物图如图6所示。

Download:
图 6 测试系统实物图

打开开关,使用示波器对I2C总线波形进行观测,可以看到电平迁移电路的输入与输出端电压波形相同,幅值不同,如图7所示。

Download:
图 7 I2C总线输入输出电压波形

图7(a)中,图像所示波形为电池监控芯片2中的总线波形(量程10 V/格)。因为当总线为“1”时,可以看到总线对地电压为20 V;而电池监控芯片2的对地参考电压为16 V。我们测出当总线为“0”时,总线对地电压为16 V。在图7(b)中,图像所示波形为电池监控芯片1中的总线波形(量程2 V/格)。测量总线电压结果为:总线为“1”时,对地电压为4.5 V;总线为“0”时,对地电压为0 V。以上结果符合I2C总线标准,满足系统正常通信的必要条件[10]。为充分验证系统是否正常工作,还需重点检测系统接收的电池状态是否与实际相符[11]

先通过主控制器在CCS开发环境中设置断点,通过监视窗口来观察采集到的电池状态信息,具体数据如图8所示。然后使用CAN数据监控软件记录电池电压信息,具体数据如图9所示。

Download:
图 8 主控制器电压信息采集
Download:
图 9 数据可视化监控程序界面

将1号和2号模拟前端芯片的电压采集值读出并转换,然后和万用表测出的电压值以及监控数据进行对比,对比结果如表1所示。

表 1 检测数据可信度对比

本实验只对其中2个芯片分别串联了4节电池,因此部分检测数据显示为0。观察结果可知,主控制器采集结果和监控软件的显示结果是相同的,且与万用表的结果相比,误差也较小(±0.05 V以内),该结果间接证明了通信功能的正确性与稳定性。

I2C通信协议有着占用资源少、易用灵活等特点,所以该通信方式受到了十分广泛应用[12]。本设计就是采用这种通信方式实现了主控制器和6个电池监测芯片之间的通信。通过测量芯片输入输出口的对地电压,发现实验结果符合预期。同时该通信系统有较好的可拓展性,可满足更多芯片间的通信。

3 结论

1)本文首先设计了一种使用场效应管等电子元件搭建的最小电平迁移电路模块,然后用多组该模块与ATmega32HVB芯片以I2C总线级联的方式进行连接,搭建出完整的电平迁移电路。

2)该电路不仅能解决电池管理系统中,模拟前端芯片(AFE)之间的通信问题,而且具有电路简单、成本低廉等优点。通过实验测试,其结果表明主控制器可实时监控电池组电压,电压监测结果与实际测量值相符,电路工作正常,与预期效果相符。

参考文献
[1] GALLARDO-LOZANO J, ROMERO-CADAVAL E, MILANES-MONTERO M I, et al. Battery equalization active methods[J]. Journal of power sources, 2014, 246: 934-949. DOI:10.1016/j.jpowsour.2013.08.026 (0)
[2] 郑敏信, 齐铂金, 吴红杰. 基于双CAN总线的电动汽车电池管理系统[J]. 汽车工程, 2008, 30(9): 788-791, 795. DOI:10.3321/j.issn:1000-680X.2008.09.012 (0)
[3] 符晓玲, 商云龙, 崔纳新. 电动汽车电池管理系统研究现状及发展趋势[J]. 电力电子技术, 2011, 45(12): 27-30, 89. DOI:10.3969/j.issn.1000-100X.2011.12.007 (0)
[4] 廖晓军, 何莉萍, 钟志华, 等. 电池管理系统国内外现状及其未来发展趋势[J]. 汽车工程, 2006, 28(10): 961-964. DOI:10.3321/j.issn:1000-680X.2006.10.022 (0)
[5] 张正扬, 刘方. 一种基于CAN总线的电动车电池管理系统[J]. 电子科技, 2014, 27(3): 129-132. DOI:10.3969/j.issn.1007-7820.2014.03.039 (0)
[6] 仇士玉, 王娟. 基于单片机的纯电动汽车电池管理系统设计[J]. 电子测试, 2018(19): 16-17. DOI:10.3969/j.issn.1000-8519.2018.19.005 (0)
[7] 李海军, 潘荧智, 张叶波, 等. 利用I2C总线实现ATmega88的在应用编程[J]. 单片机与嵌入式系统应用, 2012, 12(11): 18-21. (0)
[8] 李鹏. 基于I2C总线进行单片机系统扩展的探讨[J]. 数字技术与应用, 2013(11): 229, 231. (0)
[9] 王博. 电动汽车动力电池管理系统(BMS)设计[D]. 长春: 吉林大学, 2016. (0)
[10] 张栋, 彭佩佩, 江星星, 等. 面向多个电动汽车换电站的有序充电控制[J]. 应用科技, 2017, 44(1): 45-51. (0)
[11] BARONTI F, RONCELLA R, SALETTI R. Performance comparison of active balancing techniques for lithium-ion batteries[J]. Journal of power sources, 2014, 267: 603-609. DOI:10.1016/j.jpowsour.2014.05.007 (0)
[12] 何红芬. 新能源汽车电控系统通信协议与故障管理的实现[D]. 广州: 华南理工大学, 2016. (0)