微控制器(MCU)是汽车电子控制系统中的核心元件,其中的记忆体是最重要的组成部分之一,主要用于储存程式码、资料、配置参数等资讯。根据记忆体类型的不同,车规MCU记忆体可以分为多种类型,包括ROM、EEPROM、Flash,以及SRAM等。
由于记忆体用于储存MCU运行的资料程式码,其故障可能会导致汽车电子控制系统出现严重的事故。因此,不同类型记忆体的功能安全非常重要。在车规MCU中进行合理的记忆体和控制器的功能安全设计,可以有效地提高汽车电子控制系统的可靠性和安全性。
车规MCU中储存功能的功能安全,主要包括防止记忆体及控制器本身的故障,和防止外部攻击对记忆体进行破坏和资讯窃取两个方面。为防止记忆体及控制器本身的故障,车规MCU需要采用多种技术手段来保证其功能安全,例如,使用业界成熟的ECC技术或使用CRC校验码,可以检测修复错误资料和检测资料完整性,使用备份储存可备用资料等。而为防止外部攻击对记忆体进行破坏或资料窃取,车规MCU需要采用加密技术来保护记忆体中的资料,例如使用不同种复杂的演算法对资料进行加密,控制程式码存取及运作许可权,条件限制性资料交互等,可以有效地防止外部攻击和资讯泄露。
本文讨论车规MCU的设计开发时,将侧重功能安全的设计实现。只有在记忆体的功能安全得到保障的情况下,才能让汽车电子控制系统更加可靠和安全。因此,记忆体及控制器功能安全设计是车规MCU中非常重要的一环,直接关系到汽车电子控制系统的可靠性和安全性。
记忆体类型组成
以汽车域控制多核心MCU晶片为例,基于不同的记忆体类型,记忆体可以分为ROM、EEPROM、Flash以及SRAM等。ROM中文称为唯读记忆体,用于一次程式设计BOOT启动程式后不能再被修改,负责储存MCU晶片上电启动程式码、初始诊断测试程式码和基本控制演算法程式码等。EEPROM中文名称是电子抹除式可复写唯读记忆体,它可以透过电讯号进行擦写和程式设计,在汽车域控制多核心MCU中,EEPROM通常用于储存车辆识别码、使用者设置、故障码、参数等资讯。Flash与EEPROM类似,但其擦除和程式设计速度更快,汽车域控制多核心MCU中,通常被用于储存应用程式、作业系统和驱动程式等资讯。基于技术发展演进和市场化验证,目前EEPROM功能逐渐被小容量的Flash替代。SRAM中文名称是静态随机存取记忆体,具有快速的读写速度和低功耗的特点,在汽车域控制多核心MCU中,SRAM记忆体通常被用于储存快取、堆叠等资料。
在MCU中的系统架构,ROM记忆体通常分为两类:一是内部ROM,即直接整合在MCU晶片中;二是外部ROM,即透过串列或平行介面与MCU晶片相连的外部ROM。SRAM、EEPROM和Flash通常都是内部整合,可以透过串列或平行介面进行读写操作。在复杂处理系统中,由于记忆体容量需求巨大,整合至晶片内部已无成本优势,因此通常以独立的晶片形式存在,需要透过外部位址汇流排和资料汇流排与MCU晶片相连。
上述每种记忆体类型,均需要符合自身读写控制时序的记忆体控制器,支援记忆体资料的正常存取操作。根据记忆体的功能可知,无论是记忆体本身还是控制器,任意一个发生故障,均会导致MCU晶片控制和处理功能失效,进而会导致系统故障。因此,有效实施记忆体及控制器的功能安全设计方案,可以使汽车电子控制系统更加可靠和高效。
功能安全技术
主要功能安全技术包括:
包含位址资讯的ECC
常规MCU晶片中记忆体ECC方案,主要对其储存空间中的资料进行处理,查二纠一的演算法基本可保证99%以上的故障诊断覆盖率。为尽可能保证安全性,对于复杂MCU、尤其是汽车电子控制中使用的核心控制MCU,甚至设计为查三纠二的ECC演算法。常规MCU,其内部记忆体容量有限,位址解码电路所进行的解码处理位元宽较少。
相较常规晶片不同,车规级核心控制MCU的全晶片中,使用了大量的Flash和SRAM等记忆体,其记忆体控制器位址解码电路涵盖位址区间较大,因此控制器解码电路失效率随之增加。因此对于高安全需求的MCU,其记忆体ECC方案有所不同。在生成校验处时, 将「写位址」与「资料」一起拼位生成ECC校验码,「资料+校验码」一起存于记忆体中,写位址本身不储存。资料读出校验时,「读位址+资料+校验码」一起校验。此设计方案在不明显增加设计成本的情况下,可检测位址解码逻辑单位元失效。
控制器对记忆体的控制效果,体现在正确位址和正确资料的存取。当控制器中位址解码电路故障时,可导致使用错误的位址读取该位址中的资料,而该笔资料本身的ECC校验码正确,无法通过常规ECC检查,最终MCU获得错误资料,造成系统故障。包含位址资讯的ECC方案,基于记忆体和控制器最终的存取效果,针对资料和位址两个关键点,对整体进行安全控制。
ECC码的独立储存
另一种有效的安全方案,是将本身的资料和ECC码使用独立的记忆体进行储存。MCU晶片中SRAM作为资料快取,在系统整合过程中会比例化多个储存空间的SRAM模组,而不是统一放在一个巨大位址空间的SRAM介面中,这样有效保证多主机进行资料存取处理的高效性。因此ECC码的独立储存方案,尤其适用于SRAM的功能安全设计实现。
以SRAM而设计实现为例,每一笔资料生成对应ECC后,依相同的位址,分别储存资料的SRAM和储存ECC码的SRAM。MCU晶片发出读位址读取某一笔资料时,同时将该位址对应至储存ECC码的SRAM中,对应该资料的ECC码读出,并透过ECC校验模组进行校验。当位址解码模组解码故障时,实际上用同一位址读取的资料和ECC码会发生不匹配的情况,最终导致ECC校验时发现ECC码错误。因此此时的位址解码模组的故障将以ECC资料校验错误的形式回馈,并不区分是记忆体的故障还是位址解码电路的故障。
在实际系统层级功能安全应用时,将记忆体及控制器看作整体,安全回应最终是以资料错误的形式表现,有助于提升高层级处理的效率。另外,ECC码被分成两个物理SRAM储存区域,这种方案提供了物理上SRAM储存区域和控制模组,也有助于降低物理多位元故障导致逻辑多位元故障的概率、共因失效概率和位址解码模组瞬态干扰导致的安全机制失效的概率。
ECC校验功能的诊断
记忆体ECC技术方案作为防止记忆体及控制模组发生单点故障的安全机制,需要采取相应技术措施来探测、辨识或诊断其本身的问题,尽量减小潜在故障的概率。虽然ROM、SRAM、EEPROM和Flash记忆体资料在MCU晶片正常工作过程中均可受到ECC校验的保护,但不同类型的记忆体其实际工作情况不同,因此对于ECC编码和校验模组的诊断措施也有区别。
在BOOT启动阶段和功能模式运行阶段,SRAM和EEPROM都可进行资料存取,且MCU晶片应用过程中,资料可即时修改。对于SRAM和EEPROM的功能特性,其ECC校验模组可透过即时故障注入的方式进行诊断。故障注入开启后,MCU可透过程式读取SRAM和EEPROM的资料和ECC校验码,并将资料段利用注入修改,连同ECC码送入ECC校验模组,可诊断ECC校验模组是否可正确检测到ECC单位元错误、多位元错误和单位元纠错功能。
故障注入方案需要ROM或Flash中软体程式正确执行,因此难以用于诊断用于储存软体程式码的ROM或Flash的ECC校验模组。对于ROM或Flash的ECC校验功能的诊断,可以透过在ROM或Flash记忆体中建立ECC测试区域,并事先将用于ECC校验功能诊断的测试资料程式设计到ROM或Flash中。该区域根据实际的ROM或Flash的资料位元宽,遍历(Traversal)单位元错误,全0资料、全1资料,双位元错误、多位元错误的情况。当进行ECC诊断时,程式主动读取该测试区域的资料,ECC校验正确的情况下将触发ECC错误正常回应。
其他关联协作技术
MCU晶片中实现记忆体功能安全可结合其他技术方案相互协作,提高系统的可靠性和安全性。线上MBIST透过测试引擎生成特定的测试模式来激励记忆体,然后读取和比较记忆体的输出资料,以验证记忆体的功能和可靠性。测试模式可以包括不同的资料模式、记忆体存取模式和写入/读取序列等,可快速检测记忆体中的故障,并提供准确的测试结果。
另外,MCU晶片可采用MPU来保护记忆体,用于限制非法存取。MPU可以设置记忆体的存取权限和位址范围,确保只有经过授权的程式才能读取和写入记忆体中的资料。利用MPU,晶片能够有效防止恶意攻击和非法存取导致的资讯泄露或篡改。此外,MCU晶片对记忆体中资料还可使用资料E2E校验来验证资料的完整性,透过在资料传输的起点和终点分别添加校验码,检测资料在传输过程中是否被篡改。
实现记忆体单元的功能安全,从合适的技术层级和功能层级进行分析,考虑安全机制的技术结合和措施的共同作用,评估安全方案在实现功能安全等级目标的适应性;并用相对低的成本以达到合适的诊断覆盖率和安全效果,提高晶片的可靠性和安全性,确保系统能够有效防范单点故障和潜在故障的风险。
利发国际科技专注功率器件领域,为客户提供IGBT、IPM模块等功率器件以及MCU和触控芯片,是一家拥有核心技术的电子元器件供应商和解决方案商。