AURIXTC3XX系列的SOTA机制详解 硬件工程师电路分析物联网模电单片机嵌入式技术.doc
来源:新闻资讯 /
时间: 2024-11-23
AURIX TC3XX 系列的 SOTA 机制详解
作为一名硬件工程师,了解 AURIX TC3XX 系列的 SOTA 机制是非常重要的。本文将详细解释 SOTA 机制的概念、实现方式、优缺点和应用场景。
SOTA 机制的概念
SOTA 全称是云端软件升级(Software updates Over The Air),它允许在不连接烧写器的情况下,通过 CAN、UART 或其它通讯方式,实现应用程序的更新。
SOTA 机制的实现方式
常规的 SOTA 机制实现方式需要分别开发 BootLoader 程序和 APP 程序,MCU 上电先运行 BootLoader,BootLoader 根据情况选择是否跳转到 APP 和是否进行程序更新。有四种常见的 SOTA 机制实现方式:
1. 方案一:更新程序时,由 APP 接收更新数据并暂存于 Flash,再将 APP 更新标志位置位;MCU 重启时,BootLoader 检查更新标志位,如有效,则擦除旧的 APP,再将暂存于 Flash 的新 APP 数据写入 APP 运行地址处。
优点:更新数据的接收由 APP 完成,BootLoader 不需要通讯协议栈,代码量更小,且数据传输中断时,原有 APP 不损坏。
缺点:需要额外的 Flash 空间暂存更新数据。
2. 方案二:BootLoader 中内置通讯协议栈,更新时,先向 MCU 发送指令使其跳转到 BootLoader,之后先擦除旧 APP,在接收新 APP 的同时直接将其写入 Flash 的 APP 运行地址处。
优点:不需要额外的 Flash 暂存数据。
缺点:BootLoader 代码更复杂,且如果数据传输发生中断,旧的 APP 将不能被恢复。
3. 方案三:将方案一和方案二相结合,即在 BootLoader 程序中内置通讯协议栈,更新时,先向 MCU 发送指令使其跳转到 BootLoader,之后接收更新数据的时候,采用方案一的方法,先将数据暂存于 Flash,待数据全部接收完成后再擦除旧的 APP,写入新的 APP。
优点:结合了方案一和方案二的优点,且能在没有 APP 或 APP 损坏的状态下实现程序更新。
缺点:BootLoader 代码量更大,Flash 空间占用更大。
4. 方案四:在 Flash 中划分出两块相同大小的区域,分为 A 区和 B 区,都用来存放 APP,但同一时间下只有一个区的 APP 是有效的,分别设置一个标志位标识其有效性。
优点:不需要重复拷贝 APP 数据。
缺点:AB 区的 APP 程序运行地址不同,需要分别编译,从而使得可应用性大大降低。
AURIX TC3XX 系列的 SOTA 机制
TC3XX 系列的 SOTA 机制更类似于方案四,但它的 Flash 支持两种地址映射方式,从而使得 APP 编译时不需要区分 AB 区,使用相同的地址即可,从而避免了方案四的硬伤,为我们提供了一种最佳的 SOTA 方案。
TC3XX 的 Flash 地址映射方式
TC3XX 的 Flash 地址映射方式有两种:标准地址映射方式(Standard Address Map)和Alternate Address Map。标准地址映射方式中,PF0-PF5 代表物理意义上的 5 块 Flash。Alternate Address Map 中,PF0-1 的地址范围现在被映射到了 PF2-3,PF4 的地址范围被映射到了 PF5。
TC3XX 的 SOTA 功能描述
当 SOTA 功能激活时,PFLash 被划分为两部分,一部分用来存储可执行代码(active bank),另一部分可用来读取和写入(inactive bank)。当 APP 更新完毕后,两个部分互换,即切换上面两种地址映射方式。在标准模式下使用 PF0-1 和 PF4 作为 active bank,后文称作组 A,在 Alternate 模式下使用 PF2-3 和 PF5 作为 active bank,后文称作组 B,就可以实现上述方案四,且能写入完全相同的 APP 程序,以相同的地址进行运行。
需要注意的是,所有 NVM 操作都是通过 DMU 使用 PFLASH 的物理系统地址执行的,也就是说,NVM 操作总是使用标准的地址映射,而不管选择使用哪种地址映射。
下一篇: 物联网开发实战(上).pdf