基于LoRa技术的STM32处理器无线程序升级系统设计(学习)

这篇具有很好参考价值的文章主要介绍了基于LoRa技术的STM32处理器无线程序升级系统设计(学习)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于LoRa技术的STM32处理器无线程序升级系统设计

设计并实现了一款基于LoRa技术对STM32F767系列处理器通过无线方式升级程序的系统。该系统的硬件结构包括:无线发送端、无线接收端及待升级程序的STM32F767处理器3个部分。

发送端将程序的数据文件通过LoRa技术传递给接收端,接收端通过串口将程序传递给STM32F767处理器,STM32处理器对收到的程序数据进行校验并最终烧录到芯片自身Flash的指定区域,进而完成程序升级的功能。实验结果表明,系统可以稳定运行,可以通过无线的方式实现对处理器中固化的程序进行升级。

随着计算机技术的发展,电子产品越来越多的融入人们生产生活的各个方面。电子产品中大部分都包含单片机、嵌入式处理器等可编程的芯片,芯片内固化的程序可能会由于某些原因需要进行改进、升级。

而有些电子产品外壳不方便打开或者安装在高压、高空等比较危险的场合,这样就不便于通过传统的下载器等方式进行程序升级,因而通过无线的方式升级处理器的程序就显得尤为重要,并且可以提供极大的便利,节省人力物力。

鉴于上述原因并结合LoRa技术功耗低、传输距离远及可靠性高等优势,研究了基于Lora技术无线升级STM32F767处理器程序的方法,该方法可以对采用其它无线通信手段升级处理器程序的应用场景提供有益的参考。

系统整体方案设计

系统的硬件结构包括:无线发送端、无线接收端及待升级程序处理器端3个部分。待升级的程序以bin文件形式存储在发送端的SD卡中,发送端通过按键来控制是否启动升级过程。发送端处理器在上电或复位后如果3s内检测到按下WK-UP键,则开始通过LoRa模块与接收端握手通信,如果握手成功则通过LoRa模块传送SD卡中待升级的bin文件,在传送过程中加入分帧机制、CRC校验机制、错误重传机制及接收超时退出机制。

接收端处理器对收到的bin文件进行文件长度和文件内容校验,确认无误后将该文件存入其内部RAM中,然后控制PA3输出低电平,PA2产生一个负脉冲,这样就复位了待升级程序端的处理器,然后通过串口一次性将bin文件的长度信息、文件内容以及CRC32校验值都发送给待升级程序端。

待升级程序端处理器复位后进入Boot Loader程序,在程序中判断PD11的电平,如果为高电平则直接跳转到用户程序的首地址,开始执行用户程序;如果为低电平则通过串口接收bin文件并存入内部RAM中,接收完毕后,如果bin文件的长度及CRC32值都正确则将其烧录到内部Flash的用户程序位置,烧录完毕后跳转到用户程序的首地址,开始执行新的用户程序。

嵌入式处理器及SD卡接口:采用意法半导体的STM32F767IGT6处理器作为发送端和待升级程序端的主控芯片,该芯片为基于Cortex-M7内核的ARM处理器,工作频率可达216MHz,内置1M字节程序存储器,512k字节SRAM及多种外设和通信接口。

接收端处理器的功能是通过LoRa模块接收程序文件,并通过串口发送给待升级端的处理器。因而接收端相当于待升级程序端处理器的板载编辑器,考虑便于将该部分功能集成到待升级程序处理器的电路板上,选用芯片尺寸及成本更具有优势的Cortex-M3内核的ARM处理器STM32F103VET6作为接收端的处理器。

待升级的程序以bin文件形式存储在SD卡中,发送端利用内置的SDIO接口来驱动SD卡,SD卡接口部分的电路原理如图。

LoRa模块采用安信可科技公司的LoRa扩频无线通信模块Ra-02.该模块是基于射频收发芯片SX1278设计开发的。

无线发送端。首先在PC机端利用集成开发环境MDK5编写待升级的程序,注意设置中断向量表的偏移地址及用户程序的首地址为0x08020000,然后利用MDK5软件内嵌的bin文件转换工具fromslf.exe生成bin文件,将该bin文件拷贝到SD卡中。

发送端的STM32F767IT6处理器在上电或复位后检测WK-UP键,如果3s内该键被按下,则读取SD卡中的bin文件,并对文件内容进行CRC232校验,然后将校验结果和文件长度封装成“首帧”并通过Lora模块发送给接收端。
发送和接收端握手成功后,开始分帧传送bin文件的内容,每一帧都加入帧序和CRC16校验值。

帧序逐帧加1(首帧帧序为0),在传送过程中加入错误重传机制及接收超时退出机制,任何一帧如果重传超过10次货10s内没有收到接收端的回应则中断发生,并给出错误提示,如果所有帧都发送完毕,则给出bin文件发送成功提示。

无线接收端,接收端的STM32F103VET6处理器上电后就一直查询LoRa模块是否接收到数据,如果接收到首帧则进行CRC16校验,校验通过则回复给发送端“ok”,同时提取文件长度和文件内容的CRC32校验值,并进入数据帧接收流程,否则回复给发送端“error”。

在接收过程中如果收到正确的数据帧,则按照帧序存入内容RAM,如果10s内没有收到数据或连续10次收到的数据CRC16校验都不通过,则退出整个bin文件的接收,重新等待发送端下次发送新的bin文件。

如果所有数据帧都接收完毕,则对接收到的数据进行CRC32校验,如果校验值和首帧的CRC32校验值一致,则配置PA3输出低电平,PA2产生一个负脉冲复位待升级程序的STM32处理器,然后通过串口一次性将bin文件的长度信息、文件内容以及CRC32值都发送给待升级程序的处理器,并重新配置PA2及PA3为高电平,然后等待STM32的串口返回值,如果收到“ok”代表文件传送成功,如果收到“error”表示文件传送失败,无论收到ok还是error都要重新等待发送端下次发送新的bin文件。

待升级程序处理器端的处理器在上电或复位后首先从Flash的0x08000000处运行Boot Loader程序,在该程序中判断PD11的电平,如果为高电平则直接跳转到用户程序的首地址0x08020000,开始执行用户程序;如果为低电平则通过串口接收待升级bin文件的内容、文件长度及CRC32值,接收完毕后对文件内容进行CRC32校验,如果校验得;到的值与串口接收到的CRC32值一致,则将文件烧录到内部Flash的用户程序位置(首地址:0x08020000),烧录完毕后跳转到用户程序的首地址,开始执行新的用户程序。

系统测试
利用MDK5编写待升级的程序,然后转换成bin文件,存入SD卡中,测试无线程序升级的效果。因为内部RAM容量有限,目前支持的bin文件最大为61K字节,将bin文件拆分成64字节每帧,由于bin文件大小可能不是64的整数倍,尾帧可能不足64字节,尾帧长度按照实际大小处理。文章来源地址https://www.toymoban.com/news/detail-519458.html

到了这里,关于基于LoRa技术的STM32处理器无线程序升级系统设计(学习)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 沁恒ch32V208处理器开发(四)串口通信

    资源配置 CH32V208 系列,是基于 RISC-V 指令架构设计的 32 位 RISC 内核 MCU,根据封装的不同,可用的USART串口资源如下表所示: 且USART具有如下主要特征: (1)全双工或半双工的同步或异步通信 (2) 支持分数波特率发生器,最高 9Mbps (3)可编程数据长度、停止位长度 (4)支

    2024年02月13日
    浏览(43)
  • 沁恒ch32V208处理器开发(三)GPIO控制

    GPIO功能概述 CH32V2x 微控制器的GPIO 口可以配置成多种输入或输出模式,内置可关闭的上拉或下拉电阻,可以配置成推挽或开漏功能。GPIO 口还可以复用成其他功能。端口的每个引脚都可以配置成以下的多种模式之一: 内部结构图如下: 可以看出,IO 口内部可分为输入驱动模块

    2024年02月13日
    浏览(39)
  • 魔百盒M101_晶晨S905L处理器_XR8189无线_鸿蒙开机动画_专用安卓线刷rom固件包

    魔百盒M101_晶晨S905L处理器_XR8189无线_鸿蒙开机动画_专用安卓线刷rom固件包(内有短接点及主板图) 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件,运行速度提升,多出大量

    2024年02月07日
    浏览(66)
  • 基于mips指令集的处理器设计与实现

    1.mips指令集格式 2.mips寄存器特点 1.ALU模块 2.General_Register模块(通用寄存器) 3.instruction_cache模块(指令cache) 4.program_counter模块(程序计数器) 5.control模块(控制译码) MIPS是(Microcomputer without interlocked pipeline stages)的缩写,含义是无互锁流水级微处理器。MIPS 是最早的,最成功的RISC处

    2024年02月06日
    浏览(45)
  • 基于山景BP10128音频处理器高通滤波器算法设计

    + hezkz17进数字音频答疑 山景BP10128音频处理器是一款高性能的数字信号处理器,专门用于音频信号的处理和增强。它采用先进的数字信号处理技术和算法,能够对音频信号进行实时处理,并且具有高效、稳定、可靠等特点。 该处理器具有以下主要功能: 均衡器:支持低音、中

    2024年02月09日
    浏览(47)
  • 【计组实验】基于Verilog的多周期非流水线MIPS处理器设计

    设计多周期非流水线MIPS处理器,包括: 完成多周期MIPS处理器的Verilog代码; 在Vivado软件上进行仿真; 编写MIPS代码验证MIPS处理器; 相关代码及资源的下载地址如下: 本实验的Vivado工程文件和实验文档:Multi-Cycle MIPS Processor.zip(272KB) QtSpim 9.1.23和Vivado 2019.2的安装包:QtSpim Viv

    2024年02月11日
    浏览(47)
  • 玩客云装新版青龙面板方法首发,2023年亲测,所有的arm32位处理器终于可以装新版青龙了

    先把旧版的青龙面板容器和镜像都删了,没装过的不用删 ssh连接玩客云或其他arm32位机器,先下载这个文件 重启docker  分别一行一行输入,回车 等待5-10分钟后 装青龙最新版

    2024年02月12日
    浏览(168)
  • RISC-V处理器的设计与实现(三)—— 上板验证(基于野火征途Pro开发板)

    目录 文章传送门 一、添加串口 二、上板验证 三、总结与思考 RISC-V处理器的设计与实现(一)—— 基本指令集_Patarw_Li的博客-CSDN博客 RISC-V处理器的设计与实现(二)—— CPU框架设计_Patarw_Li的博客-CSDN博客 RISC-V处理器的设计与实现(三)—— 上板验证_Patarw_Li的博客-CSDN博客

    2024年02月11日
    浏览(55)
  • 芯片验证板卡设计原理图:446-基于VU440T的多核处理器多输入芯片验证板卡

    一、板卡概述         基于XCVU440-FLGA2892的多核处理器多输入芯片验证板卡为实现网络交换芯片的验证,包括四个FMC接口、DDR、GPIO等,北京太速科技芯片验证板卡用于完成甲方的芯片验证任务,多任务功能验证。 Figure 1.1 验证板卡框图 二、技术指标   1)FPGA 外接4 路FMC-HPC;

    2024年02月11日
    浏览(48)
  • 基于STOMP协议的WebSocket消息代理和相关的安全握手处理器以及消息拦截器

    这段代码是一个Spring配置类 WsChatConfig ,基于STOMP协议的WebSocket消息代理和相关的安全握手处理器以及消息拦截器。这个类通过实现 WebSocketMessageBrokerConfigurer 接口来定义WebSocket通信的路由、安全握手以及消息拦截的逻辑。 核心方法详解 configureMessageBroker(MessageBrokerRegistry confi

    2024年04月26日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包