基于caname的汽车控制器ccp标定_第1页
基于caname的汽车控制器ccp标定_第2页
基于caname的汽车控制器ccp标定_第3页
基于caname的汽车控制器ccp标定_第4页
基于caname的汽车控制器ccp标定_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于caname的汽车控制器ccp标定

目前,以控制区域网络为基础的分割系统(co)在电子车辆行业得到了广泛应用。电子控制单元的测量是电子控制装置发展的重要组成部分。CCP(CANCalibrationProtocol)是一种基于CAN总线的ECU(ElectronicControlUnit)标定协议,已经在许多欧美汽车厂商得到应用,采用CCP协议可以快速而有效地实现对汽车电控单元的标定。然而基于CCP协议的标定,需要在ECU内部实现支持CCP协议的驱动程序(CCPdriver)。目前大多数应用都采用Vector提供的freeCCPdriver。考虑到ECU底层程序与CAN驱动程序的实现各不相同,将CCP驱动程序结合到ECU中并不是一件一蹴而就的事,这需要对CCP协议本身、标定工具及标定工具与ECU之间的通信有详细和深入的了解。在整个标定系统的开发过程中,大量时间被耗费在前期CCP驱动程序与ECU结合上。本文在简单介绍CCP协议的基础上,提供了一个通用的ECU与CCP驱动程序结合的实例,以帮助缩短整个标定开发周期。CANape是一款ECU标定和测试工具。与CCP协议相结合,不仅能完成对ECU的标定,同时还能在ECU运行期间直接访问内存并进行操作。这使得CANape不仅是一款功能强大的标定工具,也是一款电控单元开发的得力助手。然而在使用方面,CANape的前期配置比较繁琐,目前国内的相关资料较少。本文将介绍CANape,并着眼于如何基于CCP协议使用CANape完成ECU的标定。1有机组成部分CCP协议是ASAP(ArbeitskreiszurStandardisierungvonApplikationssystemen)标志的有机组成部分。ASAP作为一个应用系统标准化工作小组,其目的在于提供通用软、硬件接口标准,以解决由于不同制造商提供的控制器存在的接口不匹配问题。1.1ccp协议的原理基于CCP协议的ECU标定采用主-从通信方式,如图1。主设备通过CAN总线与多个从设备相连,其中主设备是测量标定系统MCS(MeasurementCalibrationSystem),从设备是需要标定的ECU,在汽车电子中即为车载控制器。根据CCP协议,主设备首先与其中一个从设备建立逻辑链接,然后通过主设备向从设备发送命令来起始两者间的数据通信。当主设备要访问另一个从设备时,首先断开与当前从设备的逻辑连接,与下一个从设备建立新的逻辑连接后再开始通信。1.2daq模式下的工作模式CCP定义了两种工作模式:Polling(查询)模式及DAQ(DataAcquisitionCommand)模式。查询模式下,主设备与从设备间的每一次通信都由主设备发送命令来起始,从设备收到主设备的命令后,执行相应的操作并反馈一帧报文。这种工作模式由于需要主机与从机之间进行“一问一答”的信息交互,工作效率不高,但实现简单,而且占用ECU内存资源较小。DAQ模式使从设备可以脱离主设备的命令控制按一定周期自动向主设备上传数据。DAQ模式下,主设备首先发送一条请求DAQ的命令,从设备收到后,按命令中的参数自行配置并组织需要上传的数据,然后按一定周期自主向主设备上传数据。这种模式由于不需要主机通过命令逐步控制,工作效率高,但实现较复杂,如果需要上传的数据量很大,会占用大量ECU内存空间。1.3ccp协议关于dto的定义基于CCP协议的标定只占用两帧CAN报文,分别是命令接收对象CRO(CommandReceiveObject)和数据传输对象DTO(DataTransmissionObject),如图2所示。CRO由主设备发给从设备,DTO是从设备反馈的报文。两者分别通过一个自己的ID标识符进行标识(CRO_ID与DTO_ID)。CRO与DTO的ID标识符由通信协议自行定义,CCP协议只对CRO及DTO的数据场做了详细定义。按照CCP协议,CRO数据场的第1个字节为命令代码CMD(CommandCode),CCP协议共规定了28条命令。从设备通过CMD代码判断主设备请求的是哪条命令。数据场的第2个字节是命令计数器CTR(CommandCounter)。剩余6个字节均为命令参数,每条命令有各自对应的命令参数。从设备反馈的报文称为DTO。按CCP协议,DTO又细分为三类:·命令返回消息CRM(CommandReturnMessage):由从设备发送,针对CRO的反馈报文。·事件消息(EventMessage):当从设备检测到内部发生错误机制时,由从设备自行向主设备发送,报告其当前的运行状态,并请求主设备暂停当前工作进程以处理发生的错误。·DAQ-DTO(DataAcquisition-DTO):用在DAQ模式中,由从设备组织,定期向主设备发送。DTO报文的第1个字节PID(PacketID)定义了DTO的类型,255代表CRM,254代表事件消息。第2个字节为命令返回/错误代码ERR(CommandReturn-/ErrorCode)。对于CRM,主设备由该字节获知命令的执行情况;对于事件消息,主设备由该位获知从设备内部发生了哪种错误。第3字节CTR是命令计数器,该位数值与其对应的CRO的CTR值相对应。剩余5个字节是数据场,存放主设备请求的数据或信息。2ccp协议的基本程序基于CCP协议进行标定,需要MCS与ECU的应用程序都能够支持CCP协议,这部分应用程序称为CCPdriver。本文采用Vector提供的freeCCPdriver。由于CCP协议基于CAN总线,因此CCPdriver与ECU的结合主要分为与CANdriver及与其他应用程序两方面。CCPdriver与CANdriver的结合如图3,主要分为以下两方面:·发送端:DTO通过CANdriver的发送子函数以CAN报文的格式上传给MCS。·接收端:主设备发送的命令以CAN报文的格式首先进入CANdriver的接收子函数,由其判断为CRO后,进一步交给命令处理器处理。命令处理器作为CCPdriver的一个主要组成部分,负责将接收到的CRO,通过其CRM代码进行命令解释,执行相应操作,组织反馈数据并调用CAN发送子函数。DAQ处理器支持DAQ工作模式,当命令处理器判断收到的命令为DAQ请求后,进一步将数据传给DAQ处理器,由DAQ处理器组织数据并直接调用CAN发送子函数,以DAQ-DTO的形式定期向主设备上传。基于CCP协议的基本CAN通信流程如图4所示。ECU接收到报文后,转入CAN接收子函数,在常规接收流程后,对报文的ID标识符进行判断,如为CRO_ID,则将CCP标志位(Ccp_indicator)置位。由于采用中断方式接收报文,为了避免占用过多中断时间而影响其他函数或中断级别较低的程序运行,在对ID标识符进行判断后,并不直接在函数中调用CCPdriver的命令处理器。命令处理器的调用会在主函数中进行。主函数通过判断标志位的状态,调用CCPdriver的ccpCommand()子函数。该函数是命令处理器的主要组成部分,也是命令处理器与CANdriver的接口函数,它负责解释并执行收到的CRO命令,调用CCPdriver中的其他函数,进行数据处理并组织需要反馈的数据。ccpCommand()通过调用CANdriver中的CCP发送子函数ccpSend()发送一帧DTO。ccpSend()须在CANdriver中实现,由CCPdriver调用。按实际情况,将CAN发送子函数直接以ccpSend()的形式实现,或在保留原有发送子函数的基础上添加一个ccpSend()子函数,在其中调用CAN发送子函数,以完成DTO的发送。CCP协议为确保主设备与ECU之间正常通信,每次发送后,程序必须通过调用CCPdriver中的ccpSendCallback()子函数检查刚才的DTO是否已经发送,否则不能发送下一帧报文。针对不同的CANdriver实现,该函数调用的位置不同。最后主函数将CCP标志位清空,等待下一条CRO命令。一个完整的CCPdriver接口还包括与ECU其他应用程序的接口。每次单片机初始化后,主函数调用一次CCPdriver的CCP初始化子函数ccpInit(),将上次标定残留在ECU内存中的数据清空,为下次标定与测量做准备。CCP协议共定义了28条命令,每条命令在CCPdriver中都对应一组相应的子函数,代表不同的功能,如EEPROM标定、DAQ工作模式等。用户可根据实际需要,选择实现其中部分或全部功能。每增加一个新的功能,必须在底层程序中添加开放该项功能的程序接口。如对EEPROM标定,首先ECU应用程序中应包含EEPROM模块子函数,同时还需实现命令处理器与EEPROM模块之间的调用接口。3ccp协议与canpr接CANape是德国Vector公司出品的一款基于ASAP标准的ECU测试和标定工具。它通过一个控制器硬件接口与ECU相连,两者之间常用的物理连接是基于CCP协议的CAN总线。只有控制器的底层程序中有支持CCP协议的程序接口,CANape才能与控制器通信。CANape提供了多种功能:在线数据评估、离线评估、数据管理、FLASH编程、参数标定及ASAP2数据编辑器等。此外,测试过程中由CAN总线上传的数据还可以通过CANape在计算机显示和保存,以进行离线标定和数据评估。3.1canpe通过数据库模块更新数据文件CANape与控制器间的通信需要一个描述文件支持,这个文件称为ASAP2控制器描述文件。CANape对控制器的参数标定和数据测量都是基于这个文件,该文件记录了控制器中各参数的详细信息,如标定参数和测量变量在控制器中的存储地址、存储结构、数据类型和转换公式等。在CANape中,每个标定参数和测量数据都会有一个变量名,如发动机温度、冷却水温度。当CANape需要访问某个变量,就在ASAP2描述文件中根据变量名,找到该变量在控制器中的存储地址、数据长度等信息,然后进行操作,如图5。为了方便用户对ASAP2文件进行维护和修改,CANape集成了一个ASAP2数据库编辑器,用以生成和修改ASAP2控制器描述文件。所有的信息都能通过对话框的形式进行设置和修改。该数据库编辑器还能工作在独立模式下,以生成一个ASAP2格式的控制器描述文件。当ECU底层程序修改后,一些标定参数和测量数据的内存地址可能发生变动,CANape虽然仍能进行标定,但修改的已不是原来需要标定的参数,而是程序变动后原先地址下当前存放的某个新的未知数据。为了简化手工修改地址的繁琐,防止因为随意修改某个数据而破坏程序的正常运行,CANape支持通过linkermap文件自动更新ASAP2文件里的信息。Map文件是ECU底层程序在编译时由编译器生成的一种映射文件,通过Map文件可以自动更新ASAP2文件。3.2复选框命令的实现每个需要标定的ECU都要在CANape中进行配置。CANape共定义了28条命令,用以实现不同的功能,在配置页面里均有复选框与其对应。控制器的配置必须与CCPDriver在ECU底层程序的具体实现相匹配,只有对某个功能的程序接口已经开放,才能在CANape中选择使用该项功能。3.3cali-rom中的标定在CANape中,需要标定的变量称为标定参数,CANape将标定定义为修改驻扎在ECU内存中的变量的内容。CANape支持多种标定方法。这里标定方法指如何对标定参数所在的内存区域进行初始化、数据改写及保存。根据标定参数所在不同地址空间(ROM、FLASH或EEPROM),CANape规定了不同的标定方法。当标定参数需要存放在FLASH或ROM中时,在E-CU上电初始化后,程序首先将标定参数的初始值复制到RAM中,在CANape中该段用来存放标定参数的RAM称为CalibrationRAM。标定过程中,CANape修改CalibrationRAM中的参数值。标定全部结束后,再将该段RAM中的内容复制回FLASH或ROM中。当标定参数存放在EEPROM中,有两种标定方法。第一种与上述方法相同,首先将标

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论