TC3xx中断路由IR模块详解

原创 汽车电子嵌入式 2024-01-24 07:57

前言

如果熟悉ARM Cotex-M4架构,则我们知道ARM架构的芯片都有一个中断控制器(NVIC, Nested Vectored Interrupt Controller)来管理中断,中断控制器使用中断向量表来管理中断,每个中断对应一个唯一的中断向量,在中断触发的时候,NVIC会根据中断向量找到对应的中断服务程序(Interrupt Service Routine, ISR)来进行中断处理。外设模块都有一个或几个固定的中断号。

而英飞凌Infineon芯片具有自己独立的Tricore架构,来自外部资源、内部资源或者软件的中断请求在Tricore架构里面叫做服务请求(service requests),响应中断的CPU或者DMATricore架构中叫做服务提供者(Service Provider)。

缩略词

简写

全称

IR

Interrupt Router

SRN

Service Request Node

ISP

Interrupt Service Provider

ICU

Interrupt Control Unit

TOS

Type of Service

GPSR

General Purpose Service Request



注:本文章引用了一些第三方工具和文档,若有侵权,请联系作者删除!

正文

1.功能概述

中断系统在中断路由模块中实现,该模块包括服务请求节点 (SRN) ,中断控制单元 (ICU) 以及用于软件开发支持的附加功能。


如图 下图所示,可以生成服务请求的每个模块都连接到中央中断路由模块中的一个或多个 ServiceRequest 节点 (SRN)。 中断路由模块还包括多个通用服务请求节点 (SRN) ,这些节点可用于软件 (SW) 触发的服务请求。 每个 SRN 都包含一个服务请求控制寄存器 (SRC) ,用于配置有关优先级的服务请求,并映射到一个可用的服务提供者。



每个 SRN 都连接到中断路由模块中的所有 ICU ,其中 SRN 控制寄存器设置定义了目标服务提供者和服务请求的优先级。


每个 ICU 处理映射到 ICU 的来自 SRNs 的竞争服务请求之间的中断仲裁。


每个 ICU 都连接到一个服务提供者 (CPU DMA 模块) ,其中 ICU 提供有效的仲裁轮服务请求 /SRN ,服务提供者在处理 ICU 的服务请求时向 ICU 发出信号,并向 ICU 发出信号。

 


2. 服务请求节点(SRN

中断路由器模块中的每个服务请求节点 (SRN) 都包含一个服务请求控制 (SRC) 寄存器和接口逻辑,用于将其连接到中断路由模块外部的触发装置和中断路由内部的中断仲裁总线。


2.1服务请求控制寄存器

中断路由模块中的所有服务请求控制寄存器的格式都相同。 一般而言,这些寄存器包括:


. Enable/Disable 信息(SRE)。


. 服务器请求设置位和服务请求清除位(SETRCLRR)。


. 软件粘滞位 (SWS) 表示软件发起的服务请求。


. 服务请求优先级向量(SRPN)。


. 服务器请求目的地/服务提供者。


. 向安全管理单元 (SMU) 发出完整性错误信号。


. 中断溢出标志位(IOV)。


除了通过硬件由相关触发装置激活外,每个 SRN 还可以通过软件启动的两个服务请求控制位由软件设置或重置。

 

 

 

 

 

注意:配置SRN寄存器需要很多的权限,具体的权限配置参考芯片手册。不过,SRN的配置、使能、初始化过程一般都是OS来接管的,对于普通开发者来讲,了解其过程即可。


3. 中断请求触发源和SRNs的映射关系

 

每一个中断请求都和一个SRN一一对应,比如:


对于CAN12,也就是CAN1INT2,对应SRCSRC_CAN1INT2,对应的SRC地址为:

0x5B0 +1*0x40 + 2*4 = 0x5F8

 


AUTOSAR配置工具(Davinci)中需要配置OsISR如下:

 


每个中断请求都对应中断向量表中的一个中断向量索引,vector[index],也对应一个SRN[index]index计算公式如下:


Index (SRC) = (SRC Address Offset) / 4


举例

0x5F8 / 0x4 = 370

则,CAN12的中断在中断向量表中的位置为:Interrupt Vector[370],对应的SRNSRN[370]. 


注意Aurix芯片中的CAN模块的每一个硬件单元不区分Can_Rx还是 Can_Tx中断,统一都是一个中断Trigger,也就对应一个SRN,也就是对应一个ISR(中断服务例程/程序),在中断服务程序中区分是Can_Tx/Can_Rx/Can_BusOff触发的中断。


4. 中断控制单元(ICU

中断路由模块中的每个服务提供者(CPU DMA 模块)对应一个 ICU,也就是其中每个 ICU 与一个服务提供者相关。 可以通过 SRN SRCx.TOS 寄存器位字段将 SRNs 映射到其中一个 ICU.


中断控制单元的作用:


. 管理映射到 ICU 的来自 SRNs 的竞争服务请求之间的仲裁。


. 向服务提供者提供仲裁后的获胜者。


. 接收服务提供者提供的接受服务请求的信息。


. 检查接受的服务请求信息 (ECC 检查)


. 向安全管理单元  (SMU) 发送完整性错误信号。


. 管理相关 SRNs 中已确认服务请求的清除信息。


注意:在当前实施中, ECC 代码仅用于错误检测。 检测到的错误将报告给 SMU ,但未纠正。


4.1 ICU控制器寄存器

ICU模块通过LWSRLatest Winning Service Request )寄存器将SRC仲裁后的Winner信息提供给ISPInterrupt Service Provider, CPU or DMA)。

 


ICU模块通过LASRLast Acknowledged Service Request)寄存器从ISP获取ISP已经接接受/处理的SR信息。

 

ECRError Capture Register)寄存器捕获(CapturesLASR寄存器内容,当ICU检测到ECC Error时。

 

 

4.2 通用服务请求寄存器及服务请求广播寄存器

GPSRGeneral Purpose Service Requests)用于实现软件中断,因为GPRS没有映射到任何的硬件中断触发事件。


INT 模块提供了多组通用服务请求 (GPSR) ,并提供了一种通过软件并行触发 GPSR 组多个服务请求的机制。

 


4.2.1 通用目的服务请求(GPSRxy

INT 模块提供多组通用服务请求:


•每个通用服务请求组由八个服务请求节点组成。


•通用服务请求的名称是 SRC_GPSRxy)


GPSR 用于软件中断 (未映射到硬件服务请求触发器)


GPSR 只能通过向相关 SRC_GPSRxy.SETR1 写入 ´1´ 或向 SRBx[y] 中的相关服务请求广播寄存器位写入 ´1´来触发)


SRC_GPSRxy: x = group number; y= number of interrupt within the group, y=0:7


4.2.2 服务请求广播寄存器(SRBx

服务广播寄存器 (SRBx) 可用于并行设置对多个服务提供商 (CPU DMA) 的服务请求。


为每个通用服务请求组 (GPSRxy1) 实施了一个服务请求广播寄存器 (SRBx)


•服务请求广播寄存器 (SRBx) 可用于并行触发 SRC_GPSRx1 组内的多个服务请求。


•服务请求广播寄存器始终读取为 0 •向 SRBx[y] 写入 ´1´ 将触发服务请求 GPxyXR1)


•向 SRBx[31:6] 写入 ´1´ 不起作用。


4.2.3 SRBx的访问保护寄存器(ACCEN_SRBx

每个 SRBx 寄存器都通过专用 ACCE_SRx0 / ACCE_SRBx1 寄存器集进行写保护:


•每个 SRBx 寄存器都有一个相关的 ACCE_SRBx 寄存器 (x = 相同的数字)


ACCE_SRBx 的配置定义了允许向相关 SRBx 寄存器写入哪个标签 ID 


•如果存在访问保护违规,写入将被静默忽略,将向 SMU 发送错误信号。


除了发送给 SMU 的信号,不会生成其他错误,中断或陷阱。


用例: ACCEN_SRBx 定义允许向 SRBx 写入哪个标签 ID 以触发通用服务请求组 x 的多个服务请求节点。


5. 仲裁处理

中断模块中的每个 ICU 都有自己的中断总线。 通过 SRC.TOS 位字段设置将每个服务请求节点 (SRN) 映射到相关的 ICU / 中断总线,可以将其定向到一个服务提供者。

 


在第一个待决服务请求中,相关中断总线正在启动第一个仲裁过程。 相关中断控制单元提供了赢得最后一个仲裁过程的服务请求。


仲裁过程使用 3-4 个系统外围总线时钟周期来确定优先级最高的服务请求 SRPN


在仲裁过程中,中断总线将比较所有待定服务请求节点的 SRC.SRPN 位字段,这些节点通过 SRC.TOS 设置映射到此中断总线。 在仲裁过程中,优先级最高的未决服务请求被确定为获奖者,相关的 SRN 服务请求控制寄存器位字段值 SRPN ECC SRN 索引将提供给 ICUICU 向服务提供商提供这些 (SRPN ECC SRN 索引)  ICU 在收到服务提供商的这些信息并进行确认后,会执行 ECC 检查。 ECC 检查通过接收到的值完成: ECC SRPN SRN 索引号,假定 SRE 位为´1´ (启用 SRN) ICU TOS 号。


中断路由器模块向安全管理单元发出检测到的错误信号 (SMU 中的一个位,涵盖所有 SRN ICU 的错误)


注意:在当前实施中, ECC 代码仅用于错误检测。 检测到的错误将报告给 SMU ,但未纠正。


6. 中断处理函数ISR的地址计算

中断向量表基地址寄存器BIV[VSS]域标识使用的是32 字节向量空间,还是8字节向量空间。


注意AUTOSAR架构下,如果使用VectorOSBIV寄存器的初始值需要用户配置,VectorMICRSOS不会配置BIV寄存器,且BIV寄存器是受EndInit保护的。

 


ICU仲裁SRN的中断服务器请求后,会通过ICRICU Interrupt Control)寄存器给CPU发送中断请求(如果TOS选择的是CPU而不是DMA)。

 

 

 


CPU判断BIV.VSS,然后根据ICR. PIPN来计算ISR地址:


a) 方案


BIV.VSS == 0, 32byte向量。ISR地址 == ICR. PIPN << 5 | BIV


b) 方案


BIV.VSS == 1, 8字节向量。ISR地址 == ICR. PIPN << 3 | BIV


C) 方案


PIPN不在有用,只有一个Vector地址。

 


通过使用 32 字节配置,小型中断例程可以直接实施到矢量表中。


它们甚至可以跨越多个矢量条目 (请参见 TriCore Architecture Manual)。 如果矢量表可以位于 TriCore 程序侧内存中,则此类快速中断处理非常有用。 8 字节配置会减小矢量表的大小。 每个引导程序条目只包含一个跳转指令或一个调用,并返回为 16 位操作代码指令。 TriCore 编译器支持通过关键字或函数生成这种中断向量表。 如果 BIV 掩码 PIPN ,以便任何中断地址计算都将产生相同的地址,则可以配置最小矢量表。 例如:


__mtcr(BIV,0x80000001 | 0xFF<<3); // move to core register BIV


这将配置 BIV 寄存器使用函数中断处理程序所在的通用单个条目,通过使用函数指针数组将其分支到特定中断例程。 如果使用指向阵列的指针,则可以快速切换阵列。


C方案示例代码

void (*isr_pointer_array[256])(void);void (**isr) (void) = isr_pointer_array;void interruptHandlerInstall(long int SRprio, long int addr){*isr_pointer_array[SRprio]=addr; } void interruptHandler(void){isr[__mfcr(ICR)& 0xFF]();asm (" rfe"); // return from event}

(Line 1) define ISR pointer array. Max. 255 interrupts possible.


(Line 2) define pointer which points to the start of the isr_pointer_array.


(Line 3) start of function interruptHandlerInstall. This function installs the interrupts in the array. Necessary


information are the interrupt priority and ISR entry address.


(Line 4) This line stores the ISR entry address in the array.


(Line 5 and 6) This function branches to the specific interrupt routine and gets called immediately after an interrupt occurs.


(Line 7) This line gives the return command, after the ISR has been processed.


中断条目地址存储在数据数组中,而不是将值编码到指令中。 函数 interruptHandlerInstall组织该数组中中断的安装。这种矢量表生成有时比8字节配置更灵活,不需要任何特定的编译器支持中断。


注意:在中断发生之前,必须全局启用中断系统。 中断控制寄存器 (ICR) 包含启用 CPU 服务请求系统的全局中断启用位 (ICR.IE)。 大多数编译器支持以下属性 (或类似属性)

__enable ().

设置此位。

 


End

「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。 目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」


点击文章最后左下角的阅读原文可以获取更多信息


或者复制如下链接到浏览器获取更多信息

https://blog.csdn.net/qq_36056498/article/details/132125693


文末福利




1
.如需汽车电子嵌入式收集的学习文档,
后台回复“

资料

即可免费下载;

2.为便于技术交流,创建了汽车电子嵌入式技术交流群,可尽情探讨AP,CP,DDS,SOME/IP等前沿热点话题,后台回复“加群”即可加入;



注:本文引用了一些第三方工具和文档,若有侵权,请联系作者删除!


推荐阅读

汽车电子嵌入式精彩文章汇总第一期:20210530-20230703

汽车电子嵌入式精彩文章汇总第2期

TC3xx芯片GTM模块-CMU,CCM,TBU详解

TC3xx芯片GTM模块-TOM详解

AUTOSAR架构下PWM模块配置实践

TC3xx芯片GTM模块-TIM详解

AUTOSAR架构下ICU模块配置实践

TC3xx芯片电源管理系统PMS详解



End


欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号


评论
  • DeepSeek自成立之初就散发着大胆创新的气息。明明核心开发团队只有一百多人,却能以惊人的效率实现许多大厂望尘莫及的技术成果,原因不仅在于资金或硬件,而是在于扁平架构携手塑造的蜂窝创新生态。创办人梁文锋多次强调,与其与大厂竞争一时的人才风潮,不如全力培养自家的优质员工,形成不可替代的内部生态。正因这样,他对DeepSeek内部人才体系有着一套别具一格的见解。他十分重视中式教育价值,因而DeepSeek团队几乎清一色都是中国式学霸。许多人来自北大清华,或者在各种数据比赛中多次获奖,可谓百里挑一。
    优思学院 2025-03-13 12:15 47浏览
  • 在海洋监测领域,基于无人艇能够实现高效、实时、自动化的海洋数据采集,从而为海洋环境保护、资源开发等提供有力支持。其中,无人艇的控制算法训练往往需要大量高质量的数据支持。然而,海洋数据采集也面临数据噪声和误差、数据融合与协同和复杂海洋环境适应等诸多挑战,制约着无人艇技术的发展。针对这些挑战,我们探索并推出一套基于多传感器融合的海洋数据采集系统,能够高效地采集和处理海洋环境中的多维度数据,为无人艇的自主航行和控制算法训练提供高质量的数据支持。一、方案架构无人艇要在复杂海上环境中实现自主导航,尤其是完
    康谋 2025-03-13 09:53 44浏览
  • 文/Leon编辑/cc孙聪颖作为全球AI领域的黑马,DeepSeek成功搅乱了中国AI大模型市场的格局。科技大厂们选择合作,接入其模型疯抢用户;而AI独角兽们则陷入两难境地,上演了“Do Or Die”的抉择。其中,有着“大模型六小虎”之称的六家AI独角兽公司(智谱AI、百川智能、月之暗面、MiniMax、阶跃星辰及零一万物),纷纷开始转型:2025年伊始,李开复的零一万物宣布转型,不再追逐超大模型,而是聚焦AI商业化应用;紧接着,消息称百川智能放弃B端金融市场,聚焦AI医疗;月之暗面开始削减K
    华尔街科技眼 2025-03-12 17:37 146浏览
  • 在追求更快、更稳的无线通信路上,传统射频架构深陷带宽-功耗-成本的“不可能三角”:带宽每翻倍,系统复杂度与功耗增幅远超线性增长。传统方案通过“分立式功放+多级变频链路+JESD204B 接口”的组合试图平衡性能与成本,却难以满足实时性严苛的超大规模 MIMO 通信等场景需求。在此背景下,AXW49 射频开发板以“直采+异构”重构射频范式:基于 AMD Zynq UltraScale+™ RFSoC Gen3XCZU49DR 芯片的 16 通道 14 位 2.5GSPS ADC 与 16
    ALINX 2025-03-13 09:27 32浏览
  • 一、行业背景与用户需求随着健康消费升级,智能眼部按摩仪逐渐成为缓解眼疲劳、改善睡眠的热门产品。用户对这类设备的需求不再局限于基础按摩功能,而是追求更智能化、人性化的体验,例如:语音交互:实时反馈按摩模式、操作提示、安全提醒。环境感知:通过传感器检测佩戴状态、温度、压力等,提升安全性与舒适度。低功耗长续航:适应便携场景,延长设备使用时间。高性价比方案:在控制成本的同时实现功能多样化。针对这些需求,WTV380-8S语音芯片凭借其高性能、多传感器扩展能力及超高性价比,成为眼部按摩仪智能化升级的理想选
    广州唯创电子 2025-03-13 09:26 33浏览
  •        随着人工智能算力集群的爆发式增长,以及5.5G/6G通信技术的演进,网络数据传输速率的需求正以每年30%的速度递增。万兆以太网(10G Base-T)作为支撑下一代数据中心、高端交换机的核心组件,其性能直接决定了网络设备的稳定性与效率。然而,万兆网络变压器的技术门槛极高:回波损耗需低于-20dB(比千兆产品严格30%),耐压值需突破1500V(传统产品仅为1000V),且需在高频信号下抑制电磁干扰。全球仅有6家企业具备规模化量产能力,而美信科
    中科领创 2025-03-13 11:24 40浏览
  • 文/杜杰编辑/cc孙聪颖‍主打影像功能的小米15 Ultra手机,成为2025开年的第一款旗舰机型。从发布节奏上来看,小米历代Ultra机型,几乎都选择在开年发布,远远早于其他厂商秋季主力机型的发布时间。这毫无疑问会掀起“Ultra旗舰大战”,今年影像手机将再次被卷上新高度。无意臆断小米是否有意“领跑”一场“军备竞赛”,但各种复杂的情绪难以掩盖。岁岁年年机不同,但将2-3年内记忆中那些关于旗舰机的发布会拼凑起来,会发现,包括小米在内,旗舰机的革新点,除了摄影参数的不同,似乎没什么明显变化。贵为旗
    华尔街科技眼 2025-03-13 12:30 60浏览
  • 北京时间3月11日,国内领先的二手消费电子产品交易和服务平台万物新生(爱回收)集团(纽交所股票代码:RERE)发布2024财年第四季度和全年业绩报告。财报显示,2024年第四季度万物新生集团总收入48.5亿元,超出业绩指引,同比增长25.2%。单季non-GAAP经营利润1.3亿元(non-GAAP口径,即经调整口径,均不含员工股权激励费用、无形资产摊销及因收购产生的递延成本,下同),并汇报创历史新高的GAAP净利润7742万元,同比增长近27倍。总览全年,万物新生总收入同比增长25.9%达到1
    华尔街科技眼 2025-03-13 12:23 48浏览
  • 前言在快速迭代的科技浪潮中,汽车电子技术的飞速发展不仅重塑了行业的面貌,也对测试工具提出了更高的挑战与要求。作为汽车电子测试领域的先锋,TPT软件始终致力于为用户提供高效、精准、可靠的测试解决方案。新思科技出品的TPT软件迎来了又一次重大更新,最新版本TPT 2024.12将进一步满足汽车行业日益增长的测试需求,推动汽车电子技术的持续革新。基于当前汽车客户的实际需求与痛点,结合最新的技术趋势,对TPT软件进行了全面的优化与升级。从模型故障注入测试到服务器函数替代C代码函数,从更准确的需求链接到P
    北汇信息 2025-03-13 14:43 40浏览
  • 一、行业背景与需求痛点智能电子指纹锁作为智能家居的核心入口,近年来市场规模持续增长,用户对产品的功能性、安全性和设计紧凑性提出更高要求:极致空间利用率:锁体内部PCB空间有限,需高度集成化设计。语音交互需求:操作引导(如指纹识别状态、低电量提醒)、安全告警(防撬、试错报警)等语音反馈。智能化扩展能力:集成传感器以增强安全性(如温度监测、防撬检测)和用户体验。成本与可靠性平衡:在复杂环境下确保低功耗、高稳定性,同时控制硬件成本。WTV380-P(QFN32)语音芯片凭借4mm×4mm超小封装、多传
    广州唯创电子 2025-03-13 09:24 41浏览
  • 曾经听过一个“隐形经理”的故事:有家公司,新人进来后,会惊讶地发现老板几乎从不在办公室。可大家依旧各司其职,还能在关键时刻自发协作,把项目完成得滴水不漏。新员工起初以为老板是“放羊式”管理,结果去茶水间和老员工聊过才发现,这位看似“隐形”的管理者其实“无处不在”,他提前铺好了企业文化、制度和激励机制,让一切运行自如。我的观点很简单:管理者的最高境界就是——“无为而治”。也就是说,你的存在感不需要每天都凸显,但你的思路、愿景、机制早已渗透到组织血液里。为什么呢?因为真正高明的管理,不在于事必躬亲,
    优思学院 2025-03-12 18:24 81浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦