历史上的今天
返回首页

历史上的今天

今天是:2024年09月12日(星期四)

正在发生

2019年09月12日 | 灵活更新固件——IoT设备的关键

2019-09-12 来源:EEWORLD

物联网(IoT)设备正迅速引入各大市场,从家用电器到医疗设备、再到汽车,应用范围十分广泛;制造商必须通过不断创新和灵活地采用或集成新技术来领先于竞争对手。为了满足新功能的需求和新法规的要求,设计人员必须将灵活性纳入其产品中,以适应不断发展的IoT生态系统。固件更新不仅能够在客户现场的初始部署期间进行定制,还可以在产品部署到现场后添加新功能/特性,并且支持在使用过程中修复任何固件问题。NOR闪存等非易失性存储器件具有可重复编程能力且可靠性极高,通常可用作固件代码存储介质。通过重新编写器件固件代码(位于器件使用的非易失性存储器中)的一部分,制造商可轻松更新器件功能。想要更新固件时,有三件事情需要考虑:更新哪些/多少代码、更新频率以及执行更新所需的时间(速度)。

 

更新哪些/多少固件代码

 

在IoT设备的初始设计阶段,必须考虑更新哪些/多少固件代码。相对于不可更新部分,固件的可更新部分必须存储在NOR闪存器件的独立区域中。更新NOR闪存的任何片段都需要先擦除存储器的这一部分,然后将新信息编程到该部分中。NOR闪存分为称为扇区和块的多个部分,它们的大小各有不同。NOR闪存器件(如采用SST SuperFlash®技术的器件(部件编号SST26VF064B(64 Mb)))分为多个均一的4 KB扇区,各个扇区可单独擦除和重新编程(4 KB = 4 * 1024 * 8位 = 32,762位)。它还可分为更大的8 KB、32 KB和64 KB块,这些块也可单独擦除。因此,一个8 KB块有2个扇区,一个32 KB块有8个扇区,一个64 KB块有16个扇区。图1给出了采用8 KB/32 KB/64 KB块的SST26VF064B的存储器构成。各个块也可以单独进行保护。在对闪存的任何部分执行任何更新前,必须取消保护该部分中的块,以允许擦除和编程操作。完成更新后,谨慎地再次对这些块进行保护,以避免意外写入或擦除这些区域。固件的可更新部分必须以足够灵活的方式划分为扇区和块,以便同时支持有限数量和最大数量的特性/功能更新。由于执行更新的速度由需要擦除和重新编程的扇区和块数决定,因此在组织固件的可更新部分时,最好同时考虑速度和灵活性。图2给出了将存储器组织为可更新和不可更新部分的示例。引导代码等不可更新部分存储在受保护区域中。固件的可更新部分(如特性/功能)根据灵活性要求分为较小的块或较大的块。可更新的镜像文件存储在较大的块中,可更新的变量/参数存储在较小的块中。

 


image.png?imageView2/2/w/550


图1:SST26VF064B的存储器构成(映射)——由8个8 KB块、2个32 KB块和126个64 KB块组成

 

 

image.png?imageView2/2/w/550

 

更新频率

 

固件更新频率的主要限制是应用中所使用存储器的耐擦写次数限制。SuperFlash技术存储器(如SST26VF064B)的耐擦写次数可达100,000次,这意味着每个扇区可编程和擦除100,000次。固件可以更新100,000次听起来很多;然而,许多IoT设备会在使用期间收集数据并将信息存储在NOR闪存中,因此在计算最大耐擦写次数限制时必须考虑这一点。考虑到耐擦写次数,必须在存储器中分配足够多的扇区。下面将举例说明:假设IoT设备正在收集和存储16个字节的信息,并且信息预计在产品的使用寿命期间收集和存储1亿次。可以按如下方式计算应当分配的扇区数:

 

1个扇区 = 4 KB

 

假设扇区中的所有地址单元用于存储信息(一次存储16个字节的数据),然后写入到一个新的地址单元,直至达到扇区末尾(例如,0x0000-0x000F、0x0010-0x001F、0x0020-0x002F等)

 

由于4 KB/16字节 = 256,这即是达到扇区容量并擦除扇区中任何数据之前可以写入存储介质的次数

 

1个扇区的耐擦写限值 = 100,000次

因此,如果1个扇区可以写入256次且耐擦写次数为100,000次,则可以收集和存储数据2560万次

 

如果一个应用需要收集和存储数据1亿次,则要分配的扇区数量为100,000,000/25,600,000 = 3.9。因此,在本例中,需要分配4个扇区以在应用的生命周期内存储16个字节的数据。

IoT设备工程师需要进行类似的计算,以便为数据记录参数分配足够多的扇区和块,以免超出其NOR闪存器件的耐擦写限值。

 

更新速度

 

可根据需要擦除和重新编程的块和扇区数来计算更新速度。假设需要重新编程SST26VF064B的几个64 KB块中存储的1 Mb、2 Mb或4 Mb固件代码/数据。代码/数据可以由固件代码、镜像文件或需要更新的其他代码组成。更新过程涉及对闪存执行一系列命令指令。序列将从取消保护存储器块开始,然后擦除这些块、用更新的数据/代码进行编程,最后重新进行保护。对于SST26VF064B,更新1 Mb/2 Mb/4 Mb存储器所需的指令序列如表1所示。从表1中可以看出,两个最重要的时间是擦除时间和编程时间。SST26VF064B采用可提供出色擦除性能的SuperFlash技术。SuperFlash技术与传统闪存的擦除和编程性能的比较如表2所示。与传统闪存相比,SuperFlash技术提供的优异擦除性能对于缩短更新时间非常有用。SST26VF064B支持的最大时钟频率为104 MHz,最大扇区擦除时间为25 ms,最大块擦除时间为25 ms,最大页编程时间为1.5 ms。此外,从发出每条命令指令到闪存以104 MHz时钟频率工作,中间还需要12 ns延时(CE高电平时间)。表1所示的命令序列与编程和擦除时间的知识结合使用时,可计算更新1 Mb/2 Mb/4 Mb SuperFlash技术存储器和传统闪存所需的时间,具体方法分别如表3和表4所示。这些计算必须由IoT设备工程师完成以估算执行更新的速度,目的是最大程度缩短更新期间的IoT设备停机时间。

 

 

image.png?imageView2/2/w/550

表1:更新1 Mb/2 Mb/4 Mb存储器的闪存命令指令序列

 

 


SST26VF064B

传统闪存

扇区擦除

25 ms(最长)

150 ms至3000 ms

块擦除

25 ms(最长)

750 ms至3s

芯片擦除

50 ms(最长)

15s至80s

页编程

1.5 ms(最长)

1 ms至5 ms

表2:SST26VF064B和传统闪存的编程和擦除时间


image.png?imageView2/2/w/550

 



image.png?imageView2/2/w/550

 

结论

 

IoT设备设计工程师需要在更新应用程序代码和数据时提供一定的灵活性。更新哪些/多少代码、更新频率和更新速度是设计IoT设备时需要解决的问题。非易失性存储器的选择会影响这些问题,并在计算代码更新的时间和速度方面起到关键作用。

 

推荐阅读

史海拾趣

长园维安(CYGWAYON)公司的发展小趣事

随着产品技术的成熟,长园维安开始积极拓展国际市场。公司与国际知名企业建立合作关系,共同开发新产品,拓展市场份额。同时,长园维安还积极参加国际展览,展示公司最新技术和产品,提高品牌知名度。这些努力使长园维安在全球电子行业中的影响力不断增强。

Benchmarq Microelectronics Inc公司的发展小趣事

在半导体行业中,供应链的稳定性和可靠性对企业的发展至关重要。Benchmarq Microelectronics Inc深知这一点,因此始终注重供应链管理和合作伙伴关系的建立。公司与多家知名供应商建立了长期稳定的合作关系,确保原材料的稳定供应和质量可控。同时,公司还加强库存管理和物流配送,确保产品能够及时、准确地送达客户手中。这些努力不仅提升了公司的运营效率和市场竞争力,还为客户提供了更加便捷、高效的服务。

ddm hopt + schuler GmbH & Co KG公司的发展小趣事

ddm hopt + schuler GmbH & Co KG公司自创立之初,就专注于电子制造设备的研发与生产。在20世纪90年代,公司成功研发出一款具有革命性意义的自动化生产线,极大地提高了电子产品的生产效率和质量。这一技术突破迅速赢得了市场的认可,公司开始在全球范围内扩张业务,与多家知名电子品牌建立了长期合作关系。

DMS Electronic Components, Inc公司的发展小趣事

DMS在追求经济效益的同时,也积极履行社会责任。公司注重环境保护和资源节约,采用环保材料和工艺进行生产。同时,DMS还积极参与公益事业和社会活动,为社会做出了积极贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。

请注意,以上故事是基于对电子行业和DMS公司业务范围的推测和构想,并不代表DMS公司真实的发展历程。如需了解更多关于DMS公司的具体信息,建议查阅公司官方网站或相关新闻报道。

广州盛炬(GZSJ)公司的发展小趣事

DMS非常重视人才的培养和引进。公司建立了完善的人才选拔和激励机制,吸引了一批高素质的专业人才加入。这些人才在技术研发、市场营销、生产管理等方面发挥了重要作用,为公司的快速发展提供了有力保障。同时,DMS还注重员工的培训和发展,为员工提供了广阔的职业发展空间。

Ferroperm公司的发展小趣事

随着全球环保意识的不断提高,Ferroperm公司也积极响应环保号召,致力于可持续发展。他们采用环保材料和生产工艺,减少生产过程中的污染和废弃物排放。同时,Ferroperm还积极参与环保公益活动,推动环保理念的普及和传播。这种对环保的关注和投入不仅体现了公司的社会责任感,也为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

USB驱动请教各位

我用DDK做了一个USB驱动,已经能正常通讯了,但是在循环写Pipe1端口,写几次驱动就不响应了,调试发现停在status = KeWaitForSingleObject( &event, Executive, KernelMode, FALSE, NULL );,以下时通讯程序,这会是什么原因呢????   & ...…

查看全部问答>

AMD风扇测速测温方法(兴趣)

AMD那根测速线是怎么测速测温的(没有资料可寻),就像DS18B20那样one—wire输出?输出格式是?先温度还是湿度,数据是怎么的格式…

查看全部问答>

EVC++下不支持GetRunningObjectTable( )函数?

在移植陆老师的SAMPLEPLAYER到WINCE下,但编译报不支持GetRunningObjectTable( )和CreateItemMoniker( )这两个函数,请问为什么?我自己导出的SDK包不全面?还是跟.NET组件加没加有关?我的SDK包没加.NET组件 ...…

查看全部问答>

急,程序不运行

我写好的程序,以前运行好好的,现在突然不运行了,在线调试发现经常执行到P2OUT=0xff;不确定,有时候是P4OUT = 0xff;就弹出"could not get target status";屏蔽这些出问题的语句后,程序能运行,下次可能变别的语句了.接上无线发射模块等外电路后,立 ...…

查看全部问答>

无线遥控

我是个点子初学者   我想做一个无线发送和接受的装置并且用遥控实现输入发送装置发送出去??请问我该用些什么芯片,电路如何设计??希望成本不要太高!!!!…

查看全部问答>

【MP430共享】基于DDS和MSP430的信号发生器设计

提出了一种基于MSP430的水情遥测仪的实现方法.针对远程雨水情信息遥测系统,确定水情遥测仪的设计方案,主要采用了MSP430系列单片机。介绍了遥测仪的硬件电路和软件设计。实践表明,遥测仪设计合理,可靠性高,计数准确,很好的完成水位和雨量数据的存储 ...…

查看全部问答>

【MSP430共享】基于模糊自适应PID的污水处理PH值控制系统

针对污水处理中pH值对象的非线性 、 时变性以及不确定性等特点, 设计的污水处理pH值控制系统采用模糊自适应PID控制方法, 以MSP430单片机作为处理器核心实现。介绍了系统的工作原理、 控制器设计 、 硬件和软件实现方案, 并给出了测试和实验结果 ...…

查看全部问答>

STM32 v3.5固件库systick ms延时

《如何从STM32F10xxx固件库V2.0.3升级为STM32F10xxx标准外设库V3.0.0》一文中的“3.3.2 SysTick”讲到:在标准外设库中移除了SysTick的驱动,因此用户必须调用CMSIS定义的函数。CMSIS只提供了一个SysTick设置的函数,替代了STM32原有SysTick驱动的 ...…

查看全部问答>

请知晓的前辈,告知一二。为何DXP导入设计时,很多元件无法导入?

在DXP中将原理图导入到pcb板时,为什么很多元件没有被导入 。如图一、图二那样。 请知晓的前辈,告知一二。万分感激! 图一 图二 …

查看全部问答>