基於NXP SJA1105 五端口汽車以太網交換機方案

這裡要介紹一個車用產品-五端口汽車以太網交換機SJA1105,主要基礎架構,如下圖;
SJA1105(以太網交換機),負責連接在端口上的設備(IC)資料傳送/接收,今天的主角.
HOST MCU(例如: MPC5748 or i.MX),除了控制及設定SJA1105之外,主要是協助處理來自車上的CAN/LIN訊號.
PHY(TJA1101 or TJA1102),負責實體層以太網的資料傳送/接收,和RJ45不同,它是2線式接線.
SOC(例如: LS1043 or i.MX),負責處理高速&量大的數據,例如:影像及感測器....

常見方塊圖

為何要使用五端口的Ethernet(SJA1105) ?
1. 因為各端口的protocol(MII/RMII/RGMII/SGMII)及速度(10/100/1000 Mbit/s)及介面電壓不同,需要透過SJA1105即可直接將各端口器件對接.
2. 可減少車輛節點的佈線及總線干擾並有效降低SOC/MCU的負擔.

(一)SAC能協助提供(申請)開發者需要的參考文件,如下;

1. SJA1105_T_P_Q_R_S基本配置說明 (幫忙使用者軟件設定快速上手)
2. SJA1105P_Q_R_S Data Sheet (產品的詳細規格書)
3. Software user manual for SJA1105P_Q_R_S (軟件位址說明)
4. SJA1105PQRS Application Hints (軟/硬件設計時注意事項)
5. PCB Design Guide for SJA1105x and TJA110x (PCB Layout需參照及注意事項)
6. Configuration generation tool (軟件編程source code)
7. SJA1105 硬件參考設計圖(Schematic file)

(二)SAC會依開發者需求,協助review硬體線路.

(三) SAC同時協助軟體編程配置設定,
硬體完成後,需要透過MCU的SPI interface對SJA1105內部暫存器進行設定才能正確動作.
設定步驟&方法如下;

步驟一,
取得“Configuration generation tool”檔案解壓縮後,內容文件說明如下;

Configuration generation tool內容

步驟二,
以其中最常用的simplePQRS.py為例, 需要先對simplePQRS.py進行最基本的端口配置,
a. 端口速率配置,
根據simplePQRS.py配置端口速率,SJA1105各端口均支持10/100/1000M,根據各端口的實際速率給 speed數組變量賦值, 變量的每一位從左至右依次對應 Port0 ~4 如下圖所示,

Speed

b. 端口工作模式,
從上至下依次是 Port 0~4 每個 Port 有配置工作模式MII/ RMII RGMII / SGMII )以及MAC 還是 PHY mode 。開發者可以根據實際電路連接模式和工作方式來進行對應配置。
port mode
c. 完成基本的端口配置後,將simplePQRS.py轉換成simplePQRS_SJA1105PR.hex 和“ simplePQRS_SJA1105QS.hex,如下; (如果沒有生成hex文件,可能py腳本或python環境中的某些錯誤未正確安裝。 請再仔細檢查。)
2 hex

步驟三,

以SJA1105Q為例,將步驟二產生的simplePQRS_SJA1105QS.hex轉換成simplePQRS_SJA1105QS.c
編輯converter.py內容最後一行, 如下,

Hex to c

步驟四,
1. 將“Generate Array.py”複製到gateway project的子文件夾“Simple Example”中,並將其複製到MPC5748配置工具的根目錄。
Generate Array
2. 運行“Generate Array.py”,然後生成c“
simplePQRS_SJA1105QS_Array file

步驟五,
1. 將“ENET_demo.c”中的數列替換為simplePQRS_SJA1105QS_Array.c中的數列.如下;
simplePQRS_SJA1105QS_Array c

2. 關於時鐘和端口的其他配置,根據系統要求進行修改,如下。
configuration about clock port

MPC5748G Gateway Demo位於Gateway project的子文件夾“Simple Example”中。 使用此腳本代替在Gateway Demo上配置SJA1105,以便將其配置到配置工具的根目錄.

TJA1101僅需對以下pin設定即可,如下圖;
TJA1101 HW config_
關於這些固定的CONFIG pin,建議進行硬件設定,以減少軟件配置工作量;
CONFIG 0 – 通過雙絞線對接的2個PHY一個設置為Master,一個設置為Slave即可。
CONFIG 1 – 建議設為Managed Operation,這樣PHY是完全被MCU 控制的,不會在不需要的情況下自行去建立Link up
CONFIG 3/2 – 若使用的是RMII mode,50MHz REF_CLK是MCU給PHY(01),否則就是PHY 給MCU(10)
PHYAD – 可以隨意指定,讓軟件知道他們硬件配置成什麼即可,但不能懸空,否則PHY address不確定。

►場景應用圖

►產品實體圖

►方案方塊圖

►SJA1105 Schematic

►MPC5748 Schematic

►TJA1101 PHY Schematic

►SJA1105 & PHY TJA1101(2) & MCU多種組合接線圖,方便開發者組合多port 使用,包含單一SJA1105五端口及兩顆SJA1105的七端口

►SJA1105尾碼功能說明

►核心技術優勢

 SJA1105P/Q/R/S是一款支持IEEE音頻視頻橋接(AVB)和時間敏感網絡(TSN)標準的5端口汽車以太網交換機。  五個端口中的每一個都可以單獨配置為以10 Mbit/s,100 Mbit/s或1000Mbit/s運行。可實現模塊化和成本優化的ECU,能夠支持任何車載連接要求。  可以靈活地連接各種PHY設備,例如恩智浦半導體的TJA1101和TJA1102 PHY以及其他商用PHY設備,或用於診斷應用和工業自動化市場的通用10/100/1000BASE-TX PHY。  可用在快速以太網和千兆以太網PHY,高速接口可以輕鬆級聯多個SJA1105P/Q/R/S和SJA1105(T)以實現可擴展性。  它可用於各種汽車場景,如網關應用,車身網區控制或菊花鏈中的多個ECU互連。  該器件有兩種引腳排列:  第一種變化組合(SJA1105P/Q)中,所有五個端口都可以配置為在MII / RMIII / RGMII模式下操作。  第二種變化組合(SJA1105R/S)提供SGMII PHY接口代替一個MII / RMII / RGMII。  該設備還有兩種功能變體,該SJA1105Q / S在SJA1105P / R功能之上實現了時間觸發以太網和TSN。

►方案規格

1.五端口架構及級聯(Cascading)多端口擴充架構. 2.每個端口可單獨配置為MII和RMII,RGMII操作,速率為10 Mbit/s或100 Mbit/s和RGMII以10 Mbit/s,100 Mbit/s或1000 Mbit/s運行 3.獨立的I/O電壓域:MII/RMII/RGMII可選擇1.8/2.5/3.3V操作; 可選1.8/2.5/3.3V用於主機接口;1.2V核心電壓。 4.本體面積小:LFBGA159(12 mm×12 mm)封裝 5.汽車Grade2 環境工作溫度:40°C至+ 105°C 6.符合AEC-Q100 Rev-H的汽車產品認證 7.ISO-26262, ASIL-A 介面特性: 1. MII/RMII用於連接10/100Mbit/s PHY/主處理器(快速以太網) 2. RGMII用於連接10/100/1000 Mbit/s PHY/主機處理器(千兆以太網); 3. SGMII用於連接10/100/1000 Mbit/s PHY/主處理器 4. MAC和PHY模式(MII/RMII/RGMII/SGMII)用於直接與其他接口連接或和主處理器(MCU)連接. 5. SPI用於主機處理器設定