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