英飞凌 AURIX 系列单片机的HSM详解(4)——Tricore核与HSM核之间的通信方法

article/2025/9/23 4:49:11

本系列的其它几篇文章:

《英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM》
《英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器》
《英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法》
《英飞凌 AURIX 系列单片机的HSM详解(5)——HSM硬件加速模块的使用》

因为HSM有单独的一个ARM核,实际使用过程中HSM核与主CPU Tricore核之间需要进行通信,本文就来介绍一下二者之间的通信方法。

1. 中断

HSM核可以向主核发送中断,支持两个中断,主Tricore核中断控制寄存器地址分别为:0xF0038870u 、0xF0038874u,在iLLD中的定义如下:

/** \brief  870, HSM Service Request */
#define SRC_HSM_HSM0_HSM0 /*lint --e(923)*/ (*(volatile Ifx_SRC_SRCR*)0xF0038870u)/** Alias (User Manual Name) for SRC_HSM_HSM0_HSM0.
* To use register names with standard convension, please use SRC_HSM_HSM0_HSM0.
*/
#define	SRC_HSM0	(SRC_HSM_HSM0_HSM0)/** \brief  874, HSM Service Request */
#define SRC_HSM_HSM0_HSM1 /*lint --e(923)*/ (*(volatile Ifx_SRC_SRCR*)0xF0038874u)/** Alias (User Manual Name) for SRC_HSM_HSM0_HSM1.
* To use register names with standard convension, please use SRC_HSM_HSM0_HSM1.
*/
#define	SRC_HSM1	(SRC_HSM_HSM0_HSM1)

初始化中断后,HSM核可以软件触发该中断,使主Tricore核进入中断执行程序。

主核初始化中断示例代码:

void init_interrupts(void)
{SRC_HSM0.U = (0 << 11) | (1 << 10) | 1;		/* 0<11 => ON CPU0, 1<<10 => Enable*/interruptHandlerInstall(1, (uint32) &Bridge2Host_IRQHandler);
}
sint32 Bridge2Host_IRQHandler(void)
{/***中断处理函数***/
}

2. 共享内存

TC3XX系列MCU有一块RAM空间被预留了出来,用于在主核和HSM核之间互相传递数据,被称为主核与HSM核之间的“桥梁”(Bridge):
在这里插入图片描述
其定义如下:

/*------------- BRIDGE Module   ----------------------------------------------*/
typedef struct
{uint32_t RESERVED0[2]             ;__IO uint32_t HSM_ID                   ; // Module Identifier Registeruint32_t RESERVED1[5]             ;__IO uint32_t HT2HSMF                  ; // Host to HSM Flag Register__IO uint32_t HT2HSMIE                 ; // Host to HSM Interrupt Enable__IO uint32_t HSM2HTF                  ; // HSM to Host Flag Register__IO uint32_t HSM2HTIE                 ; // HSM to Host Interrupt Enable__IO uint32_t HSM2HTIS                 ; // HSM to Host Interrupt Select__IO uint32_t HSM2HTS                  ; // HSM to Host Status__IO uint32_t HT2HSMS                  ; // Host to HSM Statusuint32_t RESERVED2                ;__IO uint32_t CLKCTRL                  ; // Clock Control Registeruint32_t RESERVED3[7]             ;__IO uint32_t DBGCTRL                  ; // Debug Control Register__IO uint32_t PINCTRL                  ; // Pin Control Registeruint32_t RESERVED4[6]             ;__IO uint32_t ERRCTRL                  ; // Error Control Register__IO uint32_t ERRIE                    ; // Error Interrupt Enable Register__IO uint32_t ERRADDR                  ; // Error Address Registeruint32_t RESERVED5[5]             ;__IO uint32_t EXTIF                    ; // External Interrupt Flag Register__IO uint32_t EXTIE                    ; // External Interrupt Enableuint32_t RESERVED6[6]             ;__IO uint32_t SAHBASE                  ; // Single Access to Host Base Address Registeruint32_t RESERVED7[7]             ;__IO uint32_t RSTCTRL                  ; // Reset Control Register__IO uint32_t RSTPWD                   ; // Reset Password Registeruint32_t RESERVED8[2]             ;__IO uint32_t SENSIF                   ; // Sensor Interrupt Flag Register__IO uint32_t SENSIE                   ; // Sensor Interrupt Enable Register__IO uint32_t SENSAPPRST               ; // Sensor Application Reset Enable Register__IO uint32_t SENSSYSRST               ; // Sensor System Reset Enable Registeruint32_t RESERVED9[16320]         ;__IO uint32_t SAHMEM[16384]            ; // Single Access to Host Memory Window
} HSM_BRIDGE_TypeDef;

我们可以看到0xF0040000-0xF004FFFF这段地址空间内的一些地址被定义成了寄存器,可用于HSM核与主核之间相互控制、触发中断、获取状态等,详细的定义见HSM用户手册。

0xF0050000-0xF005FFFF这段地址空间没有具体的定义,但也是HSM核和主核都可以访问的区域。在使用的时候,我们可以在这个空间内定义一些大的数据块,比如用来存放待加解密的数据的buffer和加解密之后的数据的buffer,定义好之后可以将buffer的入口地址通过上面的寄存器(HSM2HTS & HT2HSMS)在HSM核与主核之间进行传递,就可以实现大块数据的传输,且传输过程中不需要进行数据的copy。


http://chatgpt.dhexx.cn/article/5KTuy9H6.shtml

相关文章

层次状态机-HSM代码解析

有限状态机在学习和工作中经常能够遇到&#xff0c;前面的文章也有使用到。但是对于层次状态机网上的学习资源却很少&#xff0c;导致一直不理解这个工作机制&#xff0c;后面偶然在GitHub看到一篇文章&#xff0c;深入学习后发现层次状态机太实用了&#xff0c;如果将其在项目…

车规级安全芯片HSM、SE等:

目录 1、相关标准 2、汽车安全芯片应用 3、安全芯片供应商 4、安全芯片测试 5、针对控制器的安全测试 给学习做个总结&#xff0c;写的不对处希望大家指出。 说明&#xff1a;关于汽车安全中可以使用SE安全单元针对外部通信的安全形式&#xff0c;可以是内嵌HSM硬件安全模…

Infineon TC3XX的 通过HSM 实现Secure Debug

AURIX™ 调试接口保护- 内部开关概览 Gate1: 通过OCDS模块控制TriCoreTM 调试访问接口&#xff1b; Gate2: 通过DMU模块控制TriCoreTM 调试访问接口&#xff1b; Gate3和Gate4: HSM直接控制。控制Host CPU的访问并且也可以支持禁用HSM自身的调试功能。 AURIX™ 挑战应答机制-…

汽车信息安全系列-3.TI HSM笔记(更新中)

HSE 相对于 SHE 主要多了独立的CPU 并且支持非对称算法 HSM 架构的安全目标: 安全启动,安全运行,安全debug,算法加速 HSM 架构有以下feature: 防火墙保护 独立CPU,保护efuse和密匙并且给其他内核提供认证和解密服务 安全Boot ROM 建立可信任硬件和外部软件镜像加解密…

hsm加密机

1.三级密钥体制示意图&#xff1a; 1. 主密钥用于加密密钥交换密钥和数据密钥作本地存储&#xff1b; 2. 密钥交换密钥用于加密数据密钥作网络传输&#xff1b; 3. 数据密钥用于对数据进行加解密。 2.三级密钥体制 3.三级密钥体制说明 第一层&#xff0c;LMK为本地主密钥,&…

HSM和AsyncChannel介绍

HSM(hierarchical state machine, 层次状态机)和AsyncChannel是Android Java Framework中两个重要的类。 这两个类的作用如下。 HSM在传统状态机对所有状态都一视同仁的基础上做了一些改变,使得状态和状态之间有了层级关系。HSM中的状态层级关系与Java中父子类的派生和继承关…

英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器

本系列的其它几篇文章&#xff1a; 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;1&#xff09;——何为HSM》 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;3&#xff09;——开发方法》 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;4&#xff09;——Tricore核与H…

英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法

本系列的其它几篇文章&#xff1a; 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;1&#xff09;——何为HSM》 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;2&#xff09;——与HSM相关的UCB和寄存器》 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;4&#xff09;—…

HSM硬件加密机国密标准解读

HSM全称硬件安全模块&#xff0c;是数据安全领域的关键硬件设备&#xff0c;是公钥基础设施的一部分。本文从国密0054出发&#xff0c;概要分析了HSM也就是通常说的服务器密码机需要遵循的国密相关标准&#xff0c;以及与等保的关系。 一、信息系统密钥应用的基本要求 1、总体…

HSM和TEE

本文摘自牛咖网文章 HSM和TEE HSM为其他应用程序提供密钥管理和加密功能。 TEE还提供让应用程序&#xff08;或应用程序的安全相关部分&#xff09;在其隔离环境中执行的功能。 常规执行环境 (REE)是TEE社区中的术语&#xff0c;用于表示设备中特定TEE之外的所有内容。 HSM如何…

满足AUTOSAR基础软件要求的硬件安全模块(HSM)加密运算

随着软件日益复杂&#xff0c;并且车载系统和传感器数量稳步增加&#xff0c;车内系统的通讯成几何增长&#xff0c;必须加强密码保护。这种保护可以通过经典的实时汽车开放系统架构&#xff08;AUTOSAR&#xff09;来实现。即便在资源稀缺的情况下&#xff0c;安装合适固件的硬…

硬件安全模块- HSM

目录 一、什么是硬件安全模块 二、HSM是如何工作的 三、HSM的应用 公钥基础设施&#xff08;Public Key Infrastructure - PKI&#xff09; 卡支付系统&#xff08;Card Payment HSM&#xff09; 安全套接字协议&#xff08;Secure Sockets Layer - SSL&#xff09; 车载…

鉴源实验室丨HSM技术浅述

作者 | 徐奕华 上海控安可信软件创新研究院汽车网络安全组 来源 | 鉴源实验室 引言&#xff1a;2023年5月初&#xff0c;工业和信息化部装备工业一司组织全国汽车标准化技术委员会开展《汽车整车信息安全技术要求》等四项强制性国家标准的制修订[1]。这意味着车辆信息安全管理…

英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM

本系列的其它几篇文章&#xff1a; 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;2&#xff09;——与HSM相关的UCB和寄存器》 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;3&#xff09;——开发方法》 《英飞凌 AURIX 系列单片机的HSM详解&#xff08;4&#xff09;—…

硬件安全模块(HSM)

一、什么是HSM 说起信息安全和加解密&#xff0c;我们很容易会在脑海中浮现出锁和钥匙。那我们来想象一个场景&#xff1a; 假设一位父亲有三个儿子&#xff0c;他给每个儿子各买了一台掌上游戏机。为避免他们沉迷游戏&#xff0c;父亲把每台游戏机都锁到一个小盒子里。盒子归…

什么是WSDL?

WSDL&#xff08;Web Service Description Language&#xff09;Web服务器描述语言是用XML文档来描述Web服务的标准&#xff0c;是Web服务的接口定义语言&#xff0c;由Ariba、Intel、IBM、MS等共同提出&#xff0c;通过WSDL&#xff0c;可描述Web服务的三个基本属性&#xff1…

已有wsdl,怎么去调用他的方法

1&#xff0c;在浏览器验证该wsdl地址是否可以打开&#xff0c;显示为该模式 2&#xff0c;新建一个项目&#xff0c;右击该项目&#xff0c;other&#xff0c;webservice,webservice clent , 讲该wsdl地址输入&#xff0c;finish 3,新建一个类&#xff0c;实例化impl,调用一个…

WSDL的文件结构(WSDL 1.1规范

为能将一个WebService描述清楚&#xff0c;WSDL从三个层面对一个服务进行了描述&#xff1a; 一&#xff1a;描述服务的接口(<wsdl:portType/>部分)&#xff0c;也就是服务有哪些操作(<wsdl:operation/>部分)以及每个操作的输入输出参数(<wsdl:message/>部分…

WSDL阅读方法

我们以天气预报WebService服务为例&#xff0c;来看看怎么阅读一个wsdl文档。 打开一个wsdl文档后&#xff0c;先看底部。 binding在这里&#xff1a; portType在这里&#xff1a; 好了&#xff0c;看了上面的&#xff0c;我们来说说wsdl说明书的整体结构吧&#xff1a; 1.&l…

IDEA wsdl教程

这篇文章教你如何利用IDEA发布WSDL 博主大学复习周精心制作,共推出几个模块供大家利用, ####今天我们先来学习一下如何利用IDEA发布WSDL 首先打开IDEA 新建一个Java项目 OK了基本的项目已经创建完成! 创建一个新的类命名为Java6WB代码如下所示: package com.company; im…