论文部分内容阅读
摘 要:目前基于STM32处理器的设备基数大,且固件升级频繁,在某些ESD敏感的系统中,有线连接的程序下载方式造成的设备损伤越来越多。本项目提出一种基于蓝牙的STM32固件升级的解决方案,通过PC端的蓝牙与STM32进行数据传输,以达到对基于STM32处理器的设备进行无线固件升级的目的。这种方式只需要很少的系统资源就可以运行,给嵌入式产品的开发和维护带来很大的灵活性和便利性。它还具备了安全可靠的更新机制,能够保证同件的可靠更新,较大地提升了嵌入式软件吏新过程的可靠性。尤其能够有效地防止嵌入式系统同件更新失败后,系统无法启动的情况,能有效地降低嵌入式软件的开发和维护成本,将具有较高的应用价值。同时本项目通过远程下载程序的方式来减少频繁拆装机器可能引发的事故,该技术将被广泛应用于基于STM32处理器的设备的管理和固件升级等方面。
关键词:STM32;固件升级;蓝牙
1.STM32单片机概述
STM32 F4是ARM最新的嵌入式处理器Cortex M4,常用于控制和信号处理功能混合的数字控制。该控制器(MCU)提高了运行速度,增加了信号处理功能,同时增加了浮点运算单元(FPU)、自适应实时加速器、32位多重AHB总线矩阵和多通道DMA控制器、数字信号控制器(DSC)等多种功能。其集成度较高,功耗较低,内置最高1 MB Flash 192 kB SRAM,正常工作频率为168 MHz,因此得到了广泛的应用。对于STM32F4系列产品,其程序下载方式有ICP、ISP和IAP3种,而过去工程开发时常用ISP方式,即J-LINK或串口方式,但是这种有线下载方式对于程序更新非常不方便。因此,本文开发了在PC上位机直接通过蓝牙实现程序更新的方法。在分析STM32F4启动方式及程序下载的基础上,实现了STM32F4_ bootloader的下载程序。并针对该下载程序,提出了修改应用程序的方法,从而实现了应用程序的远程在线升级。
2.系统功能
2.1下位机IAP和APP的设计与实现
2.1.1下位机IAP的设计思路
IAP和APP这两个项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码(又称之为Bootloader程序)开始运行,它作如下操作:
1)检查是否需要对第二部分代码(称之为APP程序)进行更新
2)如果不需要更新则转到4)
3)执行更新操作
4)跳转到第二部分代码执行
STM32F429的APP程序不仅可以放到FLASH里面运行,也可以放到SRAM里面运行,本项目中制作了两个APP,一个用于FLASH运行,一个用于SRAM运行。
2.1.2 APP的设计
(1)主界面
主界面下显示了目前可实现的功能模块,分别为连接蓝牙、打开文件和发送文件三个模块,单击即可进行该模块模式下的功能选择操作。当手机APP选中蓝牙模式与STM32成功连接后,即可通过打开文件选择手机中想要发送给下位机的升级程序再通过发送文件发送到下位机,由下位机接收到文件并对文件进行识别和处理来对下位机软件进行升级。
(2)可执行文件
只要APP程序的FLASH和SRAM大小不超过的设置即可。不过MDK默认生成的文件是.hex文件,并不方便用作IAP更新,希望生成的文件是.bin文件,這样可以方便进行IAP升级。而生成.bin文件我们只需通过MDK keil5自带的格式转换工具fromelf.exe,来实现.axf文件到.bin文件的转换即可。
2.2 PC端GUI界面的实现与设计
(1)GUI界面操作
读取文件时,会显示文件读取状态,读取成功后,会显示文件名称和长度,同时,在发送文件的过程中,发送字节数也会实时更新,可以通过发送字节数和文件长度做一个简单的对比,从而判断文件是否发送完毕。
(2)PC端GUI(蓝牙串口软件)的操作流程如下:
1)蓝牙串口的端口号及其波特率、校验位、停止位、数据位的配置;
2)打开串口后,然后点击固件升级,下位机即进入等待升级状态;
3)打开BIN文件,发送文件即可成功升级,如果不需要升级,可以点击系统运行按钮,可再次进入APP运行状态。
2.3蓝牙通讯
(1)HC-05与上位机(笔记本电脑)配对使用:给模块上电,利用电脑自带蓝牙搜索连接,适合笔记本电脑与设备间的蓝牙串口通信,使用方法与串口一样。HC-05作为中间桥梁,以此实现上位机与STM32之间的通信。
(2)HC-05模块配置步骤:
①USB TO TTL模块接蓝牙模块,然后按下S1按键,上电,进去AT指令模式;
②打开串口助手XCOM 2.0,发送AT测试指令,模块响应OK,即表明模块已进去AT指令模式,正常工作;
③发送AT+ROLE=0,模块响应OK,即蓝牙模块角色设置为从角色;
④发送AT+UART=115200,0,0,模块响应OK,波特率成功设置为115200,校验位为NONE,停止位为1,数据位为8。
3.技术指标测试
3.1 BIN文件读取速度
读取47KB大小的BIN文件所用读取时间为:32s,则BIN文件读取速率大约为:1.47KB/s。
3.2 BIN文件发送速率
BIN文件的发送速率取决于蓝牙模块和单片机的波特率设置,本项目的波特率为115200。
3.3蓝牙模块有效传输距离
HC-05蓝牙模块理论上的最大传输距离为10米,但是在实际测试时,考虑到在室内,连接信号在5米处开始变的微弱,5米内能够保证信号的正常连接和数据发送。
4.结语
本项目在分析研究了市场上大量嵌入式平台的应用需求,和Bootloader的功能特点和实现原理的基础上,设汁与实现了基于蓝牙的无线远程进行STM32固件升级的解决方案。最后详细测试了本项目中下位机IAP和APP程序的功能、蓝牙模块的通信性能和上位机蓝牙助手的成效,结果证明完全达到了预期的设计目标。
参考文献:
[1]黄小松.分油机模拟控制面板智能化设计[D].辽宁:大连海事大学,2017.
[2]袁三男. 基于STM32F4控制器的程序远程下载的实现[N].上海电力学院学报,2013.
[3]许青青.一种轻量级Bootloader(LWBL)的设计与实现[D].上海:华东师范大学,2012.
[4] STMicroelectronics web site. STM32F42x and STM32F43x datasheets. Earthquack Eng [DB/CD].2014.
作者简介:
崔浩东,生于1997年7月,男,汉族,河南省,天津工业大学本科在读,电子信息工程方向。
关键词:STM32;固件升级;蓝牙
1.STM32单片机概述
STM32 F4是ARM最新的嵌入式处理器Cortex M4,常用于控制和信号处理功能混合的数字控制。该控制器(MCU)提高了运行速度,增加了信号处理功能,同时增加了浮点运算单元(FPU)、自适应实时加速器、32位多重AHB总线矩阵和多通道DMA控制器、数字信号控制器(DSC)等多种功能。其集成度较高,功耗较低,内置最高1 MB Flash 192 kB SRAM,正常工作频率为168 MHz,因此得到了广泛的应用。对于STM32F4系列产品,其程序下载方式有ICP、ISP和IAP3种,而过去工程开发时常用ISP方式,即J-LINK或串口方式,但是这种有线下载方式对于程序更新非常不方便。因此,本文开发了在PC上位机直接通过蓝牙实现程序更新的方法。在分析STM32F4启动方式及程序下载的基础上,实现了STM32F4_ bootloader的下载程序。并针对该下载程序,提出了修改应用程序的方法,从而实现了应用程序的远程在线升级。
2.系统功能
2.1下位机IAP和APP的设计与实现
2.1.1下位机IAP的设计思路
IAP和APP这两个项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码(又称之为Bootloader程序)开始运行,它作如下操作:
1)检查是否需要对第二部分代码(称之为APP程序)进行更新
2)如果不需要更新则转到4)
3)执行更新操作
4)跳转到第二部分代码执行
STM32F429的APP程序不仅可以放到FLASH里面运行,也可以放到SRAM里面运行,本项目中制作了两个APP,一个用于FLASH运行,一个用于SRAM运行。
2.1.2 APP的设计
(1)主界面
主界面下显示了目前可实现的功能模块,分别为连接蓝牙、打开文件和发送文件三个模块,单击即可进行该模块模式下的功能选择操作。当手机APP选中蓝牙模式与STM32成功连接后,即可通过打开文件选择手机中想要发送给下位机的升级程序再通过发送文件发送到下位机,由下位机接收到文件并对文件进行识别和处理来对下位机软件进行升级。
(2)可执行文件
只要APP程序的FLASH和SRAM大小不超过的设置即可。不过MDK默认生成的文件是.hex文件,并不方便用作IAP更新,希望生成的文件是.bin文件,這样可以方便进行IAP升级。而生成.bin文件我们只需通过MDK keil5自带的格式转换工具fromelf.exe,来实现.axf文件到.bin文件的转换即可。
2.2 PC端GUI界面的实现与设计
(1)GUI界面操作
读取文件时,会显示文件读取状态,读取成功后,会显示文件名称和长度,同时,在发送文件的过程中,发送字节数也会实时更新,可以通过发送字节数和文件长度做一个简单的对比,从而判断文件是否发送完毕。
(2)PC端GUI(蓝牙串口软件)的操作流程如下:
1)蓝牙串口的端口号及其波特率、校验位、停止位、数据位的配置;
2)打开串口后,然后点击固件升级,下位机即进入等待升级状态;
3)打开BIN文件,发送文件即可成功升级,如果不需要升级,可以点击系统运行按钮,可再次进入APP运行状态。
2.3蓝牙通讯
(1)HC-05与上位机(笔记本电脑)配对使用:给模块上电,利用电脑自带蓝牙搜索连接,适合笔记本电脑与设备间的蓝牙串口通信,使用方法与串口一样。HC-05作为中间桥梁,以此实现上位机与STM32之间的通信。
(2)HC-05模块配置步骤:
①USB TO TTL模块接蓝牙模块,然后按下S1按键,上电,进去AT指令模式;
②打开串口助手XCOM 2.0,发送AT测试指令,模块响应OK,即表明模块已进去AT指令模式,正常工作;
③发送AT+ROLE=0,模块响应OK,即蓝牙模块角色设置为从角色;
④发送AT+UART=115200,0,0,模块响应OK,波特率成功设置为115200,校验位为NONE,停止位为1,数据位为8。
3.技术指标测试
3.1 BIN文件读取速度
读取47KB大小的BIN文件所用读取时间为:32s,则BIN文件读取速率大约为:1.47KB/s。
3.2 BIN文件发送速率
BIN文件的发送速率取决于蓝牙模块和单片机的波特率设置,本项目的波特率为115200。
3.3蓝牙模块有效传输距离
HC-05蓝牙模块理论上的最大传输距离为10米,但是在实际测试时,考虑到在室内,连接信号在5米处开始变的微弱,5米内能够保证信号的正常连接和数据发送。
4.结语
本项目在分析研究了市场上大量嵌入式平台的应用需求,和Bootloader的功能特点和实现原理的基础上,设汁与实现了基于蓝牙的无线远程进行STM32固件升级的解决方案。最后详细测试了本项目中下位机IAP和APP程序的功能、蓝牙模块的通信性能和上位机蓝牙助手的成效,结果证明完全达到了预期的设计目标。
参考文献:
[1]黄小松.分油机模拟控制面板智能化设计[D].辽宁:大连海事大学,2017.
[2]袁三男. 基于STM32F4控制器的程序远程下载的实现[N].上海电力学院学报,2013.
[3]许青青.一种轻量级Bootloader(LWBL)的设计与实现[D].上海:华东师范大学,2012.
[4] STMicroelectronics web site. STM32F42x and STM32F43x datasheets. Earthquack Eng [DB/CD].2014.
作者简介:
崔浩东,生于1997年7月,男,汉族,河南省,天津工业大学本科在读,电子信息工程方向。