基于CAN总线的高精度程控电阻器设计
2018-01-18谭兴国
谭兴国,曲 凯
(河南理工大学电气工程与自动化学院,河南 焦作 454000)
0 引言
电动汽车作为新能源产品,已得到各国重视并迅速发展。电池作为电动汽车的主要驱动源,其性能以及使用寿命也得到了越来越多的关注[1-2]。电池管理系统是非常关键的部件[3]。在硬件在环(hardware in loop,HIL)测试环境下,为了准确模拟电动汽车电池管理系统(battery management system,BMS)中电池的温度变化[4],需要高精度的程控电阻器来模拟负温度系数(negative temperature coefficient,NTC)温度传感器的温度-电阻特性[5]。
目前,常见的可调电阻是通过改变电阻接入电路的长度来改变阻值,例如滑动电阻器和旋钮电位器。这种机械式的可变电阻输出精度低,阻值很难精确控制在特定值,更不容易实现远程控制。而半导体芯片方式的可编程电阻[6],通常只有有限的步长和阻值范围,电阻的可用功率也很小,其应用场合受限。本文设计了基于CAN总线通信的高精度程控电阻器。该电阻器可借助LabVIEW上位机软件,通过CAN总线实时控制电阻在范围内连续可调输出,大大改进了上述电阻器的缺陷。
1 系统硬件设计
1.1 系统结构
系统主要由主控单元(microcontroller unit,MCU)、供电模块、开关和电阻阵列模块、电阻采样模块和CAN总线模块等组成。主控单元采用飞思卡尔MC9SXDT256芯片,负责驱动开关和采样输出电阻,并利用LabVIEW上位机界面通过CAN总线发送设定指令给MCU。MCU利用电阻采样模块对输出的电阻值进行回读且对回读的结果进行适当修正,以进一步提高精度[7]。系统结构如图1所示
图1 系统结构图
1.2 系统硬件电路设计
1.2.1 开关和电阻网络拓扑
为满足模拟NTC温度系数温度变化要求,设计的开关和电阻网络拓扑如图2所示。
图2 开关和电阻网络拓扑图
Ki取值为0代表闭合,取值为1代表断开。总输出阻值R为:
(1)
在实际应用中,采用的开关网络为光耦AQY212GS,其二极管一端由5 V供电,另一端由主控单元MCU控制输出高低电平决定光耦二极管是否导通。当二极管导通,对应开关就会闭合,此时对应电阻被短路。相反,二极管不导通,对应开关断开,对应电阻将会被选中。
1.2.2 减小误差的改进拓扑
图2中,只有在理想开关闭合时,阻抗为0,即K×R=0,但实际开关闭合时仍具有约0.4 Ω的导通阻抗,即K=0开关闭合,但K×R≠0。这在整体阻抗比较大的情况下可以忽略不计,但在调试控制输出小阻值时,如控制输出10 Ω以下时,其所占比例将会引起较大误差。这是因为串联闭合的开关过多时,累积的导通阻抗不容忽略,则输出绝对误差较大,造成可控输出电阻精度降低。
为解决该问题,改进的开关电阻网络拓扑如图3所示。
图3 改进的开关和电阻网络拓扑图
在小于100 Ω的所有阻值处,本文采取将低阻抗开关KD与大于相应阻值的所有电阻并联,以减小阻抗,从而有效减小误差,提高输出精度。
1.2.3 电阻选型原则
电阻选型应考虑阻值大小及其精度等方面的因素。由开关和电阻网络拓扑结构可知,电阻阻值大小的选择是关键,既要尽可能扩大阻值范围以满足更多的应用,同时又能将范围内任意阻值覆盖。电阻的选型需要满足如下公式:
(2)
式中:θ为步进电阻值;N≥1。
另外,可根据实际所需电阻阻值范围选择相应电阻精度。为满足输出阻值绝对误差的要求,每个阻值的选择都有一定精度的要求。电阻阻值越大,则需要选择越高的精度,否则会导致较大的绝对误差,从而降低精度。电阻的阻值选型具有非常重要的意义。
1.2.4 CAN总线
为了能够通过上位机实时测控程控电阻器的模拟阻值输出,需要建立上位机与程控电阻控制器的通信联系。
本文选用的单片机MCU为飞思卡尔的MC9S12XDT256,它内部集成有CAN模块,支持CAN 2.0 A/B。CAN总线具有差分的信号传输方式,能提高抗电磁干扰的能力,而SCI、SPI等通信方式不具备该能力。故本文采用CAN总线实现程控电阻器的设计[8-10]。
在实际应用中,采用CAN总线收发器TJA1040器件。其CAN_Tx和CAN_Rx与单片机MCU的CAN总线引脚相连,CAN_H和CAN_L通过外部CAN工具与上位机相连实现数据传输。采用一个双向瞬态抑制器,用以保护收发器免受电磁干扰和静电放电的影响。采用抑制共模线圈,提高电磁兼容性性能。
2 系统软件设计
2.1 程序流程
本程序按照模块化设计思想进行编写,程序流程如图4所示。首先,进行系统初始化,包括CAN初始化、定时器初始化等;然后,通过CAN总线读取上位机界面设定的阻值,通过开关选择算法设定各个开关状态,输出所需阻值;接下来,采样回读进行误差判断,达到误差要求则结束,否则进行误差修正;最后,进行电阻开关网络设定,直至满足误差要求。
图4 程序流程图
2.2 开关网络选择算法
本控制器设计的关键是如何确定开关网络的组合关系。本算法采用天平称重的杠杆原理来确定开关拓扑。参照称重原理,将准备称重的重物放到天平的一端,按从大到小的顺序依次将砝码放到天平的另一端。当出现重物一端重于砝码一端时,则将重物质量减去砝码质量,然后将剩余质量的物体与余下砝码依次从大到小比较,重复上述动作,直至平衡。该算法流程图如图5所示。首先将设定的电阻值先与最大阻值RN进行比较。若设定阻值大于最大阻值RN,则将最大阻值对应的开关选中,即将开关KN断开,并将设定值改为两者之差;否则将开关KN闭合,将电阻RN旁路掉;重复上述动作,直至完成所有比较,确定全部开关状态。
图5 算法流程图
3 系统调试
采用LabVIEW编写的同步模式下的上位机通信界面,进行系统调试。该上位机界面分为同步和分步两种模式。同步模式可以同步控制每一路阻值输出,分步模式可以单独控制某一路的阻值输出。在该界面,用户可以自由设定需要的阻值,并完成对结果的回读[11]。
为了验证本程控电阻器改进拓扑的有效性,对100 Ω以下小电阻的测量值进行了比较。两种拓扑测量结果对比如表1所示。
表1 两种拓扑测量结果对比
从表1可以看出,在未启用改进拓扑之前,程控电阻器在控制100 Ω以下电阻时,误差较大,最大误差在1 Ω处,甚至达到92%;而改进拓扑误差则降至36%,其他各处误差测量均有所改善。
表2给出了改进拓扑结构下电阻大于100 Ω的测量结果。各电阻输出误差也在规定范围之内,总体可以满足项目要求。
表2 改进拓扑测量结果(100 Ω以上)
4 结束语
本系统以飞思卡尔MCU为控制核心,借助上位机LabVIEW软件,基于CAN总线和改进开关电阻网络拓扑结构,对改进开关电阻网络在100 Ω以下的阻值进行了研究,且给出了改进拓扑在100 Ω至6 MΩ阻值范围内的测量结果。该系统能够实现电阻器的实时连续可调输出,可高精度模拟实际电池的温度变化。系统具有结构简单、操作方便、灵活性强、电磁兼容性好等特点,能够实现电池BMS系统的硬件在环测试要求,满足汽车自动化测试的基本要求。
[1] 肖成伟,汪继强.电动汽车动力电池产业的发展[J].科技导报,2016,34(6):74-83.
[2] 崔俊博,张勇,王晶星.电动汽车用动力电池的研究[J].新技术新工艺,2010(9):81-83.
[3] 夏正鹏,汪兴兴,倪红军,等.电动汽车电池管理系统研究进展[J].电源技术,2011,36(7):1052-1054.
[4] 李哲,韩雪冰,卢兰光,等.动力型磷酸铁锂电池的温度特性[J].机械工程学报,2011,47(18):115-120.
[5] 王家传.热敏电阻器R_T特性及其计算方法探讨[J].传感器世界,1999(1):31-32.
[6] 陈辉,陶中幸,杨小川.半导体热敏电阻在温度控制中的应用[J].甘肃联合大学学报,2011,25(1):48-51.
[7] 宋富强,雄武,冯宇飞,等.利用MC9S12(X)单片机构建CAN总线网络的研究,2016,12(20):210-212.
[8] 张迎春,季茂胜.基于单片机的CAN总线系统设计[J].计算机与网络,2012(5):52-54.
[9] TINDELL K W,HNSSON H,WELLINGS A J.Ananlying real-time communications:Controller area network(CAN)[C]//15th IEEE Real time Systems Symposium,1994:259-263.
[10]刘涛.基于89C51和SJA1000的CAN通信方法研究[J].电脑编程技术与维护,2011(6):87-89.
[11]王锦坚,洪添胜.基于LabView通信系统的CAN总线设计与实现[J].计算机应用与软件,2010,27(8):235-237.