杨华 王嘉举 于宗宝 陈家东
摘 要:现阶段我国基于WIFI的软件类型的辅助调试方案,可以让我国航空机载设备的无线升级和实际的调试过程变得更加的快速,这种基于运动控制产业当中較为常见的两类微型处理器,对于这样处理方式的程序进行引导和FLASH编程进行了全面的分析,深入的分析研究了利用串口实现对于FLASH代码技术方案和上机位的控制和升级软件,技术方面的升级可以让软件的升级不再知识简单的依赖有线传输和相关的变成,在保证航空机载设备在较为复杂的换成也能完成相关的嵌入式软件的升级。
关键词:嵌入式系统;软件无线升级技术;应用编程;Flash代码
1.航空机载嵌入式软件无线升级技术研究意义
目前在嵌入式机电控制系统中,数字信号控制器与微控制器等已得到了十分广泛的应用。这类系统在出厂交付后,需按照用户的具体要求来消除软件缺陷或完善其自身的设计功能,这就涉及到升级更新系统内部控制软件等相关问题。所以,寻找一种更加可靠、便捷的软件升级方法就显得很有必要了。
在嵌入式微处理器的编程方法中,有三种最为常见。第一种是在软件设计阶段进行使用,比如通过联合测试工作组协议的编程器来完成软件的编程与调试过程,显而易见的是,一般只在系统设计阶段才会使用这种方法。第二种是使用系统编程技术,简称ISP,在系统上电时按照特定硬件端口状态来选择程序下载方式,加载程序则由微处理器内置的BootLoader来负责引导,如此便可顺利完成软件的升级过程。比如TI公司TMS320系列DSC,它需要根据硬件管脚来选择多种程序引导方式才能完成软件更新过程,常见的有IIC、SPI、SCI和并行I/O口等。值得一提的是,这种方法需要人工地配置硬件端口,所以并不适用于用户端中。对于最后一种编程方法当中,对于正常运行程序的微处理器可以直接经过通信接口实现对于内部FLASH储存区完成相应的读写,这样实际的软件升级就可以直接完成。相比前两种编程方法,最后一种方法的优点是在系统的正常运作过程中,无需编程器,也不用对端口配置进行更改,也照样可以完成部分甚至全部软件程序的更新过程。对大部分用户端嵌入式系统的软件升级都十分适用,区别在于需开发独立的IAP引导程序,因为这种微处理器的IAP方式更加多样。
航空机载设备中的嵌入式系统在安装完成后,若需要进行拆卸或软硬件调试是特别麻烦的。而且为了避免设备间产生相互干扰的问题,通常都会采用有线电缆完成通信传输过程,再加上嵌入式系统与下位机软件都需要专门定制,本身就无法进行在线编程及调试,因此就严重阻碍了机载设备中微处理器软件升级与更新工作的开展。本文深入研究一种基于WiFi的航空机载设备的软件升级,专门构建出满足机载嵌入式系统的无线升级和调节系统,由于目前有许多各式各样的MCU/DSC串行口,而嵌入式系统在选用高速数据传输通道时已经基本不会考虑到串口,所以本文研究的目的是通过WiFi无线网将软件升级代码传输到MCU/DSC的串口,用IPA方式完成Flash编程环节,确保系统软件的升级与更新能够顺利进行。
2.基于WiFi的嵌入式软件升级平台
目前常见的无线通信技术主要有WiFi、蓝牙、紫蜂和分组无线服务等等。WiFi是一种由IEEE定义的工作频段为2.4GHz的无线连接技术,在安全可靠性、传输速度以及适用范围上,都要优于其他的无线通信技术。最关键的是,笔记本电脑、手机等智能设备终端之间的相互连接都可以通过WiFi来完成。此前最流行的是使用基于GPRS与通用射频模块的远程无线升级方式,但相比WiFi而言,它们的可拓展性、通用性都稍逊色一些。
2.1WiFi软件升级和辅助调试平台架构
如下图所展示的就是本次研究当中一种基于WIFI传输的记载嵌入式系统的无线升级和相关的辅助调试技术方案体系。
将WiFi控制器安装在机载嵌入式系统中,在路由器的作用下,就可以实现手机、便携式计算机与嵌入式系统板卡之间的无线互联。对于便携式计算机当中生产所需要的升级代码发送到所需要的WIFI控制器当中,设备在完成相关的数据存储之后传输到相应的程序的空间当中,设置传输标志位在传输过程当中的完成。为了让用户能在手机上实时监测下载后的程序是否达到预订功能,只需安装一个系统状态监控APP应用参数即可,此时手机就已经具备的设置、查询与主动回传参数等一系列功能。对于IAP方式只能下载软件程序,不能实现仿真调试这一问题,借助手机APP所提供的程序辅助调试功能就可以得到解决。
2.2基于USR-WIFI1232的无线通信平台
机载嵌入式设备以及机内监控设备的有线数据传输均具有较强的稳定性。在连接无线网络时,可通过升级代码来完成数据传输。在USR-WIFI1232模块下,网络和串口数据传输可以实现彼此间的相互转换。嵌入式系统通过USR-WIFI1232模块与上位机联网,就可以完成程序代码的无线WiFi传输。经过USR-WIFI1232模块将数据传输到串口后,数据会直接到达系统程序区。
USR-WIFI1232是一种以协议为主的WIFI嵌入式模块,拥有能耗较低,智能化程度较高等等有点,在USR当中拥有功率放大器和物理地址,频率芯片等等。嵌入式固体可以同时满足网络和WIFI的相关协议,模块可以直接完成协议的相互转换例如串口到WIFI的转化。在模块的运行过程中,有可能是使用STA模式,也有可能是点对点AP模式。在AP模式下,嵌入式系统可以当作热点来使用,手机等WiFi设备可以在没有额外配置网络设备的情况下,直接连接到嵌入式系统。而在STA模式下,嵌入式系统与手机、便携式计算机只要要进行数据共享,就必须在路由器下组网才能完成。嵌入式系统WiFi模块中的STA工作模式可参照图1。
2.3嵌入式系统WiFi透明传输配置
如图2所展示的是USR-WIFI1232模块的设计原理图。
系统上电后,路由器密码应通过手机Smartlink软件进行输入。当软件上显示"OK"时,就代表已连接成功。期间USR-WIFI1232的LINK灯D1会表现出快闪—慢闪—长亮的变化过程始终处在长亮状态的是READY灯D2。在进行配置时,要先长按RELOAD键S1,再拉低RELOAD信号。当便携式电脑可以搜索到USR-WIFI1232模块时就可以进行连接。随后将配置软件打开,直到将其MAC地址等相关信息查询出来为止。对微处理器的工作模式、网络协议、串口通信波特率以及WiFi模块的路由器地址、子网掩码、端口号、IP地址等进行逐一配置。将设置保存下来,重启模块,自此WiFi模块的透明传输配置就已经全部完成了。当系统再次上电时,串口数据传输只需借助WiFi模块就可以直接进行。
3典型MCU/DSC的IAP软件升级设计
3.1 IAP软件升级方法设计
一般来说,嵌入式MCU/DSC都会自带IAP接口。在IAP方式下,Flash存储区划分为程序区A和程序区B,分别用來存储BootLoader程序和应用程序。等待MCU通电或者完成相应的复位之后,需要重新运作BOOTLOAD才能实现对于应用程序的执行,这时候需要额外的设置,自身的作用就是充当引导程序并且写入到程序区域当中,BOOTLOAD检测升级的标志之后可以了解到用户的应用程序是否需要完成二次升级,如果需要升级就需要利用存储器当中的变成对于程序区域进行二次的编码,此时B区中就会出现需要更新的软件。待完成更新环境后,新的应用程序会在存储区B直接运行,这就是升级程序的整个流程;如果不需要升级的话,只需直接运行应用程序即可。通常来说,BootLoade至少要包含两种功能,其一是Flash编程,其二是通信协议。
3.1.1机信协议设过
在无线网络环境下,升级代码仅仅是上下位机通信协议传输的多种方式之一。用户可以自定义参数设置与查询等通信协议功能,且对应的校验方法也是比较完备的。此外,在通信协议当中增加一部分关于FLASH变成的相关效验码和代码,让其能够接收到上机位当中的相关控制命令。
3.1.2 Flash编对
通常情况下,大部分MCU/DSC都可以提供Flash编程指令,以确保对片内Flash擦写、编程、校验等过程的顺利进行。软件升级需经历两个步骤,第一步是通过通信协议接收完整的软件升级代码,第二步是直接调用编程指令来完成Flash编程过程。
由于MUC/DSC分为多种各不相同的系列型号,所以它们的IAP方式也是存在着较大差异的。目前是以ST公司生产的STM32系列MCU与TI公司研发的TMS320系列DSC最受业内人士喜爱。在本次课题的研究过程中,分别对以上两种微处理器的IAP升级方法进行了深入分析,且最终都得以实现。
3.2.IAP升级算法设计
TMS320F28系统自带256KB的尺寸,用户可以通过调用FLASH变成函数实现对于区域的单独擦拭和变成,如下图所示,在通电之后,启动过程执行第一步到第五步,如果要进行LAP的时候第四步就不再运行,而是跳转到代码启动出,此外TI系列DSC当中开发的CCS需要建立命令连接文件,CMD当中也规定了储存器的资源分配情况。
3.3IAP软件流程
在熟悉连接了FLASH代码生成和基本的启动方法上进行了相关的IAP算法设计,本次算法将嵌套应用在程序当中,软件正常工作的时候,F28335升级串口没有数据处于停滞状态,一旦接受了相关的信号数据,就开始调用上述的编程方法,进行相关的升级操作。
4.基于PC平台的上位机软件升级设计
4.1上位机升级软件的功能需求
在本文的技术方案中,上位机的在线升级、编辑和发送代码等一系列过程,都可以利用PC平台来完成,详情可参照图1。以下是上位机应用软件的几种常见功能:
(一)建立与USR-WIFI-232模块可靠的TCP/IP连接,是无线传输Flash目标代码的必要前提。
(二)利用Flash代码转换工具软件,可以直接得到嵌入式系统Flash编程的所需代码。
(三)搭配嵌入式系统IAP软件共同使用,可以实现添加校验码以境测传输误码、起始节点符号或终止节点符号的分段添加、对目标代码添加软件版本号、标记代码总量等一系列的复杂操作。
4.2升级软件流程
上位机应用软件需要构建相应的WIFI网络配置,数据软件监控过程等等基本软件,在软件升级开始之前需要通过嵌入式系统软件实现目标代码的转换,在正式开始征集之后需要检测相关的代码,将代码发送到相关的协议当中,将信息传输到下机位当中,传输过程当中发送一次数据,下机位都需要接受,并且完成相关的验证。,接受失败上位机可以重新发送本包数据,发送完成之后,需要再次检测是否出现缺包现象,在升级结束指令当中应包含对于整体代码的传输和验证。
5.结论
本次研究提出了一种基于无线通信网络的嵌入式软件在线升级的方法,构建了相应的PC端上机位软件升级平台,调式了相应的无线升级环境,并且探索了嵌入式系统IAP在变成的方法,针对研究了升级技术方案。这样的技术拜托了软件升级对于编程器具有在线传输的依赖,满足航空机载设备的发展以及实际需求。
作者简介:杨华,1982年10月,男,四川遂宁人,高级工程师,主要研究:飞控计算机。