控制器區域網路 (Controller Area Network,簡稱CAN或者CAN bus)是常用於汽車的通訊網路。在匯流排上的node沒有主從之分,每一個node都可以主動送出或接收資料,在匯流排上新增或減少一個node也不用大改軟硬體,有自我偵錯能力。而且CAN訊號屬於差動信號,有好的抗雜訊能力,所以適用於有很多雜訊干擾較嚴重的環境。由於以上的優點,除了用於常見的汽車、卡車、火車、堆高機;連腳踏車、智慧家庭、工業電腦或Gateway等等也會加入這個傳輸介面。
這些應用中所使用的平台各式各樣,但大多沒有提供CAN的介面。開發者要加入一個CAN的介面,常常面臨是否要更換平台的窘境。為了解決這個問題,SPI轉CAN的Bridge晶片是一個不錯的選擇──SPI在這些平台上是一個標準的介面,所以使用一個SPI通道就可以不更動平台,就新增一個CAN的介面。
要架構一個通道的CAN node,需要一個CAN控制器及一個CAN 收發器。一條CAN匯流排上最少有兩個node互傳,最多可以有2^29個node。Microchip在SPI轉CAN的Bridge晶片與收發器產品提供多種的選擇如下:
SPI介面,支援CAN2.0A/B的控制器;
SPI介面,支援CAN2.0A/B及CAN FD的控制器;
SPI介面,整合CAN收發器及CAN2.0A/B控制器於一顆IC;
支援CAN FD的雙通道CAN收發器;
支援睡眠模式的單通道CAN收發器;
支援Partial Networking的CAN收發器等等…
在此就不對細部功能一一描述。
如圖(一)所示,在CAN匯流排上最遠兩個端點的node,需要加上終端電阻120 ohm來防止信號反射。也可以分成兩個60 ohm串聯,中間連接的端點接一個電容到地。
如圖(二)所示,為了抑制共模雜訊及突波,有時會在收發器出來時接一個CMC(option)及TVS,CANH/L線上除了CMC外,通常不允許加入其它元件。Microchip的ATA系列CAN收發器通過美系車廠認證不需CMC與TVS並符合SAE標準,可節省成本。另外CL2及CH2可用來調整CANH/L上的訊號斜率以抑制輻射干擾。
在布局方面的建議,CAN收發器越靠近connector越好,TVS通常放在connector旁;而CANH和CANL的走線需等長,零件擺放的位置對稱,以防止CANH和CANL的訊號不對稱。
有些客戶挺關心購買相關的CAN產品是否有符合相關的標準。Microchip的CAN產品符合多項測試。除了符合ISO11898的標準外,也通過了車規的AEC-Q100、C&S的相容性測試、EMC的相關測試等等。
對於軟體的支援,如果您跑的是Windows作業系統,我們可以提供基於UWP(Universal Windows Platform;通用Windows平台)的API供客戶開發,建立與SPI介面的CAN控制器之間的通訊。如果跑的是Linux作業系統,網路上也有第三方所撰寫的Driver可以使用,可謂資源相當齊全。在不用更換平台的情況下,如果要加入CAN的介面,SPI轉CAN bridge是您最好的選擇。
相關元件及開發板資料,請參考官方網站:
https://www.microchip.com/design-centers/can,亦歡迎與我們經驗豐富的設計團隊聯繫。
作者 鄒文棋 Microchip應用工程師