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

相关推荐
南岸的水15 小时前
BMS国标充电解析
单片机·嵌入式硬件·mcu
sramdram15 小时前
低功耗国产蓝牙芯片,蓝牙MCU方案
单片机·嵌入式硬件·mcu·蓝牙mcu·蓝牙方案
EMTime10 天前
玲珑GUI-工程设置
单片机·mcu·ui·用户界面
agathakuan11 天前
從零開始在家開發 IoT: Flash & Run 腳本解析(STM32 + WiFi HaLow)
stm32·mcu·iot
sramdram12 天前
基于国民32位MCU的无磁智能水表方案
mcu·32位mcu
十年编程老舅13 天前
读懂 MCU 启动:从上电到程序运行全链路
单片机·嵌入式硬件·mcu·嵌入式·cpu·嵌入式开发·ram
小麦嵌入式14 天前
PCB设计笔记(一):51核心板原理图(电源、晶振、复位)
stm32·单片机·嵌入式硬件·mcu·51单片机·硬件工程·pcb设计
李永奉15 天前
杰理SDK开发-【BUG】软件开启音量同步连接华为、荣耀手机没有自动开启音量同步
单片机·嵌入式硬件·mcu·物联网·智能手机·bug·语音识别
国产芯片设计23 天前
小家电单段码屏项目实战|YL1621 LCD驱动开发与调试心得
驱动开发·stm32·单片机·mcu·51单片机
嵌入式Q23 天前
FreeRTOS源码解析(10)软件定时器
单片机·mcu·freertos