APP下载

面向电动车车载监控终端的嵌入式软件远程升级系统研究与设计

2018-05-11徐洋郑继敏

汽车零部件 2018年2期
关键词:服务端断线加密算法

徐洋,郑继敏

(重庆邮电大学自动化学院,重庆 400065)

0 引言

车载终端的嵌入式软件部分,由于其灵活性较大,往往是最容易出错的地方,因此在车载终端的使用过程中,经常会发现系统中存在一些可以修复的软件问题。另外,即使终端产品在使用过程中不存在软件上的错误,但用户提出了新的软件需求,在这些情况下都需要对终端软件程序进行升级。由于车辆流动性大且随机分布在不同区域,当要给这些安装在车辆上的车载终端进行程序升级时,通常要派出大量技术支持人员赶赴现场对终端进行代码更新,这会极大地影响车载终端程序升级的及时性,可能会造成不可预计的损失[1]。同时,也给汽车生产商增加了大量的开支成本,给企业收益带来影响。为了解决车载终端执行文件升级的不及时、成本较高等问题,作者设计了一套针对电动车车载终端的远程升级系统。该系统在GPRS和因特网的支持下,从远程服务器上下载最新的程序文件来替换旧的程序文件。其优势在于利用网络传输技术,而无须赶赴现场对车载终端进行升级。

1 远程升级基本原理

在微处理器中,程序存储器的编程方法通常有两种:通过串口或JTAG等接口进行编程的在系统编程(In System Programming,ISP)模式、在应用程序控制下的在应用编程(In Application Programming,IAP)模式。ISP模式由于其调试的方便性得到众多厂家的支持。IAP模式是应用Flash程序存储器的一种编程模式,该模式将Flash存储区分为两部分:一部分用于存放引导加载程序,即BootLoader程序;另一部分用于存放用户应用程序,即APP程序[2]。APP程序通过GPRS或其他无线传输技术远程传输到微处理器的外围存储设备中。BootLoader程序即引导程序,当处理器上电或复位后首先运行引导程序。BootLoader程序检测终端是否需要升级,如果不需要升级程序,则直接跳转运行原来的APP程序;如果需要升级,BootLoader程序首先通过Flash存储器的擦除、读、写机制对APP程序区进行擦除并将要升级的程序从外围存储设备中写入到APP程序区,然后跳转执行新的APP程序。

2 系统整体设计

系统结构如图1所示,由远程服务器和基于STM32微控制器的车载终端组成。当车载终端需要升级时,服务器通过GPRS网络将数据远程传输到终端,终端将收到的数据写入到终端外围存储设备中,终端重新上电后将存储设备中升级文件拷贝到STM32内部Flash,实现车载终端自动跳转升级功能。

图1 系统结构图

3 远程升级系统软件设计

3.1 升级文件传输的数据格式

为了达到准确升级的目的,首先要对升级代码文件进行组包,给每组数据包加入包序号、起始标志、结束标志、校验位。并且要保证数据包的长度不大于256个字节以适应GPRS通信方式对数据包长度的要求[3],避免出现频繁掉线和发送不出去的情况。如果数据包和校验码字段中出现了和起始结束标志位相同的数据,则要进行转义处理。校验码采用异或校验,从升级数据包开始,同后一字节异或,直到校验码前一个字节。具体数据包格式如表1所示。

表1 数据包格式

3.2 服务器端软件设计

服务器端程序流程图如图2所示:服务器端启动套接字监听连接,等待车载终端主动连接;车载终端连接服务端成功后,服务端首先下发升级指令,若收到终端升级准备就绪的应答,则服务端将要下发的升级文件按照表1所示的格式进行分组打包,通过GPRS网络将数据包传输到车载终端,直到整个升级文件发送完为止。

图2 服务端流程图

3.3 车载终端程序设计

将BootLoader引导程序和APP程序分别存放在STM32 Flash的不同地址范围,低地址存放BootLoader引导程序,紧跟其后的是APP程序[4]。车载终端控制芯片是STM32F105RBT6,Flash大小为128 kB,APP和BootLoader程序在Flash中存储位置如图3所示。设计的BootLoader程序和APP程序功能独立,两个程序模块互不干扰。相对于其他设计中所采用的通过标志位置位来实现两个程序的相互跳转来说,软件设计更加简洁、功能更稳定。

图3 STM32 Flash存储区划分

3.3.1 BootLoader程序设计

BootLoader引导程序流程图如图4所示,终端上电后,首先运行BootLoader程序,检测TF卡中是否有待升级的文件,如果有则将TF卡中升级文件复制到Flash中APP地址处替换掉原来的APP程序,然后再跳转执行新的APP程序。

图4 BootLoader引导程序流程图

3.3.2 接收升级文件程序设计

APP程序除了执行车载终端设备功能外,还负责接收服务器端下发的升级文件,并将升级文件写入到TF卡中,因此需要在APP程序中设计代码接收程序。大多数设计将接收到的升级文件直接存放在控制器Flash中,这样不仅要求控制芯片Flash容量要足够大,也增加了软件设计的难度。采用TF卡等外围存储设备接收升级文件不仅可以解决控制芯片Flash容量不足的问题,还可使软件设计更加容易。代码接收程序流程图如图5所示。

图5 升级代码接收程序流程图

4 远程升级可靠性设计

在升级文件远程传输过程中,会面临被截取、篡改等安全问题,通过加密技术能为数据安全提供很好的解决方法[5]。同时在升级过程中必须要保证升级数据的正确性和完整性,文中还采用断线续传等措施,保证了升级的可靠性和高效性。

4.1 安全传输设计

在数据帧通过GPRS传输的过程中,可能会受到各种干扰,如数据被截断、篡改等。针对上述可能出现的情况,作者对升级包进行了加密处理,实现了数据的安全传输。目前数据加密算法有很多种,主要分为对称加密与非对称加密两种。对称加密算法加密和解密用的密钥相同,常用的对称加密算法有DES(Data Encryption Standard)、AES(Advanced Encryption Standard)等。非对称加密算法加密和解密的秘钥是不同的,比如RSA(Rivest-Shamir-Adleman)算法。在资源有限、计算能力较差的嵌入式控制系统中,需要选取一种易于实现、占用资源少的加密算法[6-7]。文中采用TEA(Tiny Encryption Algorithm)加密算法,该算法是一种非常简单高效的加密算法,以加密解密速度快、实现简单著称。相对于其他设计中采用DES或AES等算法来对数据进行加密,文中采用的轻量级TEA加密算法不仅能有效地保证数据传输的安全,而且占用资源少,更加适合用于电动车车载终端嵌入式软件平台。

4.2 断线续传设计

在系统升级时,终端从服务器下载升级文件需要一段时间。终端下载升级文件的过程中,很可能会出现由于网络传输质量差、地理因素而导致车载终端断线问题。如果出现终端断线就重新再传,而不保存已传部分并等终端下次上线时续传,这必然会影响执行文件升级的效率,也会额外增加GPRS数据流量的通信费用。为了解决上述问题,在服务端程序中增加了一个具有断线续发的软件功能模块。如果车载终端成功接收到服务端下发的数据帧,则需要向服务器发送应答帧,服务器收到应答帧后下发下一帧数据。如果车载终端回复接收失败,则服务器重发该数据帧。若到达一定的次数服务端仍没有收到应答,则认为车载终端已掉线。这时就需要在服务端程序中保存车载终端的最近一次通信状态,为车载终端控制器下次上线续发提供所需信息。该软件功能模块流程图如图6所示。

图6 断线续传流程图

5 远程升级系统测试

车载终端在进行远程升级时,首先通过上位机登录到服务器,将本地升级文件上传到服务器,如图7所示。车载终端上电运行,主动连接服务器,如图8所示。当服务端和终端连接成功后,若服务端收到终端请求升级指令,则系统开始升级任务。文中对终端进行了50次升级实验,分别在文件传输到一定长度时人为将车载终端和服务器连接中断,分别测试出使用断线续传功能和未使用断线续传功能时整个升级过程需要花费的时间。最终计算出使用断线续传功能时系统平均升级时间为5.41 min,不使用该功能时需要7.67 min。实验结果表明:文中设计的具有断线续传功能的升级系统不但可以完成升级任务,而且可以提高升级效率以及减少GPRS数据流量的消耗。

图7 登录到远程服务器

图8 车载终端上电连接服务器

6 结束语

详细介绍了面向电动车车载终端远程升级系统的软件设计与实现。首先介绍了升级系统的整体架构及升级文件传输的数据格式,然后重点介绍服务端及车载终端IAP软件的设计与实现,最后对升级系统的可靠性设计进行介绍。在设计过程中采用应答机制、断线续传、TEA加密解密等技术实现了车载终端嵌入式软件的远程在线升级功能,解决了车载终端升级困难不经济等问题,节约了升级和维护的成本。最后通过大量测试证明:此系统不仅有较高的成功率而且升级效率有了较大的改善。该远程升级技术也可用于其他控制系统,具有广泛的应用前景。

参考文献:

[1]张金锋.车载终端执行文件远程升级系统的设计与研究[D].南京:南京理工大学,2012.

[2]丁鹏飞,法林.STM32F205VB在远程系统升级中的应用[J].自动化仪表,2014(5):80-83.

DING P F,FA L.Application of STM32F205VB in Remote System Upgrade[J].Process Automation Instrumentation,2014(5):80-83.

[3]吴瑞娜,张建奇,梁喜军.基于STM32的GPRS远程在线升级系统设计与实现[J].自动化技术与应用,2015,34(12):34-37.

WU R N,ZHANG J Q,LIANG X J.Design and Implementation of GPRS Remote Online Upgrade System Based on STM32[J].Techniques of Automation and Application,2015,34(12):34-37.

[4]YOU N,ZHOU W,ZHANG J L,et al.Vehicle Terminal Remote Upgrade Based on GPRS[J].Applied Mechanics & Materials,2013,278/279/280:1928-1932.

[5]李歌.FPGA系统远程升级安全机制的研究[D].西安:西安电子科技大学,2014.

[6]谢林栩.基于TEA加密算法在网络传输中保护文件数据安全的应用[J].广西师范学院学报(自然科学版),2010,27(2):76-80.

XIE L X.The Application of TEA Encryption Algorithm to Protecting Data Security in the Network File Transfer[J].Journal of Guangxi Teachers Education University(Natural Science Edition),2010,27(2):76-80.

[7]杨钏钏,王加加,侯长博.基于STM32的加密录音笔设计[J].电子科技,2014,27(6):58-61.

YANG C C,WANG J J,HOU C B.Design of Encrypted Recorder Based on STM32[J].Electronic Science and Technology,2014,27(6):58-61.

猜你喜欢

服务端断线加密算法
断线的珍珠
加密文档排序中保序加密算法的最优化选取
风莺图诗
归来吧!精灵(连载八)
多人联机对战游戏的设计与实现
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析
断线的风筝
教育云平台的敏感信息保护技术研究
一种改进的加密算法在空调群控系统中的研究与实现