原创 stm32的网络升级

2019-3-28 15:14 2186 6 3 分类: MCU/ 嵌入式 文集: STM32
         
一般的基于网络应用中,基本是用网络芯片 和MCU 的组合。       
        网络芯片现在流行的趋势 可以用做简单的MCU 使用,都会开放出几个IO口,并设置一下,上手很容易。缺点是有的应用 还是需要MCU的,并不能完全替代。譬如说在
对时序要求严格的应用中。
         MCU 的升级  ,BOOTLOAD 现在也很普遍,不论是HEX  还是 BIN .  在现实中应用中,发现一个产品出厂后,再去升级,需要一定的往返费用。让现场的人升级,技术
门槛也不低。不见得每个人都是电子行业的。
        网络模块+ MCU 的组合完美的解决这一切。   
        网络模块 用AIR202 , MCU 用STM32  . STM32的芯片资料好找,网上铺天盖地,价格也很便宜。    
        AIR202 可以空中升级自身的程序。  
 STM32  也可以通过AIR202 来升级。升级的步骤如下:
         上电后,  AIR202 通过串口2  询问 MCU的企业ID 和版本号       {“ID":"?"}
  格式是JSON 格式。    每10秒发送一次,  一共发送4次,  如果没有回复,则LED 报警处理,并连接ONENET ,把错误上报。
        MCU 如果接收到,则回复 {”CompanyID":"1234","Version":"01"}
        air202 接收到回复,则GET 服务器, 下载文件,判断企业号和版本号 是否符合要求, 如果不符合要求,通知MCU 不升级
  如果符合要求, 通知MCU    {”CompanyID":"1234","Version":"02","Upgrade":"1"}  ,MCU  开始准备升级。
       然后AIR202 开始拉服务器上的BIN文件, 每次拉1K或者2K 字节, 通过串口发送给MCU,   data = "{\"FileBlockCount\":\""..blockCount.."\","..data.."}"
MCU 接收后,烧写一个BLOCK .  STM32 的FLASH有大容量和中小容量 之分,中小容量一个BLOCK 是1K , 因此我每次拉下来1K ,写入FLASH 中。
如果写完,就把Block +1,  串口发给AIR,                          { "FileBlockCount ":"xx"}   . 如果校验的不对,   回复原来的BLOCK值,要求AIR重新下载。
        AIR接收到后,  根据Block值,再次拉下BIN文件,循环往复 ,一直把数据下载完。
       最后AIR发送  {"Upgrade":"0"}  , MCU 进入APP 程序。
        STM32的iap程序  在原子网站 就可以得到, 稍微一改就可以。
         所有的技术都是现成的,组合起来花了点时间。
         以后要是产品需要升级,只需要把程序丢到网站就可以了。
       
   


     


 

作者: esad0, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1039027.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

给作者打赏,鼓励TA抓紧创作!

赞赏支持
点赞 6
赞赏0

文章评论2条评论)

登录后参与讨论

curton 2019-4-23 15:41

好资源 学习了

ihb_sina 2019-3-28 18:05

感谢大神分享
相关推荐阅读
esad0 2021-07-09 15:46
传说中的嘉立创紫和TMF8801测距模块
这个色彩鲜艳的PCB 就是刚推出的嘉立创紫, 我感觉有点偏黑。    激光测距传感器 TMF8801的测试板。TMF8801 的资料还需要给老外签订保密合同才可以...
esad0 2021-04-19 15:38
AIR724 一拖8 LORA 系统
         AIR724通过LORA模块  和其他的8个模块进行通讯。  从而实现1拖8的效果。  &n...
esad0 2020-10-13 13:41
stm32f407移植cJSON 归纳
测试很顺利,主要感谢以下三位前行者的无私开源。参考下列三位大神文章汇总:在STM32F407上简单移植Cjson  https://blog.csdn.net/qq_4176464...
esad0 2020-05-14 13:58
关于读写ic卡的程序注释
         IC卡,RFID卡,M1卡。E:\eDiary\2020\4\PIC18F97J60_SPI.cE:\eDiary\202...
esad0 2020-02-10 19:32
NTP 不好用
[2020-02-10 19:29:09.704]: [I]-[testNtp.printTime] 2012/06/01,11:17:12[2020-02-10 19:29:10.701]: [I]...
我要评论
2
6
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /4 下一条