摘要:为战胜车载嵌入式设备难以会集收回进行软件晋级的缺点,提出了一种依据WiFi通讯的长途软件晋级办法。该办法对微操控器FLASH存储空间进行有用分配,规划IAP功用,运用WiFi通讯接口选用TFTP协议下载新软件到FLASH,完成嵌入式软件在线晋级。给出了晋级办法的具体规划和程序流程,晋级速度快,受环境影响小。该办法可运用于移动散布式嵌入式设备中。
导言
跟着对体系功用、功用要求的不断提高,或为了消除缺点,用户常常需求对嵌入式终端设备软件进行晋级。现在嵌入式终端软件晋级办法有专用工具烧写、在体系编程(ISP)和在运用编程(IAP)等。前两种办法需求专门的人员抵达现场、乃至拆开设备才干进行软件晋级。IAP办法可由开发人员依据实践运用进行灵敏规划,例如运用串口晋级、USB晋级等。
因为车载终端具有移动性、散布广泛、无法会集召回等特色,传统软件晋级计划显得束手无策。长途软件晋级计划能够为体系维护供给极大的便利,现在干流运用依据GPRS的IAP办法,但一般需求支交给运营商必定的费用。
依据某单位车辆办理体系的实践情况,本文规划出一种依据WiFi的长途软件晋级办法。具有简略、快捷、牢靠、本钱低一级长处。
1 体系原理
体系结构如图1所示。该单位有若干分部,每个分部独立统辖所属的车辆,每个车辆装载一套终端,用于记载车辆行进信息。当车辆外出履行任务及回来经过车场门口时,与车场门口的数据收集设备经过WiFi进行数据交互。各分部数据收集设备衔接至互联网与总部进行数据交互。
终端设备MCU选用STM32F107芯片,该芯片是意法半导体公司依据ARM Cortex—M3的32位嵌入式处理器,主频达72 MHz、90DMIPS。它具有256 KB闪存程序存储器、20KB的数据存储器及64 KB RAM。外围接口丰厚,价格仅与8位单片机适当,性价比极高。
WiFi模块选用RedPine公司的RS9110-N-11-02模块,该模块经过SPI接口与MCU通讯。RS9110-N11-02模块为IEEE 802.11b/g/n WLAN设备,集成MAC、基带处理器、幅值可调RF收发器、频率参阅和天线等。硬件模块嵌入了网络协议栈、WLAN协议和装备功用,构成一个完好的802.11n WLAN解决计划。
体系软件晋级作业进程如下:
①经过以太网把编译好的新软件传输到各分部数据收集设备上;
②车辆外出或回来时途经车场门口数据收集设备WiFi网络覆盖区域;
③车辆终端设备经过WiFi网络衔接到数据收集设备,如需求则进行新软件下载;
④车辆终端履行新软件。
2 软件晋级办法及流程
STM32F107内部FLASH存储器地址以0x08000000开端,共256K。为了在线晋级,将该FLASH存储器如图2所示划分为BOOT区、运用程序区、暂时区、参数存储区。
其间BOOT区用于寄存体系自举程序,运用程序区用于寄存用户运用软件,暂时区用于暂时存储正在下载的软件,参数存储区用于存储程序晋级时所运用的标志及其他体系参数。
软件晋级标志界说如下:正常形式、晋级形式及复制形式。正常形式标志着无需进行软件晋级,直接跳转到运用程序区履行;晋级形式标志着终端需求下载新的运用程序;复制形式用于在软件下载完毕后复制到运用程序区,将该部分功用独立出来是为了在软件下载完毕后复制到运用程序区时呈现忽然断电等毛病时进行毛病康复。
终端处于WiFi信号规模时,接入WiFi网络与数据收集设备进行信息交互。如图3所示,软件晋级流程如下:
①接收到版别号查询指令,回复本终端软件版别号给数据收集设备;
②若版别号为最新,流程完毕,否则会接收到数据收集设备发来的软件晋级指令;
③修正参数存储区存储的软件晋级标志为晋级形式,复位MCU;
④MCU从BOOT区发动;
⑤读取软件晋级标志,如是“正常形式”,判别运用程序区是否有运用程序,若有则跳转到运用程序区履行,若无则置软件晋级标志为“晋级形式”,复位MCU,跳转到过程④;
⑥若软件晋级标志是“复制形式”,复制暂时区软件到运用程序区,修正软件晋级标志为正常形式,复位MCU,跳转到过程④;
⑦若软件晋级标志是“晋级形式”,则扫描并接入WiFi网络;
⑧运用TFTP协议下载新软件到暂时区;
⑨校验新软件是否正确,若不正确则跳转到过程⑧,若正确则履行下一步;
⑩修正软件晋级标志为“复制形式”,复位MCU,跳转到过程④。
3 软件完成
晋级软件主要由版别号比较、软件复位、软件下载及校验、复制软件到运用程序区、软件跳转到运用程序区几部分组成。
(1)版别号比较
每个版别的软件需求有不同的版别号,依照必定规矩递加,如数据收集设备上有2.0版别软件比本终端1.0版别高,则据此进行软件晋级。
(2)软件复位
依据本规划,软件需求复位进入BOOT区进行一系列操作。经过使STM32内部中止运用和复位操控寄存器中的SYSRESETREQ方位1,即可完成软件复位。
(3)软件下载及校验
选用TFTP协议下载运用软件到MCU暂时区。TFTP用于发送较小的文件时完成简略,牢靠性高。其基层运用UDP协议,发送运用UDP 69端口,每次发送的最大分组为512字节,发送两边选用超时重传机制。数据传输形式可选为octet形式(二进制形式)。
TFTP支撑6种类型的数据包,分别是:
①Read rcquest(RRQ);
②Write rcquest(WRQ);
③Data(DATA);
④Acknowledgment(ACK);