2. 广州智维电子科技有限公司,广东 广州 510006
2. Guangzhou Triv Electronic Technologies Co.LTD, Guangzhou 510006, China
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 (![]() |
[2] |
郑敏信, 齐铂金, 吴红杰. 基于双CAN总线的电动汽车电池管理系统[J]. 汽车工程, 2008, 30(9): 788-791, 795. DOI:10.3321/j.issn:1000-680X.2008.09.012 (![]() |
[3] |
符晓玲, 商云龙, 崔纳新. 电动汽车电池管理系统研究现状及发展趋势[J]. 电力电子技术, 2011, 45(12): 27-30, 89. DOI:10.3969/j.issn.1000-100X.2011.12.007 (![]() |
[4] |
廖晓军, 何莉萍, 钟志华, 等. 电池管理系统国内外现状及其未来发展趋势[J]. 汽车工程, 2006, 28(10): 961-964. DOI:10.3321/j.issn:1000-680X.2006.10.022 (![]() |
[5] |
张正扬, 刘方. 一种基于CAN总线的电动车电池管理系统[J]. 电子科技, 2014, 27(3): 129-132. DOI:10.3969/j.issn.1007-7820.2014.03.039 (![]() |
[6] |
仇士玉, 王娟. 基于单片机的纯电动汽车电池管理系统设计[J]. 电子测试, 2018(19): 16-17. DOI:10.3969/j.issn.1000-8519.2018.19.005 (![]() |
[7] |
李海军, 潘荧智, 张叶波, 等. 利用I2C总线实现ATmega88的在应用编程[J]. 单片机与嵌入式系统应用, 2012, 12(11): 18-21. (![]() |
[8] |
李鹏. 基于I2C总线进行单片机系统扩展的探讨[J]. 数字技术与应用, 2013(11): 229, 231. (![]() |
[9] |
王博. 电动汽车动力电池管理系统(BMS)设计[D]. 长春: 吉林大学, 2016.
(![]() |
[10] |
张栋, 彭佩佩, 江星星, 等. 面向多个电动汽车换电站的有序充电控制[J]. 应用科技, 2017, 44(1): 45-51. (![]() |
[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 (![]() |
[12] |
何红芬. 新能源汽车电控系统通信协议与故障管理的实现[D]. 广州: 华南理工大学, 2016.
(![]() |