- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈汽车电子自编程Bootloader的几种实现的论文.doc
浅谈汽车电子自编程Bootloader的几种实现的论文
论文 关键词:汽车 电子 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时就写入,并且在更新
文档评论(0)