基于FPGA的汽车ECU设计充分符合AUTOSAR和ISO 26262标准(四)
用户可以将在 MCU 和 BSW 层中综合的外设和硬件协处理器设置成高智能化水平,以释放 CPU 时间,从而简化车载 ECU 的软件。
随着 ECU 平台日趋复杂化,系统所需的 I/O 线路数也在不断增加。在这方面 FPGA 较微控制器有明显的优势,因为 FPGA一般能够提供多得多的用户引脚数。这一点一般与基于 MCU 的 ECU 有关,因为这种 ECU 需要采用执行并-串数据转换的外部芯片(比如数字移位寄存器或模拟多路复用器)来扩展 ECU 的输入和输出。采用 FPGA 可以绕开这些外部组件,进而缩减材料清单成本以及电子开发板的 PCB尺寸。
先进的 FPGA 器件已经集成有模数转换器。这个特性对汽车设计意义重大,因为许多 ECU使用模拟信号(比如电池电压)来实现所需的部分功能。在可编程逻辑器件中集成模数转换器为 FPGA 开辟了新的应用领域。
与 MCU 类似,FPGA 也提供远程更新功能。但在这里需要提醒的是,下载到 FPGA 中的位流不仅涉及到软件代码,而且与硬件电路也息息相关。这意味着就算产品已经进入量产阶段,仍然可以通过系统更新或升级来修改硬件设计。汽车产业非常欣赏这种灵活性,因为它能够在产品发布后修改缺陷(软/硬件均可)。
在任何嵌入有符合 ISO 26262安全相关要求的功能的 ECU 中,涉及该实现方案的软硬件必须根据其分类满足一定程度的保护要求。从软件的角度讲,它必须体现出抗干扰能力,即运行在 ECU 中的非安全相关代码一定不能危及同一 ECU 中安全相关类的代码的运行。这种隔离是保证安全相关功能与非安全相关功能在同一处理器上正确并行运行所必须的。一般来说,在可编程逻辑中管理这些指标比在 MCU 中具有更大的灵活性。
对于面向功能安全的存储器保护策略,有必要确保只能授权的安全软件组件有权对特定安全相关信号进行写入存取。在 MCU 器件环境中,存储器分区提供了一种故障约束机制,能够将软件应用彼此分离,避免其间发生数据错误。可编程逻辑很有可能实现一种更有效的自我保护机制。可编程逻辑可以通过专用的单个双端口存储器来管理与安全信号相关的 RTE 缓存,这样数据从写端口写入,从读端口读取。采用这种方法,可以采用专用的硬件控制器给写入或读取这些来自软件侧的信号设置不同的约束条件。这种方法也可以采用寄存器来实现。
能够在 ECU 系统中导入定制硬件解决方案是 FPGA 的一大优势,特别是对安全相关的功能而言。具体而言,对 I/O 引脚和 GPIO 控制器,在安全功能中涉及的引脚布局可以组合成定制的 I/O 端口,仅供 ECU 中的安全组件访问,与器件的其余引脚分离。这是将系统的安全相关引脚与非安全相关引脚分开的理想办法,从设计上避免了干扰的发生。任何对非安全引脚的访问都不会破坏安全引脚的状态,因为安全引脚只受安全相关代码的管理。这种构思的具体描述见图 4。
图4 软/硬件联合设计的安全架构,可将安全相关端口和非安全相关端口隔离开来,以保证无干扰
另外,还能够根据应用或处理该应用的软件组件的需求定制每个 GPIO 端口的大小,从而避免将 GPIO 端口转换为不同应用共享的物理资源,如MCU端口的情况。用这种方法,FPGA中每一个由不同软件组件(比如车窗升降器、雨刷、外后视镜等)管理的应用都能够将自己特定的端口映射到系统存储映射中特定的寄存器。这在 MCU 平台上无法做到,因为 MCU的端口有固定尺寸(一般为8、16 或 32 位宽)且按字长寻址,而非按位寻址。因此在采用 MCU 的情况下,这种控制寄存器在程序执行的时候变成了有多个 SWC 访问的共享资源。
我们可以把用于 GPIO 控制器的策略扩展用于其它标准外设。这样 AUTOSAR 借助 SWC 概念在顶层提倡的功能分区和隔离思路也可以在可编程硬件的帮助下推广运用到较低层的资源上。这种技术如果采用基于标准 MCU 器件的静态硬件解决方案是无法实现的。
我们上文介绍的用于 MCU 标准外设的隔离策略也可以用于安全功能的各个通道或数据路径。这一特性尤其适用于按 ISO 26262 标准的 ASIL 分级组织的精细分类安全目标(见侧边栏)。此项功能可用于将各个通道或者数据路径分解成较低 ASIL 级别的冗余分区,这样每一个通道或路径都以冗余方式运行,后续根据各自的新级别予以实现。这种基于冗余的安全策略是选择可编程逻辑的又一理由,因为可编程逻辑能够在同一器件中多次例化多个相同、独立的处理引擎。另外,满足某个 ASIL 级别的要求用架构方法(硬件)往往比用抽象软件能够更轻松明晰地证明,特别是像抗干扰这样的功能。C 编程语言中的栈溢出或是数据指针处理不当可能会给系统带来
FPGA ECU设计 AUTOSAR ISO 26262 相关文章:
- 电源管理总线的结构与优势(11-19)
- 新型灌封式6A至12A DC-DC μModule稳压器系列(11-19)
- 低电压PLD/FPGA的供电设计(01-24)
- 基于FPGA的高精度数字电源(02-12)
- 功率分配系统(PDS)设计:利用旁路电容/去耦电容(04-29)
- 具有多个电压轨的FPGA和DSP电源设计实例(05-22)