固件与设备不匹配,在tpm设备存在时
chanong
|物联网(IoT) 设备正在迅速进入从消费电子产品到医疗设备再到汽车等市场,制造商希望通过不断创新和采用或集成新技术的灵活性来保持领先于竞争对手。必须走。为了满足新的功能需求和新的监管要求,设计人员必须在其产品中构建灵活性,以适应不断发展的物联网生态系统。固件更新可以在客户站点的初始部署期间进行定制,也可以在产品投入现场或使用时添加新功能或修复固件问题。非易失性存储设备(例如NOR 闪存)可重新编程、可靠,并且通常用作固件代码的存储介质。制造商可以通过在设备使用的非易失性存储器中重写部分设备固件代码来轻松更新设备功能。更新固件时,需要考虑三件事:更新哪些代码、更新多少、更新频率以及更新需要多长时间(速度)。如何/多少固件代码更新在物联网设备的初始设计阶段,您应该考虑如何/多少固件代码更新。固件的可更新部分必须与不可更新部分存储在NOR 闪存设备的单独区域中。要更新NOR 闪存的一段,必须首先擦除该部分内存,然后用新信息对其进行编程。 NOR 闪存分为不同大小的扇区和部分(称为块)。 NOR 闪存器件,例如SST SuperFlash 技术(部件号SST26VF064B (64Mb)),被划分为统一的4KB 扇区,可以单独擦除和重新编程(4KB=4*1024*8 位)=32,762 位。它还分为8KB、32KB和64KB的大块,可以单独擦除。因此,8KB 块有2 个扇区,32KB 块有8 个扇区,64KB 块有16 个扇区。图1 显示了使用8KB/32KB/64KB 块的SST26VF064B 的存储器结构。您还可以单独保护各个块。在对闪存的一部分执行更新之前,该部分中的块必须不受保护以允许擦除和编程操作。更新完成后,明智的做法是重新保护这些块,以避免意外写入或擦除这些区域。固件的可更新部分必须以足够灵活的方式划分为扇区和块,以支持有限数量和最大数量的功能/功能更新。执行更新的速度由需要擦除和重新编程的扇区和块的数量决定,因此在组织固件的可更新部分时最好同时考虑速度和灵活性。图2 显示了将内存组织为可更新部分和不可更新部分的示例。不可更新的部分(例如引导代码)存储在受保护的区域中。根据灵活性要求,固件的可更新部分(例如功能)被分为更小或更大的块。可更新的图像文件存储在大块中,可更新的变量/参数存储在小块中。
图1:SST26VF064B —— 存储器组织(映射)由8 个8KB 块、2 个32KB 块和126 个64KB 块组成
图2:内存组织为不可更新部分(例如启动代码)和可更新部分(例如特性/功能代码、映像文件代码和参数变量代码) 更新频率固件更新频率的主要限制是: 固件更新频率。更新应用程序内的固件内存具有有限的耐用极限。 SuperFlash技术存储器(例如SST26VF064B)的耐用性高达100,000次,这意味着每个扇区可以编程和擦除100,000次。可更新10万次的固件可能看起来很多,但许多物联网设备在使用过程中会收集数据,并将信息存储在NOR闪存中,因此在计算最大耐用极限时需要考虑这一点。必须为内存分配足够数量的扇区以保证持久性。例如:假设物联网设备收集和存储16 字节的信息,并且该信息预计在产品的生命周期内被收集和存储1 亿次。需要分配的扇区数可以计算如下: 1 个扇区=4KB 假设一个扇区中的所有地址单元都用于存储信息(一次16 字节数据),然后将其写入新的地址单元。直到到达扇区末尾(例如0x0000-0x000F、0x0010-0x001F、0x0020-0x002F 等)4KB/16 字节=256,此时就达到了扇区容量,扇区中的数据被擦除。可写入前的存储介质数量1 个扇区的耐用极限=100,000 次因此,如果一个扇区可写入256 次且耐用度为100,000 次,则可采集和存储数据2560 万次。对于一个应用程序来说,如果需要收集和存储数据1亿次,则分配的扇区数为100,000,000/25,600,000=3.9。因此,在此示例中,您需要分配4 个扇区来在应用程序的生命周期内存储16 字节的数据。 IoT 设备工程师必须执行类似的计算,为数据记录参数分配足够的扇区和块,而不超出NOR 闪存设备的耐用极限。更新速度可以根据需要擦除和重新编程的块和扇区的数量来计算。假设您需要重新编程SST26VF064B 上多个64KB 块中存储的1Mb、2Mb 或4Mb 固件代码/数据。代码/数据由固件代码、图像文件或其他需要更新的代码组成。更新过程涉及在闪存上执行一系列命令指令。该序列首先取消对内存块的保护,然后擦除该块,用更新的数据/代码对其进行编程,最后重新保护该块。对于SST26VF064B,表1 显示了更新1Mb/2Mb/4Mb 存储器所需的指令序列。从表1 中可以看出,两个最重要的时间是擦除时间和编程时间。 SST26VF064B 采用SuperFlash 技术,可提供卓越的擦除性能。 SuperFlash技术与传统闪存的擦除和编程性能比较如表2所示。与传统闪存相比,SuperFlash 技术提供的卓越擦除性能对于减少更新时间非常有帮助。 SST26VF064B支持的最大时钟频率为104MHz,最大扇区擦除时间为25ms,最大块擦除时间为25ms,最大页编程时间为1.5ms。另外,在每条命令指令发出后,闪存以104MHz的时钟频率工作之前,需要12ns的延迟(CE高电平时间)。通过将表1所示的命令序列与编程和擦除时间信息相结合,可以计算出更新1Mb/2Mb/4Mb SuperFlash技术存储器和传统闪存所需的时间,如表3和表4所示。为了最大限度地减少物联网设备在更新期间的停机时间,物联网设备工程师必须执行这些计算来估计更新的速度。
表1:更新1Mb/2Mb/4Mb 存储器的闪存命令序列
表2:SST26VF064B 和传统闪存的编程和擦除时间
表3:更新1MB/2Mb/4Mb SuperFlash 技术内存所需的时间
表4:更新1MB/2Mb/4Mb 传统闪存所需的时间结论IoT 设备设计工程师在更新应用程序代码和数据时需要提供一定的灵活性。更新哪些代码、更新多少、更新频率以及更新速度是设计物联网设备时需要解决的问题。非易失性存储器的选择会影响这些问题,并在计算代码更新的时间和速度方面发挥重要作用。








