随着汽车系统不断集成新功能,例如驾驶辅助系统 (ADAS)、图形仪表盘 (GIC)、HVAC 和信息娱乐系统,设计车辆变得更加复杂。为了确保可靠和安全的操作,这些子系统中的每一个都需要某种形式的非易失性存储器,用于在复位和电源切换期间存储一些信息。非易失性存储器用于存储可执行代码或其他重要数据,如常量、校准数据、安全和保密相关信息,以供将来检索。
市场上有几种不同类型的非易失性存储器,包括 NOR Flash、NAND Flash、EEPROM(电可擦除可编程只读存储器)、FRAM(铁电随机存取存储器)、MRAM(磁性 RAM)和 NVSRAM(非-易失性同步 RAM),等等。每种内存类型在不同的性能指标方面都比其他内存有其优势和劣势:内存密度、读/写带宽、接口频率、耐用性、数据保留、不同电源模式(活动、待机/睡眠、休眠)下的电流消耗、浸泡时间、对外界电磁干扰的敏感性等。
要了解这些新兴汽车系统对非易失性存储器的真正要求,工程师需要考虑以下真实用例:
启动汽车后,驾驶者是否愿意等待几分钟,然后才能驾驶仪表盘启动并显示与速度表、油量等相关的图形?
一位司机刚刚对座椅位置、方向盘位置、温度设置和喜欢的广播频道进行了个人调整,然后必须迅速关闭引擎。如果汽车在这些子系统的电源被切断之前不记得这些设置,司机会有多生气?
尽管有 ADAS 安全系统,车辆还是发生了事故。您能否为调查团队提供他们需要的数据,例如事故发生前几秒不同传感器的状态?
对于 ADAS 系统,即时捕获某些传感器的实时数据并将数据存储在非易失性存储器中极为重要。同样,信息娱乐系统设置需要即时存储,以便能够在断电时检索它们。GIS 和信息娱乐系统都使用高端图形,因此需要相对大量的覆盖数据作为引导代码序列的一部分,需要从外部非易失性存储器中存储和检索。
除了满足应用级要求外,非易失性存储器还需要确保足够的写入周期耐久性,以记录至少 20 年的数据。此外,要获得汽车级和资格,子系统还应具有符合 AEC-Q100 标准的内存组件。功能安全 (ISO 26262) 是这些安全关键型应用的另一个重要方面。
ADAS 内存要求
开发 ADAS 系统是为了自动化/调整/增强车辆系统,以实现更安全和更好的驾驶。安全功能旨在通过提供提醒驾驶员注意潜在问题或通过实施安全措施和接管车辆控制来避免碰撞的技术来避免事故。自适应功能可以自动照明、提供自适应巡航控制、自动制动、结合 GPS/交通警告、连接到智能手机、提醒驾驶员注意其他车辆或危险、使驾驶员保持在正确的车道上或显示驾驶员盲点中的内容。
图 1. ADAS 系统框图(:赛普拉斯)
图 1 显示了使用 FRAM 和 NOR 闪存的 ADAS 系统的简化框图。外部 NOR 闪存通常用于存储引导代码。然而,ADAS 系统中的各种传感器通过 CAN(控制器局域网)接口定期向 MCU 发送数据。MCU 运行自适应算法来检查是否有可能发生碰撞或是否已经发生碰撞。处理算法的运行时变量和传感器的当前状态存储在 MCU 的 RAM 中。
当算法检测到发生事故时,安全气囊控制模块应使用备用电源即时展开安全气囊,以确保即使在事故期间断电的情况下也能展开。事故过程中传感器的状态也应立即存储到非易失性存储器中以供数据记录。这些信息对于了解事故原因非常有用,这样汽车制造商就可以部署更先进的安全系统,保险公司可以确定特定索赔是否有效。
事件数据记录器 (EDR) 是在事故发生前捕获不同关键子系统数据的系统。EDR 可以是同一 ADAS MCU 的一部分,也可以是接收关键传感器数据并与 ADAS MCU 通信的不同 MCU。如今,赛普拉斯 Traveo MCU 等多核器件使整个 CPU 内核专用于 EDR 功能。
EDR 捕获的数据包括通过测量汽车前侧压力传感器的冲击力、车速、发动机转速、转向输入、节气门位置、制动状态、安全带状态(用于乘客检测)的碰撞严重程度,轮胎气压,警告信号,是安全气囊展开。这些数据应在碰撞前和碰撞过程中记录几秒钟。显然,MCU 不能等到事故发生才开始存储这些数据。因此,MCU 需要不断地存储这些数据。因此,EDR 需要支持几乎无限耐用性的非易失性存储器。
与用于 ADAS 的传统 EEPROM 相比,FRAM 存储器具有许多优势。关键数据存储几乎是瞬时的,大约 10 微秒,没有浸泡时间要求,这对 ADAS 至关重要。EEPROM 通常需要数十毫秒的保持时间,因此不适合安全关键型应用。无写入延迟和高时钟速度的结合使 FRAM 非常适合需要快速写入大量数据的应用。使用 SPI 时,设计人员可以完全自由地决定要写入 FRAM 的字节数。当一个或两个字节写入 FRAM 中的随机位置时,写入周期时间约为 1 μs。将此与强加 5 到 10 毫秒写入周期的 EEPROM 或闪存进行比较。
与 EEPROM 或闪存不同,FRAM 不使用页面缓冲区。FRAM 在接收到的每个字节的第八位之后立即写入每个数据字节。这意味着工程师不必担心当系统增长到下一个内存密度时页面缓冲区大小会发生变化。
在写入耐久性方面,FRAM可以支持10 14 次写入,比EEPROM的10 6 和FLASH的10 5 高出很多数量级。因此,FRAM 可以用作数据不断写入的尾部数据记录器。此外,FRAM 的写入和读取操作需要非常低的有功功率(例如,1 MHz 时为 300 μA),使其适用于需要使用低功率备用电源或在断电时通过电容器写入数据的 ADAS由于事故。与其他非易失性存储器相比,FRAM 的待机电流也低得多(即典型值 100 μA)。
仪表盘内存要求
仪表组系统以图形显示器上的数字形式或使用步进电机控制以模拟形式显示速度、RPM、燃油油位和发动机温度水平等重要信息。还显示电池警告、温度警告、低油压警告、刹车警告等警告符号,安全带指示、低胎压指示、门锁指示、头灯指示、换档指示、手刹指示等安全符号,和非关键信息,例如机舱和外部温度、行程表/里程表读数等。
近的集群系统还包括平视显示器 (HUD)。HUD 是一种光学系统,可将驾驶信息投射到车辆的挡风玻璃上。借助 HUD,驾驶员无需将目光从前方交通中移开即可获取重要信息。这降低了与道路失去视线接触的潜在风险,并为驾驶员提供了更多时间来识别危险并做出反应。该显示可以包括重要信息的集合,例如速度、导航和其他高优先级警告符号。
图 2. 组合仪表系统框图(:赛普拉斯)
图 2 显示了围绕 HyperBus 接口上的 HyperRAM 和 HyperFlash 以及 DDR-HSSPI 接口上的 NOR 闪存构建的仪表组系统的简化框图。集群 MCU 可以通过不同的通信协议与其他子系统连接,例如 CAN-FD、CXPI(时钟扩展外设接口)、以太网 AVB 和 MediaLB(媒体本地总线)/MOST(媒体导向系统传输),以收集要传输的信息由集群显示。
Instrument Cluster 系统启动后,安全引擎会立即验证固件的真实性。此后,MCU 软件执行通过 HyperBus 接口从外部 HyperFlash 或通过双倍数据速率高速串行外设接口 (DDR-HSSPI) 从 NOR 闪存就地执行 (XiP) 开始。XiP 功能允许 MCU 直接从外部存储器执行代码,而不必先将代码从外部闪存复制到内部 RAM,从而提高响应速度。NOR Flash/HyperFlash 存储器可以配置有程序代码的初始地址位置,并在指定数量的时钟延迟后以读取模式上电。因此,一旦 MCU 上电,
可以从外部 HyperFlash 中检索静态元素,并在 Cluster LCD 上显示为基础层。像 Cypress 的 Traveo 这样的汽车 MCU 支持额外的功能来即时解压缩这些静态 HMI 元素,而无需先通过 RAM。可以从外部 HyperRAM 中检索具有更快更新速率的动态内容,例如针头信息。
HVAC 和信息娱乐系统内存要求
HVAC(供暖、通风和空调)系统负责维持机舱内的温度和气流。信息娱乐系统可以运行类似于我们手机的不同应用程序,并提供一个用户界面来更改 HVAC 系统配置、音乐系统设置、在导航应用程序上输入目的地信息、更改座椅/方向盘位置/高度、调整机舱内的气氛照明, 等等。一些的汽车还集成了指纹读取器,以验证和识别驾驶员。这使得 HVAC 和信息娱乐系统能够快速将驾驶室调整为驾驶员的设置。图 3. HVAC 和信息娱乐系统框图(:赛普拉斯)
图 3 显示了 HVAC 和信息娱乐系统的简化框图,其中所有存储器元件都连接到主 MCU。在这里,与仪表盘系统相比,我们有 3 个额外的子系统:
触摸屏控制器检测显示屏上的手指触摸
用于控制机舱温度的加热器/空调
连接子系统,用于启用车内连接选项(蓝牙、GPS、WiFi、GSM、FM 调谐器等)
HyperFlash 和 HyperRAM 内存用于支持高质量图形。NOR Flash 用于引导代码存储,FRAM 用于存储设置信息,因此即使汽车关闭并立即打开,也可以可靠地检索机舱设置。
内存接口
现在我们已经讨论了不同汽车领域对非易失性存储器的要求,让我们了解这些存储器和 MCU 之间的不同接口机制。
任何具有 SPI 接口的 MCU 都可以轻松访问 NOR Flash。赛普拉斯的 S25FL256L 等 NOR 闪存设备为 SPI 提供了支持双倍数据速率 (DDR) 和四路外设接口 (QPI) 选项的多 I/O 选项。多个闪存也可以连接在同一总线上,并使用片选 (CS) 信号独立访问。
图 4. 基于 Quad SPI 的 NOR 闪存接口(:赛普拉斯)
图 4 显示了 MCU 和 NOR Flash 之间的硬件连接。MCU 可以使用低级驱动程序 (LLD) 软件来读取、编程和擦除 NOR 闪存。设计架构针对快速访问时间和程序速度进行了优化。请注意,NOR 闪存中使用的内部技术决定了存储器的密度。NOR 闪存利用传统的浮栅技术在导电层上每个存储单元存储 1 个数据位。NOR 闪存构建在绝缘体层上,例如 MirrorBit 技术,每个单元可以存储 2 个数据位,从而为大于 256 Mb 的密度提供更低成本的结构。
图 5. SPI 上的 FRAM 存储器接口(:赛普拉斯)
图 5 显示了如何使用简单的 SPI 接口访问 FRAM。对于需要高串行数据速率的基于微控制器的系统,SPI 接口是理想的选择。串行数据吞吐量与串行时钟速度相关。串行 FRAM 的时钟频率可高达 40 MHz。没有专用 SPI 端口的微控制器也可以通过 GPIO 进行“位爆炸”。
可以使用 HyperBus 12 信号接口访问 HyperFlash 和 HyperRAM。与 Quad-SPI (66.5 MBps) 相比,HyperBus 提供了大约 4 倍的读取吞吐量,可达 333 MBps,而并行 NOR 闪存所需的引脚数量是其三分之一。该接口使用差分时钟(CK、CK#)、读/写数据选通 (RWDS)、片选和 8 位数据总线。
图 6:内存或外设之间的 HyperBus 接口(:赛普拉斯)
数据完整性和安全性
数据完整性和安全性是为汽车应用选择存储器的两个重要方面。今天的存储器提供了多种功能来提高数据完整性和安全性。例如,扇区保护 (ASP) 提供更高的锁定扇区分辨率以及不同的上电重置行为,并有助于实施安全引导代码。在基本层面上,ASP 很简单。可以锁定任何扇区以防止编程和擦除。有两种 ASP 方法来锁定扇区:持久保护位 (PPB) 和动态保护位 (DYB) 保护。除了块保护 (BP) 和/或 WP# 引脚硬件保护方法之外,这两种方法可以一起使用。
自动纠错码 (ECC) 功能以透明的方式与正常的编程、擦除和读取操作一起运行。当设备将每一页数据从写入缓冲区传输到内存阵列时,内部 ECC 逻辑会评估该页面的 ECC 代码,并将其放入主机系统不可见的内存阵列部分。该设备在每次初始页面访问期间评估页面数据和 ECC 代码,以验证页面的完整性。如果需要,内部 ECC 逻辑会在初始访问期间纠正一位错误。
NOR 闪存还提供了一个额外的闪存区域,可以编程并保护免受进一步更改。对于 Cypress 的 FL-S NOR 闪存系列,这个性程序 (OTP) 阵列大约为 1K,包括 512 个字节的工厂锁定安全硅区域和 512 个字节的客户锁定安全硅区域。
结论
当今的汽车系统需要多种内存选项,这些选项可提供不同的可靠性、响应能力和吞吐量,以满足众多车辆子系统中每一个子系统的个性化需求。通过选择正确的存储器组合,工程师可以确保车辆可靠、安全地运行,同时满足驾驶员对响应速度的期望。