【学习笔记】地平线J3J5J6E对比

内容J3J5J6E
CPU

4核Cortex-A53

1.2GHz

8核Cortex-A55

1.2GHz

6核Cortex-A78AE

1.5GHz

MCU/

MStar

双核锁步Cortex-MStar

2核Cortex-R52+

One DCLS core pairand one Split-Lock core

1.2GHz

GPU//

Mail-G78AE

800MHz

100 FP32 GFLOPS

BPU

2*Bernoulli-architecture

5TOPS 

2*Bayes-architecture

128TOPS

1*Nash-architecture

80TOPS

MIPI

4*2.5G MIPI CSI RX

2*2.5G MIPI CSI TX

3*4.5G MIPI CSI RX

2*2.5G MIPI CSI TX

I2C68

6(CPU)

4(MCU)

PCM1/2(CPU)
DVP11/
USB2.01(CPU)
SPI3

4*SPI master

2*SPI slave

其中1路复用

2(Master/CPU)

6(4*Master-Slave+2*Master/MCU)

UART44

4(CPU)

3(MCU)

CAN/410
ETH1*1Gb

2*1Gb

其中一路支持TSN

2*1Gb(CPU)

其中一路支持TSN

1*1Gb(MCU)

支持TSN

PCIe/Gen3 2LaneGen3 4Lane
PWM/212(MCU)
LPWM/16
EMMC111
SD/SDIO111
DSP121
I2S222
CAN//10(MCU)
LIN//3
DRAMLPDDR4/LPDDR4XLPDDR4/4XLPDDR5/4X

功能安全入门-地平线J5功能安全岛(FSI)分

image.png

既然大家玩FSI安全岛的概念,那么跟汽车有关系的SoC肯定也要有这东西。例如国内的地平线J5上,如上图所示就有安全岛,明确支持了双核锁步MCU。

更加详细的可以看芯片框图如下: 

image.png

1. 整体介绍

地平线J5 SoC系列是根据ISO26262开发的,并且具有全面的安全方案,以达到较高的汽车安全完整性水平(ASIL),这对ADAS和自动驾驶应用至关重要。

image.png

安全子系统是一个中央错误收集和处理系统。它由双核锁步皮层MStar、FCHM模块和丰富的外设组成,包括以太网、CAN FD、UART、SPI、PVT、CMM、计时器、SPIN_LOCK、WDT、I2C等。

双核锁步Cortex MStar处理器有指令TCM和数据TCM,每个都有双字数据宽度。MStar处理器配置了64KB ITCM、32KB DTCM、16KB ICACHE和16KB DCACHE。S-AHB接口用于对内存映射的SRAM、外围组件和外部设备的指令获取和数据访问。双核锁步DMAC支持4个DMAC通道和16个硬件握手。

FCHM模块提供了一种用于收集错误通知并引导设备进入安全状态的硬件机制。它主要收集三种类型的错误:

  1. 软件错误:由软件触发写FCHM配置寄存器,最大64错误源,必须是关键错误,可以设置是否重启,有使能位
  2. 硬件错误:512个硬件错误源,可以设置关键错误和非关键,可以设置是否重启,有使能位
  3. 外部错误:SoC外部设备错误,32个错误源,都是非关键错误,可以设置A核或者MSTAR处理,软件决定处理策略。

每个硬件错误都可以配置为严重错误或非严重错误。如果断言一个关键错误或自检BIST错误,两个错误pad将以重复或反向模式输出错误,以便系统能够感知到SoC的错误。有关FCHM的更多详细描述,请参考安全手册。SPI/I2C可以与具有安全协议的系统进行通信,这可以在安全手册中找到。

功能安全的设计是应用在SoC的各个模块,FSI只是集中处理错误的一个模块,各个模块根据自己的需求和预算选择合适的ASIL等级设计。特别是一些关键模块,例如J5 A核上的GIC 500就进行了功能安全设计,其他例如ISP、MIPI等关键硬件模块。

2. MStar

image.png

MStar处理器是一种高效节能和可配置的处理器,旨在用于需要快速中断响应特性的微控制器和深度嵌入式应用程序。该处理器基于ARMv8-M架构,主要用于安全性很重要的环境中。

image.png

两个处理器在系统启动期间初始化为相同的状态,它们接收相同的输入(代码、总线操作和异步事件),因此在正常操作期间,两个处理器的时钟状态是相同的。据说他们是同步运作的。步进技术假设一个错误的处理器会导致不同两个处理器的状态不同,最终将表现为不同的输出,所以步进系统监控两个处理器的输出和标志一个错误的差异。

3. 其他外围器件

3.1 SYSCNT

J5有一个系统计数器(SYSCNT),用于生成64位滚动时间,并将其分发到用于对齐跟踪信息的其他系统组件。采用锁定步骤,以支持功能安全。

SYSCNT有两个APB接口:一个用于读取计数器值和管理寄存器的只读接口,以及一个编程接口。

锁定步骤SYSCNT组件实现了一个可编程定时器,以生成一个64位的滚动时间,用于在不同的系统组件内的时间戳对齐。SYSCNT使用预先配置的计数时钟,特定频率应该是每秒。

3.2 PIN

该设备有大量的数字盘和模拟盘,以满足与其他外部设备的交互,包括电源pads和信号pads。所有的护垫都处于超低功耗域,使来自外部设备的唤醒事件能够唤醒当前的设备,并简化设计。

3.3 GPIO

通用输入/输出(GPIO)外设提供专用的通用引脚,可以配置为输入或输出。当配置为输出时,用户可以写入内部寄存器来控制在输出引脚上驱动的状态。当配置为输入时,用户可以通过读取内部寄存器的状态来获得输入的状态。

3.4 PVTC

PVTC用于控制过程检测器(PD)、VM和TS传感器的多个控制器的行为。CPU通过NoC和APB总线访问PVTC寄存器。PVTC使用串行接口来控制传感器,当传感器相对于PVTC进行远程放置时,串行接口大大减少了需要路由的信号数量。在安全子系统中实例化了两个PVTC,每个都有8个温度传感器(TS)、1个电压监视器(VM)和4个PD。

PVTC有以下关键功能:

  • 写锁功能提供保护防止无意重新配置
  • 自动轮询电压监测测量通道(通常16小时)
  • 最小化信号路由,嵌入式模块串行连接使用星形拓扑
  • 时钟合成器生成串行时钟和定时控制的嵌入式模块
  • 串行接口包括远程数据回路支持系统集成测试
  • 嵌入式模块可以单独禁用(时钟门关闭)
  • 数据恢复可能是中断驱动,轮询或纯粹基于警报事件
  • 为了支持代码开发,可以为测试目的强制中断
  • 在过渡期间为空白恢复的数据提供一个样本丢弃功能。两个可编程(上升或下降)硬件警报包含每个TS和PD设备
  • 两个可编程(上升或下降)硬件警报包含每个VM CH
  • 状态寄存器记录每个TS,PD和VM CH接收的最小和最大数据值
  • 样本计数器提供TS,VM和PD设备提供IRQ通电定时器,以支持TS、PD和VM设备
  • 测试访问模式,允许控制器的串行测试访问数据寄存器连接到IJTAG(IEEE-1687)风格的嵌入式测试网络

3.5 UART

通用异步接收器/发射器(UART)是一种符合AMBA3.0标准的高级外围设备总线(APB)从属设备。UART根据行业标准16550进行建模。但是,寄存器地址空间被重新定位到32位数据边界。UART可以使用GUI进行配置、合成和验证。UART用于与:

  • 外设
  • 调制解调器(数据载体设备,DCE)
  • 数据集进行串行通信

3.6 SPINLOCK

旋锁模块最多实现128个旋锁键对,每个旋锁键对由8位Get_key和8位Call_key组合。Get_key和Call_key使用奇偶校验方案来实现功能安全。奇偶校验方案是每8个数据位有1个奇偶校验位。每个旋转锁键对都支持错误注入功能。

旋锁有以下关键功能:

  • 符合APB 3.0规范
  • 每个Get_key和Call_key结合一个旋锁键对
  • Get_key和Call_key有8位物理配置寄存器
  • 最大旋锁键对128奇偶校验CSR寄存器,1奇偶校验位每8数据位
  • 支持故障注入检查奇偶校验生成器

3.7 Timer

设备中有2个锁步定时器模块,它们都在安全子系统中。所有计时器都包括特定的功能,以产生准确的操作系统中断的提示。

每个计时器都可以从几个不同的独立时钟上进行时钟。时钟源的选择来自于CGM_TIMER0_SEL/CGM_TIMER1_SEL中的寄存器。 锁步计时器有以下功能:

  • APB2接口支持-
  • 最多8个可编程计时器为1计时器实例
  • 32-位计时器计数器宽度支持两种操作模式:自由运行和用户定义的计数支持独立时钟的计时器
  • 主动高中断
  • 组件生成一个中断结合所有计时器中断
  • 实例化2锁步计时器,每个有8个计时器
  • 不支持PWM模式

3.8 WDT

J5中有11个Window WDT(WWDT)模块,它们都在SafetySYS中。WWDT能够根据配置产生超时中断/重位。所有的WWDT模块都被映射到不同的核心,每个WWDT都属于一个核心。WWDT可以从几个不同的独立时钟上进行时钟。时钟源可以从CGM_WDT_SEL中的寄存器中选择。

3.9 VIC

VIC是位于Acore、Mcore和两个vdsp之间的虚拟中断。一个核心可以通过配置几个寄存器来向另一个核心发送一个虚拟中断。

VIC具有以下关键功能:

  • A55向A55 MStar发送虚拟中断、VDSP0和VDSP1
  • MStar向A55、MStar、VDSP0和VDSP1
  • VDSP0向A55、MStar、VDSP0和VDSP1
  • VDSP1向A55、MStar、VDSP0和VDSP1发送虚拟中断

4. J5安全机制

4.1 错误管理

按错误检测的时机,错误分为两类:

  1. 系统启动阶段:Logic BIST、Memory BIST、Self-Test。
  2. 系统运行阶段:软件STL或者硬件IP内集成的方法

对于错误需要定级别,并且需要考虑故障的处理策略方法、反应时间、监测时间等

4.2 安全监测

J5 SoC有53个功能IP常用的检查机制,对IP进行功能失效分析及影响评估,进而进行处理。常用的功能安全监测和处理方法如下:

  1. 寄存器parity校验
  2. 存储的CRC校验
  3. 存储的ECC校验
  4. 功能IP的锁步
  5. APB总线超时检测
  6. 设备内存和寄存器写后读回检查
  7. 中断触发后读寄存器确认
  8. 接口读检测
  9. IP硬件自检
  10. watchdog超时检查
  11. CPU STL

后记:

功能安全有很多策略,内功心法ISO26262中也没明确说我们要用什么技术去实现,主要还是需要根据自己的业务或者重要功能去做功能安全比较好。例如智能驾驶SoC中主要保证摄像头雷达的数据处理,整个数据处理链条上的软硬件就必须都要加强功能安全设计,这样自动驾驶的时候才能保证人的生命安全。

功能安全放在硬件上的成本是比较贵的,但是比软件可靠,放软件也会降低执行效率,所以不是什么东西都需要功能安全,根据我们的业务需求去权衡

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/432810.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试部署单副本 oceanbase-3.2.4.1 企业版

由于项目需要,测试部署单副本 oceanbase-3.2.4.1 企业版 1.安装前提 准备4cpu,12G内存,100G磁盘 统为centos7.9 yum install -y yum-utils wget net-tools tree yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo 2.创建用…

计算机毕业设计Hadoop+Spark知识图谱体育赛事推荐系统 体育赛事热度预测系统 体育赛事数据分析 体育赛事可视化 体育赛事大数据 大数据毕业设计

《HadoopSpark知识图谱体育赛事推荐系统》开题报告 一、研究背景及意义 随着互联网技术的迅猛发展和大数据时代的到来,体育赛事数据的数量呈爆炸式增长。用户面对海量的体育赛事信息,常常感到信息过载,难以快速找到感兴趣的赛事内容。如何高…

C语言中的一些小知识(三)

一、你了解printf()吗? 你知道下面代码的输出结果吗? int a123; printf("%2d \n",a); printf() 函数是 C 语言中用于格式化输出的标准函数,它允许你将数据以特定的格式输出到标准输出设备(通常是屏幕)。p…

uniapp 知识点

自定义导航 在page.json navigationstyle":"custom"navigateTo传参 页面传参只能onLoad(option)里面拿 px和upx的关系 在750设计图中,1px1upx 路由 navigateBack返回上一页 重定向 其实就是把当前页面干掉了 公共组件和页面共同点 computed,watc…

vue初学随笔

Vue基础 Vue基本概念 Vue是什么 Vue是一个渐进式的JavaScript框架,它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。 渐进式:各个特性可以根据项目需要逐渐引入和…

认知杂谈84《菜鸟的自我修炼:知易行难与行难知易》

内容摘要: 理解与行动之间的差距是日常生活的常见挑战。"知易行难"体现在理解简单但执行困难,例如知道蔬菜有益但难以坚持食用。而"行难知易"则是开始时困难但后来容易的任务,如学习骑自行车。 这种差异源于心理惰性和习…

Oracle RMAN 无敌备份脚本

1 说明 上一篇文章:Oracle逻辑备份脚本,介绍了如何部署Oracle数据库的逻辑备份脚本,在数据迁移场景下十分好用,但是作为备份来说有点牵强。仅仅有逻辑备份时,当故障发生后,逻辑备份恢复只能恢复到某一时刻…

OpenHarmony(鸿蒙南向)——平台驱动指南【MIPI CSI】

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 概述 功能简介 CSI(Camera Serial Interface&#xf…

JavaScript 学习

一、输出 为方便调试可以输出内容&#xff0c;但是用户是看不到的。要在开发者模式中看。 console . log ( "Hello" )&#xff1b; 二、外部文件引用 可以直接在html中写JS <head> <meta charset"utf-8"> <script> console.log("he…

Java面试题之JVM20问

1、说说 JVM 内存区域 这张图就是一个 JVM 运行时数据图&#xff0c;「紫色区域代表是线程共享的区域」&#xff0c;JAVA 程序在运行的过程中会把他管理的内存划分为若干个不同的数据区域&#xff0c;「每一块儿的数据区域所负责的功能都是不同的&#xff0c;他们也有不同的创建…

MAGICORE:基于多代理迭代的粗到细精炼框架,提升大语言模型推理质量

大语言模型(LLM)的推理能力可以通过测试时聚合策略来改进,即为每个问题生成多个样本并对它们进行聚合以找到更好的答案。这些方法往往会达到饱和点,超过这个点后额外的样本不会带来更多收益。精炼(refinement)提供了另一种选择,它使用模型生成的反馈不仅采样更多解决方案,还提高…

使用离火插件yoloV8数据标注,模型训练

1. 启动 2.相关配置 2.1 data.yaml path: D:/yolo-tool/yaunshen-yolov8/YOLOv8ys/YOLOv8-CUDA10.2/1/datasets/ceshi001 train: images val: images names: [蔡徐坤,篮球] 2.2 cfg.yaml # Ultralytics YOLOv8, GPL-3.0 license # Default training settings and hyp…

解读 Story Protocol:IP 与区块链的潜力与障碍

撰文&#xff1a;100y.eth 编译&#xff1a;J1N&#xff0c;Techub News 8 月&#xff0c;据 The Block 报道&#xff0c;专注于知识产权&#xff08;IP&#xff09;的区块链 Story 宣布完成 a16z Crypto 领投 8000 万美元 B 轮融资&#xff0c;参投方包括 Polychain Capital&…

AI搜索软件哪个好,AI搜索引擎工具分享

随着AI技术的发展&#xff0c;AI搜索引擎工具正逐渐成为我们信息获取的重要方法。下面小编就来和大家分享一些好用的AI搜索引擎软件&#xff0c;感兴趣的同学可以逐个使用体验一下。因为每个AI搜索引擎工具不同&#xff0c;建议大家搜索的时候可以多个工具搜索&#xff0c;然后…

Java笔试面试题AI答之设计模式(1)

文章目录 1. 简述什么是设计模式 &#xff1f;2. 叙述常见Java设计模式分类 &#xff1f;3. Java 设计模式的六大原则 &#xff1f;4. 简述对 MVC 的理解&#xff0c; MVC 有什么优缺点&#xff1f;MVC 的三个核心部分&#xff1a;MVC 的优点&#xff1a;MVC 的缺点&#xff1a…

已存在的Python项目使用依赖管理工具UV

1. 文档 uv文档 2. 如何转换 初始化 uv initrequirements.txt转换成pyproject.toml uv add $(cat requirements.txt)删除requirements.txt 如果更新pyproject.toml之后&#xff0c;使用命令 uv sync替换项目环境 如果有库没有加入依赖&#xff0c;自己手动加一下&am…

助力降本增效,ByteHouse打造新一代云原生数据仓库

随着数据量的爆炸式增长、企业上云速度加快以及数据实时性需求加强&#xff0c;云原生数仓市场迎来了快速发展机遇。 据 IDC、Gartner 研究机构数据显示&#xff0c;到 2025 年&#xff0c;企业 50% 数据预计为云存储&#xff0c;75% 数据库都将运行在云上&#xff0c;全球数据…

【Kubernetes】日志平台EFK+Logstash+Kafka【实战】

一&#xff0c;环境准备 &#xff08;1&#xff09;下载镜像包&#xff08;共3个&#xff09;&#xff1a; elasticsearch-7-12-1.tar.gz fluentd-containerd.tar.gz kibana-7-12-1.tar.gz &#xff08;2&#xff09;在node节点导入镜像&#xff1a; ctr -nk8s.io images i…

webpack使用

一、简介 概述 本次使用webpack4进行构建打包 二、webpack 安装webpack、webpack-cli npm install webpack4.2.0 webpack-cli4.2.0 -D 三、loader 加载器概述 raw-loader&#xff1a;加载文件原始内容&#xff08;utf-8&#xff09; file-loader&#xff1a;把文件输出…

CentOS 7 中安装 docker 环境

作者&#xff1a;程序那点事儿 日期&#xff1a;2023/02/15 02:31 官网地址 官网文档 docker三种网络模式 Docker CE 支持 64 位版本 CentOS 7&#xff0c;并且要求内核版本不低于 3.10&#xff0c; CentOS 7 满足最低内核的要求。 Docker 分为 CE 和 EE 两大版本。CE 即社区…