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

相关推荐
咸鱼嵌入式1 天前
【AutoSAR】详解CANIF模块
单片机·mcu·车载系统·autosar
EVERSPIN2 天前
高性能32位MCU在热敏打印机上的应用
单片机·嵌入式硬件·mcu·32位mcu
学嵌入式的小杨同学2 天前
STM32 进阶封神之路(四十一)FreeRTOS 中断管理、软件定时器、内存管理与低功耗模式|工业级实战完整版
vscode·stm32·单片机·嵌入式硬件·mcu·智能硬件·嵌入式实时数据库
学嵌入式的小杨同学2 天前
STM32 进阶封神之路(四十)FreeRTOS 队列、信号量、互斥锁精讲|任务通信、同步、资源保护(超详细图文版)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
电子科技圈3 天前
赋能高端音频功能促进多样化设备创新——XMOS USB Audio平台实现四大功能升级
人工智能·mcu·音视频·智能家居·边缘计算·语音识别·智能硬件
笨笨饿3 天前
42_C语言查找算法
linux·服务器·c语言·人工智能·mcu·学习方法·嵌入式软件
匿名了匿名了4 天前
直流无刷与直流有刷电机
stm32·嵌入式硬件·mcu
笨笨饿6 天前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
R6bandito_7 天前
自实现FLASH读取函数中的隐式类型转换bug踩坑记录
c语言·开发语言·经验分享·stm32·单片机·mcu·bug
Redemption7 天前
嵌软面试每日一阅----freeRTOS(三)
stm32·单片机·嵌入式硬件·mcu·物联网·面试·51单片机