基于CCP协议利用CANape进行电控单元标定

发布者:GoldenSerenity最新更新时间:2006-07-17 来源: 电子技术应用关键字:CAN  控制  单元 手机看文章 扫描二维码
随时随地手机看文章

目前基于CAN(Controller Area Network)总线的分布式系统在汽车电子领域得到广泛应用,电子控制单元的标定已成为汽车电子控制装置开发的一个重要环节。CCP(CAN Calibration Protocol)是一种基于CAN总线的ECU(Electronic Control Unit)标定协议[1],已经在许多欧美汽车厂商得到应用,采用CCP协议可以快速而有效地实现对汽车电控单元的标定。

然而基于CCP协议的标定,需要在ECU内部实现支持CCP协议的驱动程序(CCP driver)。目前大多数应用都采用Vector提供的free CCP driver[2]。考虑到ECU底层程序与CAN驱动程序的实现各不相同,将CCP驱动程序结合到ECU中[3]并不是一件一蹴而就的事,这需要对CCP协议本身、标定工具及标定工具与ECU之间的通信有详细和深入的了解。在整个标定系统的开发过程中,大量时间被耗费在前期CCP驱动程序与ECU结合上。本文在简单介绍CCP协议的基础上,提供了一个通用的ECU与CCP驱动程序结合的实例,以帮助缩短整个标定开发周期。

CANape[4]是一款ECU标定和测试工具。与CCP协议相结合,不仅能完成对ECU的标定,同时还能在ECU运行期间直接访问内存并进行操作。这使得CANape不仅是一款功能强大的标定工具,也是一款电控单元开发的得力助手。然而在使用方面,CANape的前期配置比较繁琐,目前国内的相关资料较少。本文将介绍CANape,并着眼于如何基于CCP协议使用CANape完成ECU的标定。

1 CCP协议及工作原理

CCP协议是ASAP(Arbeitskreis zur Standardisierung von Applikationssystemen)标志的有机组成部分。ASAP作为一个应用系统标准化工作小组,其目的在于提供通用软、硬件接口标准,以解决由于不同制造商提供的控制器存在的接口不匹配问题。

1.1 CCP通信方式

基于CCP协议的ECU标定采用主-从通信方式,如图1。主设备通过CAN总线与多个从设备相连,其中主设备是测量标定系统MCS(Measurement Calibration System),从设备是需要标定的ECU,在汽车电子中即为车载控制器。

根据CCP协议,主设备首先与其中一个从设备建立逻辑链接,然后通过主设备向从设备发送命令来起始两者间的数据通信。当主设备要访问另一个从设备时,首先断开与当前从设备的逻辑连接,与下一个从设备建立新的逻辑连接后再开始通信。

1.2 CCP协议的工作模式

CCP定义了两种工作模式:Polling(查询)模式及DAQ(Data Acquisition Command)模式。查询模式下,主设备与从设备间的每一次通信都由主设备发送命令来起始,从设备收到主设备的命令后,执行相应的操作并反馈一帧报文。这种工作模式由于需要主机与从机之间进行“一问一答”的信息交互,工作效率不高,但实现简单,而且占用ECU内存资源较小。 DAQ模式使从设备可以脱离主设备的命令控制按一定周期自动向主设备上传数据。DAQ模式下,主设备首先发送一条请求DAQ的命令,从设备收到后,按命令中的参数自行配置并组织需要上传的数据,然后按一定周期自主向主设备上传数据。这种模式由于不需要主机通过命令逐步控制,工作效率高,但实现较复杂,如果需要上传的数据量很大,会占用大量ECU内存空间。

1.3 CCP报文帧结构

基于CCP协议的标定只占用两帧CAN报文,分别是命令接收对象CRO(Command Receive Object)和数据传输对象DTO(Data Transmission Object),如图2所示。CRO由主设备发给从设备,DTO是从设备反馈的报文。两者分别通过一个自己的ID标识符进行标识(CRO_ID与DTO_ID)。

CRO与DTO的ID标识符由通信协议自行定义,CCP协议只对CRO及DTO的数据场做了详细定义。按照CCP协议,CRO数据场的第1个字节为命令代码CMD(Command Code),CCP协议共规定了28条命令[1]。从设备通过CMD代码判断主设备请求的是哪条命令。数据场的第2个字节是命令计数器CTR(Command Counter)。剩余6个字节均为命令参数,每条命令有各自对应的命令参数。

从设备反馈的报文称为DTO。按CCP协议,DTO又细分为三类:

·命令返回消息CRM(Command Return Message):由从设备发送,针对CRO的反馈报文。

·事件消息(Event Message):当从设备检测到内部发生错误机制时,由从设备自行向主设备发送,报告其当前的运行状态,并请求主设备暂停当前工作进程以处理发生的错误。

·DAQ-DTO(Data Acquisition-DTO):用在DAQ模式中,由从设备组织,定期向主设备发送。

DTO报文的第1个字节PID(Packet ID)定义了DTO的类型,255代表CRM, 254代表事件消息。第2个字节为命令返回/错误代码ERR(Command Return-/Error Code)。对于CRM,主设备由该字节获知命令的执行情况;对于事件消息,主设备由该位获知从设备内部发生了哪种错误。第3字节CTR是命令计数器,该位数值与其对应的CRO的CTR值相对应。剩余5个字节是数据场,存放主设备请求的数据或信息。

2 基于CCP协议的接口程序实现

基于CCP协议进行标定,需要MCS与ECU的应用程序都能够支持CCP协议,这部分应用程序称为CCP driver。本文采用Vector提供的free CCP driver[2]。由于CCP协议基于CAN总线,因此CCP driver与ECU的结合主要分为与CAN driver及与其他应用程序两方面。

CCP driver与CAN driver的结合如图3,主要分为以下两方面:

·发送端:DTO通过CAN driver的发送子函数以CAN报文的格式上传给MCS。

·接收端:主设备发送的命令以CAN报文的格式首先进入CAN driver的接收子函数,由其判断为CRO后,进一步交给命令处理器处理。

命令处理器作为CCP driver的一个主要组成部分,负责将接收到的CRO,通过其CRM代码进行命令解释,执行相应操作,组织反馈数据并调用CAN发送子函数。DAQ处理器支持DAQ工作模式,当命令处理器判断收到的命令为DAQ请求后,进一步将数据传给DAQ处理器,由DAQ处理器组织数据并直接调用CAN 发送子函数,以DAQ-DTO的形式定期向主设备上传。

基于CCP协议的基本CAN通信流程如图4所示。ECU接收到报文后,转入CAN接收子函数,在常规接收流程后,对报文的ID标识符进行判断,如为CRO_ID,则将CCP标志位(Ccp_indicator)置位。由于采用中断方式接收报文,为了避免占用过多中断时间而影响其他函数或中断级别较低的程序运行,在对ID标识符进行判断后,并不直接在函数中调用CCP driver的命令处理器。命令处理器的调用会在主函数中进行。

主函数通过判断标志位的状态,调用CCP driver的ccpCommand()子函数。该函数是命令处理器的主要组成部分,也是命令处理器与CAN driver的接口函数,它负责解释并执行收到的CRO命令,调用CCP driver中的其他函数,进行数据处理并组织需要反馈的数据。

ccpCommand()通过调用CAN driver中的CCP发送子函数ccpSend()发送一帧DTO。ccpSend()须在CAN driver中实现,由CCP driver调用。按实际情况,将CAN发送子函数直接以ccpSend()的形式实现,或在保留原有发送子函数的基础上添加一个ccpSend()子函数,在其中调用CAN发送子函数,以完成DTO的发送。

CCP协议为确保主设备与ECU之间正常通信,每次发送后,程序必须通过调用CCP driver中的ccpSendCallback()子函数检查刚才的DTO是否已经发送,否则不能发送下一帧报文。针对不同的CAN driver实现,该函数调用的位置不同。最后主函数将CCP标志位清空,等待下一条CRO命令。

一个完整的CCP driver 接口还包括与ECU其他应用程序的接口。每次单片机初始化后,主函数调用一次CCP driver的CCP初始化子函数ccpInit(),将上次标定残留在ECU内存中的数据清空,为下次标定与测量做准备。

CCP协议共定义了28条命令,每条命令在CCP driver中都对应一组相应的子函数,代表不同的功能,如EEPROM标定、DAQ工作模式等。用户可根据实际需要,选择实现其中部分或全部功能。每增加一个新的功能,必须在底层程序中添加开放该项功能的程序接口[3]。如对EEPROM标定,首先ECU应用程序中应包含EEPROM模块子函数,同时还需实现命令处理器与EEPROM模块之间的调用接口。

3 利用CANape实现基于CCP的标定

CANape[4]是德国Vector公司出品的一款基于ASAP标准的ECU测试和标定工具。它通过一个控制器硬件接口与ECU相连,两者之间常用的物理连接是基于CCP协议的CAN总线。只有控制器的底层程序中有支持CCP协议的程序接口, CANape才能与控制器通信。

CANape提供了多种功能:在线数据评估、离线评估、数据管理、FLASH编程、参数标定及ASAP2数据编辑器等。此外,测试过程中由CAN总线上传的数据还可以通过CANape在计算机显示和保存,以进行离线标定和数据评估。

3.1 ASAP2控制器描述文件及ASAP2编辑器

CANape与控制器间的通信需要一个描述文件支持,这个文件称为ASAP2控制器描述文件[4]。CANape对控制器的参数标定和数据测量都是基于这个文件,该文件记录了控制器中各参数的详细信息,如标定参数和测量变量在控制器中的存储地址、存储结构、数据类型和转换公式等。在CANape中,每个标定参数和测量数据都会有一个变量名,如发动机温度、冷却水温度。当CANape需要访问某个变量,就在ASAP2描述文件中根据变量名,找到该变量在控制器中的存储地址、数据长度等信息,然后进行操作,如图5。

为了方便用户对ASAP2文件进行维护和修改,CANape集成了一个ASAP2数据库编辑器,用以生成和修改ASAP2控制器描述文件。所有的信息都能通过对话框的形式进行设置和修改。该数据库编辑器还能工作在独立模式下,以生成一个ASAP2格式的控制器描述文件。

当ECU底层程序修改后,一些标定参数和测量数据的内存地址可能发生变动,CANape虽然仍能进行标定,但修改的已不是原来需要标定的参数,而是程序变动后原先地址下当前存放的某个新的未知数据。为了简化手工修改地址的繁琐,防止因为随意修改某个数据而破坏程序的正常运行,CANape支持通过linker map文件自动更新ASAP2文件里的信息。Map文件是ECU底层程序在编译时由编译器生成的一种映射文件,通过Map文件可以自动更新ASAP2文件。

3.2 CANape使用配置

每个需要标定的ECU都要在CANape中进行配置。

CANape共定义了28条命令,用以实现不同的功能,在配置页面里均有复选框与其对应。控制器的配置必须与CCP Driver在ECU底层程序的具体实现相匹配,只有对某个功能的程序接口已经开放,才能在CANape中选择使用该项功能[2][5]。

3.3 CANape中的参数标定

在CANape中,需要标定的变量称为标定参数,CANape将标定定义为修改驻扎在ECU内存中的变量的内容。CANape支持多种标定方法。这里标定方法指如何对标定参数所在的内存区域进行初始化、数据改写及保存。根据标定参数所在不同地址空间(ROM、FLASH或EEPROM),CANape规定了不同的标定方法。

当标定参数需要存放在FLASH或ROM中时,在ECU上电初始化后,程序首先将标定参数的初始值复制到RAM中,在CANape中该段用来存放标定参数的RAM称为Calibration RAM。标定过程中,CANape修改Calibration RAM中的参数值。标定全部结束后,再将该段RAM中的内容复制回FLASH或ROM中。

当标定参数存放在EEPROM中,有两种标定方法。第一种与上述方法相同,首先将标定参数复制到RAM中,标定结束后再将RAM中的数据覆盖到EEPROM。此外,也可对EEPROM中的参数直接进行改写,实现这种方法需要对EEPROM进行频繁擦写操作,但不占用额外的RAM空间。

由于汽车电子网络系统已开始得到广泛的使用,基于网络连接的电子控制单元的匹配标定和传统的匹配标定方法已有了很大的不同,特别是基于CAN总线的匹配标定技术,目前已成为研究和应用的重点。

采用CANape进行基于CCP的匹配标定,实现了标定工具和内容的统一。根据这种方法能够快速有效地进行汽车电子控制单元的匹配标定,在实际开发应用中取得了良好的效果。

关键字:CAN  控制  单元 引用地址:基于CCP协议利用CANape进行电控单元标定

上一篇:基于S3C2410的RTC模块应用设计
下一篇:基于低成本CMOS摄像头智能监控系统的设计

推荐阅读最新更新时间:2024-05-13 18:13

用87C196NT单片机实现CAN总线通信
    摘要: 主要介绍CAN总线的原理及如何用87C196NT单片机实现基于CAN总线的网络通信;对其硬件和软件设计作详细的分析,最后给出下位机程序。     关键词: 单片机 CAN总线 87C196NT PCA82C200 1 CAN总线简介 CAN(Controller Area Network)即控制器局域网,主要用于各种设备监测及控制的一种现场总线。CAN总线最初是由德国Bosch公司为汽车的监测、控制系统而设计的。CAN总线具有独特的设计思想,良好的功能特性和极高的可靠性,现场抗干扰能力强。具体来讲,CAN总线具有如下特点: *结构简单,只有2根线与外部相连,且内部含有错误探测和管理模块
[工业控制]
基于STC12C5A60S2的双电源供电智能控制系统设计
摘要:文章介绍了基于STC12C5A60S2单片机的双电源供电智能控制系统,实现对主电源和备用电源的实时监测,保证供电的连续性和可靠性。文中阐述丫系统的整体设计方案、硬件电路设计、软件设计及后台监控的设计。通过理论分析及实践汪明能有效的检测当前主备电路的电压值并实现双电源之间的准确转换,相应状态可以通过GSM模块发送给监控主机和相关操作人员,具有重要的现实意义。 0 引言 随着国民经济的迅速发展,人们对供电连续性、可靠性的要求越来越高,对于不允许断电的重要场合,如医院手术室、高层建筑安全保障系统、热电站、化工企业、银行等,都要求配备至少两路电源来保证供电的连续性。因此,需要一种能在两路电源之间进行自动转换的系统,以保证正在使用
[测试测量]
基于STC12C5A60S2的双电源供电智能<font color='red'>控制</font>系统设计
解读工业控制器的演进模式以及未来的控制器会是如何
对于市场来说,多样性通常是有益的,但它也可能会使工程师和最终用户感到沮丧。选择某个控制平台是一项长期投资,随之会带来相关开销,例如培训和支持合同。决策者希望他们投入的资金能物有所值。 但在对该问题表示支持之前,不如先看看这个行业是如何发展的。不同控制解决方案发展趋势,背后的推动力是什么?目前这些趋势如何发挥作用?未来,用户如何对自动化进行投资,才能确保获得成功? 图1:得益于数十年的技术集成,当今的边缘控制器,可以提供多种I/O功能、多个通信接口以及嵌入式HMI和编程功能。 工业控制器的演进模式 研究过去几十年自动化控制领域的进步,能够清晰的看到一些特定技术的迭代是如何推动新的I/O和控制功能发展的。 例如,在开发
[嵌入式]
解读工业<font color='red'>控制</font>器的演进模式以及未来的<font color='red'>控制</font>器会是如何
马斯克宣称:首位脑机接口设备植入者能用意念控制鼠标
脑机植入物。图片来源:“神经连接”公司 埃隆·马斯克20日在社交媒体X上表示,首位植入“神经连接”大脑芯片的人类患者似乎已完全康复,其成功地利用意念控制了电脑鼠标。 马斯克表示,“神经连接”公司现在正试图让患者尽可能多地点击鼠标按钮。该公司上个月成功地在第一位人类患者身上植入了芯片。 “神经连接”去年获得美国食品和药品管理局批准进行首次人体试验,以测试该公司的大脑芯片植入物。这是该初创公司的一个重要里程碑。 这项研究使用机器人,通过外科手术将脑机接口(BCI)植入物放到大脑控制移动意图的区域,最初的目标是让人们能用自己的思想控制电脑光标或键盘。 马斯克相信,“神经连接”芯片有潜力成为这个时代最重要的技术之一。他设想未来植入式B
[医疗电子]
马斯克宣称:首位脑机接口设备植入者能用意念<font color='red'>控制</font>鼠标
物理门禁控制系统实现原理
  本应用笔记从信息技术(IT)这一全新视角阐述了物理 门禁控制 系统。本文对各种不同类型的锁控技术(机械、磁卡、接触式、RFID)进行对比,并对这些锁控装置的优缺点进行了评估。采用质询-响应认证的锁控装置克服了传统静态数据门锁的局限性。本文介绍了质询-响应工作原理,列举了相应的锁控装置并对其进行比较。本文还阐述了质询-响应认证相比静态数据更安全的原因。   本应用笔记讨论了几种不同类型的门禁控制系统:机械式、磁卡式、接触式、RFID。文章讨论了质询-响应认证(质询、加密以及消息认证码或MAC)以及SHA-1算法的重要性。最后,本文还阐述了质询-响应认证机制更安全的原因。   基于信息技术(IT)的锁控装置   严
[嵌入式]
ORNL研发创新控制系统 再利用电动汽车电池组为家庭提供电力
据外媒报道,美国(Oak Ridge National Laboratory,ORNL)的研究人员研发出一种创新控制系统,可以重新利用 电动汽车 电池组,存储供家庭使用的电力,而且计划将该技术扩展至大型电网项目。 即使电池无法再为 电动汽车 提供动力,其实仍存储了大量能量。此类电池组可能无法再承受电动汽车极端的充放电条件,不过仍可以作为低成本的固定储能系统,据估计,仍可以再使用10年以上。 此类再利用电池是电网能源存储的理想选择,在美国全国范围内安装更多可再生间歇性电源,对于保持电力供需平衡至关重要。据美国能源情报署(U.S. Energy Information Administration)的数据,2018年,
[汽车电子]
ORNL研发创新<font color='red'>控制</font>系统 再利用电动汽车电池组为家庭提供电力
Type-C时代来临 TI推出单芯片降/升压电池充电控制
USB Type-C为新一代端口规格,具有多项技术上的突破与优势,像是具备双向传输的能力,一旦连接可充电也可放电,有相当高的便利与兼容性。MacBook两年前便开始采用Type-C规格,按照苹果的领头羊角色,未来越多越多NB势必也会按照此趋势走,Type-C的前景可谓备受期待,也因此,多家半导体大厂纷纷推出相关产品积极应战。 德州仪器推出可支持USB Type-C规格的升降压电池充电控制器。电池充电产品资深应用工程师叶书宏今(20)日向媒体进行产品说明与趋势分析。 德州仪器(TI)便推出可支持最新USB Type-C,以及USB PD的单芯片降压-升压型电池充电控制器,透过各种端口标准为笔记本电脑、平板、行动店员和智能家庭应用
[半导体设计/制造]
STM32的电源管理与低功耗控制设计
7.1电源管理概述 处理器广泛地利用门时钟来禁能那些未用的功能和未用功能块的输入,因此只有正在有效使用中的逻辑才会消耗动态功率。 ARMv7-M架构支持为减少功耗而让Cortex-M3和系统时钟停止运行的系统睡眠模式。 7.2系统电源管理 对系统控制寄存器进行写操作(见“系统控制寄存器”)可以控制Cortex-M3系统功耗的状态,表7-1列出了支持的睡眠模式。 a.即使没有异常被激活也可以执行WFI指令。不要使用WFI指令来探测异常是否发生。WFI通常使用 在线程模式下的空闲循环中。要了解更多有关WFI、WFE、BASEPRI以及PRIMASK的信息,请参考 “ARMv7-M架构参考指南”。 处理器导出以下信号以指示处理器
[单片机]
STM32的电源管理与低功耗<font color='red'>控制</font>设计
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved