一、測試環境
SemiDrive 支持系統 G9 系列目錄中,PTG5.1.2 版本只適用於 G9H,其中 MCAL_v1.3.0 例程較為全面。最近支持過程中,客戶有 CAN 拓展幀路由到 ETH 的需求,測試操作的過程如下:
註:此版本使用eMMC Only的啟動方式(撥碼:0001),不使用 OSPI Flash。
硬體:SemiDrive G9H ref A02 圖(1)、USBCANFD200U
軟體:PTG5.1.2、MCAL_v1.3.0、G9_PTG5.1_SDPE_tools
軟體環境搭建以及 G9H Ref A02 操作方法參考:《SD_G9_Quick_Start_Rev2.4.pdf》

圖(1)
二、CAN<->CAN
1. 9 系列默認輸入給 CAN 模塊的 Root Clock 是 24M 外部晶振時鐘源,使用 PLL Clock 精度偏差較晶振時鐘誤差較大,用戶可通過修改如下代碼(圖 (2))切換 CAN 時鐘源為 PLL 80M:

圖(2)
- 另一方面,80M 常用的採樣點在 MCAL 文檔中有現成的配置參數。這裡我們選擇 1000K/10/21/8/5 的配置,和 USBCANFD200U 上位機軟體中的配置保持同步(圖(3))。

圖(3)
參考 MCAL 手冊中常用採樣點配置參數,在默認配置的基礎上,同步EB中CAN3/CAN4和USBCANFD200U的波特率和採樣點:1Mbps 80%(圖(4))

圖(4)
- SDPE 支持 Classic CAN、Extended CAN 報文路由。在路由表中,Classic CAN、Extended CAN 報文通過 CAN ID 的 bit30 和 bit31 區分(起始 bit 為 bit0)。CAN ID 與 CAN 報文的對應關係如圖(5)所示:

圖(5)
發送結果如圖(6)所示,CAN3 發送的標準幀 ID 為 0x12 的數據被路由到 CAN4 後,幀 ID 為 0x55;CAN3 發送的拓展幀 ID 為 0x12 的數據被路由到 CAN4 後,幀 ID 為 0x66。

圖(6)
三、CAN<->ETH
要進行 CAN->Eth 的路由需要在路由表中增加 Eth 的路由信息,這裡以 CAN4 為例,增加了 CAN4<->Eth 的雙向路由規則。將下面的路由信息加入到路由表 route 表項中,然後生成並燒寫此路由表到 G9 中。注意,路由表中配置的 ID 要和測試例程中發送的 ID 一致,否則會出現路由失敗的情況。
注意:路由表中的 Eth1 和 Eth2,指的是對外的 2 路 UDP 連接,而非硬體以太網埠。
下圖(7)的配置,表示 CAN4 發出的 ID 為 0x326/0xFFFF358 的 Pdu,轉發到以太網連接 1;以太網連接 1 收到的 ID 為 0x327 的 Pdu,轉發到 CAN4。(當 Target Bus 是 Eth 埠時,必須配置 Trigger Mode,否則應為空。)

圖(7)
測試步驟如下:
1)登錄 Linux 系統,配置 G9 ip 地址(圖(8))和 PC 在一個網段(圖(9))

圖(8)

圖(9)
2)在 G9 Linux 運行 sdpe_test,啟動 UDP 服務,目前 SDPE 支持 2 路以太網連接,因此最多可以啟動兩個 sdpe_test 實例(圖(10)),分別對應路由表中的 Eth1 和 Eth2(-p 表示 UDP Server 埠,可以修改;-e 是 SDPE 埠,無需修改):

圖(10)
3)在 PC 機的 cmd console 上執行以太網測試程序(G9_UDP_Client),如圖(11):

圖(11)
4)G9 連接 CAN 盒子,向 CAN4 發送 id:0x326/0xFFFF358,data[0]:0x37 的數據。SDPE 會按照路由表,將數據轉發到 Eth1。
5)PC 上的 G9_UDP_Client 程序接收到數據,會向 Eth1 返回 ID 為 0x327 的數據。
注意:G9_UDP_Client 是個 PC 上的 demo 程序,它的行為是收到數據後,原路返回。此程序對數據格式有要求,可以參考 pc_tools/route_table.txt 中的轉發規則,比如以下規則,表示 G9_UDP_Client 收到 ID 為 0x326、第一字節為 0x37 的 CAN Pdu 後,會返回 CAN ID 為 0x327 的數據包:0x326(0x37)->0x327 如圖(12)

圖(12)
用戶可以根據需求,自行修改 G9_UDP_Client 的轉發規則。
6)檢查 CAN 盒子,應能從 CAN4 收到 ID 為 0x327//0xFFFF359 的數據包(圖(13))。

圖(13)
四、參考文獻
- 《SemiDrive_9Series_MCAL User Guide》
- 《SD G9H Quick Start Rev1.01》
如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com 作者:Alan
更多資訊,請掃碼關注我們!

評論