【经验】一种GPRS燃气表远程OTA升级的方法
燃气表安装在用户家中,使用寿命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模块主要是高可靠性、小尺寸和低功耗的要求。笔者在设计中选择LONGSUNG的A9500模块。A9500是基于高通 MDM9206的LTE CatM / CatNB1蜂窝模块,专为全球IOT和M2M市场而设计。 A9500是一款高性价比、有竞争力的模组产品。 产品具有以下的重要特点:
· 小尺寸的LCC封装:产品的尺寸仅为26.0×24.0×2.5mm,小尺寸的模组可减小最终产品的尺寸,提高产品集成度。
· 高可靠性
· 关机漏电流:50uA
A9500 LTE/NB-IOT模块可为燃气表OTA升级提供无线数据传输通道, 将燃气表的相关参数和状态数据上传到无线网络,到燃气公司实现云端存储和管理。利用龙尚的A9500,实现了燃气表的联网,将终端用户和燃气公司进行了有效链接。
- |
- +1 赞 0
- 收藏
- 评论 1
本文由铮铮提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【应用】芯科科技高性能8位单片机EFM8BB31F32G用于音频放大器,集成多达四个12位DAC
本文介绍Silicon Labs 8位单片机EFM8BB31F16G-D-QFN24R用于音频放大器,优势:最高工作频率50MHz,稳定性好;集成一个12位ADC、四个具备同步和PWM功能的12位DAC;FLASH从16KB~64KB可选等。
【经验】从低功耗角度比较32位单片机EFM32和STM32
Silicon Labs 32位单片机EFM32是世界上功耗最低的单片机之一,比目前市场上所有通用MCU的功耗都要低,本文通过跟目前最流行的MCU之一由ST推出的STM32L系列低功耗MCU进行比较,来向读者展示EFM32系列32位MCU的低功耗性能。
【经验】Silicon Labs 8位单片机EFM8BB21 GPIO输出配置与调试
Silicon Labs 创新型8位MCU提供完全集成的体验,非常适合物联网应用,提供了也接最快的速度和最低的功耗,同时EFM8系列车用8位MCU为当前市场上最具价值、最灵活和集成度更高的车载MCU。 GPIO为单片机中最常使用的功能,本文将以P0.0端口为例分享EFM8BB21的GPIO输出配置与调试。
C8051F93x-C8051F92x单/双电池,0.9–3.6 V,64/32 kB,智能时钟,10位ADC MCU
描述- 该资料详细介绍了C8051F93x-C8051F92x系列单/双电池供电的微控制器(MCU),包括其供电电压范围、内置功能、模拟和数字外设、存储器组织、时钟源、封装类型和温度范围。资料涵盖了产品的主要特性和应用领域,旨在为工程师提供全面的技术信息。
型号- C8051F930-G-GQ,C8051F920-G-GM,C8051F931,C8051F920,C8051F921,C8051F930-G-GM,C8051F93X,C8051F920-G-GQ,C8051F921-G-GM,C8051F92X,C8051F931-G-GM,C8051F930
【经验】8位单片机EFM8系列的SFR Page操作
Silicon Labs的8位单片机EFM8系列,集成丰富的外设,高性能,小封装。软件开发时,由于外设多,寄存器操作引入了SFR Page机制,注意SFR Page设置,防止程序错误,让EFM8系列芯片设计出稳定的优质产品。
【经验】芯科科技单片机EFM32PG22的ADC采样如何使用LDMA传输大于2048个数据?
EFM32PG22使用LDMA传输ADC的采样数据,可以在MCU休眠下进行,从而降低MCU功耗,是比较好的应用方式。但是LDMA的计数器最多只能计数2048,限制了LDMA的一次性传输数据大小,本文介绍如何打破LDMA传输大小的限制。
C8051F58x C8051F59x混合信号ISP Flash MCU系列
描述- 本资料详细介绍了C8051F58x/F59x系列混合信号ISP闪存微控制器的特性、功能和应用。资料涵盖了系统概述、订购信息、引脚定义、封装规格、电气特性、模拟和数字外设、存储器组织、中断、闪存、电源管理、复位源、外部数据内存接口、振荡器和时钟选择、端口输入/输出、LIN、CAN、SMBus、UART、SPI、定时器、可编程计数器阵列(PCA)、C2接口等内容。
型号- C8051F590,C8051F581,C8051F580,C8051F591,C8051F583,C8051F582,C8051F585,C8051F584,C8051F59X,C8051F587,C8051F586,C8051F589,C8051F58X,C8051F588
【经验】一招教你延长单片机的Flash擦写寿命
在单片机开发应用中,工程师经常会遇到需要在单片机内部Flash的某个区域保存和读取一些数据,而这些数据在应用中可能会经常变化,因而需要对Flash的数据经常更新。本文就以Silicon Labs的8位单片机EFM8SB10F8G为例,教大家如何延长单片机的Flash擦写寿命。
C8051F300/1/2/3/4/5混合信号ISP-Flash单片机系列
描述- 本资料介绍了C8051F300/1/2/3/4/5系列混合信号系统级单片机(MCU)的特性。该系列MCU具备高速流水线式8051内核,支持在系统内非侵入式全速调试,具有真正的8位500 ksps 11通道ADC、可编程增益放大器和模拟多路复用器,内置精确的可编程25 MHz内部振荡器,高达8 KB的片上闪存内存,256字节片上RAM,硬件实现的SMBus/I2C和增强型UART串行接口,三个通用16位定时器,可编程计数器/定时器数组(PCA),带有三个捕获/比较模块和看门狗定时器功能。
型号- C8051F302 FAMILY,C8051F303 FAMILY,C8051F304 FAMILY,C8051F301 FAMILY,C8051F300-GM,C8051F303-GM,C8051F301-GM,C8051F302-GM,C8051F304-GM,C8051F305-GM,C8051F305,C8051F300-GS,C8051F304,C8051F301-GS,C8051F303-GS,C8051F302-GS,C8051F304-GS,C8051F305-GS,C8051F300 FAMILY,C8051F305 FAMILY,C8051F301,C8051F300,C8051F303,C8051F302
C8051F930-G1DI经过测试的单/双电池、0.9–3.6 V、64 kB闪存、SmartClock、10位ADC MCU晶片
描述- 本资料介绍了C8051F930-G1DI微控制器(MCU)的详细规格和应用。该产品是一款低功耗、高集成度的单/双电池供电型MCU,适用于多种应用场景。它具备丰富的数字外设接口、模拟功能和高性能的8051内核。
型号- C8051F930-G-GDI,C8051F930-G1DI,C8051F930G,C8051F930-G-G1DI
Silicon Labs C8051单片机如何读写FLASH?有没有程序案例?
可以安装 Simplicity Studio软件,就有C8051单片机读写FLASH的例程,可以参考下面的文章:如何将EFM8系列MCU的FLASH用作EEPROM?
为了提高EFM32单片机AD采样的实时性并降低功耗,在RTC中断中打开AD,并设置MCU进入EM1模式下进行AD采样,但功耗并没有降低,是什么原因?
测试发现在RTC中断中,EFM32单片机并没有进入EM1模式,设置EM1模式无效;由于在RTC中断中,RTC定时事件一直存在,所以导致进入EM1模式失败。为了实现AD采样的实时性以及低功耗,可以在RTC中断中开启AD,并在退出RTC中断之后在主程序中通过判断AD采样的标志来设置MCU进入EM1睡眠模式,以此来降低功耗。
【经验】如何使用芯科的单片机EFM32PG23的内部温度传感器
EFM32PG23内部集成一个温度传感器,可以采集芯片的温度,用于时钟、ADC等校准,也可以用于过温报警等功能。由于手册对温度传感器的介绍比较少,并没有详细介绍温度传感器的使用步骤,导致研发时,不清楚怎么使用EFM32PG23内部的温度传感器。本文将详细介绍。
EFM32单片机与stm32单片机是pin对pin对换的嘛
EFM32系列单片机,是Silicon Labs提供的基于ARM-Cortex核、超低功耗MCU。关于管脚兼容情况,要视不同型号而定。具体可参考如下资料:https://www.sekorm.com/doc/62781.html 《【选型】Silicon Labs(芯科科技) EFM32 32位MCU选型指南》
可做ST MCU备选方案的Silicon Labs(芯科)小蜜蜂单片机EFM8
Silicon Labs的EFM8BB1以及 EFM8BB2都是ST MCU的备选方案。其有集成度高、体积小、功耗低和优越的节电模式等特点,是成本敏感型的嵌入式系统和便携式设备等应用的理想选择。
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论