• 485查看
  • 0回复

[网络开发] 闲聊Host和HSM通信方式--英飞凌、瑞萨MCU

[复制链接]


该用户从未签到

发表于 21-1-2024 11:10:19 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


1.概要

??在Evita Full等级下的HSM通常包含了一个独立cpu,因此在这个背景下讨论Host与Hsm的通信,其实也就是讨论核间通信机制。

??常见的通信方式有mailbox、共享内存;AUTOSAR OS提供了IOC的实现。这里我们用不到IOC,为啥?因为本身给HSM的Flash空间就小,再加上任务单一,如果再裁剪一个OS上去,反而成本增加并且有点大材小用。所以,今天就讲讲mailbox和共享内存的方式。

??Host和Hsm的核间通信机制需要数据的安全、完整,因此在做软件设计时,我们要充分运用芯片本身的特性做好顶层设计。

2.共享内存(Tricore 和 Renesas)

??英飞凌TC3xx系列和瑞萨的RH850-F1KM系列的HSM算是座舱域、智驾域的老熟人了,所以我们针对这些片子来分享通信方式。

??英飞凌TC3xx,在之前对其深度解析英飞凌TC3xx-TC3xx HSM启动流程、通信机制分析时我们聊过小数据的通信方式,通过Communication Unit之间进行通信,相关寄存器为HT2HSMF、HT2HSMS、HSM2HTF、HSM2HTS等等;其中后缀带F的为标志位通知,用于HSM、Host之间的标志位交流,比如说HSM_Ready\AES_DECRY\TRNG_GEN等等;而带S后缀的则用于表征状态,例如reset类型、内容有效性等,这在手册中有详细定义。

??从上面我们可以看到,寄存器仅仅只有F、S用于通信,且S后缀的有明确定义,reserved的bit位只有20个,根本无法保证例如SecOC报文的待验签数据的传输,以及MAC值的返回。所以它们之间的通信使用的还是共享内存。

??瑞萨的F1KM和英飞凌类似,而且我发现这俩寄存器命名都非常一致,例如ICU2PES、PE2ICUS等等,怀疑这俩货当时应该是同一家客户的定制需求,设计完了之后出来卖的。闲话少扯,既然这俩货差不多,通信机制都是使用共享内存,为啥?手册这么说的。

闲聊Host和HSM通信方式--英飞凌、瑞萨MCUw1.jpg

??使用共享内存,就对一段RAM空间定义一个数据结构,该数据结构包含私有协议的版本号、发送接收通道大小、错误标识等等,Demo如下:

闲聊Host和HSM通信方式--英飞凌、瑞萨MCUw2.jpg

??共享内存有不同实现方式,这里介绍ring buffer的机制,利用writeIdx和ReadIdx完成对发送和接收通道的写和读。具体原理如下:

闲聊Host和HSM通信方式--英飞凌、瑞萨MCUw3.jpg

      Host往发送通道写入数据前,首先检查writeIdx和readIdx的差值,为简单起见,一个通道一次只能放入一个job,因此这个差值如果大于1,则说明当前通道已经满了且HSM还有读取,此时需要等待hsm读取完毕后再进行写入。

??这种方式主要存在的问题在于内存的访问权限设计,必须通过MPU进行权限分配,在逻辑上存在被篡改的信息安全漏洞风险,试想在启动阶段被攻入,现在可能还觉得不可能,但是随着技术的发展,只要有漏洞,个人认为都是可以被攻破的。

3.Mailbox

??Mailbox借鉴英飞凌Communication Unit的寄存器通信方式,为每个寄存器设置各自的权限。示例如下:

闲聊Host和HSM通信方式--英飞凌、瑞萨MCUw4.jpg

      Host侧将待校验或者加解密的数据写入Mailbox的write register,在硬件设计中,mailbox会自动将数据推入对外不可见的FIFO,并通过另一个寄存器表征此时FIFO里有数据;然后mailbox可以通过中断通知HSM CPU,或者HSM CPU一直去轮询标志位;通过这种方式,需要首先定好FIFO里的软件数据结构,例如通讯协议版本号、数据长度、是否为最后一帧数据等等;这种方式由于FIFO对外的透明性,一定程度上可以规避信息安全风险。

4.小结

??以上,我们简单描述了共享内存和mailbox的通信方式,现目前市面上共享内存使用居多,这就需要软件去设计ring buffer或者其他通信机制;mailbox这种方式可以由硬件实现,软件去配置即可。这篇文章讲得比较浅显,应该还有更方便快捷安全的方法,期待大家的讨论。

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-2-2025 12:53 , Processed in 0.163133 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.