基于CCP协议的电池管理系统标定模块的设计
2010-05-18闫丽媛
闫丽媛
(北京航空航天大学,北京 100191)
随着汽车电子技术的发展,大多数车上电子控制单元从研发原型到形成产品都需经过匹配标定的过程,以确定其运行参数和控制参数。因此,标定是产品开发成功的关键因素之一。电池管理系统作为混合动力电动汽车的关键控制单元,对其实现可标定功能具有重要意义[1]。通过标定系统,实验人员可以根据现场情况对电池管理系统的控制参数进行在线修改,以适应不同的运行环境。同时,标定系统还可以监测管理系统采集的电池状态数据,并对其进行存储、处理和分析,以便随时掌握试验情况。
目前,一般的标定系统都是采用基于串行口点对点的通信方式,这种通信方式容易实现,但存在着通信速度较慢、可靠性较低等缺陷[2]。本文设计的电池管理标定系统采用CCP协议,使用INCA软件,利用 CAN接口对所需标定参数进行标定,便于整车的调试和控制策略的优化。
1 标定系统总体方案
本文设计的标定系统包括上位机标定平台、下位机CAN通信扩展电路,CAN驱动程序和CCP驱动程序[3]。标定平台部分采用ETAS公司的标定及监测工具INCA(Integrated Calibration and Application Software),该工具功能强大,内部集成有CCP协议,具有成熟可靠的软硬件实现方案,是用于控制单元功能参数标定的通用产品系列,可采集控制器的测量信号,并且在线对参数进行分析优化。下位机采用SJA1000作为CAN控制器件,实现对CAN通信电路的扩展,在此基础上开发底层CAN驱动程序,包括CAN发送模块和CAN接收模块。CCP驱动程序则包括了标定处理任务和数据上传处理任务,设计的标定系统总体方案如图1所示。
2 标定系统硬件电路模块
2.1 硬件电路设计方案
BMS的核心控制器为TI公司的TMS320LF2407A DSP芯片,其内部集成有1个CAN总线接口,该接口主要用于和整车上其他控制器交换信息。由于在标定期间占用CAN总线资源较多,如果标定功能和正常的CAN通信功能实现于同一条CAN总线上,会影响到BCU与其他控制器之间的通信,所以在硬件电路设计中采用SJA1000在BMS中扩展出1个专用于标定功能的CAN接口。其设计方案如图2所示。
图1 标定总体方案图
图2 标定用CAN接口扩展方案
以现有BCU系统的核心控制器TMS320LF2407A作为上层控制器,通过地址/数据总线对SJA1000进行控制命令的写入和状态、数据的读取。同时,DSP通过I/O口输出控制字来控制CPLD,使其输出片选以及读写控制信号至SJA1000,以便配合DSP对SJA1000的操作。
2.2 SJA1000扩展电路的设计
图3 SJA1000外扩电路图
SJA1000是一种独立的CAN控制器,用于移动目标和一般工业环境中的区域网络控制,支持CAN2.0B协议。其内部集成了控制寄存器和状态寄存器,外部控制设备(如单片机、DSP等)可以访问这些寄存器来实现对其工作方式的配置和工作状态的查询。另外,其内部还集成了发送和接收缓冲器,核心控制设备可以通过读写这些缓冲器来获得和发送信息,实现信息的交换。
本设计选择0x8000作为SJA1000地址输入端口,0xA000作为SJA1000数据输入输出端口。由于SJA1000地址线和数据线复用,且均为8位,因此只需DSP的低8位数据线与SJA1000的AD[0…7]相连即可。SJA1000外扩电路图3所示。
3 标定系统软件部分
标定的软件部分分为CAN底层通讯部分和CCP驱动程序部分。CAN底层通信主要是实现CAN控制器的初始化,以及CAN报文的接收和发送。作为底层模块,这些功能将被标定处理任务调用。为了实现标定,通信部分通过采用基于CAN通信模式的CCP协议,标定平台部分采用ETAS公司的标定及监测工具INCA。
3.1 CCP协议简介[4]
CCP协议属于CAN通信的应用层协议,完全遵循CAN通信协议,主要用于实现对控制器的标定,同时可进行循环或事件驱动的数据采集和监测。用于标定和数据采集的CAN通信协议是基于主从通信模式的协议。1个CCP主机 (位于PC机的标定平台)可与CAN总线上的1个或多个CCP从机(ECU)连接。图4为CCP主从模式的通信配置示意图。主机通过从机站地址的配置实时地建立主、从机之间的逻辑连接。该连接在另一站地址被选中或当前站地址通过指令被明确断开连接之前一直有效。
图4 主从通信方式框图
CCP采用2个报文对象,每个对象对应一个数据流向,具有唯一的ID标识码,主设备发送给从设备的数据对象为CRO(Command Receive Object),从设备反馈给主设备的数据对象为DTO(DataTransmission Object),CRO用于传递指令代码和内部功能码或主、从机之间交换的存储区数据。图5、图6为 2种 CCP报文对象 CRO、DTO的结构示意图。若主设备要求从设备周期性地自动将需要被实时监视的数据发送给主设备,此时该DTO被称为DAQ。本标定系统数据采集采用DAQ模式,即将BMS中需要标定和监视的参数按照要求的周期进行上传,无需对每个参数分别发送。图7为DTO-DAQ结构示意图。
图5 CRO结构示意图
图6 DTO结构示意图
图7 DTO-DAQ结构示意图
结合CCP协议的应用架构,本标定系统中CCP协议的应用结构如图8所示。
图8 CCP协议实现的结构图
3.2 CCP驱动的集成及通信过程
CCP驱动程序是一个比较复杂的程序,从CCP通信实现形式上划分,主要由命令处理模块和DAQ处理模块两大部分组成;从函数接口调用角度,主要由函数ccpInit()、ccpBackground()、ccpDAQ()、ccpCommand()、ccpSend()、ccpSendCallback()以及其他可选用函数组成。
CCP命令处理模块是作为系统的一个任务来完成,在系统初始化后启动运行。调用CAN驱动程序从总线上获取CCP主设备发给从设备的命令,从设备根据命令做相应的动作,并回送命令应答,完成对话。其实现框图如图9所示。
命令处理模块具体的操作是利用ccpCommand()函数来实现,主要负责解析并执行CRO命令,命令接收对象,用于传递指令代码和内部功能码,其形参为指向CAN数据帧接收缓冲区首字节地址的指针,通过分析该CAN帧的第1个字节即命令代码字节cmd从而判断该CRO报文的功能。在建立好逻辑连接的前提下,采用条件语句(if语句)和选择语句(switch语句)将任务分配到具体的模块。
图9 CCP通信框图
图10 DAQ模块处理流程图
DAQ处理模块的主要任务是根据主设备要求,周期定时地通过CAN总线向主设备发送监控数据。通过读取BMS内部控制参数的当前值,并用DAQ-DTO帧发送给主设备。命令处理模块在收到主设备要求启动DAQ的命令时,调用OS函数OSTaskCreat(),启动相应的 DAQ任务;该任务每完成1次DAQ发送后,调用OS函数OSTimeD-lyHMSM ()将其挂起,下一发送时间到来时 ,OS 将自动使该任务进入就绪态;在收到主设备要求停止DAQ的命令时,调用 OS函数 OSTaskDel()删除该任务。
DAQ处理模块主要是通过 ccpDAQ()函数实现,该函数的形参为Event Channel。通过主设备设置DAQ发送周期,即将相应的周期值传给形参,从而实现按主设备要求的周期发送监控数据。具体流程如图10所示。
本设计硬件采用SJA1000在BCU系统中扩展出一个专用于标定功能的CAN接口,实现了在不妨碍电池管理系统的采集、通信以及估算等重要任务完成的情况下进行标定。软件根据CCP协议的要求,以CAN驱动程序为基础,完成CCP驱动程序的开发,并集成了BCU主程序,实现与上层标定系统的通信。
通过以上功能的开发,实现电池管理系统的标定功能,对实现电池管理系统产业化具有重要意义。
[1]张忠义,羌嘉曦,杨林,等.混合动力汽车电池管理系统[J].机电工程技术,2006,35(1):61-64.
[2]池建军,吕彩琴,王孝.电控发动机标定系统开发的关键技术[J].柴油机设计与制造,2006,14(3):337-340.
[3]王凤国.ISG型混合动力汽车电池管理系统优化与标定[D].北京:北京航空航天大学,2007
[4]冯静,王俊席,卓斌.基于CCP协议的电控发动机标定系统CAN通信模块的研发[J].内燃机工程,2003,24(5):33-38.
[5]GALLACHER A M.The automatic calibration optimization of powertrain for automotive.AVL ECU and Calibration Technology,2001.