這裡要介紹一個車用產品-五端口汽車以太網交換機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”檔案解壓縮後,內容文件說明如下;

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

b. 端口工作模式,
從上至下依次是 Port 0~4 每個 Port 有配置工作模式MII/ RMII RGMII / SGMII )以及MAC 還是 PHY mode 。開發者可以根據實際電路連接模式和工作方式來進行對應配置。

c. 完成基本的端口配置後,將simplePQRS.py轉換成simplePQRS_SJA1105PR.hex 和“ simplePQRS_SJA1105QS.hex,如下; (如果沒有生成hex文件,可能py腳本或python環境中的某些錯誤未正確安裝。 請再仔細檢查。)

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

步驟四,
1. 將“Generate Array.py”複製到gateway project的子文件夾“Simple Example”中,並將其複製到MPC5748配置工具的根目錄。

2. 運行“Generate Array.py”,然後生成c“

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

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

MPC5748G Gateway Demo位於Gateway project的子文件夾“Simple Example”中。 使用此腳本代替在Gateway Demo上配置SJA1105,以便將其配置到配置工具的根目錄.
TJA1101僅需對以下pin設定即可,如下圖;

關於這些固定的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不確定。