在线编程技术在车身控制系统中的应用
发布时间:2008/5/27 0:00:00 访问次数:796
    
    
    金浩 吴晔 张本宏
    合肥工业大学
    
    摘 要:随着嵌入式技术的发展,在线编程技术得到了广泛使用,本文针对汽车车身控制系统难以在线升级的问题,提出将基于控制器局域网总线的在线编程技术应用到车身控制系统中。详细分析了系统的体系结构,对系统软件体系进行了分层,并划分每一层实现的功能。最后,讨论如何对电子控制单元节点的软件进行设计,解决了软件设计中的关键问题。
    
    关键词:车身控制系统、电子控制单元、在线编程、中断向量表
    
    1.引言
    随着flash存储器件的普遍使用,在线编程iap(in application programming)的下载方式得到广泛的推广与应用。flash在线编程技术是指ecu的flash存储器具有电可擦除、可写入的特点,可以实现mcu代码的在线更新。传统的在线编程应用系统采用pc机并行口或串行口实现数据通信,需要专用的硬件设备支持,开发成本较高,且编程操作不方便。
    
    汽车车身控制系统的控制对象比较多而且分布于整个车体,系统应用的电子控制单元ecu(electronic control unit)节点安装位置分散,如前节点和仪表节点在驾驶台部位,后节点在车尾部位,左、右门节点则在左、右门部位等。车身控制系统采用的是分布式控制方式,但基于分布式系统的编程应用工具比较少,难以实现系统在线编程应用和代码升级。
    
    控制器局域网can(controller area network)总线属于现场总线范畴,是一种有效支持分布式控制和实时控制的串行通讯网络,目前已经在汽车电子应用系统中得到了广泛的应用。将can总线在线编程技术应用到汽车车身控制系统中,完成ecu节点的代码下载功能,既可以实现控制系统的在线编程应用与升级,又能充分利用现场总线的应用特点。
    
    2.系统分析与设计
    2.1系统整体设计分析
    车身控制系统由若干ecu节点组成,每个节点采用freescale处理器mc68hc908gz系列单片机作为mcu,能够支持flash在线应用编程。pc机通过usbcan接口卡接入can总线网络,当系统处于在线编程状态时,pc机通过can总线网络可以方便的与ecu节点通信,车身控制系统软、硬件设计无需做任何改动,就能够利用已有的硬件应用系统平台实现代码下载、系统在应用升级。如图1所示在线编程系统包括三部分:pc机节点、can总线通信网络和ecu节点。
    
    
    
    图1 在线编程系统结构框图
    
    在线编程软件体系分为三层结构:控制层、通信层和实现层,在线编程功能通过软件设计实现。最高层为控制层,运行在上位机pc计算机中,主要负责代码生成和ecu节点在线编程的启停;中间层为通信层,运行在can总线设备上,实现can总线链路层和部分应用层功能,如报文发送、接收及滤波;底层为实现层,运行在ecu节点,实现对嵌入式节点的编程操作,具体结构见图2。通信层处理的数据有三种:控制命令、代码数据和反馈信息,其中控制命令和代码数据由控制层向实现层传递,反馈信息则是由实现层向控制层传递,所有数据传输遵循系统定制的can总线应用层协议,该协议在分布式控制系统中can总线协议应用层的基础上,重新划分报文标志符空间,并定义相应的含义和可执行操作。本文主要探讨系统的具体实现,总线协议的扩展定义不作详细介绍。
    
    
    
    图2 系统软件体系结构示意图
    
    2.2pc机控制层软件的设计
    整个控制系统中,控制层软件位于pc机节点,通过与实现层软件通信来控制编程操作的启停和代码的总线数据传输,不直接参与对ecu节点的控制功能操作。
    
    控制层软件的功能主要包括两部分:首先是生成下载到flash中的最终代码数据,pc机软件不参与flash编程,但必须为ecu节点提供编程所需要的信息,因此,pc机软件对生成的二进制代码进行分析,获取flash编程的必要信息,如
    
    
    金浩 吴晔 张本宏
    合肥工业大学
    
    摘 要:随着嵌入式技术的发展,在线编程技术得到了广泛使用,本文针对汽车车身控制系统难以在线升级的问题,提出将基于控制器局域网总线的在线编程技术应用到车身控制系统中。详细分析了系统的体系结构,对系统软件体系进行了分层,并划分每一层实现的功能。最后,讨论如何对电子控制单元节点的软件进行设计,解决了软件设计中的关键问题。
    
    关键词:车身控制系统、电子控制单元、在线编程、中断向量表
    
    1.引言
    随着flash存储器件的普遍使用,在线编程iap(in application programming)的下载方式得到广泛的推广与应用。flash在线编程技术是指ecu的flash存储器具有电可擦除、可写入的特点,可以实现mcu代码的在线更新。传统的在线编程应用系统采用pc机并行口或串行口实现数据通信,需要专用的硬件设备支持,开发成本较高,且编程操作不方便。
    
    汽车车身控制系统的控制对象比较多而且分布于整个车体,系统应用的电子控制单元ecu(electronic control unit)节点安装位置分散,如前节点和仪表节点在驾驶台部位,后节点在车尾部位,左、右门节点则在左、右门部位等。车身控制系统采用的是分布式控制方式,但基于分布式系统的编程应用工具比较少,难以实现系统在线编程应用和代码升级。
    
    控制器局域网can(controller area network)总线属于现场总线范畴,是一种有效支持分布式控制和实时控制的串行通讯网络,目前已经在汽车电子应用系统中得到了广泛的应用。将can总线在线编程技术应用到汽车车身控制系统中,完成ecu节点的代码下载功能,既可以实现控制系统的在线编程应用与升级,又能充分利用现场总线的应用特点。
    
    2.系统分析与设计
    2.1系统整体设计分析
    车身控制系统由若干ecu节点组成,每个节点采用freescale处理器mc68hc908gz系列单片机作为mcu,能够支持flash在线应用编程。pc机通过usbcan接口卡接入can总线网络,当系统处于在线编程状态时,pc机通过can总线网络可以方便的与ecu节点通信,车身控制系统软、硬件设计无需做任何改动,就能够利用已有的硬件应用系统平台实现代码下载、系统在应用升级。如图1所示在线编程系统包括三部分:pc机节点、can总线通信网络和ecu节点。
    
    
    
    图1 在线编程系统结构框图
    
    在线编程软件体系分为三层结构:控制层、通信层和实现层,在线编程功能通过软件设计实现。最高层为控制层,运行在上位机pc计算机中,主要负责代码生成和ecu节点在线编程的启停;中间层为通信层,运行在can总线设备上,实现can总线链路层和部分应用层功能,如报文发送、接收及滤波;底层为实现层,运行在ecu节点,实现对嵌入式节点的编程操作,具体结构见图2。通信层处理的数据有三种:控制命令、代码数据和反馈信息,其中控制命令和代码数据由控制层向实现层传递,反馈信息则是由实现层向控制层传递,所有数据传输遵循系统定制的can总线应用层协议,该协议在分布式控制系统中can总线协议应用层的基础上,重新划分报文标志符空间,并定义相应的含义和可执行操作。本文主要探讨系统的具体实现,总线协议的扩展定义不作详细介绍。
    
    
    
    图2 系统软件体系结构示意图
    
    2.2pc机控制层软件的设计
    整个控制系统中,控制层软件位于pc机节点,通过与实现层软件通信来控制编程操作的启停和代码的总线数据传输,不直接参与对ecu节点的控制功能操作。
    
    控制层软件的功能主要包括两部分:首先是生成下载到flash中的最终代码数据,pc机软件不参与flash编程,但必须为ecu节点提供编程所需要的信息,因此,pc机软件对生成的二进制代码进行分析,获取flash编程的必要信息,如