摘要
在嵌入式应用中,微控制器作为逻辑控制和数值计算的核心,在软件和硬件的支持下完成产品功能。产品硬件是通常不变的,它的更新频率非常低。产品的软件操作产品硬件来完成逻辑功能,它可以通过软件更新来增强产品功能和修复功能缺陷,它的更新频率相对于硬件而言高的多。
软件升级常用的方式有在线编程方式(ICP)和在应用编程(IAP),在线编程需要单独将MCU 插入编程器,而在实际的嵌入式应用中,MCU已经嵌入产品硬件,单独拆除MCU是非常困难的,因此通常采用在在线编程的方式,经过MCU的外部通信接口进行软件升级。
本文针对汽车车身网络系统的研究,设计一种基于CAN总线的在线升级系统,实现对汽车各种电控单元(ECU)进行在线升级。本文通过在STM8的ECU中实现了基于CAN总线通信的在线升级代码bootloader,通过IAP编程的字节编程实现对应用程序代码数据的更新。在实现在线升级底层代码过程中,将升级代码bootloader存放在用户启动代码区域(UBC)中,防止意外的升级代码破坏,通过固定应用程序的中断向量表位置,并修改位于UBC空间的原始中断向量表的入口地址来解决更新后应用程序中断的使用。
通过对FLASH的IAP编程和中断向量的修改实现了STM8单片机的在线更新系统,本系统对STM8嵌入产品的软件升级提供了完整的支持。
【关键字】ECU 在线升级系统STM8 IAP CAN
目录
前言 (1)
第一章在线升级简介 (2)
第二章系统总体设计 (4)
第一节软件总体设计 (4)
第二节在线升级过程 (7)
第三节下载协议 (10)
第四节下载程序数据解析 (13)
第三章基于STM8的在线升级系统 (15)
第一节在线升级入口 (15)
第二节升级流程控制 (16)
第三节下载协议支持 (18)
第四节FLASH编程接口 (19)
第五节CAN通信 (21)
第六节中断向量表搬移 (22)
第四章系统实现及测试 (25)
第一节编译器设置 (25)
第二节Bootloader项目实现 (26)
第三节应用程序测试项目 (33)
第五节在线升级测试 (36)
结论.................................................................................................................... 错误!未定义书签。致谢.................................................................................................................... 错误!未定义书签。参考文献................................................................................................................ 错误!未定义书签。附录 .
...................................................................................................................... 错误!未定义书签。
前言
随着电子技术、计算机技术和通信技术的迅猛发展,嵌入式系统已经广泛应用于工业、通信、信息家电及汽车电子等领域。但是面对新技术的不断涌现和对系统功能、性能以及规模要求的不断提高,开发者必须能够针对客户的需求及时对系统进行升级和维护,以延长系统的使用周期,改善系统性能,增强系统适应性。
传统的嵌入式系统升级通常需要维护人员到达设备现场,开箱重写或者更换FLASH存储部件,当设备数目庞大并且分布范围广泛时,这种升级维护方式的工作量非常大,而且耗费的时间长、成本高。特别是在汽车电控产品中,由于汽车的封闭性,拆卸这些电控设备进行升级是一件非常麻烦的事,因此需要设计一种快捷方便的在线升级方法和系统,便于汽车各种电控单元的软件更新与维护。
本文在此背景下,提出了基于CAN总线的在线升级系统设计方法,利用CAN总线高等级的分布实时控制、报文的优先权、设置灵活等特点,只要终端接入CAN网络就可以实现远程数据的传输;为了实现对升级数据的可靠性和安全性要求,采用了应答机制和安全验证技术;通过对嵌入式芯片内部FLASH存储器的存储空间进行划分和升级文件传输格式进行定义,在通过IAP技术对系统软件进行在线升级,从而解决了数量庞大并且不适合开箱升级设备的在线升级或维护问题。
第一章在线升级简介
随着科技技术的不断进步,人们的生活水平日益提高。与此同时,人们对物质与精神生活的要求也越来越高。而汽车作为人类的代步工具也随着随着人类对物质的追求和第三次工业革命的浪潮发生了巨大的变化,传统的汽车已经不能满足人类、环境、能源的需求。特别是现在城市化的加快,越来越多的汽车出现在我们身边,同时越来越多的交通事故使得汽车对人们的生存带来威胁。在这种背景下各种新能源新技术尤其是计算机技术在汽车上的应用也应运而生。
在科技飞速发展的今天,哪个汽车拥有越先进的电子技术,那么就拥有了更高的性能。要是汽车有优异的性能,必须与用户形成互动的关系,利用用户的反馈信息对产品不断完善。另外,产品长时间使用后,软件程序设计上的缺陷也就慢慢浮出水面,这就要求对软件系统程序进行升级。
软件升级的方法包括现场升级和在线升级。现场升级需要操作人员到设备现场,将微控制器拆除下来放入单独的编程器,然后烧写升级程序。如果对软件进行现场升级,那么不但浪费大量的人力、财力,更重要的是浪费了宝贵的时间。在线升级通过MCU提供的外部通信接口(比如UART/SPI/CAN等),采用在应用编程(IAP, In Application Programming)的方式更新应用程序代码。这种方式特别适用于已经嵌入产品的微控制器升级,在线升级系统为嵌入式应用的软件更新提供了一个方便、可靠、高效的途径。
汽车电子软件在升级过程中可能遇到以下问题:
第一、改装升级可增强性能输出,之所以原车出厂不如此设计,是因为国际顶级汽车生产厂商均为国际跨国企业,生产产品均销售至世界各地使用。因每个国家汽油品质、温度、大气压力、湿度、引擎形式上的差异使得软件设定上须符合不同的条件来使用,故在设定上保留很多的空间可供改装.
第二、改装升系统的性能,不会对行车电脑造成损伤。那是由于改装升级只是对系统中的程序芯片的重新改写,只是将系统控制计算的更精准,及加速芯片的运算速度,只会提高系统
的运行的效率,因此,对整个电脑不会有任何伤害,另外,改装升级的系统仅仅是在特定的芯片上进行升级和调校,没有对系统中任何的其他相关部件及芯片进行任何改动,所以,不会对行
车电脑有任何伤害.
第三、改装升级采用车辆型号量身订做的方式,其拥有专业改装升级设备,可将原车程序读下后传送至国外程序生产厂商总部,总部会根据您的车况将改装程序传回安装,故不影响您
原车功能设定上的改变,此方法为改装,而不是去欺骗SENSOR给错误信息,所以原厂诊断计算机不会有无法消除的故障码出现,相应的安全防盗系统也会保留.
在线代码运行器
第四、同类车型改装升级ECU程序是每个车型不只有一个。以BORA1.8为例,目前为止,已经发现此车型的六种电脑的版本,电脑ECU的产地的不同是出现这个问题的主要原因,车辆生产厂商的行车电脑OEM采购和安装来自各个不同的代理生产厂商的生产地点;改装升级程序,会根据车辆电脑上的标号来进行准确的程序改装与升级,这样的改装方法非常精准,能够最大限度的发挥升级系统的效果!
第五、在遇到以下种情况时需作软件升级与更新:
A、当爱车做了结构上的改装时,需要新的软件来匹配。
B、生产厂家发布了新的软件时,升级更新以提高车的整体性能。
C、当你的居住环境发生变化时,通过软件的改装来保持车的最佳性能的输出。
D、原有的软件遭到病毒攻击时,及时的更新杀毒以保证行车的安全。
因此,针对汽车电控单元在线升级的要求,设计一种基于汽车车身网络的在线升级系统,实现汽车电控单元软件的快速、方便的程序下载和升级。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。