汽車中的匯流排系統——CAN(一)

這本書是我從業這些年至今認為最好的一本汽車電子軟體的書。讀完了它可以說是瞭解了汽車電子軟體領域的大半,可以自稱小牛一頭。從今天開始,我將在這裡慢慢給大家介紹書中內容,請大家跟上節奏,千萬別翹課。

CAN匯流排(一)

CAN匯流排是目前應用最廣泛的低速和高速汽車匯流排系統統。CAN(controllerarea network,控制器區域網)是博世公司在20世紀80年代後半期開發的,自1991年以來一直被用作車輛的C級網路[1,2]。此後不久,隨著29位識別符號的引入,規範進行了修訂,並以博世釋出的CAN 2。0a和2。0b的形式,仍然是所有現有CAN實現的基礎。ISO-11898和SAE-J2284對用於乘用車的協議進行了標準化,SAE-J1939對用於商用車的協議進行了標準化。雖然CAN對歐洲乘用車製造商和全球幾乎所有商用車製造商產生了非常迅速的影響,但美國汽車製造商長期以來一直在國內市場上使用B級匯流排SAE-J1850。但這些製造商也在逐漸轉向CAN。對於新車,自2008年起,CAN是唯一認可的用於廢氣相關部件(OBD)診斷測試的介面。第一個CAN實現是由博世和英特爾合作開發的。然而,博世已經在早期階段實施了一項許可政策,因此幾乎每個微控制器製造商現在都集成了CAN控制模組,甚至可以使用CAN VHDL模組整合到ASIC和FPGA中。在授權時,博世提供了一個參考模型和一個測試程式,以確保所有的控制器都能相互相容通訊。由於汽車行業的大量生產,對於現場匯流排,如自動化技術中常見的Profibus,CAN控制器比大多數ASIC便宜得多。因此,在工業應用中,CAN還用作感測器-執行器匯流排(自動化中的CAN)。博世最初的CAN規範最大的缺點之一是,它實際上只是定義了資料鏈路層。至於物理層的位元率,允許有不同的實現。而且也沒有針對應用層的規範。正如所料,這些自由度導致了不同的解決方案。物理層的差異主要是由於所需匯流排長度和可能的位元率之間差別,並且是相對可管理的,而應用層中的解決方案在很大程度上彼此不相容。物理層和資料鏈路層,包括與排放有關的規範,在傳輸層,以及應用層中進行定義。下表給出一個CAN規範的概覽,具體細節請參考原始文件。

主要CAN標準

汽車中的匯流排系統——CAN(一)