何 涛
(常州轻工职业技术学院,常州 213000)
WiFi在应用编程技术的控制系统维护
何 涛
(常州轻工职业技术学院,常州 213000)
将低成本的WiFi通信模块与控制系统中微控制单元的在应用编程技术结合,可以实现无线系统维护,解决了传统控制系统维护时需要连接电缆的缺点,尤其适用于难于拆装的控制系统。
WiFi;MCU;IAP;STM32F103;ESP8266
当前MCU广泛应用于各种控制系统中,MCU固件的更新也成为了控制系统维护的一个重要项目,但固件更新一般需要电缆连接。因此,维护控制系统往往需要将整个电路板拆下,或到现场连接电缆后操作,但很多实际应用中,控制系统往往难以拆装。本文提供了一种无线MCU固件更新方式,能让控制系统的维护变得更加方便灵活。
很多MCU提供多种编程方式,最普遍的是电缆连接特定编程器更新固件;在系统编程(ISP)方式是芯片厂商在MCU中写入特定的程序,用户可使用串行接口对系统进行维护,省去了编程器;在应用编程(IAP)方式则提供了用户程序直接读写内部存储区域的功能。
ISP编程方式虽然省去了编程器,但厂家在实现时往往使用串行接口,无法避免连接电缆;而IAP则可以让用户自行设计程序来配合外围无线模块通信,实现无线编程。
无线模块有很多类型,如ZigBee、WiFi、Bluetooth等,考虑使用WiFi能有更好的应用扩展,ESP8266模块成本较低,这里选择WiFi作为无线更新MCU的外围通信模块。
2.1 硬件电路
这里使用STM32F103C8T6作为控制系统的MCU,无线模块选用ESP8266。无线模块接入MCU的电路如图1所示。
图1 电路原理图
WiFi模块的接入只使用了MCU的三个I/O口,占用的资源比较少。PA3和PA2是MCU的串口接口;PA4用于关断ESP8266,有利于降低系统功耗。
2.2 存储空间
为了能利用IAP技术对MCU进行程序更新,需要对MCU中的存储空间进行合理的规划。这里把STM32F103C8T6中的存储空间设计成如下所示的结构:
BootLoader0x080x000x320x00用户应用程序用户数据0x080000000x080028000x080032000x0800F0000x08010000
MCU中存储空间地址从0x0800 0000开始,共有64K,地址空间到0x0800 FFFF结束。
这里将引导程序BootLoader放在开始位置,系统上电启动时,引导程序会判断是否需要更新维护。如果需要则调用ESP8266模块进行维护通信;否则尝试读取用户应用程序地址并跳转到该地址运行,系统进入正常工作模式。
在0x0800 2800的位置存放用户应用程序的首地址,该地址占用4字节,该位置同时也作为用户应用程序可用的标志。系统更新维护时,在更新用户应用程序之前会先清除此处保存的地址,而在更新完成并校验成功后,再重新写入最新的用户应用程序入口地址。如果引导程序启动时没能在此处获得有效地址,则系统自动进入维护模式。
用户应用程序的开始地址设为0x0800 3200,用户可以根据需要调整此地址,每次通过IAP更新用户应用程序后,要把开始地址写入0x0800 2800的位置。
0x0800 F000开始的位置,通常可以存放一些系统运行的参数等数据,用户将一些系统配置参数放在此处,可保证系统掉电后不会丢失。
2.3 通信协议
WiFi模块在工作时,通常有两种模式:一种是作为无线热点(AP)存在;另一种是作为station存在。这里采用AP模式,这样在进行系统维护时,控制系统本身就作为AP热点,维护者可以使用带WiFi的设备直接接入控制系统进行维护,无需配置额外的网络设备。
系统进行无线维护时,需要维护软件和MCU无线通信,这里设计了一个简单通信协议,基本命令有5个:
① 读取命令,由上位机发出指令,MCU返回需要读取的数据;
②写入命令,由上位机发出指令,MCU再接收数据并写入内部存储器,返回应答;
③ 更新启动地址命令,由上位机发出,MCU收到新地址后,更新0x0800 2800中存放的用户应用程序入口地址,返回应答;
④ 加载命令,由上位机发出,MCU收到指令后,根据指令跳转到指令指定位置运行;
⑤ 查询命令,由上位机发出指令,MCU返回当前引导程序的版本号。
2.4 维护软件
上位机可以是带有WiFi连接的PC机,也可以是手机等带有WiFi的手持设备,由于通信协议是基于存储空间读写设计的,所以维护软件除了有更新应用程序的功能,同时也有更新用户数据的功能,这里用Java设计了一款维护软件,如图2所示。
图2 维护软件
与现有控制系统的维护形式相比,无线方式让控制系统的部署更加灵活。在后续的开发维护中,可进一步加强无线通信的功能,目前的维护只能支持程序更新、参数更新,以后可以将系统运行状态的捕捉纳入无线维护的支持范围,使控制系统的维护更加灵活、方便。
[1] 范兴隆.ESP8266在智能家居监控系统中的应用[J].单片机与嵌入式系统应用,2016,16(9).
[2] ST.使用STM32F10xxx的USART实现在应用中编程,2008.
[3] ST.STM32F10xxx闪存编程,2008.
[4] 颜秋男,胡毅.STM32F103VB的SD卡在应用编程设计[J].单片机与嵌入式系统应用,2012,12(2).
何涛,主要研究方向为物联网应用技术。
Control System Maintenance of WiFi In-application Programming Technology
He Tao
(Changzhou Vocational Institute of Light Industry,Changzhou 213000,China)
Using the low-cost WiFi module and the in-application programming technology of the microcontroller unit,the control system can be maintained in the wireless environment.It solves the trouble that the control system should be connected with the cable when it is maintained.Especially it is suitable for the control system which is difficult to be disassembled.
WiFi;MCU;IAP;STM32F103;ESP8266
TP273
A
士然
2016-11-14)