隨著微處理器及控制器的效能提升、價格降低及穩(wěn)定性增高等因素的產(chǎn)生,汽車產(chǎn)業(yè)中也開始導入電子組件和裝置來取代傳統(tǒng)的純機械式產(chǎn)品,例如用電控燃油噴射系統(tǒng)來取代化油器,急剎車緩沖裝置采用高速的微處理器來達成實時的反應速度等,這在安全氣囊及座椅安全帶方面也有所體現(xiàn)。另外在汽車中也加裝了許多傳感器,用來追蹤不同裝置在溫度和壓力上的改變,并在出現(xiàn)異常時提醒控制系統(tǒng)及早做出處置。
為了讓汽車更安全、更有效率、更可靠和更容易操控,一臺車體中采用的電子控制單元已越來越多。在這種情況下,各個單元間的通信通力也就越來越重要。傳統(tǒng)的配線方式已顯得過于復雜,而且會增加車體重量和配線成本。這時就出現(xiàn)了對先進車載
總線技術(shù)的使用需求,以對復雜的電子控制單元及行車信息提供整合控制,進而實現(xiàn)線傳控制系統(tǒng)的理想境界。
在汽車中的電子化功能主要是要對車體中的各個零件及安全裝置進行控制,以及為駕駛提供行車或娛樂性的信息。不同的應用有不同的傳輸速率及控制機制的要求。目前業(yè)界常見或在發(fā)展中的幾項代表性的總線技術(shù)如圖1所示。
圖1 不同總線技術(shù)的速度及應用定位
CAN的技術(shù)特色
CAN協(xié)議具有許多優(yōu)勢,包括它能讓設計者很容易地為CAN系統(tǒng)新增或移除網(wǎng)絡中的節(jié)點,而且不會影響其他網(wǎng)絡。CAN系統(tǒng)中的分散性微控制器無需依賴中央的主控制器就能收發(fā)信號,從而讓信號的流量管理更有效率,也有助于減少內(nèi)部線路的需求。
在CAN系統(tǒng)中,每個節(jié)點的地位是相同的,也就是說只要總線處于閑置狀態(tài),每個控制器節(jié)點都可以傳送信號給任何其他的控制器??刂破魉l(fā)出的每個信號都有自己的識別碼,因此各個節(jié)點會接收與自己相關(guān)的信號,并忽略不相關(guān)的信號。更重要的是,在此機制中,當任何控制器出現(xiàn)故障時,系統(tǒng)中的其他裝置仍然能夠正常運作,并能保持無障礙的通信能力。
在應用上,CAN協(xié)議通常是用來傳送信號以觸發(fā)某些事件,例如在急剎車時拉緊安全帶或傳送測量到的數(shù)據(jù)(如溫度值或壓力值),因此在它的定義中限定所傳送的信號不會大于8字節(jié)。它不會去中斷任何進行中的通信行為,但會為發(fā)出的信號設定優(yōu)先權(quán),以避免產(chǎn)生信號之間的沖突,并確保緊急的信號能夠被優(yōu)先傳送。不僅如此,此協(xié)議還具備誤碼檢查的機制,讓整個通信過程更可靠。此傳輸規(guī)范具有很高的效能,在CAN系統(tǒng)中每秒可傳送7600個8字節(jié)信號或1800個觸發(fā)信息。
一般來說,CAN協(xié)議具有以下特性:
□ 信號的優(yōu)先次序;
□ 對延遲時間的保證;
□ 配置上的彈性;
□ 提供具有時序同步性的多點傳輸接收功能;
□ 系統(tǒng)級的寬數(shù)據(jù)一致性;
□ 多主機架構(gòu);
□ 誤碼偵測和誤碼信息;
□ 當總線出現(xiàn)空檔時,會立即自動重傳損毀的信號;
□ 能分辨節(jié)點的暫時性錯誤和永久性錯誤,并自動地關(guān)掉確定失常的節(jié)點。
CAN協(xié)議介紹
CAN協(xié)議是參考ISO/OSI的7層協(xié)議模式而做定義的,但因它主要是用來傳送簡短且簡單的信號,而且是一封閉性的系統(tǒng),并不需要負責系統(tǒng)的安全、產(chǎn)生用戶接口的數(shù)據(jù),以及監(jiān)控網(wǎng)絡的登入等動作,因此只涉及了實體層和數(shù)據(jù)鏈接層的定義。
1、實體層規(guī)范特性
實體層負責的是網(wǎng)絡中節(jié)點與節(jié)點之間的連結(jié),以及在銅線、同軸纜線、光纖,甚至是無線信號的實際電性脈沖傳送。傳送器的實體層會把從數(shù)據(jù)鏈接層來的數(shù)據(jù)轉(zhuǎn)換為電子信息,再傳送出去;在接收端,實體層將這些電子信息傳換為數(shù)據(jù)格式,再傳送到數(shù)據(jù)鏈接層。
在一個網(wǎng)絡系統(tǒng)中,要確保各個節(jié)點之間能夠順利地溝通,先決條件是每個節(jié)點的實體層特性必須是相同的,而CAN實體層的作用就在于規(guī)范位表示法、位時序及同步性,通常還包括腳位連接器和接線的型式。CAN由兩條序列總線(CAN_H和CAN_L)實時傳輸數(shù)據(jù),傳輸速率可高達1Mb/s。理論上,每個CAN總線最多可連結(jié)2032個節(jié)點,但受限于收發(fā)器的功能,實際運用上最多大約可連結(jié)100個節(jié)點,而在一般的運用上則大約是連結(jié)3~10個節(jié)點。CAN實體層示意圖如圖2所示。
圖2 CAN實體層架構(gòu)示意圖
2、數(shù)據(jù)鏈接層規(guī)范特性:總線仲裁
CAN數(shù)據(jù)鏈接層可以說是CAN功能的核心,其目的在于建立數(shù)據(jù)信框封包,在信框內(nèi)包含數(shù)據(jù)和控制數(shù)據(jù)。數(shù)據(jù)鏈接層的主要功能之一,就是當系統(tǒng)中出現(xiàn)兩個信號同時想使用網(wǎng)絡中的相同資源時,如何防止沖突的發(fā)生。這就是所謂MAC(Medium Access Control)功能。在CAN協(xié)議中,MAC功能會讓具有最高優(yōu)先權(quán)的數(shù)據(jù)信框優(yōu)先使用總線的網(wǎng)絡資源,此機制對于網(wǎng)絡效能的影響很大。
在網(wǎng)絡的接取控制上有兩大方向,即先決式和隨機式。在先決式的接取控制中,總線的使用權(quán)必須在節(jié)點接取總線前就預先定義好了,以確保不會發(fā)生任何沖突。此類網(wǎng)絡需要一個中央管控裝置來進行網(wǎng)絡管理,但一旦此裝置失常,整個網(wǎng)絡就無法運作;也有非中心化的架構(gòu),但相對會復雜許多。
在隨機式接取控制中,當總線閑置時,每個節(jié)點都能夠要求使用網(wǎng)絡資源。最常見的隨機式接取控制方式是載波偵測多重存?。–arrier Sense Multiple Access,CSMA),CSMA又分成限制或防止信號碰撞的CSMA/CA方式和允許碰撞再進行處置的CSMA/CD方式。由于CSMA/CD較浪費頻寬資源及會產(chǎn)生較長的延遲性,因此CAN采用的是CSMA/CA的方式,此作法又稱為非破壞性的按位仲裁機制。
CAN協(xié)議讓優(yōu)先權(quán)較高的信號先接取使用總線資源,在每個信號信框的一開始處就存在仲裁域,仲裁域中有一個識別碼,識別碼的數(shù)值越小,表示其優(yōu)先權(quán)限越高。此作法能有效地利用總線資源,其具有最高優(yōu)先權(quán)的信號,最大的延遲時間大約只有150ms。
在CAN的2.0A標準中,一開始定義識別碼的長度為11位,后來因市場的需求又提出了延伸性的2.0B版本。2.0B的格式通常被稱為延伸性CAN,它允許29位的識別碼,而且有主動及被動式兩種:2.0B主動,也就是能收、發(fā)延伸信框的節(jié)點;以及2.0B被動,它會放棄掉接收到的延伸信框。2.0B的29位識別碼能夠提供51200萬個獨特的信號及優(yōu)先等級,足以滿足來自越來越多節(jié)點的大量存取要求。
三、數(shù)據(jù)鏈接層規(guī)范特性:信框格式
所謂的信框即包含由傳送器送出的完整信號的數(shù)據(jù)封包。在CAN協(xié)議中具有4種信框,即數(shù)據(jù)信框、遠程信框、誤碼信框及額外負載信框。以下主要介紹數(shù)據(jù)信框的組成。
數(shù)據(jù)信框包含了識別碼和各種控制信息,以及最多8字節(jié)的數(shù)據(jù)。其基本組成包括:信框開始、仲裁域(又包括識別碼和RTR)、控制域(又包括IDE、r0和數(shù)據(jù)長度碼)、數(shù)據(jù)域、循環(huán)冗余碼檢驗域、確認域,以及信框終點等,如圖3所示。
圖3 延伸型CAN的數(shù)據(jù)信框組成架構(gòu)
其中控制信息是用來識別信框,決定對總線的使用,以及進行誤碼偵測。控制信息的另一項主要功能,就在于能夠分辨出某一信號是否已損毀了。當數(shù)據(jù)在任何網(wǎng)絡中傳送時,隨機性的誤碼是很常見的,所以數(shù)據(jù)鏈接層的重要任務之一,就是要限制這類錯誤的發(fā)生。
CAN的特色之一,就是可以通過5種方式來進行誤碼偵測,進而能掌控錯誤的發(fā)生。這5種方式包括:位檢驗、信框檢驗、循環(huán)冗余碼檢驗、確認檢驗和填充規(guī)則檢驗。透過這些方式,CAN系統(tǒng)中未被發(fā)現(xiàn)的錯誤發(fā)生率能夠有效地被降低到4.7×10-11。
此外,當損毀的信號被發(fā)現(xiàn)后,偵測到錯誤的節(jié)點會對這個信號做記號,其他節(jié)點會忽視這些信號,并等待正碼信號再被重傳。如果沒有更多的錯誤出現(xiàn),從偵測到重傳的恢復時間是29個位時間。
CAN控制器的應用
一個CAN系統(tǒng)的建置中,主要的組成單元包括:控制器節(jié)點、接收/傳送發(fā)報器、兩個數(shù)據(jù)總線的終端器(電阻器)和兩條數(shù)據(jù)總線??刂破鳟斎皇瞧渲械暮诵膯卧谲囕d系統(tǒng)中,它可以是使用高速CAN中的汽車動力或傳動機構(gòu)控制單元,例如汽車發(fā)動機控制單元、自動變速器控制單元、ABS控制單元、安全氣囊控制單元等;也可以是使用低速CAN的車身系統(tǒng),例如車門上的集控鎖、車窗、行李箱鎖、后視鏡及車內(nèi)頂燈。在具備遙控功能的情況下,CAN控制器還能對遙控信號進行接收處理,或控制其他防盜系統(tǒng)。

CAN控制器能夠?qū)崿F(xiàn)上述CAN協(xié)議中的實體層及數(shù)據(jù)鏈接層的功能,達成位同步、優(yōu)先權(quán)仲裁和誤碼偵測等要求。今天的CAN控制器大多是延伸型的2.0B型式,因為標準型的2.0A或更早的1.x型式控制器無法識別29位的仲裁位。其中2.0B被動型式的控制器可以接受這些仲裁位,確認它們是否正確,再加以放棄;2.0B主動型式的控制器能傳送和接收這些位。
在使用上,2.0B和2.0A/1.x的控制器彼此是兼容的,只要2.0B的控制器能夠調(diào)整為不送延伸信框的模式,大家都能在同樣的總線上一起使用。就2.0B CAN控制器的型式來講,還有許多選擇。以意法半導體(ST)的CAN控制器來說,就依信號緩沖的數(shù)目和接收過濾器的數(shù)目不同而分為5種類型,不同的類型又有其適合的應用領(lǐng)域,如圖4和下表所示:
圖4 依信號緩沖及接收過濾器數(shù)目而區(qū)分的CAN控制器型式
1、pCAN(passive CAN):支持2.0B被動協(xié)議,它有3個傳送/接收郵箱和2個信號識別碼過濾器、2個中斷向量,并支持低功耗模式;
2、beCAN(basic-enhanced):支持2.0B主動協(xié)議,它有2個優(yōu)先傳送郵箱和1個接收
FIFO,有助于實時性的表現(xiàn);有4個可延展和可配置的過濾器,用來處理所有的信號,由于是透過硬件來過濾,所以能將對CPU的負載需求降到最小。beCAN對媒介復雜度高的車體及汽車無線系統(tǒng)來說是很理想的選擇;
3、bxCAN(basic-extended):它有beCAN的各種特性,但還多了3個傳送郵箱、2個獨立的接收FIFO和8個過濾器。它為高階車體及低階網(wǎng)關(guān)器等應用做了最佳化的設計;
4、FullCAN:它和Intel的82527 CAN控制器兼容,具有14個傳送/接收郵箱、一個接收
FIFO和29位的識別碼過濾器。FullCAN是引擎管理系統(tǒng)的理想選擇。
5、cCAN:它是新一代的FullCAN裝置,有32個傳送/接收郵箱,允許大量的信號被靜態(tài)和自動地處理。它的接收郵箱支持FIFO模式,每個郵箱有自己的過濾器。cCAN很適合高階的網(wǎng)關(guān)器和動力傳動的應用。(e