新聞中心

CAN總線簡述

作者: 時(shí)間:2016-12-12 來源:網(wǎng)絡(luò) 收藏
一、CAN通信概述
CAN ( Controller Area Network ) 即控制器局域網(wǎng)絡(luò)。由于其高性能、高可靠性、及獨(dú)特的設(shè)計(jì),CAN越來越受到人們的重視。國外已有許多大公司的產(chǎn)品采用了這一技術(shù)。
CAN最初是由德國的BOSCH公司為汽車監(jiān)測、控制系統(tǒng)而設(shè)計(jì)的?,F(xiàn)代汽車越來越多地采用電子裝置控制,如發(fā)動(dòng)機(jī)的定時(shí)、注油控制,加速、剎車控制(ASC)及復(fù)雜的抗鎖定剎車系統(tǒng)(ABS)等。由于這些控制需檢測及交換大量數(shù)據(jù),采用硬接信號線的方式不但煩瑣、昂貴,而且難以解決問題,采用CAN總線上述問題便得到很好地解決。
二、CAN總線特點(diǎn)
CAN總線是一種串行數(shù)據(jù)通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級判別等項(xiàng)工作。其物理傳輸層詳細(xì)和高效的定義,使得 CAN總線具有其它總線無法達(dá)到的優(yōu)勢,注定其在工業(yè)現(xiàn)場總線中占有不可動(dòng)搖的地位,CAN總線通信主要具有如下所示的優(yōu)勢和特點(diǎn)。
1.CAN總線上任意節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)的向其它節(jié)點(diǎn)發(fā)起通信,節(jié)點(diǎn)沒有主從之分,但在同一時(shí)刻優(yōu)先級高的節(jié)點(diǎn)能獲得總線的使用權(quán),在高優(yōu)先級的節(jié)點(diǎn)釋放總線后,任意節(jié)點(diǎn)都可使用總線;
2.CAN總線傳輸波特率為5Kbps~1Mbps ,在 5Kbps 的通信波特率下最遠(yuǎn)傳輸距離可以達(dá)到10Km,即使在1Mbps 的波特率下也能傳輸 40m 的距離。在1Mbps 波特率下節(jié)點(diǎn)發(fā)送一幀數(shù)據(jù)最多需要134μ s;
3.CAN總線采用載波監(jiān)聽多路訪問、逐位仲裁的非破壞性總線仲裁技術(shù)。在節(jié)點(diǎn)需要發(fā)送信息時(shí),節(jié)點(diǎn)先監(jiān)聽總線是否空閑,只有節(jié)點(diǎn)監(jiān)聽到總線空閑時(shí)才能夠發(fā)送數(shù)據(jù),即載波監(jiān)聽多路訪問方式。在總線出現(xiàn)兩個(gè)以上的節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)時(shí),CAN協(xié)議規(guī)定,按位進(jìn)行仲裁,按照顯性位優(yōu)先級大于隱性位優(yōu)先級的規(guī)則進(jìn)行仲裁,最后高優(yōu)先級的節(jié)點(diǎn)數(shù)據(jù)毫無破壞的被發(fā)送,其它節(jié)點(diǎn)停止發(fā)送數(shù)據(jù)(即逐位仲裁無破壞的傳輸技術(shù))。這樣能大大的提高總線的使用效率及實(shí)時(shí)性;
4.CAN總線所掛接的節(jié)點(diǎn)數(shù)量主要取決于CAN總線收發(fā)器或驅(qū)動(dòng)器,目前的驅(qū)動(dòng)器一般都可以使同一網(wǎng)絡(luò)容量達(dá)到110 個(gè)節(jié)點(diǎn)。CAN報(bào)文分為兩個(gè)標(biāo)準(zhǔn)即CAN2.0A標(biāo)準(zhǔn)幀和CAN2.0B擴(kuò)展幀,兩個(gè)標(biāo)準(zhǔn)最大的區(qū)別在于CAN2.0A只有11 位標(biāo)識符,CAN2.0B具有 29 位標(biāo)識符;
5.CAN總線定義使用了硬件報(bào)文濾波,可實(shí)現(xiàn)點(diǎn)對點(diǎn)及點(diǎn)對多點(diǎn)的通信方式,不需要軟件來控制。數(shù)據(jù)采用短幀發(fā)送方式,每幀數(shù)據(jù)不超過8 字節(jié),抗干擾能力強(qiáng),每幀接收的數(shù)據(jù)都進(jìn)行CRC校驗(yàn),使得數(shù)據(jù)出錯(cuò)機(jī)率極大限度的降低。CAN節(jié)點(diǎn)
6.CAN總線通信介質(zhì)可采用雙絞線、同軸電纜或光纖,選擇極為靈活。可大大節(jié)約組網(wǎng)成本。
三、CAN協(xié)議規(guī)范(CAN規(guī)范2.0)
CAN為串行通訊協(xié)議,能有效地支持具有很高安全等級的分布實(shí)時(shí)控制。技術(shù)規(guī)范的目的是為了在任何兩個(gè)CAN儀器之間建立兼容性??墒?,兼容性有不同的方面,比如電氣特性和數(shù)據(jù)轉(zhuǎn)換的解釋。為了達(dá)到設(shè)計(jì)透明度以及實(shí)現(xiàn)靈活性,根據(jù)ISO/OSI參考模型,CAN 2.0規(guī)范細(xì)分為以下不同的層次:數(shù)據(jù)鏈路層(數(shù)據(jù)鏈路層的LLC 子層和MAC子層)和物理層。
MAC子層的作用主要是傳送規(guī)則,也就是控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯(cuò)誤檢測、出錯(cuò)標(biāo)定、故障界定??偩€上什么時(shí)候開始發(fā)送新報(bào)文及什么時(shí)候開始接收報(bào)文,均在MAC子層里確定。位定時(shí)的一些普通功能也可以看作是 MAC子層的一部分。理所當(dāng)然,MAC子層的修改是受到限制的。
物理層的作用是在不同節(jié)點(diǎn)之間根據(jù)所有的電氣屬性進(jìn)行位的實(shí)際傳輸。同一網(wǎng)絡(luò)的物理層對于所有
的節(jié)點(diǎn)當(dāng)然是相同的。盡管如此,在選擇物理層方面還是很自由的。
四、CAN的錯(cuò)誤定義及處理
1.錯(cuò)誤類型
位錯(cuò)誤
站單元在發(fā)送位的同時(shí)也對總線進(jìn)行監(jiān)視。如果所發(fā)送的位值與所監(jiān)視的位值不相符合,則在此位時(shí)間里檢測到一個(gè)位錯(cuò)誤。但是在仲裁場的填充位流期間或 ACK間隙發(fā)送一“隱性”位的情況是例外的—— 此時(shí),當(dāng)監(jiān)視到一“顯性”位時(shí),不會發(fā)出位錯(cuò)誤。當(dāng)發(fā)送器發(fā)送一個(gè)被動(dòng)錯(cuò)誤標(biāo)志但檢測到“顯性”位時(shí),也不視為位錯(cuò)誤。
填充錯(cuò)誤
如果在使用位填充法進(jìn)行編碼的信息中,出現(xiàn)了第 6 個(gè)連續(xù)相同的位電平時(shí),將檢測到一個(gè)填充錯(cuò)誤。
CRC 錯(cuò)誤
CRC序列包括發(fā)送器的CRC計(jì)算結(jié)果。接收器計(jì)算CRC的方法與發(fā)送器相同。如果計(jì)算結(jié)果與接收到CRC序列的結(jié)果不相符,則檢測到一個(gè)CRC錯(cuò)誤。
形式錯(cuò)誤
當(dāng)一個(gè)固定形式的位場含有1 個(gè)或多個(gè)非法位,則檢測到一個(gè)形式錯(cuò)誤。
應(yīng)答錯(cuò)誤
只要在ACK間隙(ACK SLOT)期間所監(jiān)視的位不為“顯性”,則發(fā)送器會檢測到一個(gè)應(yīng)答錯(cuò)誤。
2.錯(cuò)誤等級劃分
主動(dòng)錯(cuò)誤 Error Counter < 127
錯(cuò)誤警告 Error Counter = = Error
被動(dòng)錯(cuò)誤 Error Counter > 127
總線關(guān)閉 Error Counter = = 255
“錯(cuò)誤主動(dòng)”的單元可以正常地參與總線通訊并在錯(cuò)誤被檢測到時(shí)發(fā)出主動(dòng)錯(cuò)誤標(biāo)志。
“錯(cuò)誤被動(dòng)”的單元不允許發(fā)送主動(dòng)錯(cuò)誤標(biāo)志。“錯(cuò)誤被動(dòng)”的單元參與總線通訊而且在錯(cuò)誤被檢測到時(shí)只發(fā)出被動(dòng)錯(cuò)誤標(biāo)志。而且,發(fā)送以后,“錯(cuò)誤被動(dòng)”單元將在預(yù)設(shè)下一個(gè)發(fā)送之前處于等待狀態(tài)。
“總線關(guān)閉”的單元不允許在總線上有任何的影響(比如,關(guān)閉輸出驅(qū)動(dòng)器)。



關(guān)鍵詞: CAN總線簡

評論


技術(shù)專區(qū)

關(guān)閉