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】 前面我们聊过图形软件的开发方法。实际上,对于绘制的图形,我们一般还会用树形控件管理一下。举个例子,一个地图…...
【华为】文档中命令行约定格式规范(命令行格式规范、命令行行为规范、命令行参数格式、命令行规范)
文章目录 命令行约定格式**粗体:命令行关键字***斜体:命令行参数*[ ]:可选配置{ x | y | ... } 和 [ x | y | ... ]:选项{ x | y | ... }* 和 [ x | y | ... ]*:多选项&<1-n>:重复参数#ÿ…...
Trie 字典树(c++)(前缀)
题目链接:用户登录 题目: 样例: 输入 5 3 aaa aba aabbaa abbbbb cdd aabba abc abab 输出 Y N N 思路: 根据题目意思,要用到 Trie 字典树算法。 Trie 字典树,顾名思义,“字典”࿰…...
全球移动通信(2G/3G/4G/5G)频谱分布情况
一、概述 随着通信技术的不断发展,全球各国都在积极推进2G、3G、4G、5G网络的建设和应用。根据FCC统计,目前全球移动通信频谱分布如下: 二、分布 (一)俄罗斯 2G:主要使用900MHz和1800MHz两个频段。其中&…...
【04】GeoScene导出海图或者电子航道图000数据成果
1创建一个带有覆盖面和定义的产品 如果你没有已存在的S-57数据,你可以通过捕捉新的产品覆盖范围(多边形产品范围)及其所需的产品定义信息(产品元数据)来为新产品创建基础。 注: 如果你已经有一个S-57数据…...
安卓端出现https请求失败(转)
背景# 某天早上,正在一个会议时,突然好几个同事被叫出去了;后面才知道,是有业务同事反馈到领导那里,我们app里面某个功能异常。 具体是这样,我们安卓版本的app是禁止截屏的(应该是app里做了拦…...
appium2.0.1安装完整教程+uiautomator2安装教程
第一步:根据官网命令安装appium(Install Appium - Appium Documentation) 注意npm前提是设置淘宝镜像: npm config set registry https://registry.npmmirror.com/ 会魔法的除外。。。 npm i --locationglobal appium或者 npm…...
Hbase的Rowkey设计
Hbase的Rowkey设计 rowkey设计 # 1)长度原则# 最大64KB,推荐长度10~100 byte# 最好设为8的倍数,能短则短,rowkey如果太长会影响性能。# 2)唯一原则:rowkey应该具备唯一性# 3)散列原则…...
软考机考考试第一批经验分享
由于机考的特殊性,考试环境与传统笔试环境有所不同。下面是与考试环境相关的总结: 草稿纸:考场提供足够数量的草稿纸,每位考生都会分发一张白纸作为草稿纸。在草稿纸上需要写上准考证号。如果不够用,可以向监考老师再次…...
架构简洁之道有感,谈谈软件组件聚合的张力
配图由腾讯混元助手生成 这篇文章介绍了软件架构设计中组件设计思想,围绕“组件间聚合的张力”这个有意思的角度,介绍了概念,并且结合架构设计示例对这个概念进行了进一步阐述。 组件聚合?张力?这标题,有种…...
计算机网络 网络层上 | 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中的走马灯+overflow-x: auto; html (复制后格式化一下) <div class"scroll" id"entrance"><el-carousel height"150px" :autoplay"false" :loop"false" arrow&q…...
Phi-3-mini-4k-instruct-gguf一文详解:GGUF格式优势与Phi-3系列轻量设计哲学
Phi-3-mini-4k-instruct-gguf一文详解:GGUF格式优势与Phi-3系列轻量设计哲学 1. 认识Phi-3-mini-4k-instruct-gguf Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型,采用GGUF格式封装。这个模型特别适合处理问答、文本改写、摘要整…...
缺失值处理太慢?重复检测卡顿?Polars 2.0清洗提速秘技,一文掌握5大核心模式
第一章:Polars 2.0数据清洗性能瓶颈的本质剖析Polars 2.0 在引入 LazyFrame 默认执行模型与物理计划优化器后,显著提升了复杂 ETL 流水线的吞吐能力,但实际数据清洗场景中仍频繁出现 CPU 利用率不均、内存驻留时间过长及 UDF 执行退化等现象。…...
2026年Java程序员冲大厂有何经验套路?
前几天,跟个老朋友吃饭,他最近想跳槽去大厂,觉得压力很大,问我能不能分享些所谓的经验套路。每次有这类请求,都觉得有些有趣,不知道你发现没有大家身边真的有很多人不知道怎么面试,也不知道怎么…...
GCC编译选项详解与优化技巧
1. GCC编译选项核心功能解析作为Linux环境下最常用的编译器套件,GCC的编译选项直接影响着代码的生成质量与运行效率。在实际开发中,合理配置编译选项往往能达到事半功倍的效果。本文将系统梳理GCC的核心编译选项,重点解析那些容易被忽视但极具…...
Exchange邮件批量删除工具有了网络版了
原有的<<Exchange邮件批量删除工具>>单机版现在已经更新为BS架构网络版,这样只要有网络就可以使用此系统了,方便随时应急。产品也启用了新名称为:MIRS邮件应急响应系统。此系统在几个有大型Exchange server部署的客户处使用效果很…...
重磅发布!集装箱式SST直流移动智算中心
NEWS3月28日,台达、汉腾科技与龙芯中科联合宣布重磅发布集装箱式 SST(固态变压器)直流移动智算中心,发布活动于台达吴江制造基地举行。这款全新方案以台达 SST 固态变压器为核心能源支撑,深度集成CPU、AI 加速卡与服务…...
VBA数据库解决方案第二十九讲 如何批量修改数据库中的数据
《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…...
如何用MicroSIP实现远程办公通话?2024最新SIP协议设置指南
2024远程办公通话实战:MicroSIP高级配置与网络优化全攻略 远程办公已成为现代企业运营的标配,而稳定高效的语音通信系统则是团队协作的基石。作为一款轻量级开源SIP客户端,MicroSIP凭借其低延迟、高兼容性和零成本优势,正在成为中…...
探索偏心轮飞剪的 Codesys 程序奥秘:基于偏心轮加滑块机构
偏心轮 飞剪 电子凸轮 codesys程序源码 适用于偏心轮加滑块机构 在自动化控制领域,偏心轮飞剪系统凭借其独特的运动特性和高效的切割能力,在众多生产场景中发挥着关键作用。今天咱们就深入探讨基于偏心轮加滑块机构的偏心轮飞剪的 Codesys 程序源码&…...
Windows平台用CMake+VS2019编译NLopt的完整流程(附环境变量配置)
Windows平台用CMakeVS2019编译NLopt的完整流程(附环境变量配置) 在科学计算和优化算法开发领域,NLopt作为一个功能强大的开源库,提供了多种非线性优化算法的实现。对于Windows平台的C开发者而言,掌握从源码构建NLopt的…...
