【SemiDrive G9X】【PTG5.0】:CAN/LIN 转 ETH 功能测试

一、 概述

目前 G9系列 SOC 内置最多 20 路 CANFD 控制器,最多 16 路 UART/LIN 控制器,并且使用了 SDPE 加速单元,CAN 控制器全部交由 SDPE 控制。G9 系列网关处理器内置两个千兆以太网控制器,默认分别属于 Safety 域和 AP 域,目前两个以太网控制器都可以根据客户自己的要求同时分给 Safety R5 或者 AP 使用。SDPE 模块由包处理硬件和固件组成,核心功能是出来 CAN\LIN\ETH 的转发,主要将大部分路由运算从 Safety R5 转移到 SDPE,无需上报给 Safety R5。

本文主要基于 G9X DEMO 板的 CAN/LIN 转 ETH 功能测试。

二、 准备环境

硬件:SD004_G9X_REF_A03_131 ×1,USBCAN-2I ×1,CAN&LIN Analyser ×1

软件:G9 PTG5.0,CANalyst 软件,TCANLINPro 软件,MobaXterm 软件

以下是 CANalyst 、 MobaXterm 和 TCANLINPro。

tool1tool2tool3

以下是 USBCAN-2I。

tool4

以下是 CAN&LIN Analyser。

tool5

以下是 SD004_G9X_REF_A03_131 开发板。

tool6

三、CAN/LIN 转 ETH路由报文配置

1、CAN/ETH 路由报文设置

SDPE 支持 CAN/CANFD 报文与 ETH UDP 包互相路由,当 Target Bus 是ETH 端口时,必须配置 Trigger Mode ,否则应为空这个主要是配置发送方式,报文发送方式可以是缓冲类型(NEVER),也可以是非缓冲类型(ALWAYS)。

值得注意的是,路由表中的 ETHX,指的是对外的 UDP 连接,而非硬件以太网端口,SDPE 最多支持 4 路 UDP 连接,路由表中包含 ETH1-ETH4 共 4 个以太网路由端口。

参考配置如下:

match7

2、LIN/ETH 报文路由配置

LIN/ETH 报文路由配置与 CAN/ETH 报文路由配置基本相同,不同之处在于 LIN/ETH 报文路由需要在路由表的 LIN 页配置 LIN 报文的相关参数。

LIN 报文路由至 ETH 时,路由表中的 LIN 页中,此 LIN 报文的 DRC 需要选择“slave”,vlin_sched 选择“N”。

ETH 报文路由至 LIN 时,路由表中的 LIN 页中,此 LIN 报文的 DRC 需要选择“master”,vlin_sched 选择“N”。

参考配置如下:

match8

LIN 路由报文页配置:

match9

四、功能测试

1、CAN 与 ETH 互转功能测试

设置路由表如下。
match10

目前原厂提供一个 PC 端以太网的 DEMO 测试应用程序 G9_UDP_Client,可自行下载,主要作用是收到数据后,原路返回,规则如 0x326(0x27)->0x327 表示测试程序收到 ID 为 0x327,第一个字节为 0x37 的 CAN Pdu 后,会返回 CANID 为 0x327 的数据包,以下是测试步骤:

1.1 用网线连接 PC 和 G9 DEMO 板,进入 LINUX 系统,配置 G9 ip 地址和 PC 在统一同一个网段

PC 端  
match11

G9 端

root@g9x_ref:~# ifconfig eth1 192.168.10.50 up

互相可以ping 通就代表配置成功。

1.2 在G9 LINUX 端运行 sdpe_test,启动 UDP 服务

目前 SDPE 支持 4 路以太网连接,所以最多可以启动 4 个 sdpe_tes 示例,分别对应路由表的 ETH1-ETH4,其中 ETH1-ETH4 的 SDPE 端口号分别是 1024,1025,1027,1028,如下,其中 -p 表示 UDP Server 端口,-e 是 SDPE 端口:

root@g9x_ref:~# sdpe_test -p 8888 -e 1024 &

1.3 在 PC 机上的 cmd console 执行以太网测试程序
match12

1.4 G9 CAN3 连接 CAN 盒子CAN0(CANH<->CANH,CANL<->CANL),发送 id :0x326,data[0]:0x37 的数据,根据路由表,此数据将会转到 ETH1

match13

1.5 PC 以太网测试程序接收到数据后,会向 ETH1 返回 ID 为 0X327 的数据
result15

1.6 检查 CAN 盒子,CAN3 成功收到 ID 为 0x327 的数据包

resultt15

2、LIN 与 ETH 互转功能测试

设置路由表如下。

match16

LIN 页路由报文设置如下:

match17

以下是测试步骤:

2.1用网线连接 PC 和 G9 DEMO 板,进入 LINUX 系统,配置 G9 ip 地址和 PC 在统一同一个网段

PC 端
match18

G9 端

root@g9x_ref:~# ifconfig eth1 172.16.3.100 up

互相可以ping 通就代表配置成功。

2.2 在G9 LINUX 端运行 sdpe_test,启动 UDP 服务

目前 SDPE 支持 4 路以太网连接,所以最多可以启动 4 个 sdpe_test 示例,分别对应路由表的 ETH1-ETH4,其中 ETH1-ETH4 的 SDPE 端口号分别是 1024,1025,1027,1028,如下,其中 -p 表示 UDP Server 端口,-e 是 SDPE 端口:

root@g9x_ref:~# sdpe_test -p 8888 -e 1024 &

2.3 在 PC 机上的 cmd console 执行以太网测试程序

match19

2.4 G9 LIN1 连接 LIN 盒子 LIN0,发送 id :0x12,data[0]:0x37 的数据,根据路由表,此数据将会转到 ETH1,以下是 LIN 盒子的配置

match20

以下是 LIN 盒子的发送配置

match20

2.5 PC 以太网测试程序接收到数据后,会向 ETH1 返回 ID 为 0X13 的数据
result22

2.6 检查 LIN 盒子,LNI1 成功收到 ID 为 0x13 的数据包

result23

五、参考文档

1、《SemiDrive_G9_网关软件开发指南_Rev1.3.pdf》

2、《SD_G9_Quick_Start_Rev2.4.pdf》

3、《SD_G9_SDPE_Reference_Manual_Rev1.7.pdf》

六、总结

以上步骤完成了 CAN/LIN 转 ETH 的功能测试。

接下来将会更新更多关于 SemiDrive G9 系列的文章,感兴趣的可以在评论区评论或者关注。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

akumasummon

akumasummon

10 个月前
这样整套下来,大概多少钱?