新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 汽车ECU 标定系统CCP 软件的实现

汽车ECU 标定系统CCP 软件的实现

作者:时间:2010-07-17来源:网络收藏

摘要: 是一种 标定匹配。本文简单介绍该的基本原理,以及一种基于该协议的汽车ECU 的实现方法。最后,结合MC9S12DP256 芯片以及μC/OS-II操作系统,详细讨论了此 软件实现方法。

1 前言

  标定是指根据整车的各种性能要求(如动力性、经济性、排放及辅助功能等),来调整、优化和确定整车上各ECU(包括发动机和各子系统 ECU)的运行及控制参数的控制算法。通过,能够很方便的读取 ECU 中的标定变量数据到标定平台,并可以对这些数据进行编辑修改,编辑后的数据又可以写入 ECU,从而达到修改 ECU 中标定参数的目的。功能完善且灵活方便的标定软件对整个汽车ECU 控制系统的开发起到事半功倍的效果。目前,一般的标定系统都是采用基于串行口的点对点的通信方式,这种通信方式具有很大的局限性,而且通信协议都不一样。在这个ECU 系统中,将采用 的通信方式和( Calibration Protocol)协议。

2 CCP 协议简介

  1996 年6 月,欧洲ASAP 项目组发布了现行的2.0 版,它采用CAN 2.0B(11 位或29位ID)进行MCS(measurement and calibration system)与ECU 之间的通信[1]。该协议具有通用性强,适用范围广的特点,无论对8 位低速带CAN 的控制器,还是32 位高速带CAN 的控制器,均可满足工作要求。基于CCP 协议的ECU 标定采用主-从通信方式,主设备通过CAN 与多个从设备相连,其中主设备是测量标定系统MCS(Measurement CalibrationSystem),从设备是需要标定的ECU。根据CCP 协议,主设备首先与其中一个从设备建立逻辑链接, 建立逻辑连接后,主、从机之间所有的数据传递均由主机控制,从机执行主机命令后返回包含命令响应值或错误代码等信息的报文。

3 标定系统的实现

  3.1 上位机部分

  友好的人机页面对于标定工作的顺利进行是起决定性作用的,此标定系统的设计克服了以往大多数标定系统只能通过键盘对标定数据进行修改的局限性[2],在标定系统中除了表格编辑方式外,还将引入图形编辑方式。将标定变量数据转换成图形,将使标定员对于标定变量数据比如说修正曲线和 MAP 图有一个更直观了解,并且可以通过鼠标拖动对图形进行编辑修改,从而达到编辑修改标定变量数据的目的,这样大大方便了对于修正曲线和 MAP图类型标定变量的编辑。

  在这里我们是采用 Visual C++完成标定页面的设计以及与下位机的通信。该标定系统除了具有对 ECU 的标定功能外,还引入了实时监测功能,从而可以很快得到标定操作的返回信息。如图所示,监测界面主要完成各种监测量数据的实时接收和显示功能。测量得到的数据以数字和图形两种方式显示出来,数据可以存储。历史数据可以从文件中读出来,进行离线分析。标定界面则是完成标定变量数据的显示、编辑修改以及上传下载功能。根据变量的不同类型,变量数据分别以参量、二维、三维的形式表示。

图 1 标定系统实现图

  3.2 底层ECU 部分

  而底层 ECU 部分,标定系统在这里采用的是Freescale 公司的MC9S12DP256,这是一款16 位CPU 及0.25 微米、高速、高性能5.0V FLASH 存储器技术的中档芯片。它具有25MHz的主频、256K 字节的FLASH 存储器、16 通道的8 位A/D 转换器以及多达5 个的高速CAN 控制器。其较高的性能价格比使其非常适合用于一些中高档汽车电子系列相关产品。同时其较简单的背景开发模式(BDM)使得开发成本进一步降低,也使得现场开发与系统升级变得更加方便。

  需要标定的变量称为标定参数,标定定义也就是修改驻扎在ECU 内存中的变量的内容。根据标定参数所在不同地址空间( RAM、FLASH 或EEPROM) , 这里也就有了不同的标定方法。RAM EEPROM 标定的速度较块,但RAM 和EEPROM 空间有限,所需的标定参数的数目也就受到了限制,而FLASH 空间较大,但标定的速度相对较慢。这里考虑选择芯片的实际情况,选择了FLASH 标定的方法。当标定参数需要存放在FLASH 中时, 在ECU 上电初始化后, 程序首先将标定参数的初始值复制到RAM 中, 在标定软件中该段用来存放标定参数的RAM 称为Calibration RAM。标定过程中, 标定软件修改Calibration RAM 中的参数值。标定全部结束后, 再将该段RAM 中的内容复制回FLASH 中。

4 软件设计

  标定系统的软件设计主要分为二个部分:CAN Driver 和CCP Driver,而这二个部分都是基于μC/OS-II 这种实时操作系统上运行。由于ECU 这里采用飞思卡尔的MC9S12DP256,因此可以直接应用芯片CAN 模块提供的接口,发送CAN 数据。CCP Driver 是标定系统的核心部分,它主要是通过调用CAN Driver 实现与上位机标定软件的通信,从而进行对ECU的在线标定。

  4.1 CAN Driver

  在这里我们采用的是μC/OS-II 这种实时操作系统,但在标定过程中,我们处理的数据量很大,通信速度也很快,CAN 接收到一条消息就产生一次中断,中断服务子程序,每次中断都要引起一次任务调度。CPU 大量的时间花在任务切换上,若CPU 还需处理其他事件,则可能出现接收缓冲寄存器接收溢出的错误,造成数据丢失。因此,在这里采用一种基于环形缓冲区的方式来实现CAN Driver。整个CAN Driver 由中断处理程序和底层驱动模块组成。中断处理程序在每次CAN 控制器完成收发时,唤醒驱动程序,进行下一步工作,设备相关程序通过对CAN 控制器寄存器的读写,完成对CAN 端口的配置和状态检测等工作,同时为设备无关软件和用户程序提供接口。而底层驱动模块则主要任务是结合收发消息缓冲区,为应用程序提供了接收和发送消息的接口函数。

  


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭