从以太网到多个 CAN 网络的网关
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。
老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:
简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身边有这样灵性的人,一定要好好珍惜他们眼中有神有光,干净,给人感觉很舒服,有超强的感知能力有形的无形的感知力很强,能感知人的内心变化喜欢独处,好静,清静,享受孤独,不打扰别人不喜欢被别人打扰,在自己人世界里做着自己喜欢的事。
时间不知不觉中,来到新的一年。2024结束,2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。
一、问题
如何在 CANoe 中创建一个网关,将以太网帧转发到multiple CAN 网络?使用场景是 CAN 网络的压力测试。
答:可以,可以通过修改此以太网/CAN 网关配置来实现。
对上方配置进行了更改/添加(细节如下):
添加了一个 CAPL 脚本(EThernet_UDP_frame_simulation.can)。创建了一个 UDP 结构,如 CAN ID、DLC、数据和 UDP 帧模拟。
对现有示例工程 CAPL 代码(EthernetCanGateway.can)进行代码修改,用于将一个以太网端口路由到多个 CAN 网络。
Test_module_CAPL.can(用于启用和禁用压力测试)
将一个以太网 UDP 帧路由到多个 CAN 网络,每个 UDP 源端口号必须分配给一个特定的 CAN 通道。适配器配置可在此处下载。细节描述如下:
1、 EThernet_UDP_frame_simulation.can
UDP 帧结构和不同 UDP 源端口号的 UDP 模拟:
变量
{
mstimer udp_ch1, udp_ch2, udp_ch3, udp_ch4;
_align(1) 结构体 MyData1
{
int DLC1_Frame1;
int CAN_ID1_Ch1;
int offset1;
qword CAN_frame1_data;int DLC2_frame2;
int CAN_ID2_ch2;
int offset2;
qword CAN_frame2_data;
}buffer_ch1;
}
[…]
on 计时器 udp_ch1 //