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两种模式。

小结

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

相关推荐
WTT00112 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
群联云防护小杜5 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
ihengshuai5 小时前
HTTP协议及安全防范
网络协议·安全·http
黑客Jack6 小时前
防御 XSS 的七条原则
安全·web安全·xss
云云3216 小时前
怎么通过亚矩阵云手机实现营销?
大数据·服务器·安全·智能手机·矩阵
神一样的老师7 小时前
面向高精度网络的时间同步安全管理架构
网络·安全·架构
云云3219 小时前
云手机方案全解析
大数据·服务器·安全·智能手机·矩阵
云云3219 小时前
云手机能用来干什么?云手机在跨境电商领域的用途
服务器·线性代数·安全·智能手机·矩阵
云云32110 小时前
云手机方案总结
服务器·线性代数·安全·智能手机·矩阵
m0_7482370510 小时前
2024年“羊城杯”粤港澳大湾区网络安全大赛 初赛 Web&数据安全&AI 题解WriteUp
前端·安全·web安全