CAN總線基礎(chǔ)知識(shí)
什么是CAN ?
CAN,全稱為“Controller Area Network”,即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。最初,CAN被設(shè)計(jì)作為汽車環(huán)境中的微控制器通訊,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。比如:發(fā)動(dòng)機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中,均嵌入CAN控制裝置。
一個(gè)由CAN 總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛接無數(shù)個(gè)節(jié)點(diǎn)。實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。例如,當(dāng)使用Philips P82C250作為CAN收發(fā)器時(shí),同一網(wǎng)絡(luò)中允許掛接110個(gè)節(jié)點(diǎn)。CAN 可提供高達(dá)1Mbit/s的數(shù)據(jù)傳輸速率,這使實(shí)時(shí)控制變得非常容易。另外,硬件的錯(cuò)誤檢定特性也增強(qiáng)了CAN的抗電磁干擾能力。
CAN 是怎樣發(fā)展起來的?
CAN最初出現(xiàn)在80年代末的汽車工業(yè)中,由德國Bosch公司最先提出。當(dāng)時(shí),由于消費(fèi)者對(duì)于汽車功能的要求越來越多,而這些功能的實(shí)現(xiàn)大多是基于電子操作的,這就使得電子裝置之間的通訊越來越復(fù)雜,同時(shí)意味著需要更多的連接信號(hào)線。提出CAN總線的最初動(dòng)機(jī)就是為了解決現(xiàn)代汽車中龐大的電子控制裝置之間的通訊,減少不斷增加的信號(hào)線。于是,他們?cè)O(shè)計(jì)了一個(gè)單一的網(wǎng)絡(luò)總線,所有的外圍器件可以被掛接在該總線上。1993年,CAN 已成為國際標(biāo)準(zhǔn)ISO11898(高速應(yīng)用)和ISO11519(低速應(yīng)用)。
CAN是一種多主方式的串行通訊總線,基本設(shè)計(jì)規(guī)范要求有高的位速率,高抗電磁干擾性,而且能夠檢測(cè)出產(chǎn)生的任何錯(cuò)誤。當(dāng)信號(hào)傳輸距離達(dá)到10Km時(shí),CAN 仍可提供高達(dá)50Kbit/s的數(shù)據(jù)傳輸速率。
由于CAN總線具有很高的實(shí)時(shí)性能,因此,CAN已經(jīng)在汽車工業(yè)、航空工業(yè)、工業(yè)控制、安全防護(hù)等領(lǐng)域中得到了廣泛應(yīng)用。
CAN 是怎樣工作的?
CAN通訊協(xié)議主要描述設(shè)備之間的信息傳遞方式。CAN層的定義與開放系統(tǒng)互連模型(OSI)一致。每一層與另一設(shè)備上相同的那一層通訊。實(shí)際的通訊發(fā)生在每一設(shè)備上相鄰的兩層,而設(shè)備只通過模型物理層的物理介質(zhì)互連。CAN的規(guī)范定義了模型的最下面兩層:數(shù)據(jù)鏈路層和物理層。下表中展示了OSI開放式互連模型的各層。應(yīng)用層協(xié)議可以由CAN用戶定義成適合特別工業(yè)領(lǐng)域的任何方案。已在工業(yè)控制和制造業(yè)領(lǐng)域得到廣泛應(yīng)用的標(biāo)準(zhǔn)是DeviceNet,這是為PLC和智能傳感器設(shè)計(jì)的。在汽車工業(yè),許多制造商都應(yīng)用他們自己的標(biāo)準(zhǔn)。
表1 OSI開放系統(tǒng)互連模型
7 應(yīng)用層 最高層。用戶、軟件、網(wǎng)絡(luò)終端等之間用來進(jìn)行信息交換。如:DeviceNet
6 表示層 將兩個(gè)應(yīng)用不同數(shù)據(jù)格式的系統(tǒng)信息轉(zhuǎn)化為能共同理解的格式
5 會(huì)話層 依靠低層的通信功能來進(jìn)行數(shù)據(jù)的有效傳遞。
4 傳輸層 兩通訊節(jié)點(diǎn)之間數(shù)據(jù)傳輸控制。操作如:數(shù)據(jù)重發(fā),數(shù)據(jù)錯(cuò)誤修復(fù)
3 網(wǎng)絡(luò)層 規(guī)定了網(wǎng)絡(luò)連接的建立、維持和拆除的協(xié)議。如:路由和尋址
2 數(shù)據(jù)鏈路層 規(guī)定了在介質(zhì)上傳輸?shù)臄?shù)據(jù)位的排列和組織。如:數(shù)據(jù)校驗(yàn)和幀結(jié)構(gòu)
1 物理層 規(guī)定通訊介質(zhì)的物理特性。如:電氣特性和信號(hào)交換的解釋
CAN能夠使用多種物理介質(zhì),例如雙絞線、光纖等。最常用的就是雙絞線。信號(hào)使用差分電壓傳送,兩條信號(hào)線被稱為“CAN_H”和“CAN_L”,靜態(tài)時(shí)均是2.5V左右,此時(shí)狀態(tài)表示為邏輯“1”,也可以叫做“隱性”。用CAN_H比CAN_L高表示邏輯“0”,稱為“顯形”,此時(shí),通常電壓值為:CAN_H = 3.5V 和CAN_L = 1.5V 。
- 1 - 北京華控技術(shù)有限責(zé)任公司電話:(010)58859951~69轉(zhuǎn)9906 傳真: 58859818 http://www.huakong.com.cn
CAN 有哪些特性?
CAN具有十分優(yōu)越的特點(diǎn),使人們樂于選擇。這些特性包括:
低成本
極高的總線利用率
很遠(yuǎn)的數(shù)據(jù)傳輸距離(長達(dá)10Km)
高速的數(shù)據(jù)傳輸速率(高達(dá)1Mbit/s)
可根據(jù)報(bào)文的ID決定接收或屏蔽該報(bào)文
可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制
發(fā)送的信息遭到破壞后,可自動(dòng)重發(fā)
節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)退出總線的功能
報(bào)文不包含源地址或目標(biāo)地址,僅用標(biāo)志符來指示功能信息、優(yōu)先級(jí)信息
Philips制造的CAN芯片有哪些?
表2 CAN芯片一覽表
類別 型號(hào) 備注
CAN微控制器 P87C591 替代P87C592
XA C37 16位MCU
CAN獨(dú)立控制器 SJA1000 替代82C200
CAN收發(fā)器 PCA82C250 高速CAN收發(fā)器
PCA82C251 高速CAN收發(fā)器
PCA82C252 容錯(cuò)CAN收發(fā)器
TJA1040 高速CAN收發(fā)器
TJA1041 高速CAN收發(fā)器
TJA1050 高速CAN收發(fā)器
TJA1053 容錯(cuò)CAN收發(fā)器
TJA1054 容錯(cuò)CAN收發(fā)器
LIN收發(fā)器 TJA1020 LIN收發(fā)器
什么是CSMA/CD ?
CSMA/CD是“載波偵聽多路訪問/沖突檢測(cè)”(Carrier Sense Multiple Access with Collision Detect)的縮寫。
利用CSMA訪問總線,可對(duì)總線上信號(hào)進(jìn)行檢測(cè),只有當(dāng)總線處于空閑狀態(tài)時(shí),才允許發(fā)送。利用這種方法,可以允許多個(gè)節(jié)點(diǎn)掛接到同一網(wǎng)絡(luò)上。當(dāng)檢測(cè)到一個(gè)沖突位時(shí),所有節(jié)點(diǎn)重新回到‘監(jiān)聽’總線狀態(tài),直到該沖突時(shí)間過后,才開始發(fā)送。在總線超載的情況下,這種技術(shù)可能會(huì)造成發(fā)送信號(hào)經(jīng)過許多延遲。為了避免發(fā)送時(shí)延,可利用CSMA/CD方式訪問總線。當(dāng)總線上有兩個(gè)節(jié)點(diǎn)同時(shí)進(jìn)行發(fā)送時(shí),必須通過“無損的逐位仲裁”方法來使有最高優(yōu)先權(quán)的的報(bào)文優(yōu)先發(fā)送。在CAN總線上發(fā)送的每一條報(bào)文都具有唯一的一個(gè)11位或29位數(shù)字的ID。CAN總線狀態(tài)取決于二進(jìn)制數(shù)‘0’而不是‘1’,所以ID號(hào)越小,則該報(bào)文擁有越高的優(yōu)先權(quán)。因此一個(gè)為全‘0’標(biāo)志符的報(bào)文具有總線上的最高級(jí)優(yōu)先權(quán)??捎昧硗獾姆椒▉斫忉專涸谙_突的位置,第一個(gè)節(jié)點(diǎn)發(fā)送0而另外的節(jié)點(diǎn)發(fā)送1,那么發(fā)送0的節(jié)點(diǎn)將取得總線的控制權(quán),并且能夠成功的發(fā)送出它的信息。
- 2 - 北京華控技術(shù)有限責(zé)任公司電話:(010)58859951~69轉(zhuǎn)9906 傳真: 58859818 http://www.huakong.com.cn
CAN的高層協(xié)議
CAN的高層協(xié)議(也可理解為應(yīng)用層協(xié)議)是一種在現(xiàn)有的底層協(xié)議(物理層和數(shù)據(jù)鏈路層)之上實(shí)現(xiàn)的協(xié)議。高層協(xié)議是在CAN規(guī)范的基礎(chǔ)上發(fā)展起來的應(yīng)用層。許多系統(tǒng)(像汽車工業(yè))中,可以特別制定一個(gè)合適的應(yīng)用層,但對(duì)于許多的行業(yè)來說,這種方法是不經(jīng)濟(jì)的。一些組織已經(jīng)研究并開放了應(yīng)用層標(biāo)準(zhǔn),以使系統(tǒng)的綜合應(yīng)用變得十分容易。
一些可使用的CAN高層協(xié)議有:
制定組織主要高層協(xié)議
CiA CAL協(xié)議
CiA CANOpen協(xié)議
ODVA DeviceNet 協(xié)議
Honeywell SDS 協(xié)議
Kvaser CANKingdom協(xié)議
什么是標(biāo)準(zhǔn)格式CAN和擴(kuò)展格式CAN?
標(biāo)準(zhǔn)CAN的標(biāo)志符長度是11位,而擴(kuò)展格式CAN的標(biāo)志符長度可達(dá)29位。CAN 協(xié)議的2.0A版本規(guī)定CAN控制器必須有一個(gè)11位的標(biāo)志符。同時(shí),在2.0B版本中規(guī)定,CAN控制器的標(biāo)志符長度可以是11位或29位。遵循CAN2.0B協(xié)議的CAN控制器可以發(fā)送和接收11位標(biāo)識(shí)符的標(biāo)準(zhǔn)格式報(bào)文或29位標(biāo)識(shí)符的擴(kuò)展格式報(bào)文。如果禁止CAN2.0B,則CAN 控制器只能發(fā)送和接收11位標(biāo)識(shí)符的標(biāo)準(zhǔn)格式報(bào)文,而忽略擴(kuò)展格式的報(bào)文結(jié)構(gòu),但不會(huì)出現(xiàn)錯(cuò)誤。
目前,Philips公司主要推廣的CAN獨(dú)立控制器均支持CAN2.0B協(xié)議,即支持29位標(biāo)識(shí)符的擴(kuò)展格式報(bào)文結(jié)構(gòu)。 雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理
評(píng)論