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

相关推荐
BBNbQKHXygfU1 天前
基于遗传算法优化BP神经网络的时间序列预测探索
mcu
想放学的刺客1 天前
单片机嵌入式试题(第30期)全局变量“满天飞“!!!局限性和影响有哪些,什么情况下才不得不使用?
单片机·嵌入式硬件·mcu·物联网·51单片机
网易独家音乐人Mike Zhou1 天前
【RealMCU】瑞昱官方LOG信息保存及解析,DebugAnalyzer自动化接收脚本(不需要用到ROM.trace文件)
单片机·mcu·物联网·自动化·嵌入式·iot·瑞昱
郝亚军4 天前
获取libiec61850和如何编译iec61850库
mcu·tcp/ip
liu_endong4 天前
杰发科技AC7840——打印所有GPIO的PORT配置寄存器
mcu·算法·杰发科技·autochips·车规芯片
想放学的刺客4 天前
单片机嵌入式系统试题(第28期)flash芯片各引脚作用?低功耗设计估算电池续航时间是多少?如何优化低功耗等项目经验
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机
MickyCode6 天前
嵌入式开发调试之Traceback
arm开发·stm32·单片机·mcu
wotaifuzao7 天前
【Keil 5安装】keil 5最新版本安装+环境配置+下载百度资源分享(安装包,注册机等)
stm32·单片机·嵌入式硬件·mcu·学习·keil5·最新keil
帅次7 天前
系统分析师-信息物理系统分析与设计
stm32·单片机·嵌入式硬件·mcu·物联网·iot·rtdbs
MounRiver_Studio7 天前
RISC-V IDE MRS2进阶分享(三):MRS语言服务器
ide·mcu·risc-v·嵌入式开发