当前位置: 首页 > news >正文

1846_安全SPI

Grey

全部学习内容汇总:GitHub - GreyZhang/g_embedded: some embedded basic knowledge.

1846_安全SPI

SPI是一种常见的通信方式,在汽车电子中比较常用。但是如果涉及到安全相关的设计,可能得考虑更多。而SPI协议本身没有很好的标准化,安全SPI是这方面的一个很好的解决方案。

主题由来介绍

之前用过一些SPI的通信,其实SPI也是我最初迈入嵌入式的时候接触到的通信的功能,算得上是一种让我感觉到亲近的一种通信方式。不过安全SPI之前还真没有注意过。过去的一段时间,参与过功能安全项目的开发设计,让我对安全这样的字眼有了一些直觉上的好奇。这次看到的这个安全SPI,应该可以继续丰富补充我在安全设计方面的一些常识性短板。

资料分析

  • SPI是摩托罗拉开发出来的,主要是用于短距离通信的同步串行通信。
  • SPI并没有比常规的标准,因此各方面的开发可能种类会非常多,并且很多开发可能会重复性投入。
  • 在汽车电子领域中,经常会有一个独立的SPI监控设备用来实现安全的功能。这样的功能通常是通过硬件实现的。

  • 安全SPI可以应用于传感器、IC、ASICS以及MCU等,看起来应用的场景还是很全面的。

  • 如果片选不使能的时候,MISO以及MOSI一般来说会进入到高阻态。
  • 这里给出来了一个安暖气囊的例子,从这里看的确是有一个独立的监控器专门用来监控。如果这个只是一个监控,如何跟整个系统进行交互?这个会提供一些进入到MCU的新号?

SafeSPI对于SPI外设的供电并没有什么要求,可以是不同的。其实,这么看的话也可以是相同的。

  • 这里进一步讲了对于供电的要求,要求SPI的接口的供电必须保持一致。从这里看,其实这个标准是为了实现新号的一致性而不是考虑电源的失效。
  • 进一步考虑,其实如果一个外设的供电与SPI的供电是一起的,那么整个设计中全都采用相同的电源供电应该是满足的。

  • 时序的规范上,应该至少要能够支持到10M时钟。如果是在汽车电子用,控制类的控制器中10M也不算低了。而且,这个规范把这个定义为了一个最低标准,这样整个规范的适用性应该很不错。
  • 从网上也找到了一些芯片资料,采用了SafeSPI的标准,但是最大的时钟只支持5M。不排除之前的版本中对此要求可能低一些。

  • 为了满足SCK以及MISO的新号负载电容范围,建议增加一个可以用户编程的驱动强度以及速率的配置项。
  • 针对slave的设计,也有类似的要求,这里不做重复的整理。

  • 这里提到的参数9是一个帧间延时参数,这个参数对于不通的通信模式要求是不一样的。如果是out of frame,这个时间是要长一些的。因为需要有一定的时间去准备数据。
  • out of frame 以及 in frame 分别是一个什么概念之前是没有了解过的。结合这里的描述,应该是一个数据准备不需要时间,一个数据准备需要一定的时间。

  • SafeSPI 支持32bit以及48bit两种模式。
  • 32bit模式支持 out of frame 以及 in frame 两种模式。但是48bit只支持 out of frame 模式。
  • 关于 out of frame 以及 in frame 的解释这里有一个说明。看起来之前我理解的还是错误的, out of frame 的数据返回实在下一帧内。而我之前理解的是连续的数据传输中,需要一定的时间间隔准备数据。 in frame 的数据会在同一帧的数据之内做返回。
  • 通过这里的信息看,其实 out of frame 以及 in frame 是指一个响应的模式,跟安全其实没有什么特别的关联。

  • SafeSPI的数据格式定义为MSB。
  • 对于 out of frame 的通信读取指令,CS的上升沿或者最后一个时钟相位新号作为从机数据准备的触发信号。
  • 无论是32bit还是48bit的格式,数据帧的结构都是已经定义好了的。
  • 如果从机接收到了无法识别的命令,应该按照规范中的应答格式进行响应回复。

  • SafeSPI中从机寻址有5种模式,第一种是采用CS的方式。剩下的4种需要结合一个TA数值,TA为 target address 的缩写。TA可能有1bit或者2bit,体现的形式可能是pin的配置也可能是从机中的NVM编程bit。这样,一共可以组合出来5种寻址模式。
  • 按照TA的方式进行寻址的方式,让主机可以不用那么多的控制线就可以带最多4个从机。

  • 关于寄存器的bit定义,只看一下这个帧类型这部分。其他的部分可以结合具体的芯片在应用中继续做拆解分析。这类的这个帧类型,其实更多的是提示不同模式中下一帧的数据会是什么信息。

  • SafeSPI协议中规定了一个CRC的校验,这样可以确保数据的可靠性。

  • 只是前面提到的一个错误处理的定义表。从表格中可以看得出来,并不是所有的错误都会有显式的响应。有时候,针对错误的输入可能是没有任何动作。

其他

继续往后主要是48bit模式的一些说明,这个我感觉短时间内可能不会用到,暂且先不去做深一步的了解。不过从后面的信息浏览中至少是可以看得出来,48bit的CRC校验与32bit还是不一样的。此外,从机可能会同时支持32bit以及48bit两种模式。

小结

随着科技的进步以及人们对于安全的重视,未来汽车电子中的功能安全设计肯定会被考虑的越来越多。针对类似的统一性标准做一下了解,对于未来面对随时可能出现的工程实施诉求还是有很大的帮助的。

相关文章:

1846_安全SPI

Grey 全部学习内容汇总:GitHub - GreyZhang/g_embedded: some embedded basic knowledge. 1846_安全SPI SPI是一种常见的通信方式,在汽车电子中比较常用。但是如果涉及到安全相关的设计,可能得考虑更多。而SPI协议本身没有很好的标准化&am…...

SQL Server ,使用递归查询具有层级关系的数据。

假设我们有一个表格 Employees,其中包含员工的层级关系信息,每一行包括员工的ID、姓名以及上级员工的ID。 下面是一个示例表格及其数据: Employees ---------------------- EmployeeID | Name | ManagerID ---------------------- 1 …...

【参数汇总】mysql服务端/客户端常见优化参数

mysql服务端参数 1、innodb_buffer_pool_size (innodb索引buffer pool缓冲区大小) 默认大小为128M, 官方推荐其配置为系统内存的 50% 到 75% 。 一般innodb_buffer_pool_size要结合以下两个参数来设置: innodb_buffer_pool_ch…...

LeetCode 142. 环形链表 II

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整…...

Leetcode刷题笔记题解(C++):224. 基本计算器

思路: step 1:使用栈辅助处理优先级,默认符号为加号。 step 2:遍历字符串,遇到数字,则将连续的数字字符部分转化为int型数字。 step 3:遇到左括号,则将括号后的部分送入递归&#x…...

还在为学MyBatis发愁?史上最全,一篇文章带你学习MyBatis

文章目录 前言一、📖MyBatis简介1.Mybatis历史2.MyBatis特性3.对比(其他持久化层技术) 二、📣搭建MyBatis1.开发环境2.创建maven工程3.创建MyBatis核心配置文件4.创建mapper接口5.创建MyBatis的映射文件6.通过junit测试功能7.加入…...

C# WPF上位机开发(树形控件在地图软件中的应用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们聊过图形软件的开发方法。实际上,对于绘制的图形,我们一般还会用树形控件管理一下。举个例子,一个地图…...

【华为】文档中命令行约定格式规范(命令行格式规范、命令行行为规范、命令行参数格式、命令行规范)

文章目录 命令行约定格式**粗体&#xff1a;命令行关键字***斜体&#xff1a;命令行参数*[ ]&#xff1a;可选配置{ x | y | ... } 和 [ x | y | ... ]&#xff1a;选项{ x | y | ... }* 和 [ x | y | ... ]*&#xff1a;多选项&<1-n>&#xff1a;重复参数#&#xff…...

Trie 字典树(c++)(前缀)

题目链接&#xff1a;用户登录 题目&#xff1a; 样例&#xff1a; 输入 5 3 aaa aba aabbaa abbbbb cdd aabba abc abab 输出 Y N N 思路&#xff1a; 根据题目意思&#xff0c;要用到 Trie 字典树算法。 Trie 字典树&#xff0c;顾名思义&#xff0c;“字典”&#xff0…...

全球移动通信(2G/3G/4G/5G)频谱分布情况

一、概述 随着通信技术的不断发展&#xff0c;全球各国都在积极推进2G、3G、4G、5G网络的建设和应用。根据FCC统计&#xff0c;目前全球移动通信频谱分布如下&#xff1a; 二、分布 &#xff08;一&#xff09;俄罗斯 2G&#xff1a;主要使用900MHz和1800MHz两个频段。其中&…...

【04】GeoScene导出海图或者电子航道图000数据成果

1创建一个带有覆盖面和定义的产品 如果你没有已存在的S-57数据&#xff0c;你可以通过捕捉新的产品覆盖范围&#xff08;多边形产品范围&#xff09;及其所需的产品定义信息&#xff08;产品元数据&#xff09;来为新产品创建基础。 注&#xff1a; 如果你已经有一个S-57数据…...

安卓端出现https请求失败(转)

背景# 某天早上&#xff0c;正在一个会议时&#xff0c;突然好几个同事被叫出去了&#xff1b;后面才知道&#xff0c;是有业务同事反馈到领导那里&#xff0c;我们app里面某个功能异常。 具体是这样&#xff0c;我们安卓版本的app是禁止截屏的&#xff08;应该是app里做了拦…...

appium2.0.1安装完整教程+uiautomator2安装教程

第一步&#xff1a;根据官网命令安装appium&#xff08;Install Appium - Appium Documentation&#xff09; 注意npm前提是设置淘宝镜像&#xff1a; npm config set registry https://registry.npmmirror.com/ 会魔法的除外。。。 npm i --locationglobal appium或者 npm…...

Hbase的Rowkey设计

Hbase的Rowkey设计 rowkey设计 # 1&#xff09;长度原则# 最大64KB&#xff0c;推荐长度10~100 byte# 最好设为8的倍数&#xff0c;能短则短&#xff0c;rowkey如果太长会影响性能。# 2&#xff09;唯一原则&#xff1a;rowkey应该具备唯一性# 3&#xff09;散列原则…...

软考机考考试第一批经验分享

由于机考的特殊性&#xff0c;考试环境与传统笔试环境有所不同。下面是与考试环境相关的总结&#xff1a; 草稿纸&#xff1a;考场提供足够数量的草稿纸&#xff0c;每位考生都会分发一张白纸作为草稿纸。在草稿纸上需要写上准考证号。如果不够用&#xff0c;可以向监考老师再次…...

架构简洁之道有感,谈谈软件组件聚合的张力

配图由腾讯混元助手生成 这篇文章介绍了软件架构设计中组件设计思想&#xff0c;围绕“组件间聚合的张力”这个有意思的角度&#xff0c;介绍了概念&#xff0c;并且结合架构设计示例对这个概念进行了进一步阐述。 组件聚合&#xff1f;张力&#xff1f;这标题&#xff0c;有种…...

计算机网络 网络层上 | IP数据报,IP地址,ICMP,ARP等

文章目录 1 网络层的两个层面2 网络协议IP2.1 虚拟互联网络2.2 IP地址2.2.1 固定分类编址方式2.2.2 无分类编制CIDR2.2.3 MAC地址和IP地址区别 2.3 地址解析协议ARP2.3.1 解析过程 2.4 IP数据报格式 3 IP层转发分组流程4 国际控制报文协议ICMP4.1 ICMP格式结构4.2 分类4.2.1 差…...

金智融门户(统一身份认证)同步数据至钉钉通讯录

前言:因全面使用金智融门户和数据资产平台,二十几个信息系统已实现统一身份认证和数据同步,目前单位使用的钉钉尚未同步组织机构和用户信息,职工入职、离职、调岗时都需要手工在钉钉后台操作,一是操作繁琐,二是钉钉通讯录更新不及时或经常遗漏,带来管理问题。通过金智融…...

服务器RAID配置及功能介绍

服务器RAID配置及功能介绍 一、RAID磁盘阵列详解1.RAID磁盘阵列介绍2.RAID 03.RAID14.RAID35.RAID56.RAID67.RAID 10总结阵列卡介绍 一、RAID磁盘阵列详解 1.RAID磁盘阵列介绍 ①是Redundant Array of lndependent Disks的缩写中文简称为独立冗余磁盘阵列。 ②把多块独立的物…...

vue + element 实现鼠标左右滑动效果

我用了element中的走马灯&#xff0b;overflow-x: auto; html &#xff08;复制后格式化一下&#xff09; <div class"scroll" id"entrance"><el-carousel height"150px" :autoplay"false" :loop"false" arrow&q…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...