程 博,叶 敏,孔德刚,曹秉刚
(1.长安大学道路施工技术与装备教育部重点实验室,陕西 西安 710064;2.西安交通大学机械工程学院,陕西 西安 710049)
能源危机与环境问题的日益严重,导致电动汽车越来越得到重视,电动汽车总线及通信协议研究作为一项关键技术,能有效保证整车动力总成系统的可靠实时控制。控制器局域网(Controller area network,CAN)总线[1-2]是目前在电动汽车上应用最广泛的通信协议,其研究得到了广泛的重视。文献[3-4]提出了基于CAN总线的电动汽车控制系统设计。在文献[5-7]中,提出的设计着重从总体流程,CAN总线通讯协议方面对电池管理系统做了深入的研究。在文献[8-9]中,分别对电动汽车灯光控制和液晶显示做了研究。
图1 电池管理系统框图
在本文中,电动汽车的电池管理系统的框图如图1所示。基于CAN总线的电动汽车实时网络通信系统,主要负责采集车体内的信息,主要包含电动车车体运行状况数据以及电池的电压和温度数据。在通讯网络中,将采集的信息通过CAN总线进行传输,然后通过CAN-USB适配卡连接到PC主机上,在主机上完成信息的显示、存储和处理等工作。然后,通过测试软件,对通信过程进行了测试,验证了系统的采集速率和可靠性,并在实际电动车上进行数据实测,得出了电动车空转和实际路面运行的数据图。
本系统的硬件由两部分组成,一是电动汽车信息采集电路,二是CAN-USB适配器电路。整体硬件框图如图2。信息采集部分主要完成电池和车体信息的检测,分别包括电池电压和温度信息,电池总电压、电池总电流(+、-);电机电压、电机电流(+、-)、油门踏板、刹车踏板信息。
图2 系统整体硬件图
通常选PDIUSBD12器件,用作微控制器系统中实现与高速通用并行接口进行通信,也支持DMA传输。它集成了许多特性,如SoftConnet、GoodLink、可编程时钟输出、低频晶振和终止寄存器集合。这些特性能显著节约系统成本,也使USB功能在外设上的应用变得容易。
CAN的通信协议主要由CAN控制器完成,主要由两部分构成:CAN总线协议部分,由CAN总线控制器SJA1000来实现;接口部分,由接口芯片PCA82C250来实现。
本系统包括信息采集电路和CAN-USB适配器。系统硬件的中心是微控制器AT89C52单片机。
1.3.1 信息采集电路设计
(1)采集信号的种类
电压信号是通过电量隔离传感器将输入电池电压转化为低电平电压输出(15 V转化为5 V,比例为1/3),电动车信号输出都为0~5 V的电压信号。电池电压和电动车信号,通过RC电路滤波,电阻选择20 kΩ。电容为0.33 μF,则截止频率f=1/2 πRC,经计算为 24 Hz。
温度信号是通过温度传感器LM35转换为电压信号(100℃输出1 V)。按最高温度50℃计算,则温度传感器输出0.5 V,因此需将信号放大10倍,转换为5 V电压信号。滤波放大电路如图 3。其中:R14、R15、R16、R17和 C18、C19、U2(OP07)组成无限增益型多重反馈低通滤波器,R18、R19、R20组成一个负反馈放大电路。
图3 滤波放大电路
(2)信号采集分析部分
采用AT89C52单片机系统,各模块简述如下:
单片机和存储器:单片机AT89C52,内含8 K字节的FLASH闪速存储器和256字节的内部RAM。在CAN-USB适配器中还配有32 K容量的闪存24LC256,可以在没有PC机连接的情况下将信息存入闪存中。
信号转换电路:将输入的信号通过CD4051八路选通,将输入的八路模拟信号逐一输入到12位的A/D转换芯片MAX1243中,将模拟信号转换成数字信号。
1.3.2 CAN-USB适配器电路设计
CAN-USB适配器需要两个接口电路分别与PC主机和CAN总线通讯。前者采用PDIUSBDI2,通过USB协议实现;后者采用SJA1000,通过CAN2.0B协议实现。
地址和数据总线由P0口分时复用,P0口连接SJA1000的AD0-AD7引脚和PDIUSBD12的DATA0-DATA7引脚。通过分时选通两个芯片。以片选控制信号选通芯片,正确地分配有效地址,避免总线数据冲突。一般使用线性片选,单片机AT89C52的管脚P2.7控制D12的片选,P2.4控制SJA1000的片选,均为低有效。确定地址分配如下:
PDIUSBD12的命令地址为0xff03(奇数地址为命令地址),数据地址为0xff02(偶数地址为数据地址)。SJA1000内部寄存器的地址范围为[0x00-0x6 C],共108个寄存器。
(1)CAN与单片机连接电路设计
P0.0-P0.7连接 SJA1000的 AD0-AD7引脚,P2.7为SJA1000的片选信号,低电平选通。地址锁存引脚ALE和WR、RD引脚分别和单片机的ALE、WR、RD引脚相连。
MODE引脚接电源,为高电平,采用的是INTEL模式。中断引脚INT接单片机的INT1引脚,当SJA1000向单片机发信号时,就引发中断。电源与地之间采用去耦电容和极性电容相连。右边电路为SJA1000的上电复位电路,低电平上电复位。单片机和SJA1000采用的是两个单独的时钟,单片机为24 MHz的,SJA1000为16 MHz的,所以CLKOUT引脚悬空。电路如图4所示。
图4 CAN与单片机连接电路
(2)CAN的接口电路
SJA1000的TX0和RX0管脚通过光偶与驱动器PCA82C250的TX和RX引脚相连,用于向CAN总线发送和接收数据。此时,需将RX1引脚接到一个稳定的电平上,本系统通过两个电阻分压将RX1固定为1.73 V的低电平上。采用可调电阻实现斜率控制,不同的电阻值对应不同的输出电压即对应不同的输出电流,则可通过调节电阻值来调节PCA82C250的斜率值。
采用光偶隔离电路可以防止CAN网络信号对主电路的干扰,提高了整个系统的抗干扰能力。利用两个电容来消除高频信号的干扰,利用两个双稳态二极管能够卸除瞬间的高压脉冲,防止外界突发的高压对CAN总线收发器带来的破坏效应。为了增强CAN通讯的可靠性,CAN总线网络的两个端点通常要加入终端匹配电阻。本系统采用的终端电阻为120 Ω。CAN接口线采用屏蔽电缆,可降低电磁干扰和辐射带来的影响。
(3)USB接口电路
P0.0-P0.7连接PDIUSBDI2的DATA0-DATA7引脚,P1.6为PDIUSBDI2的片选信号,低电平选通。DI2与CAN控制器SJA1000共用地址/数据总线,通过片选信号加以区别,以避免总线数据冲突。
SUSPEND引脚接单片机的P3.1引脚,并上拉10 kΩ电阻。中断引脚INT_N连接单片机AT89C52的INT0引脚,并上拉10 kΩ电阻;采用多路地址/数据总线方式,将A0引脚忽略。地址锁存引脚ALE与单片机ALE相连接,WR和RD引脚分别与单片机的WR和RD直接相连;Goodlink引脚GLN外接LED并拉高,有利于调试时观察USB设备的连接和传输状态。在枚举时,LED根据通信的状况间歇闪烁。
CAN总线总共有三个节点,采用主从式通信。接收过程采用中断处理,保证系统的实时性。中断主要处理数据的传输,而主程序负责数据的处理。软件设计分为三部分:CAN总线各个节点间的通信,CAN-USB适配器的固件驱动程序,上位PC机的底层驱动程序和上层应用程序。CAN-USB为主节点,其他两个节点为从节点。定义地址分别为:CAN-USB适配器主节点,地址为00H;采集电池信息的节点1,地址为01H;采集电动车信息的节点2,地址为02H。
主节点发送命令字符 (例如发送01H代表要电路板1发送数据到主机)到从节点上,从节点接收到主节点的命令,判断是否要发送数据,如是则将采集的信息通过CAN总线发送到主机上。采集电池信息节点1的软件分为两部分:A/D转换和数据处理程序;SJA1000的初始化和CAN的接收发送程序。其中CAN的接收发送程序通过中断来完成,在中断设置中需开启接收中断。以节点1为例,数据传输过程流程如图5所示。中断处理程序如图6,主要负责处理CAN总线数据的接收和发送,采用中断机制可以保证数据及时的传输。
系统具体的固件结构如图7所示,图中箭头表示数据流向。整个固件一共包含7个函数模块。完成数据结构定义后,固件编程的实现工作主要包括硬件提取层和CAN接口硬件,PDIUSBDI2命令接口的实现以及中断服务程序的实现。
图5 数据传输的流程图
图6 中断流程图
图7 固件程序结构图
WDM(Windows Driver Model)是微软公司全新的驱动程序模式,支持即插即用、电源管理和WMI技术[10]。WDM驱动程序采用分层的驱动模型,如图8所示。
所有软件设计主要完成:CAN总线各个节点间的通信,CAN-USB适配器的固件驱动程序,上位PC机的底层驱动程序和应用程序。
图8 WDM驱动程序采用分层的驱动模型
本系统应用于电动汽车EV-2号上,为了验证系统采集数据的可靠性,在两种工况下进行测试,一个是电动汽车空转,采集了电流在30、50、70、80 A四种情况下电动车内的数据情况。另一种是电动车在实际路况上的运行情况。
(1)电动汽车空转数据
图9~12为30 A放电时,电动车空转对应的各个电池的电压曲线图,采集时刻的温度为18℃。从图中可以看出电池1、电池3和总电池电压在不同电流下的变化曲线大致是一致的,从而证明了系统采集数据的可靠性。电池电压迅速升高的点对应于电机达到最大速度的时刻,在不同电流下,电机达到最大速度的时间依次缩短。图中的电流为30 A,电机达到最大速度的时间是73 s;若电流增大为80 A,则电机达到最大速度的时间是9 s。电流越大,电机达到最大速度的时间就越短,当给电动车提供电流时,电池在60 s内可以恢复到稳定值。
图9 30 A电池1数据曲线图
图10 30 A电池3数据曲线图
图11 30 A电池总电压数据曲线图
图12 电动汽车实际运行曲线图
(2)电动车实际路面数据
电动汽车实际路况电池电压变化曲线如图12所示,记录了电池电压从124~108 V变化的曲线图,124、108 V均为停车稳定后测的电压值。
本文中基于AT89C52单片机和SJA1000接口芯片、PDISUBD12接口芯片CAN总线通讯系统硬件设计,以光耦隔离、硬件滤波和斜率模式保证了系统硬件运行的可靠性。在此基础上完成了系统的软件设计。最后,通过电动汽车空转运行和路面运行状态测试,验证了实时通讯系统的可靠性。
[1]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999.
[2]FARSI M,RATCLIFF K,BARBOSA M.An overview of controller area network[J].Computer&Control Engineering Journal,1999,3(10):113-120.
[3]李芳,张俊智,王丽芳,等.电动汽车动力总成系统控制器局域网(CAN)总线通信协议[J].机械工程学报,2008,44(5):102-108.
[4]冉振亚,周智庆,李越,等.电动汽车CAN总线驱动控制系统设计[J].重庆大学学报,2010,31(6):603-610.
[5]黄章华,陆华忠,吕恩利,等.基于ARM和CAN的电动汽车电池管理系统[J].华南农业大学学报,2009,30(4):105-110.
[6]郑敏信,齐铂金,吴红杰.基于双CAN总线的电动汽车电池管理系统[J].汽车工程,2008,30(9):788-793.
[7]刘倩,熊丽荣.基于CAN总线的混合动力电动汽车的镍氢电池管理系统[J].农业装备与车辆工程,2008,5:11-14.
[8]郭俊飞,李军伟,郑玉英.基于CAN总线的电动汽车灯光控制系统设计[J].农业装备与车辆工程,2009(3):15-19.
[9]徐丹旭,王艳,殷天明.纯电动汽车CAN总线通信液晶显示系统[J].现场总线技术,2009,31(6):46-49.
[10]吴鹏,陶正苏,胡宇贞.基于单片机USB接口的PC主机驱动程序和应用程序设计[J].电子器件,2005,28(3):612-614.