Aurix TC4X Routing CRE

作者:Wilson sun、Eric Zhao

标题:如何拓展实现Aurix TC4X Routing CRE and DRE功能

摘要:基于RX Host buffer X实现MCU主动发送ACF-CAN消息和Loopback方式实现实现接收ETH TO CAN数据。

正文:

在汽车日益发展的过程中,客户对更多功能的需求越多,因此需要更复杂的电子设备,从而不同网络信息的电子控制单元(ECU)数量也在不断增加。

我们可以通过车载网络架构的演变看出端倪,一开始的各个车身控制、智能驾驶、中央网关、域控制器等架构。现在又趋于跨域通信,因此在通信的吞吐量方面变得越来越重要,但在安全性和延迟方面的限制越来越多。

在此背景下,不同接口和协议之间的延迟和尽量不占用主核的算力资源来实现车上各个功能域的互联显得尤为关键。为了满足这些要求,需要专用的硬件机制。

Infineon新一代的Aurix TC4X系列支持硬件路由功能。本文将以TC4D9 COM为例,提出了一种CRE可以直接写RX Host Buffer 1,软件触发DRE,实现MCU发送数据,利用ACF-CAN Assembler打包成1722格式发送至GETH。

CRE Routing Engine(CRE)介绍

CRE是CAN Module(MCMCAN)拓展用于路由CAN帧,可以实现硬件加速CAN TO CAN路由在同一个MCMCAN模块内、可以协助Data Routing Engine(DRE)执行硬件加速,例如CAN TO CAN路由在不同的MCMCAN Modules, CAN TO Ethernet (封装在IEEE 1722 ACF帧),CAN TO MEMORY(可用户定义)。因此可以硬件路由的优势在于可以实现自动信息传输(路由)之间的亮哥哥独立的CAN总线没有CPU的干预。

图表 1 CAN 路由功能概述

基于RX Host buffer X实现MCU主动发送ACF-CAN消息

实现功能:CRE可以直接写RX Host Buffer 1,软件触发DRE,实现MCU发送数据,利用ACF-CAN Assembler打包成1722格式发送至GETH。

实现原理:原本CRE只能由接收FIFO触发,现在通过Overwrite RX Host Buffer x实现MCU主动发送ACF-CAN消息。

实现框图:

图表 2 MCU Write Rx Host Buffer

实现例子:配置消息ID,size, extended ID flag, BRS, FDF标志位, source ID以及 destation ID

void CanCre_WriteRxHostMsg(void)

{

RxHostMsgConfig Msg;

复制代码
Msg.ID = 0x01;
Msg.FDF = 1;
Msg.BRS = TRUE;
Msg.extendedIdFlag = FALSE;
Msg.rounter.mode = Rounter_Mode_Unicast;
Msg.rounter.srcID = IfxCan_DestinationId_Can0_Node0;
Msg.rounter.destID0 = IfxCan_DestinationId_Ethernet1;

Msg.DLC = IfxCan_DataLengthToDLC(64);

for (uint32 i = 0; i < 64; i++)
{
    Msg.Data[i] = i;
}

CanCre_WriteRxHostBuffer(&canNode00, &Msg);

}

Module Internal loop-back mode介绍

MCMCAN模块提供了一个内部回路模式,使用MCMCAN模块的系统内测试以及CAN驱动软件的开发无需访问外部CAN总线。Loopback功能由内部CAN总线(MCMCAN模块内)和每个CAN节点的总线选择开关组成,使用改开关,每个CAN节点既可以连接到内部CAN总线(Internal loopback mode)也可以连接到外部CAN总线,分别发送和接收引脚(正常操作)。当前未选择的CAN总线是隐性驱动;这意味着发送引脚保持在1,而处于环回模式的CAN节点忽略接收引脚。通过设置节点x端口控制寄存器位Ni PORTCTRL (i0-3). lbm, CAN节点x选择内部环回模式。所有处于环回模式的CAN节点可以通过内部CAN总线一起通信,而不会影响其他未处于环回模式的CAN节点的正常运行。

基于Loopback方式实现实现接收ETH TO CAN数据

实现功能:DRE ETH TO CAN 硬件直接转发出去,但本地无法获取CAN数据,但在CAN TEST mode下的loopback ,CAN00 实现自发自收,同时CAN RX数据可以通过DRE->ETH 发送ETH, 相反路径下,ETH-CAN->Loopback->CAN RX interrupt。这样可以实现本地可以接收到CAN数据。

实现原理:CAN TEST模式,这个模式主要用于开发阶段的软件测试,不需要外挂CAN节点,此模式可以支持自发自收,也支持内部和外部模式,但是不会Module内部传播,仅支持节点自身发送接收。

实现框图:

图表 3 Pin control In Loop back modes

实现例子:

void IfxCan_EnableTestLoopBackMode(IfxCan_Can_Node node, boolean enable
{
/
Configure internal loop back mode */

IfxCan_Node_enableConfigurationChange(node->node);

复制代码
node->node->CCCR.B.TEST = 1;
node->node->CCCR.B.MON = 1;
node->node->TEST.B.LBCK = enable ? 1 : 0;

IfxCan_Node_disableConfigurationChange(node->node);

}

My infineon account Link:https://community.infineon.com/t5/博客/如何拓展实现Aurix-TC4X-Routing-CRE-and-DRE功能/bc-p/1126875#M84455

相关推荐
国科安芯12 小时前
立方星与微纳卫星综合电子微型化趋势下的抗辐射MCU选型综述
人工智能·单片机·嵌入式硬件·mcu·risc-v·抗辐射
国科安芯17 小时前
面向低轨卫星互联网载荷控制的抗辐射MCU技术综述
嵌入式硬件·mcu·卫星·低轨卫星·商业航天·抗辐射·微型互联网
硅基手札1 天前
【Linux 内核专栏 18】进程间通信 IPC(下)— Socket·Netlink·fd 三件套·futex·线程同步
linux·运维·驱动开发·单片机·嵌入式硬件·mcu·架构
霖霖7142 天前
【ESP32笔记】蓝牙BLE连接与广播
笔记·单片机·mcu·物联网
霖霖7142 天前
【ESP32笔记】SmartConfig一键配网
笔记·单片机·mcu·物联网
霖霖7142 天前
【ESP32笔记】WIFI连接—STA模式
笔记·单片机·mcu·物联网
霖霖7142 天前
【ESP32笔记】ESP中的分区表
笔记·单片机·mcu·物联网
亿道电子Emdoor2 天前
【Arm】访问陷阱简介
arm开发·单片机·mcu
Brilliantwxx3 天前
【STM32】 通用定时器:输入捕获与输出比较详解 测脉宽、测频率
stm32·单片机·嵌入式硬件·mcu
霖霖7143 天前
【ESP32笔记】RGB灯WS2812实验
笔记·单片机·mcu·物联网