前言

本篇图文跟大家分享一下基于高通8155的智能座舱仪表域功能安全设计。

全系内容可在《搞一下汽车电子》后台回复 “系列”,或进入菜单栏 “分享平台” --> “系列分享”

本系列请点击:《搞一下闲谈》

所有系列请点击:《汽车电子系列分享》

安全目标与功能

什么是功能安全

在分享之前,笔者先简单总结一些什么是功能安全?

字面意思上看,就是保证功能安全的运行。

从技术上来讲,就是更合理的异常处理。当然,并不是所有的异常都要处理。

汽车功能安全的标准是 ISO26262 ,其中对功能安全的定义是:

功能安全是为了避免因电气/电子系统故障产生的会引起危害的不合理风险。

从ISO 26262 对功能安全的定义可以看出,功能安全的范围只是针对电气/电子系统,物理故障不包括在内。

需不需要功能安全主要由以下三个方面来衡量:Severity 严重度, Exposure 曝光度,
Controllability 可控度。

严重度

危险发生时,导致的伤害的严重性 ,这个严重度是指对驾驶员及周边人员造成的健康
伤害的严重度。

曝光度

在操作条件下,暴露于危险当中的可能性,几乎不可能曝光的故障,不需要考虑功能
安全。

可控度

危险的可控性,主要是指当危险发生时,该危险可被司机、其他交通控制人员进行控
制并减小或避免危害发生的可能性。

Safety Goal

简单总结了一下什么是功能安全,接着笔者将根据功能安全的一般设计流程,从Safety Goal开始分享一下基于高通8155的智能座舱仪表域功能安全设计。

首先笔者从某OEM获取了关于Cluster相关的Safety Goal(安全目标)列表,均为ASIL-B等级。如下图所示。

主要有3个内容:
1.Cluster显示子系统需要能检出画面静止(frozen frame)
2.从传感器获得(需要被Cluster通过Telltale方式显示)的信息,需要保证正确显示。
3.信息显示的延迟应不大于300ms

了解Safety Goal之后,我们来看一下Safety Function。

Safety Function

下图为高通建议的达到上述Safety Goal的对应策略。

上图中,SF_1表示仪表需要完成的功能安全ID。SG_x表示 Safety Goal ID。

策略1

假定Safety Function的输入为:接收要显示的framebuffer。
假定Safety Function的处理为:在实际显示图像之前执行必要的处理步骤。
策略:显示子系统需要有能力检出画面静止,并在检出画面禁止的时候给MCU提供一个外部中断。

策略2

假定Safety Function的输入为:通过SPI或PCIe形式的车载接口处理器接收数据。
假定Safety Function的处理为:验证来自车辆接口处理器的与仪表盘显示相关的所有传入消息的 CRC。创建一个包含与每个 telltale 标志对应的图像的帧缓冲区,生成CRC并提供给显示子系统。
策略:应确保从传感器(仅限于提供仪表组显示相关信息的传感器)到显示器的数据捕获点的数据完整性。然后对然后对telltale的内容同时在MCU和SOC进行校验,需要在MCU侧进行出错处理。

策略3

假定Safety Function的输入为:通过SPI或PCIe形式的车载接口处理器接收数据。
假定Safety Function的处理为:验证来自车辆接口处理器的与仪表盘显示相关的所有传入消息的 CRC。创建一个包含与每个 telltale 标志对应的图像的帧缓冲区,生成CRC并提供给显示子系统。检查配置的帧速率并测量延迟。
策略:测量MCU收到CAN数据以及telltale被显示时的延迟时间,如果超过100ms,需要在MCU侧进行出错处理。

上述三个策略的容错时间间隔均为300ms。

安全功能实现

接下来,我们看一下Safety Function 实现。

关于策略1:

对于上节 Safety Function 中提到的策略1,需要Display 驱动IC 支持此功能。

关于策略2:

为实现上节 Safety Function 中提到的策略2,主要包含以下几部分内容。

Safety通道

MCU和SOC之间的通信需要走一条安全的有保障的通路,所以需要对消息进行CRC校验,如果MCU和SOC之间有2条通信通道,笔者建议是让FuSa相关的Telltale消息单独走一条通道。如下图

上图中,蓝色的为MCU与SOC之间正常的通信通道。
红色表示与FuSa相关的通道。

系统方案

针对策略2,笔者参考高通的文档(如下图所示),给出实现策略2的详细方案。

AOU_1
因为8155芯片无法达到ASIL-B等级,所以需要配合一颗能够达到ASIL-B等级的MCU来组成一个可以达到ASIL-B等级的系统。MCU负责从外部收取ASIL-B相关CAN信号的数据,该数据由SOC进行显示。

AOU_2
MCU和SOC之间的通信通路需要增加CRC校验机制。

AOU_3
笔者认为,是多个telltale需要同时做CRC校验的时候,添加一个frame counter来判断当前帧属于哪个telltale(异步方式)

AOU_4
MCU需要保存所有的ASIL-B相关telltale的CRC校验码表。

AOU_5
当MCU收到ASIL-B相关telltale信号时,需要对CRC校验码表进行查表操作。

AOU_6
MCU能够对SOC发回的CRC进行对比工作。

AOU_7
MCU需要在CRC对比出错的时候能够把整个系统置为安全状态(这里并没有说安全状态是什么,后续会讨论)。

AOU_8
MCU和SOC之间的通信通路需要有软件恢复的能力。(比如:* 消息发送失败时,重新建立连接 ** 消息CRC校验失败时,进行重传 *** 消息长时间发送失败时,重启SOC等)。

AOU_9
SOC需要有一个外部watchdog进行监控(这里可以由MCU来负责监控SOC定期的喂狗)。

AOU_10
AOU_9的补充。

AOU_11
AOU_9的补充。

AOU_12
需要由外部硬件把SOC置为安全状态(这里并没有说安全状态是什么,后续会讨论)。

AOU_13
MCU同时需要一个外部watchdog进行监控。

Use Case

针对策略2,笔者这里给出结合自己理解的实现时序图,如下图所示。

在上图中,我们假设传感器以及 ”传感器2VIP 通信“ 是ASL-B的。假设Use:VIP 是 ASIL-B的。

– > N_Sensor 打开/关闭在CAN或其他车载总线上的 vector X

这里的vector X 表示所有ASIL-B相关的Telltale 状态的组合。
然后为 vector X 加载预先计算的 CRC:“CRC-VIP”(预计算CRC存储在VIP闪存表中)。

– > VIP 发送 vector X 数据(AOU:芯片间通信通过CRC,帧计数器等是ASIL-B。)到 SDM855A

根据接收的 vector X,选择要在显示器上显示的图像作为Telltale region。

– > SDM855A 从DDR中获取每个Telltale 标志的每个状态的图像

创建一个超级缓冲区,包含所有Telltale 的状态
在 SW 中计算 CRC super 缓冲区:CRC-SW

– > SDM855A 从 DDR 加载超级缓冲区的 CRC(为存储为表格的每个向量预先计算的 CRC):CRC-stored

比较加载的 CRC 和计算的 CRC。
将超级缓冲区发送到安全关键显示管道。
读回 HW 计算的CRC形式的显示管道末端(CRC-HW)并与计算的CRC(CRC-SW)进行比较。
需要注意的是,Telltale 的 Render 和 Check 应该分为两个应用。

– > SDM855A 发送 CRC-SW 到 VIP

VIP对CRC(CRC-SW vs CRC-VIP)做最终检查,如果不匹配,则中断SDM855A。
此处会对SOC产生一个中断。

– > SDM855A 发送最终的图像到 Display

在SOC测CRC校验完成后才最终显示到屏幕上。

关于策略3

在执行策略2的时候,可以连同一起把策略3执行掉。MCU检测收到CAN信号到最后MPU发来CRC值之间的时间间隔。

系统架构设计

根据上面的分析,系统大致的架构设计如下:

SOC侧模块

Telltale Renderer

接受MCU发送的Telltale Events,从Bitmap Table选择对应的Telltale Images。

计算Telltale Images的CRC-SW并和Bitmap Table中预存的CRC-STORED进行对比,发送包含CRC-SW的消息到MCU。
通过Telltale Pipeline,显示Telltale Events

Telltale Checker

接受MCU发送的Telltale Events,从Bitmap Table选择对应的Telltale Images。

计算Telltale Images的CRC-SW,使用MISR功能比对CRC-HW和CRC-SW,如出现错误则会产生一个中断。

Bitmap Table

可以是Hardcoding在代码中的一个静态数据表。
保存着Telltale Events和Telltale Bitmap的对应关系,保存着Telltale Bitmap。

MCU侧模块

Telltale Checker

保存Telltale状态,当状态变化时,发送Telltale Events给SOC。
等待SOC发送来的CRC-SW,如超时则做Safe State处理。

比较CRC-SW和本地保存的CRC-VIP的值,如不一致则做Safe State处理。

CRC Table

保存着CRC-VIP和Telltale Events的对应关系。

FuSA Channel

一条独立的通信通道(UART,SPI)。
具有带CRC校验的通信机制,并能保证通信出错时的恢复处理。

PIN for Safe State

一个外部中断或直接接SOC的RESET PIN,使得SOC进入Safe State。
高通提供的架构图 (增加了笔者的个人理解)

Telltale显示相关

对用来显示Telltale的Pipeline,不允许做任何的Scale,Sharpen等Pixel Processing, Postprocessing处理,所以需要Bypass掉这些DU中的处理单元

显示Telltale的Pipeline在OpenWFD的xml配置文件中,必须时Z-Order最高的那个图层。

Telltale显示,不可以使用基于OpenGL ES等图形库描绘后生成的图像,必须使用原始的Bitmap。

高通8155硬件提供的MISR功能功能最多能Check 4个区域的CRC,所以在设计ASIL-B Telltale布局的时候需要合理设计。

Safe State 相关

关于SOC应该进入Safe State后应该如何动作,这里高通并没有给任何建议。这里我能想到的一般就是重启SOC,也可以伴随一定的Chime音提示。

当然,因为座舱类项目的SOC驱动着2块以上的屏幕,重启导致这些屏幕短暂的全黑屏可能会造成用户的恐慌和体验下降。所以Safe State的定义还需要进一步和OEM进行讨论研究。

本期的分享就到这里。后期我们也会分享基于R-Car H3 + RH850 的智能座舱功能安全设计。欢迎订阅哦~

联系我们

微信:shactiontech
邮箱:support@shactiontech.com

04 基于高通8155的智能座舱功能安全设计相关推荐

  1. 高通8155/8295 boot分析

    目录 前言 通用boot流程 8155/8295 boot流程概述 前言 本文将基于高通8155/8295 Q+A hypervisor平台分析整个boot的启动流程.高通其他SOC芯片的启动流程大致 ...

  2. 高通8155智能座舱「风头正劲」,三款热销车型过万辆

    2021年之前,大部分市场在售车型的座舱尤其是车机芯片主要是NXP.TI.瑞萨.联发科等厂商供货.不过,随着高通8155芯片的上车,买车认准高通8155成为车市的"网红级"配置. ...

  3. [转]QNX系统-基于高通骁龙SA8155平台,中科创达发布智能驾驶舱3.0解决方案

    如果你认为本系列文章对你有所帮助,请大家有钱的捧个钱场,点击此处赞助,赞助额0.1元起步,多少随意 声明:本文只用于个人学习交流,若不慎造成侵权,请及时联系我,立即予以改正 锋影 email:1741 ...

  4. 高通8155车载芯片_WEY来“摩卡”云首秀,搭载高通8155芯片

    本期亮点  "咖啡"一词源自埃塞俄比亚的一个名叫卡法的古镇,在希腊语中"Kaweh"的意思是"力量与热情",而摩卡咖啡代表着创新和更多可能性 ...

  5. 广和通5G模组成功联调基于高通IPQ系列+骁龙X62的5G CPE方案,已实现大规模量产

    随着移动终端与IoT物联网连接数日益增长,提供智能移动连接的5G CPE发挥越来越重要的作用.5G CPE能够将基站发送的5G信号转换成宽带Wi-Fi信号,提供更高的网络连接效率和更大的覆盖范围,为用 ...

  6. 认识高通8155(开发板介绍)

    认识高通8155 一.8155芯片介绍 高通8155就是高通SA8155P芯片的简称,发布于2019年,是全球首款量产7nm制程车机芯片,整个芯片的AI算力能够达到8TOPS,同时还有蓝牙5.0.Wi ...

  7. 基于高通SNPE推理引擎的yolov5目标检测算法

    上图源自Snapdragon Neural Processing Engine SDK Reference Guide,它展示了一个Deep Learning Neural Network在SNPE环 ...

  8. 基于高通芯片组的广和通FM150 5G模组GPS测试演示

    关键词:高通  广和通  FM150  5G  GPS  GNSS 概述:基于高通芯片组的FM150模组已经内置了GNSS全球定位导航系统,默认情况下D/G天线用作分集功能,可以通过简单的AT命令打开 ...

  9. Android O Treble框架笔记(基于高通845平台)

    Android O Treble框架笔记(基于高通845平台) tags: android 文章目录 Android O Treble框架笔记(基于高通845平台) @[toc] **0 前言** * ...

最新文章

  1. AIX下两个常用命令
  2. 【转】最佳 WordPress 缓存插件:WP Super Cache
  3. swiper怎么在HTML引入JS文件,Swiper.js插件超简单实现轮播图
  4. 使用JNDI操作LDAP(4)(转载)
  5. 自言自语(2011.8.1)
  6. 2007-11-7学习EXT第一天:EXT简介
  7. IOS中NSUserDefaults的用法(轻量级本地数据存储)
  8. 任正非:华为要防止内卷 精益求精不叫内卷
  9. 我的一些学习经验:视频流媒体方面
  10. SAP License:SAP系统上线数据导入的几个注意事项
  11. 重新安装MySQL5.7.21教程_CentOS6.9安装mysql5.7.21教程
  12. python脚本打包成exe可执行文件
  13. 如何用一句话证明你搞 IT(挨踢)的?
  14. python 关于main函数以及if __name__=='__main__'的理解
  15. 如何判断你是合格的高级iOS开发工程师?
  16. java 中的连接超时_【java中处理http连接超时的方法】
  17. IDEA如何从断点里获取对象所有数据(数据量很大且不好Ctrl+C)
  18. 并不对劲的bzoj1095:p2056:[ZJOI2007]捉迷藏
  19. 微信小程序本地缓存在哪里?
  20. 【工具使用】用高效的工具,完成高效的学习和科研

热门文章

  1. 华为畅享10plus可以升级鸿蒙系统,鸿蒙系统首批升级机型名单_华为鸿蒙系统升级机型名单时间表...
  2. 解决mongodb备份无效问题
  3. pr显示计算机内存不足,英特尔解答:电脑扩展了内存,但还总是提示内存不足?...
  4. LV.11 嵌入式系统驱动初级
  5. 电脑总弹出计算机界面,每次电脑打开总是弹出很多广告窗口,怎么解决?
  6. PS 滤镜——极坐标变换到平面坐标
  7. 万字深研:元宇宙应该是生产力工具,而不只是游戏娱乐
  8. 200411 快X数据分析岗笔经
  9. python导入自定义包时无法导入自己定义的包
  10. fit、transform、fit_transform的区别和联系