英飞凌AURIX 2G 系列MCU关于外设模块MCMCAN的实现原理及对应MCAL(EB Tresos)配置项详细讲解

这篇具有很好参考价值的文章主要介绍了英飞凌AURIX 2G 系列MCU关于外设模块MCMCAN的实现原理及对应MCAL(EB Tresos)配置项详细讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、版本控制

二、功能概述

三、主要模块及涉及EB配置项

(一)通用时钟方案与控制

(二)波特率产生与位定时

(三)轮询与中断

(四)Port输入输出接口

(五)CAN FD实现

控制器延迟补偿

(六)报文接收处理

Acceptance Filtering

Rx FIFO 0 and 1

Dedicated Rx Buffers

(七)报文发送处理

Dedicated Tx Buffers

Tx FIFO

Tx Queue

Tx Event Handling

四、其他EB配置项

五、重要寄存器

六、参考文档

一、版本控制

版本

撰写日期

撰写记录

字体颜色

V1.0

2023.08.28

以当前时间点对MCMCAN模块的认识,撰写了此文档,旨在阐述AURIX 2G系列MCU关于MCMCAN模块的实现原理及对应MCAL配置工具EB的重要配置项。

黑色(有部分红色字体仅为辨识突出)

二、功能概述

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

  • MCMCAN将Bosch(博世)的M_CAN IP作为CAN节点实现,M_CAN根据国际标准ISO 11898-1和ISO 11898-4(Time-triggered Communication on CAN)执行通信,其中根据ISO 11898-1支持了经典CAN和CAN FD通信,根据ISO 11898-4支持了时间触发通信(TTCAN)的所有特性,包括事件时间触发通信、全局系统时间和时钟漂移补偿。
  • 本文档主要讲述的是AURIX 2G系列MCU关于经典CAN和CAN FD的通信实现原理,对TTCAN的实现原理不具体阐述。对于经典的CAN总线协议网络中如果多个节点同时发送数据帧,那么根据总线仲裁规则具有最高优先级的数据帧才能被发送出去,这样最低优先级的节点的数据可能很长一段时间都无法发送出去,因此经典的CAN总线协议网络很难保证信息的实时性,正是为看保证消息的实时性要求,TTCAN出现了。实时性要求就是当某个节点发生某个事件,该节点必须在一定的时间范围内通过消息帧将该状态发送出去,而TTCAN就可以实现此需求。
  • 本文档针对的是AURIX 2G系列TC38x MCU,MCU内有3个MCMCAN模块,每个MCMCAN模块最多支持4个CAN节点,即最多支持12个节点,针对具体项目需求,可将不同的报文分配到不同的节点上。
  • 每个MCMCAN模块都有一段自己的报文RAM,主机CPU可快速寻址这段RAM,每个模块里的4个节点共用这段报文RAM,因为CAN模块0还实现了TTCAN,所以模块0的报文RAM相较于其他两个模块要大,具体的报文RAM的地址及大小如下图所示:eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件
  • 每个模块的报文RAM是可配置的,其内容取决于分配到这个模块上的CAN报文的内容,后面会具体阐述报文RAM的具体结构及其在CAN报文的接受与发送中的作用。

三、主要模块及涉及EB配置项

(一)通用时钟方案与控制

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

  • CAN模块的时钟来源是CCU(Clock Control Unit)中的 fMCANH 和 fMCAN,每个CAN模块都可以独立选择是否接受这两个时钟,若选择接受,则 fMCANH提供给了fSYN,fMCAN提供给了 fASYN,fSYN和 fASYN在CAN模块中有不同的用途,fSYN是模块内寄存器接口和RAM接口的时钟源,fASYN用来产生CAN通讯和CAN FD通讯的波特率,芯片推荐fASYN的频率为80, 40, 20 MHz。因为fSYN是CAN模块工作的时钟来源,fSYN>=fASYN是模块内部能正常工作的必要条件。
  • 一个CAN模块有4个CAN节点,每个节点都有权利选择自己是否接受CAN模块的fSYN和fASYN,这通过寄存器MCR.CLKSELi进行控制,因此,若想要关闭某个节点,可以通过控制此寄存器来关闭其时钟源。
  • 关于上述时钟的具体细节可如下图所示:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

涉及EB配置项

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

(二)波特率产生与位定时

        波特率和位定时是CAN通讯中比较基础的概念,也是需要注意的点,关于这两个概念的详细说明可参考博文《控制器局域网络(CAN)协议详解》。

        AURIX的MCMCAN模块关于波特率产生和位定时的设置在寄存器NBTP和寄存器DBTP中,每个CAN模块的4个节点都有独立的NBTP寄存器和DBTP寄存器,用来控制每个节点波特率和位定时,NBTP寄存器是针对经典CAN通讯的波特率控制和CAN FD中仲裁段的波特率控制,DBTP寄存器是针对CAN FD通讯中数据段的波特率控制,寄存器NBTP的具体内容如下图所示(寄存器DBTP内容雷同,不展示):

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

        波特率的时钟来源是fASYN,CAN的位时间量子Tq等于(NBRP+1)个fASYN时钟周期,NSJW的数值再加上1是CAN再同步时支持的最大补偿宽度,位域NTSEG1的数值再加上1是传播时间段、相位缓冲段1的Tq之和,位域NTSEG2的数值再加上1是相位缓冲段2的Tq数量,因此一个比特的总时间长度为 [NTSEG1 + NTSEG2 + 3] Tq(还包括1个Tq的硬同步段)。

        综上,若fASYN的频率为8MHZ,那么这个寄存器复位值 0x06000A03所对应的CAN节点的波特率是500kbps,最大补偿宽度是7Tq。1/(1/8 * (10+3+3)) =  500kbit/s。

        在CAN通讯工程实践中,还有对CAN网络采样率的需求,CAN通讯时是在相位缓冲段1的结尾出采样的,因此采样率的计算方式为(NTSEG1 + 2)/ (NTSEG1 + NTSEG2 + 3) * 100%,那么寄存器复位值 0x06000A03的采样率为75%。当然,不同波特率下的CAN网络采样率需求不同,具体应用时满足对应需求即可。

涉及EB配置项

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

注:框柱的红色部分控制着CAN FD的比特率切换位(BRS)的显隐性。

(三)轮询与中断

        每个CAN模块的每个节点都能轮询或中断地实现CAN报文发送、CAN报文接收,Busoff、WakeUp等功能,轮询方式或中断方式的选择,决定了实现对应功能的API是在中断中调用,还是周期轮询调用。考虑到不同CAN网络的不同功能,会给其匹配不同的实现方式,比如只在特殊场景下才会通讯的功能,如XCP,就可以不需要轮询地实现CAN报文的发送和接收,仅在需要标定ECU时才会使用此CAN网络,因此,对应这种功能的CAN网络,可以使用中断方式来实现CAN报文的发送和接收,以减小CPU的负载。

        CAN模块的中断控制主要涉及的寄存器有IR/IE/GRINT1/GRINT2/ISREG,IR为中断标志寄存器,其各个位置位时表示相应的事件发生,IE为中断使能寄存器,其位域与IR寄存器的位域一一对应,仅有事件发生是不能触发中断的,还需要对应的使能为置位。寄存器ISREG表征的是最终每个节点链接到服务请求节点SRN的中断信号状态,IR中的多个中断标志位都满足条件才会使能中断信号的置位,具体的使能对应关系如下图所示:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

就拿中断信号Tx Event FIFO incident(TEFIFO)来说,其需要IR寄存器的第12位和第14位都置位才会置位,而置位是否会真的产生中断请求还取决于IE寄存器对应的第12位和第14位是否被使能。

        若IE寄存器使能后,中断请求会链接至中断服务请求节点SRN,每个CAN模块都有16个SRN,如下图所示:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

每个中断信号会链接至哪个中断服务请求节点可是可控的,其控制寄存器就是GRINT1和GRINT2,通过将不同的中断信号链接至不同的中断服务请求节点,从而知道了不同信号的中断服入口,然后将要实现此信号的功能的API放入此中断入口即可实现中断。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

拿CAN报文发送的中断信号TEFIFO举例,若将此信号链接至中断服务请求节点SR8,即GRINT1的位域TEFIFO的值为8,然后再在中断控制模块(ICU)中配置对应服务请求节点的使能与否,服务提供商(不同的CPU或DMA),中断优先级,中断类型(一类中断/二类中断)即可。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

CAN模块的中断服务请求节点的寄存器为SRC_CANiINTj(i代表CAN模块索引,j代表请求节点索引)。

涉及EB配置项

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

(四)Port输入输出接口

        每个CAN模块的每个节点都有寄存器控制这个节点所内部链接的Port,所以这里会和Port模块的配置形成配合,以实现CAN模块和Port模块的正确链接,下表展示了CAN模块0的节点0的链接Port情况,确定RXD就是再确定内部链接Port。eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

        每个CAN节点都有一个基地址来表征是这个节点,这个在MCAL的配置工具EB中给特定名称的CAN节点链接到芯片物理CAN节点很重要,AURIX 2G系列MCU选择每个节点的ACCENNODEi0(i = 0-3)寄存器地址作为这个节点的基地址,例如CAN00的基地址是0xF0208100,CAN01的基地址是0xF0208500,CAN10的基地址是0xF0218100,其他节点依次类推。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

涉及EB配置项

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

(五)CAN FD实现

        了解CAN FD协议可知,CAN FD可以理解为经典CAN协议的升级版,只升级了协议,但物理层未改变,所有CAN模块的每个节点都支持经典CAN 通讯和CAN FD通讯,决定节点是处于哪种通讯模式是通过寄存器CCCR的位域FDOE确定的。位域FDOE在置位时,代表此节点支持CAN FD通讯,在此种情况下,此节点也是支持经典CAN通讯的,具体在通讯时是经典CAN通讯或CAN FD通讯取决于接收到的报文或要发送的报文的FDF位的显隐性。位域FDOE在未置位时,代表此节点不支持CAN FD 通讯,此条件下发送和接收CAN FD都是不被允许的。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

        CAN FD在控制段、数据段和CRC校验段是可以和仲裁段不同的传输速率的,这也是CAN FD能提高通讯速率的原因,对于有不同的通讯速率的一帧CAN FD报文,需要有速率切换位BRS的置位,以来实现不同的通讯速率。所以,对于有速率切换的CAN FD报文,都需要使能寄存器CCCR的位域BRSE以来使能对应节点的速率切换功能。

控制器延迟补偿

        在 CAN FD的高通讯速率下,是很有必要引入控制器的延迟补偿的。理解CAN通讯基础知识可知,CAN控制器的Rx的回环检测是保证CAN总线可靠性的基础技术,然而,CAN收发器的信号转换都是有时延的,也就是说从CAN控制器的TX出发到达CAN bus,以及从CAN bus返回RX都是延时的。

       不同的CAN收发器的延时参数略有差异,但都差别不大,按照最大的延时时间200ns来计算。首先看看,CAN2.0最高1Mb/s的情况。一个bit时间Tb=1000ns。200ns的延时会导致RX采样的波形落后20%。 按典型的87%的采样率计算,实际上RX loop采样的位置是在67%,所以整个RX采样的裕度还是比较大的,顺便也解释了工程上为什么要选取75%~87%这样靠后的采样位置。这样TX->RX信号延时后,对保证让控制器能够采样到正确的数据非常有帮助。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

        然后来到CANFD,事情发生了变化。以10Mb/s的数据段高速波特率计算,一个bit位周期Tb=100ns。最高200ns的RX delay将会带来毁灭性的采样错误,TX->RX收到的波形可能已经落后超过一个Tb,无论如何设置采样位置都无返挽回如此大的信号延时。所以CAN FD的标准给出了一个解决办法,即控制器的延迟补偿。具体实现方式是给Rx定义了一个新的采样点SSP(Secondary Sample Point)。要求控制器需要在仲裁段(<=1Mb/s)段测量FDF下降沿的RX delay时间,然后在数据段对RX采样时,对RX采样点进行延时。AURIX 2G系列MCU关于控制器延迟补偿的实现如下:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

在寄存器DBTPi(i=0-3)的位域TDC置位后,控制器的延迟补偿功能就会被使能,在进行CAN FD 通讯时,控制器就会自动对每一帧的传输延迟进行测量,测量的时钟基准是 fASYN,单位是mTq。当然,还可以在此测量的延迟的基础上再加上可配置的延迟时间,其可通过寄存器TDCRi(0-3).TDCO配置。

涉及EB配置项:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

(六)报文接收处理

         AURIX 2G系列MCU的MCMCAN模块的Rx Handler控制接收过滤,接收到的消息传输到Rx缓冲区或两个Rx FIFO之一,以及Rx FIFO的Put和Get索引。报文RAM关于Rx Hander的部分如下图所示:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

报文RAM部分的地址偏移索引是以字(4个字节,32位)来索引的,这里需要注意。上图中左边各寄存器的相应位域记录的是各部分的偏移地址(相对报文RAM的起始地址偏移),右边所呈现的是各部分所能支持存储的最大元素数量,拿Rx Buffer来说,最大支持1152个字,而每一个发送的报文,最大所占的字数是18个字(CAN FD,数据段有64个字节,占16个字,再包括报文信息的2个字),所以,Rx Buffer部分最多支持1152/18 = 64个报文的缓冲存储。对于11-bit Filter,其内容如下图所示,每个11-bit Filter占用1个字,所以最多支持128个11-bit Filter的缓冲存储。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

Rx Buffer and FIFO Element 

   

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

11-bit Filter

        在Rx Handler中,涉及到五个主要RAM区域,分别是11-bit Filter、29-bit Filter、Rx FIFO 0、Rx FIFO 1,Rx Buffer。现就这五个进行详细介绍。

Acceptance Filtering

        标准帧和扩展帧的接受过滤信息是分开的,但过滤原理都相同。MCMCAN模块针对接受过滤提供了3种方式,分别是特定的ID过滤,区域性ID过滤(一段ID区间),经典位掩码(Mask)过滤(掩码置1的位才进行过滤检查)。具体的方式选择体现在11-bit Filter和29-bit Filter的一些位域上。注意:只有存放在FIFO中的Rx 报文才能实现区域性ID过滤和经典为掩码过滤。eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

Rx FIFO 0 and 1

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

        上图很好地表示了Rx FIFO的存储机制,每次有新的报文通过了过滤被存到RxFIFO中时,会存放在寄存器RxFnS.FnPI+1索引的位置,每次读出报文时,会读寄存器RxFnS.FnGI所索引的位置,然后寄存器RxFnS.FnGI再加1,寄存器RxFnS.FnFL表示FIFO存放的报文的数量。

Dedicated Rx Buffers

           对于每个专用Rx缓冲区,必须配置一个SFEC / EFEC = " 111 "和SFID2 / EFID2[10:9] = " 00 "的标准或扩展消息ID过滤器元素。

涉及EB配置项:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

(七)报文发送处理

        AURIX 2G系列MCU的MCMCAN模块的Tx Handler专门用来处理专用Tx Buffer 、Tx FIFO和Tx Queue的传输请求,它控制传输消息到CAN 内核、Put和Get索引以及Tx 事件FIFO的传输。报文RAM关于Tx Hander的部分如下图所示:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

报文RAM部分的地址偏移索引是以字(4个字节,32位)来索引的,这里需要注意。上图中左边各寄存器的相应位域记录的是各部分的偏移地址(相对报文RAM的起始地址偏移),右边所呈现的是各部分所能支持存储的最大元素数量,拿Tx Buffer来说,最大支持576个字,而每一个发送的报文,最大所占的字数是18个字(CAN FD,数据段有64个字节,占16个字,再包括报文信息的2个字),所以,Tx Buffer部分最多支持576/18 = 32个报文的缓冲存储。对于Tx 事件FIFO,其内容如下图所示,每个事件FIFO占用2个字,所以最多支持32个Tx 事件FIFO的缓冲存储。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

Tx Buffer Element        

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

Tx Event FIFO Element

        在Tx Handler中,涉及到两个主要RAM区域,分别是Tx Buffer和Tx Event FIFO,而Tx Buffer中,通过寄存器TxBC,可将其分为3种,分别是专用的Tx Buffers、Tx FIFO、Tx Queue,现就这四个进行详细介绍。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

Dedicated Tx Buffers

        在寄存器TxBCi.TFQS为0时,寄存器TxBCi.NDTB不等于0时,代表此节点的报文都以专用Tx Buffers存储,专用Tx Buffers是用于在主CPU的完全控制下进行消息传输的,每个专用Tx Buffer都配置了一个特定的报文ID,如果多个Tx Buffer配置了相同的报文ID,则首先发送索引号小的Tx Buffer。

Tx FIFO

       在寄存器TxBCi.TFQS不为0时,寄存器TxBCi.NDTB等于0,寄存器TxBCi.TFQM等于0时,代表此节点的报文都以Tx FIFO的形式存储,存储在Tx FIFO中的消息从Get索引TXFQSi (i=0-3). TFGI引用的消息开始传输,每次传输后,Get索引循环递增,直到Tx FIFO为空。

Tx Queue

       在寄存器TxBCi.TFQS不为0时,寄存器TxBCi.NDTB等于0,寄存器TxBCi.TFQM等于1时,代表此节点的报文都以Tx Queue的形式存储,存储在Tx Queue中的消息从具有最低消息ID(最高优先级)的消息开始传输。如果多个Queue Buffer配置了相同的Message ID,则首先传输缓冲区号最小的Queue Buffer。

Tx Event Handling

       为了支持Tx事件处理,M_CAN实现了一个Tx事件FIFO。M_CAN在CAN总线上传输消息后,消息ID和时间戳存储在Tx Event FIFO元素中。为了将一个Tx事件链接到一个Tx事件FIFO元素,来自传输的Tx缓冲区的消息标记被复制到Tx事件FIFO元素中。

        Tx Event FIFO的目的是将发送状态信息的处理与发送消息的处理解耦,即Tx Buffer只保存要传输的消息,而发送状态单独存储在Tx Event FIFO中。这样做有一个好处,特别是在操作动态管理的传输队列时,Tx Buffer可以在成功传输后立即用于新消息。在覆盖Tx Buffer之前,不需要从Tx Buffer保存传输状态信息。

涉及EB配置项:

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

报文接收处理和报文发送处理的涉及EB配置项中有一个CanHandleType的配置,这个所决定的是CAN的HardwareObject的种类,其在AUTOSAR的CANIf文档中有描述,用于FullCAN 的一个CAN mailbox(HardwareObject)仅启用单个CANID的发送或接收,用于BasicCAN的一个CAN mailbox (HardwareObject)能够发送和接收一个范围的CAN ID。

四、其他EB配置项

        EB的MCMCAN配置主界面有些通用的配置,这些配置是针对整个MCMCAN模块的,具体意义较简单,不具体文字阐述。

eb 配置mcal,AUTOSAR_CAN,AUTOSAR_MCAL,单片机,嵌入式硬件

五、重要寄存器

        MCAL层涉及到对硬件的操作,其实都是对相关寄存器的操作,因此,这里列举了MCMCAN模块的重要寄存器,以方便加深模块的理解和问题的快速排查。

Short Name

Long Name

Description

CLC

Clock Control Register

全局时钟使能寄存器

针对整个MCMCAN模块

MCR

Module Control Register

各节点时钟使能及一些通用模块控制

ISREGi

Interrupt Signalling Register i

中断信号的标志位

GRINT1i Interrupt routing for Groups 1 i

中断信号的服务请求节点配置

GRINT2i  Interrupt routing for Groups 2 i 中断信号的服务请求节点配置

DBTPi

Data Bit Timing & Prescaler 
Register i

CAN FD高速段的位定时与波特率产生

CCCRi

CC Control Register i

启用和禁用CAN总线参与和基本协议功能,如CAN-FD

NBTPi

Nominal Bit Timing & 
Prescaler Register i

经典CAN通讯/CAN FD低速段的位定时与波特率产生

ECRi

 Error Counter Register i

错误计数器

TDCRi

Arbitration Priority Register,

Group x

控制器延迟补偿

IRi

Analog Fct. Config. Register,

Group x

CAN中断触发源的标志位

IEi

Input Class Register i, Group

x

CAN中断触发源的中断使能位

六、参考文档

        撰写过程中,参考如下文档:

1. 《AURIXTC3XX_um_part1_v2.0.pdf》

2. 《AURIXTC3XX_um_part2_v2.0.pdf》

3. 《TC38X User's Manual Appendix.pdf》

4.  [CANFD] 高波特率下收发器延时的处理机制-Transceiver delay compensation_cancontrollertrcvdelaycompensationoffset_Lenz's law的博客-CSDN博客5.【MCAL_CANDriver】-1.3-FullCAN和BasicCAN的差异及配置使用_basiccan和full can什么区别_汽车电子助手的博客-CSDN博客4.  [CANFD] 高波特率下收发器延时的处理机制-Transceiver delay compensation_cancontrollertrcvdelaycompensationoffset_Lenz's law的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-773970.html

到了这里,关于英飞凌AURIX 2G 系列MCU关于外设模块MCMCAN的实现原理及对应MCAL(EB Tresos)配置项详细讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于英飞凌MCU PSoC™ 6的 Matter智能家居解决方案

    本文转载自:英飞凌官微 2019年底,中国已成为全球最大的物联网市场,全球15亿台蜂窝网络连接设备中9.6亿台来自中国,占比64%。国内智能家居产品和解决方案的普及程度不断提高,消费者对智能家居设备的需求也不断增加。根据预测,到2025年,中国智能家居市场的规模将

    2024年01月19日
    浏览(38)
  • 链接文件学习(七):英飞凌MCU Tasking编译器LSL链接文件解析 及代码变量定位方法

    目录   1、Tasking的链接文件 1.1、DSRAM中的数据存放 1.2、PFlash中的代码存放 1.3、LMU 1.4、PSRAM 1.5、UCB 2、代码与变量定位

    2024年02月07日
    浏览(57)
  • ASEMI代理英飞凌TDK5100F射频模块的性能与应用分析

    编辑-Z 本文将对TDK5100F射频模块进行详细的介绍与分析,包括其性能特点、应用领域、使用方法。通过对这三个方面的阐述,希望能够帮助读者更好地了解TDK5100F射频模块的优势和应用场景。 1、TDK5100F射频模块的性能特点 TDK5100F射频模块是一款高性能的无线通信模块,具有以

    2024年02月08日
    浏览(44)
  • 英飞凌TC3xx系列GTM系统介绍

    英飞凌TC3xx是英飞凌AURIX 2G系列单片机,该系列单片机是32位微控制器,具有多个TriCore CPU、程序及数据存储器、总线、中断系统、DMA及功能强大的外围设备。 AURIX 2G系列按不同的需求有不同的内存及功能组合的单片机选择,全系均可满足ASIL D功能安全要求,其中功能最强大的

    2024年02月09日
    浏览(56)
  • (智能车比赛)基于 ADS 逐飞库 英飞凌 TC264 377系列 的多核使用经验

    一,程序,变量储存地址设置 二,运行核选择 概念及过程描述 尽量将不同的功能划分为各个模块,然后交给不同的cpu运行。 或者说 不同的cpu负责运行不同的功能,cpu之间以少量的参数进行配合交互 ,这样可以尽最大化利用多核cpu的资源效率。 具体做法 尽量将.h以及相关函

    2024年02月02日
    浏览(42)
  • 英飞凌TC3xx之一起认识DSADC系列(一)架构介绍

    Delta-Sigma 模数转换器模块具有多个通道,对于TC387有6个通道,提供片上调制器和相关解调器模块,以及用于解调、抽取和滤波的可配置滤波器链(参见图 285)。片上的二阶前馈调制器可以将模拟输入信号转换为数据流,同时也支持多种类型的外部调制器连接到输入路径上。调

    2024年02月20日
    浏览(55)
  • 英飞凌TC3xx之一起认识GTM系列(一)先来认识GTM架构

    GTM系统使用GTM全局时钟f GTM 运行(本文称为SYS_CLK)。 特点如下 : GTM模块由两个主要部分组成: 由博世设计的GTM IP v3.1.5.1 GTM IP 由许多不同的子模块组成,提供多种功能来解决所有问题 与定时器模块相关的最常见应用 由英飞凌设计的GTM Wrapper 以下是子模块中一些最重要的

    2024年02月03日
    浏览(49)
  • 英飞凌 Tricore 架构中断系统详解

    本文以TC3系列MCU为例,先来了解中断源是如何产生的,再看一下CPU是如何处理中断源的。 在TC3中,中断既可以被CPU处理,也可以被DMA处理,所以手册中不再把中断称为中断,而是称为服务,我们为了方便还是叫中断,但在后文的英文名称或简写中经常出现Service,大家当中断

    2024年02月22日
    浏览(41)
  • 英飞凌在车辆信息安全方面上应用

    如今,网络安全在多个层面影响着我们每个人。我们的专业工作、个人生活,甚至我们的汽车,都依赖于复杂软件上运行的连接和技术。随着信息技术日益融入我们的日常生活,我们对后续信息系统的依赖性也与日俱增。反过来,这些系统的漏洞和潜在攻击也在增加。为了保

    2024年02月11日
    浏览(42)
  • 英飞凌TC397 BootLoader (SOTA)开发目录

    目录 欢迎大家来到TC397 BootLoader专栏,开始前我会先列出TC397 BootLoader学习大纲,同时可以作为大家学习、开发BootLoader的参考。点击下面的链接,可以传送到对应的文章下。 开始前的准备 TC397 BootLoader讲解 - 总目录 TC397 BootLoader讲解 - 准备工作 TC397 BootLoader讲解 - 资料下载 1、

    2023年04月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包