浅谈汽车电子自编程的几种实现方式(汽车电子编程技术)

中国论文网 发表于2022-11-19 16:29:16 归属于工业论文 本文已影响599 我要投稿 手机版

       中国论文网为大家解读本文的相关内容:             

   论文 关键词:汽车 电子  nec电子 bootloader 自编程

  论文摘要: 自编程技术在汽车电子领域软件开发中发挥着非常重要的作用,它可以实现ecu的在线诊断,在线标定,代码升级等功能,解决了传统方案依赖于诊断软件,标定软件,专用烧写器的缺点。建立了基于nec电子的32位车身专用微控制器的软件平台,编写了can协议驱动,通讯协议驱动,flash操作驱动代码,分析了bootloader区和应用程序区的中断向量处理机制,列举了常见的几种bootloader设计方法,结合实际平台进行了一系列试验,提出了一些可扩展型、创新型的方案并 总结 了其优缺点,这对于自主开发bootloader是非常有实际意义的。

  引 言

  随着国家对汽车产业的大力扶持,国内汽车电子领域自主研发实力不断增强,越来越多的汽车将由传统的机械化实现电子化。首先实现电子化的是仪表领域,目前市场上面的电子化仪表几乎涵盖了所有低端、中段、高端领域,价格从一百元到几千元的都有。其次,车载娱乐也得到了很大的 发展 ,车载音像,车载dvd也都得到了普及。车身领域也得到了一定的发展,车门,车窗,车锁rke/pke,雨括,bcm,eps,导航等,国内也有一些 企业 投入了研发,很多产品已经上了整车。安全领域,如airbag;动力总成领域,例如发动机控制,国内只有很少一些公司研发成功,大部分技术还是被国外公司垄断。2009年, 中国 汽车产量已经突破一千万辆,取代美国成为全球第一的汽车生产大国,因此,加强国内汽车电子自主研发是一件非常紧迫的事情。制约我国汽车电子自主研发的因素很多,其中最主要的一点是汽车电子本身是一个技术含量很高的高端行业,对产品稳定性、安全性要求很高,而我国起步比较晚,技术势必被国外垄断,而打破这个技术壁垒的唯一途径就是自主研发。

  bootloader是应用程序运行前跑的一段程序,它可以烧写在flash rom里面,也可以通过上位机下载到ram运行,成熟的bootloader可以实现ecu的在线诊断,在线标定,代码升级等功能,而客户不需要购买专门的诊断软件,标定软件,专用烧写器,不仅节省了研发成本,而且使用方便,实现功能多。nec电子是全球知名的汽车电子芯片供应商,可以为用户提供成熟的解决方案跟技术支持,选用nec电子的32位车身专用芯片v850/fx3完全可以实现车身ecu的bootloader功能和应用程序的开发。

  1 系统平台

  本系统采用nec电子的32位车身专用芯片v850/fx3系列,v850是nec电子的32位微处理器核,5级流水线控制,内部32个32位寄存器,乘法/除法指令,数据空间支持最大4gb线性寻址能力,代码空间支持64m线性寻址能力,内部1mb的code flash,60kb的ram空间,32kb的data flash用作eeprom模拟。

  2 常见bootloader设计方案

  目前常用的bootloader方案有一下四种:

  2.1 方案一

  如下图:

   shape \* mergeformat

  图1 方案一存储空间图

  fig.1 memory address space of solution one

  原理如下:

  boot 工程:

  address: 0x0000~0x3fff,interrupt vector和自编程库函数,can, 上位机通讯协议;

  application 工程:

  address: 0x0000~0x3fff, interrupt vector和自编程库函数,can, 上位机;应用程序函数;

  dummy vector:用于中转中断处理函数。因为如果有中断产生,程序指针只会跳到boot vector,应用程序中断处理函数无法响应中断。dummy vector处理流程如下:

shape \* mergeformat

              图2 方案一中断处理机制

  fig.2 the interrupt handle mechanism of solution one

  缺点:

  1. bootloader烧写在rom里面,每次启动的时候需要执行,进行相应判断不是由应用程序开始。

  2. 每次进入中断程序时需要进行跳转,所以延长进入中断时间,且boot里面需要声明所有中断向量,boot里面的中断处理函数中要调用application中的中断处理函数比较复杂,因为如果application代码更新后,应用程序函数入口地址是变化的。

  3. dummy interrupt vector 需要在更新bootloader时就写入,并且在更新应用程序的同时也更新这部分区域。

  优点:

  1. 程序设计相对容易。

  2.2 方案二

  如下图:

      shape \* mergeformat

            图3 方案二存储空间图

  fig.3 memory address space of solution two


  缺点:

  1. 更新程序之前需要进行bootswap功能切换应用程序和bootloader程序,更新完毕后再次需要进行切换.

  2. 应用程序设计时比较复杂,需要加入bootloader代码,且需要空出一段空白区域用于与bootloader区域进行bootswap交换.

  优点:

  1. ecu从应用程序开始跑,中断程序处理简单。bootswap的目的就是为了处理中断机制。

 shape \* mergeformat

            图4 方案二存储空间图

  fig.4 memory address space of solution two


  2.3 方案三

  如下图:

 shape \* mergeformat

              图5 方案三存储空间图

  fig.5 memory address space of solution three

  缺点:

  1.芯片空间的使用效率比较低,需要有一半的rom空间用做交换区.

  优点:

  1. bootloader和应用程序整合在一个工程文件中,不需要专门的boot区,程序设计简单,从应用程序开始跑。

  2. 由于旧程序仍然存在,应用更加安全.

  2.4 方案四

  如下图:

          shape \* mergeformat


  fig.6 memory address space of solution four

  首先在ram某段区间强行定义为rom属性,否则无法执行代码,因为ram默认存放变量。然后将bootloader工程代码拷入到指定ram区间,指针跳转到ram开始执行与上位机建立通讯。调用底层flash操作库函数更新应用程序。

  缺点:程序设计比较复杂,需要跳转到ram运行。在ram中更新flash的时候需要开辟rom空间作为启动备份区,否则发生断电或者意外,程序将无法恢复。

  优点:节省空间。程序从应用程序启动。

  3 结论

  中断矢量的拷贝是bootloader的难点,以上的一些方法无论是方案一的中转函数还是方案二的boot区交换,都是对中断矢量的拷贝,使得应用程序中断处理函数能够响应中断。对四种bootloader方案进行了比较和优缺点分析,具体应用应该根据用户的实际情况和客户的要求来设计。

  实践中,要综合考虑到上位机的成本,rom空间,启动时间,中断响应时间等因素。

  4 结束语

  汽车 电子 已成为当前it产业的一大亮点,呈现出巨大的市场需求。bootloader的设计作为软件设计的一部分,有着非常重要的功能,可以实现ecu的在线诊断,在线标定,代码升级等功能。根据客户的实际需求,开发出成熟的软件是我们的目标。

  [ 参考 文献 ]

  [1] nec electronics. v850es/fx3 user manual,2006

  [2] nec electronics. self-pragramming note,2007

  [3] nec electronics. data flash convert user manual,2007

  [4] vector. flash kernel programming on a hc12 micro controller version 0.01,2009

  [5] vector. can ape user manual,2009

  中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。

返回工业论文列表
展开剩余(