【经验】一种GPRS燃气表远程OTA升级的方法

2018-06-26 世强
单片机,MCU,GPRS 模块,A9500 单片机,MCU,GPRS 模块,A9500 单片机,MCU,GPRS 模块,A9500 单片机,MCU,GPRS 模块,A9500

燃气表安装在用户家中,使用寿命10年。如果固件出现问题,需要升级。将燃气表拆下,返厂升级,成本太高。笔者在一个GPRS燃气表项目中应用一种远程OTA升级的方法,解决上述问题。


GPRS燃气表项目远程OTA升级方案




在燃气表OTA升级方案中,主要有3部分主要内容。一是单片机要选择大Flash的,要分出两块大的存储区域用于存储应用程序1和应用程序2;二是燃气表在出厂时要烧写2个程序,分别是bootloader程序和默认的应用程序1,bootloader程序下载地址在最前面,最先被执行; 三是要有时钟模块和GPRS模块。时钟模块用于定时唤醒单片机启动GPRS通讯,GPRS模块与后台服务器通讯下载最新的应用程序。OTA升级的关键在于,如果正在执行应用程序1,那么升级包要下载到应用程序2的Flash区域中。如果正在执行应用程序2,那么升级包要下载到应用程序1的Flash区域中。避免下载中途失败造成系统瘫痪。


GPRS燃气表项目远程OTA升级

1、Flash分区

将单片机Flash分成编号为1—4的4块区域,1号区域为单片机的bootloader程序,上电后第一个被执行。2号区域用于存储燃气表一些参数,定义其中一个字节用于标识应该执行应用程序的位置。例如0x01执行应用程序1,0x02执行应用程序2。3号区域为应用程序1,4号区域为用户应用程序2。


例如GPRS燃气表的应用程序一般不会超过50K,选用128KFlash的单片机,1号区域分配8K,地址为0x8000000—0x8001FFF;2号区域分配20K,地址为0x8002000—0x8006FFF;3号区域分配50K,地址为0x8007000—0x80137FF;4号区域分配50K,地址为0x8013800—0x801FFFF。


2、 出厂程序烧写顺序和执行顺序

燃气表出厂程序烧写顺序为:单片机首先烧写bootloader程序,bootloader程序烧写起始地址为0x8000000,大小不能超过8K;再烧写应用程序1,应用程序1烧写起始地址为0x8007000,大小不能超过50K。


燃气表上电执行顺序为:燃气表上电首先执行起始地址为0x8000000的bootloader程序,bootloader程序从2号区域中读取“用于标识应该执行应用程序的位置”的字节,如果是0x01程序指针跳转到0x8007000执行应用程序1,如果是0x02程序指针跳转到0x8013800执行应用程序2,燃气表首次出厂时,标识字节读出默认为“0xFF”,bootloader程序判断如果是“0xFF”跳转到0x8007000执行应用程序1,并将标识字节写成 “0x01”。


3、OTA升级顺序为:

燃气表定时连接后台服务器,服务器查看是否有高版本的燃气表固件程序(BIN文件格式)。如果有服务器下发OTA升级请求指令,燃气表回复准备好。服务器将程序包分包采用一问一答的形式下发, 最后一包结束后,服务器下发OTA升级结束指令,燃气表收到结束指令后,重新启动,执行新版本的应用程序。


燃气表在OTA升级前,读取“用于标识应该执行应用程序的位置”的字节,如果是0x01,将升级包写在起始地址为0x8013800的4号Flash区域,并将标识字节写成 “0x02”;如果是0x02,将升级包写在起始地址为0x80070000的3号Flash区域,并将标识字节写成 “0x01”;每次写标识字节必须确保收到服务器下发OTA升级结束指令。


服务器每次升级燃气表交替将程序下载到Flash 3区和4区,重启后通过读取标识字节,执行最新升级的应用程序。这样保证即本次升级不成功,也会保持老版本程序运行。


GPRS燃气表项目远程OTA升级模块选型

在OTA升级这个项目中,最主要的功能模块是单片机和GPRS模块,对这两部分模块选型如下: 

1、单片机

在笔者参与的该项目中,对MCU主要是Flash大小、RTC、LCD驱动、UART和低功耗的要求,具体如下:

1) Flash:GPRS燃气表的应用程序一般不会超过50K, 2套应用程序加上bootloader和存储参数的区域,Flash的大小应在128(KB)~256(KB)。

2)支持UART接口,与物联网模块通讯;

3)支持RTC,定时连接后台服务器;

4)支持低功耗模式;燃气表电池供电要工作一年以上;

5) 支持LCD驱动,至少4*32段;


针对上述要求,笔者选择了SILICON LABS EFM32LG880F128-QFP100。经过对功能的比较确认,这款MCU可以很好的满足控制器对MCU的要求。


EFM32LG880F128-QFP100具体相关参数如下:

1)Flash 128 KB;
2)UART 2个;

3)支持RTC;

4)低功耗模式:0.4 µA @ 3 V 关断模式RTC运行 ;  0.95 µA @ 3 V 深度睡眠模式;

5)支持LCD驱动 8*32;

另外EFM32LG880F128-QFP100有很好的扩展性。EFM32LG880F256-QFP100的Flash是256K,如果2套应用程序比较大,可以考虑。


2、GPRS模块

对GPRS模块主要是高可靠性、小尺寸和低功耗的要求。笔者在设计中选择LONGSUNGA9500模块。A9500是基于高通 MDM9206的LTE CatM / CatNB1蜂窝模块,专为全球IOT和M2M市场而设计。 A9500是一款高性价比、有竞争力的模组产品。 产品具有以下的重要特点:

· 小尺寸的LCC封装:产品的尺寸仅为26.0×24.0×2.5mm,小尺寸的模组可减小最终产品的尺寸,提高产品集成度。

· 高可靠性

· 关机漏电流:50uA


A9500 LTE/NB-IOT模块可为燃气表OTA升级提供无线数据传输通道, 将燃气表的相关参数和状态数据上传到无线网络,到燃气公司实现云端存储和管理。利用龙尚的A9500,实现了燃气表的联网,将终端用户和燃气公司进行了有效链接。

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 1

本文由铮铮提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

评论

   |   

提交评论

全部评论(1

  • 用户50283199 Lv7. 资深专家 2020-09-26
    这个不错
没有更多评论了

相关推荐

【应用】芯科低功耗8位单片机助力于轨交通讯视频控制系统设计,睡眠电流低至50nA,唤醒时间小于2μs

轨交通讯视频控制系统中通常需要一款超低功耗的MCU作为主控,本文推荐Silicon Labs的8位单片机EFM8SB10F8G-A-QFN24作为主控方案,助力于轨交通讯视频控制系统的应用与设计。

应用方案    发布时间 : 2022-09-27

【应用】芯科科技高性能8位单片机EFM8BB31F32G用于音频放大器,集成多达四个12位DAC

本文介绍Silicon Labs 8位单片机EFM8BB31F16G-D-QFN24R用于音频放大器,优势:最高工作频率50MHz,稳定性好;集成一个12位ADC、四个具备同步和PWM功能的12位DAC;FLASH从16KB~64KB可选等。

应用方案    发布时间 : 2022-09-20

【应用】Gecko MCU EFM32用于健康可穿戴设备,拥有电池寿命长,处理能力强的优势

目前可穿戴设备技术日新月异,我们接触过的健康可穿戴设备如Fitbit、Misfit Wearables、Polaris、Garmin等。这些设备中很多都采用了Silicon Labs的MCU,如EFM32系列,因为其有电池寿命长,处理能力强等优势,能满足相关应用的需求。

应用方案    发布时间 : 2019-11-26

【经验】芯科科技单片机EFM32PG22的ADC采样如何使用LDMA传输大于2048个数据?

EFM32PG22使用LDMA传输ADC的采样数据,可以在MCU休眠下进行,从而降低MCU功耗,是比较好的应用方式。但是LDMA的计数器最多只能计数2048,限制了LDMA的一次性传输数据大小,本文介绍如何打破LDMA传输大小的限制。

设计经验    发布时间 : 2023-07-01

【经验】一招教你延长单片机的Flash擦写寿命

在单片机开发应用中,工程师经常会遇到需要在单片机内部Flash的某个区域保存和读取一些数据,而这些数据在应用中可能会经常变化,因而需要对Flash的数据经常更新。本文就以Silicon Labs的8位单片机EFM8SB10F8G为例,教大家如何延长单片机的Flash擦写寿命。

设计经验    发布时间 : 2018-04-06

EFM32PG22 Gecko MCU Family Data Sheet

型号- EFM32PG22C200F512IM32-CR,EFM32PG22,EFM32PG22C200F512IM32-C,EFM32PG22C200F64IM32-C,EFM32PG22C200F256IM40-C,EFM32PG22C200F128IM40-C,EFM32PG22C200F512IM40-C,EFM32PG22C200F256IM32-C,EFM32PG22C200F128IM32-C,EFM32PG22C200F64IM40-C

数据手册  -  SILICON LABS  - Rev. 1.3  - June, 2024 PDF 英文 下载

Silicon Labs(芯科科技) C8051F系列MCU的中文读写程序软件

描述- 本资料由压缩包的形式组成,包内是C8051F系列MCU的中文读写程序的软件。

型号- C8051F

开发环境(软件/固件)  -  SILICON LABS RAR 英文 下载

为了提高EFM32单片机AD采样的实时性并降低功耗,在RTC中断中打开AD,并设置MCU进入EM1模式下进行AD采样,但功耗并没有降低,是什么原因?

测试发现在RTC中断中,EFM32单片机并没有进入EM1模式,设置EM1模式无效;由于在RTC中断中,RTC定时事件一直存在,所以导致进入EM1模式失败。为了实现AD采样的实时性以及低功耗,可以在RTC中断中开启AD,并在退出RTC中断之后在主程序中通过判断AD采样的标志来设置MCU进入EM1睡眠模式,以此来降低功耗。

技术问答    发布时间 : 2016-10-25

数据手册  -  SILICON LABS  - Rev. 1.4  - 3/23 PDF 英文 下载

EFM32单片机与stm32单片机是pin对pin对换的嘛

EFM32系列单片机,是Silicon Labs提供的基于ARM-Cortex核、超低功耗MCU。关于管脚兼容情况,要视不同型号而定。具体可参考如下资料:https://www.sekorm.com/doc/62781.html 《【选型】Silicon Labs(芯科科技) EFM32 32位MCU选型指南》

技术问答    发布时间 : 2018-10-29

可做ST MCU备选方案的Silicon Labs(芯科)小蜜蜂单片机EFM8

Silicon Labs的EFM8BB1以及 EFM8BB2都是ST MCU的备选方案。其有集成度高、体积小、功耗低和优越的节电模式等特点,是成本敏感型的嵌入式系统和便携式设备等应用的理想选择。

新产品    发布时间 : 2018-06-02

32-bit MCU SDK 5.9.12.0 GA Gecko SDK Suite 2.7

型号- EFM32GG-DK3750,EFM32,EFM32GG11,EFM32WG-DK3850,EZR32,SLSTK3701A,EFM32LG-DK3650,EFM32HG,EFM32G-DK3550,SLSTK3400A

开发环境(软件/固件)  -  SILICON LABS  - September 21, 2023 PDF 英文 下载

8-Bit MCU SDK 4.2.0.0 GA 20Q4 8051 SDK

型号- EFMBB52,EFM8BB51,EFM8BB52,EFM8,EFM8BB1,EFM8SB1,EFM8BB2,EFM8SB2,EFM8BB3

开发环境(软件/固件)  -  SILICON LABS  - December, 2020 PDF 英文 下载

1.EFM8SB2单片机是不是可寻址的? 2.EFM8SB2单片机以51为内核和STC12单片机编程方法是否一样?

关于你的问题,请参考如下答案:1、问题1,EFM8SB2单片机,是C8051核,基于哈弗结构体系,数据存储器及程序存储器是单独编址,都是可寻址的。2、问题2,STC单片机是51与AVR的结合体,两者编程有不同的地方,但在C语言上,两者区别不大。

技术问答    发布时间 : 2018-08-03

EFM32PG28 MCU Reference Manual

型号- EFM32PG28,EFM32PG28 FAMILY

用户指南  -  SILICON LABS  - Rev. 1.0  - March, 2023 PDF 英文 下载

展开更多

电子商城

查看更多

品牌:LONGSUNG

品类:无线通信模块

价格:¥58.8000

现货: 20

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.9143

现货: 95,058

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.9026

现货: 83,055

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.5305

现货: 80,817

品牌:SILICON LABS

品类:8位MCU

价格:¥5.8534

现货: 73,120

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥5.0172

现货: 38,522

品牌:SILICON LABS

品类:8位MCU

价格:¥8.1764

现货: 37,297

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥4.3667

现货: 27,741

品牌:SILICON LABS

品类:8位MCU

价格:¥4.4595

现货: 27,240

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥9.2911

现货: 23,898

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.7900

现货:3,451

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥11.1200

现货:1,201

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥16.8500

现货:550

品牌:SILICON LABS

品类:8位MCU

价格:¥56.0000

现货:550

品牌:SILICON LABS

品类:8位MCU

价格:¥5.1900

现货:396

品牌:SILICON LABS

品类:8位MCU

价格:¥39.8000

现货:266

品牌:RENESAS

品类:16-BIT MCU

价格:¥5.5190

现货:910,635

品牌:RENESAS

品类:MCU

价格:¥5.1500

现货:200,000

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

最小起订量: 1000 提交需求>

EDA芯片设计软件免费使用

世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。

实验室地址: 深圳 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面