提問者:s2og0iz5l2015-06-08 00:00
CAN總線原理一、 概述 對于一般控制,設(shè)備間連鎖可以通過串行網(wǎng)絡(luò)完成。因此,BOSCH公司開發(fā)了CAN總線(Controller Area Network),并已取得國際標(biāo)準(zhǔn)化組織認(rèn)證(ISO11898),其總線結(jié)構(gòu)可參照I SO/OSI參考模型。同時,國際上一些大的半導(dǎo)體廠商也積極開發(fā)出支持CAN總線的專用芯片。通過CAN總線,傳感器、控制器和執(zhí)行器由串行數(shù)據(jù)線連接起來。它不僅僅是將電纜按樹形結(jié)構(gòu)連接起來,其通信協(xié)議相當(dāng)于ISO/OSI參考模型中的數(shù)據(jù)鏈路層,網(wǎng)絡(luò)可根據(jù)協(xié)議探測和糾正數(shù)據(jù)傳輸過程中因電磁干擾而產(chǎn)生的數(shù)據(jù)錯誤。CAN網(wǎng)絡(luò)的配制比較容易,允許任何站之間直接進(jìn)行通信,而無需將所有數(shù)據(jù)全部匯總到主計算機(jī)后再行處理。二、CAN在國外的發(fā)展 對機(jī)動車輛總線和對現(xiàn)場總線的需求有許多相似之處,即較低的成本、較高的實時處理能力和在惡劣的強(qiáng)電磁干擾環(huán)境下可靠的工作。奔馳S型轎車上采用的就是CAN總線系統(tǒng);美國商用車輛制造商們也將注意力轉(zhuǎn)向CAN總線;美國一些企業(yè)已將CAN作為內(nèi)部總線應(yīng)用在生產(chǎn)線和機(jī)床上。同時,由于CAN總線可以提供較高的安全性,因此在醫(yī)療領(lǐng)域、紡織機(jī)械和電梯控制中也得到廣泛應(yīng)用。三、CAN的工作原理 當(dāng)CAN總線上的一個節(jié)點(站)發(fā)送數(shù)據(jù)時,它以報文形式廣播給網(wǎng)絡(luò)中所有節(jié)點。對每個節(jié)點來說,無論數(shù)據(jù)是否是發(fā)給自己的,都對其進(jìn)行接收。每組報文開頭的11位字符為標(biāo)識符,定義了報文的優(yōu)先級,這種報文格式稱為面向內(nèi)容的編址方案。在同一系統(tǒng)中標(biāo)識符是唯一的,不可能有兩個站發(fā)送具有相同標(biāo)識符的報文。當(dāng)幾個站同時競爭總線讀取時,這種配置十分重要。 CAN總線的報文發(fā)送和接收參見圖1。當(dāng)一個站要向其它站發(fā)送數(shù)據(jù)時,該站的CPU將要發(fā)送的數(shù)據(jù)和自己的標(biāo)識符傳送給本站的CAN芯片,并處于準(zhǔn)備狀態(tài);當(dāng)它收到總線分配時, 轉(zhuǎn)為發(fā)送報文狀態(tài)。CAN芯片將數(shù)據(jù)根據(jù)協(xié)議組織成一定的報文格式發(fā)出,這時網(wǎng)上的其它站處于接收狀態(tài)。每個處于接收狀態(tài)的站對接收到的報文進(jìn)行檢測,判斷這些報文是否是發(fā)給自己的,以確定是否接收它。由于CAN總線是一種面向內(nèi)容的編址方案,因此很容易建立高水準(zhǔn)的控制系統(tǒng)并靈活地進(jìn)行配置。我們可以很容易地在CAN總線中加進(jìn)一些新站而無需在硬件或軟件上進(jìn)行修改。當(dāng)所提供的新站是純數(shù)據(jù)接收設(shè)備時,數(shù)據(jù)傳輸協(xié)議不要求獨立的部分有物理目的地址。它允許分布過程同步化,即總線上控制器需要測量數(shù)據(jù)時,可由網(wǎng)上獲得,而無須每個控制器都有自己獨立的傳感器。四、位仲裁 要對數(shù)據(jù)進(jìn)行實時處理,就必須將數(shù)據(jù)快速傳送,這就要求數(shù)據(jù)的物理傳輸通路有較高的速度。在幾個站同時需要發(fā)送數(shù)據(jù)時,要求快速地進(jìn)行總線分配。實時處理通過網(wǎng)絡(luò)交換的緊急數(shù)據(jù)有較大的不同。一個快速變化的物理量,如汽車引擎負(fù)載,將比類似汽車引擎溫度這樣相對變化較慢的物理量更頻繁地傳送數(shù)據(jù)并要求更短的延時。CAN總線以報文為單位進(jìn)行數(shù)據(jù)傳送,報文的優(yōu)先級結(jié)合在11位標(biāo)識符中,具有最低二進(jìn)制數(shù)的標(biāo)識符有最高的優(yōu)先級。這種優(yōu)先級一旦在系統(tǒng)設(shè)計時被確立后就不能再被更改?偩讀取中的沖突可通過位仲裁解決。如圖2所示,當(dāng)幾個站同時發(fā)送報文時,站1的報文標(biāo)識符為011111;站2的報文標(biāo)識符為0100110;站3的報文標(biāo)識符為0100111。所有標(biāo)識符都有相同的兩位01,直到第3位進(jìn)行比較時,站1的報文被丟掉,因為它的第3位為高,而其它兩個站的報文第3位為低。站2和站3報文的4、5、6位相同,直到第7位時,站3的報文才被丟失。注意,總線中的信號持續(xù)跟蹤最后獲得總線讀取權(quán)的站的報文。在此例中,站2的報文被跟蹤。這種非破壞性位仲裁方法的優(yōu)點在于,在網(wǎng)絡(luò)最終確定哪一個站的報文被傳送以前,報文的起始部分已經(jīng)在網(wǎng)絡(luò)上傳送了。所有未獲得總線讀取權(quán)的站都成為具有最高優(yōu)先權(quán)報文的接收站,并且不會在總線再次空閑前發(fā)送報文。CAN具有較高的效率是因為總線僅僅被那些請求總線懸而未決的站利用,這些請求是根據(jù)報文在整個系統(tǒng)中的重要性按順序處理的。這種方法在網(wǎng)絡(luò)負(fù)載較重時有很多優(yōu)點,因為總線讀取的優(yōu)先級已被按順序放在每個報文中了,這可以保證在實時系統(tǒng)中較低的個體隱伏時間。對于主站的可靠性,由于CAN協(xié)議執(zhí)行非集中化總線控制,所有主要通信,包括總線讀取 (許可)控制,在系統(tǒng)中分幾次完成。這是實現(xiàn)有較高可靠性的通信系統(tǒng)的唯一方法。五、CAN與其它通信方案的比較 在實踐中,有兩種重要的總線分配方法:按時間表分配和按需要分配。在第一種方法中 ,不管每個節(jié)點是否申請總線,都對每個節(jié)點按最大期間分配。由此,總線可被分配給每個站并且是唯一的站,而不論其是立即進(jìn)行總線存取或在一特定時間進(jìn)行總線存取。這將保證在總線存取時有明確的總線分配。在第二種方法中,總線按傳送數(shù)據(jù)的基本要求分配給一個站 ,總線系統(tǒng)按站希望的傳送分配(如:Ethernet CSMA/CD)。因此,當(dāng)多個站同時請求總線存取時,總線將終止所有站的請求,這時將不會有任何一個站獲得總線分配。為了分配總線,多于一個總線存取是必要的。CAN實現(xiàn)總線分配的方法,可保證當(dāng)不同的站申請總線存取時,明確地進(jìn)行總線分配。這種位仲裁的方法可以解決當(dāng)兩個站同時發(fā)送數(shù)據(jù)時產(chǎn)生的碰撞問題。不同于Ethernet網(wǎng)絡(luò)的消息仲裁,CAN的非破壞性解決總線存取沖突的方法,確保在不傳送有用消息時總線不被占用。甚至當(dāng)總線在重負(fù)載情況下,以消息內(nèi)容為優(yōu)先的總線存取也被證明是一種有效的系統(tǒng)。雖然總線的傳輸能力不足,所有未解決的傳輸請求都按重要性順序來處理。在CSMA/CD這樣的網(wǎng)絡(luò)中,如Ethernet,系統(tǒng)往往由于過載而崩潰,而這種情況在CAN中不會發(fā)生。六、CAN的報文格式 在總線中傳送的報文,每幀由7部分組成,見圖3。CAN協(xié)議支持兩種報文格式,其唯一的不同是標(biāo)識符(ID)長度不同,標(biāo)準(zhǔn)格式為11位,擴(kuò)展格式為29位。 @@TB17125002.GIF;在標(biāo)準(zhǔn)格式中,報文的起始位稱為幀起始(SOF),然后是由11位標(biāo)識符和遠(yuǎn)程發(fā)送請求位 (RTR)組成的仲裁場。RTR位標(biāo)明是數(shù)據(jù)幀還是請求幀,在請求幀中沒有數(shù)據(jù)字節(jié)?刂茍霭(biāo)識符擴(kuò)展位(IDE),指出是標(biāo)準(zhǔn)格式還是擴(kuò)展格式。它還包括一個保留位 (ro),為將來擴(kuò)展使用。它的最后四個字節(jié)用來指明數(shù)據(jù)場中數(shù)據(jù)的長度(DLC)。數(shù)據(jù)場范圍為0~8個字節(jié),其后有一個檢測數(shù)據(jù)錯誤的循環(huán)冗余檢查(CRC)。應(yīng)答場(ACK)包括應(yīng)答位和應(yīng)答分隔符。發(fā)送站發(fā)送的這兩位均為隱性電平(邏輯1),這時正確接收報文的接收站發(fā)送主控電平(邏輯0)覆蓋它。用這種方法,發(fā)送站可以保證網(wǎng)絡(luò)中至少有一個站能正確接收到報文。報文的尾部由幀結(jié)束標(biāo)出。在相鄰的兩條報文間有一很短的間隔位,如果這時沒有站進(jìn)行總線存取,總線將處于空閑狀態(tài)。七、數(shù)據(jù)錯誤檢測 不同于其它總線,CAN協(xié)議不能使用應(yīng)答信息。事實上,它可以將發(fā)生的任何錯誤用信號發(fā)出。CAN協(xié)議可使用五種檢查錯誤的方法,其中前三種為基于報文內(nèi)容檢查。 1.循環(huán)冗余檢查(CRC)在一幀報文中加入冗余檢查位可保證報文正確。接收站通過CRC可判斷報文是否有錯。 2.幀檢查這種方法通過位場檢查幀的格式和大小來確定報文的正確性,用于檢查格式上的錯誤。 3.應(yīng)答錯誤如前所述,被接收到的幀由接收站通過明確的應(yīng)答來確認(rèn)。如果發(fā)送站未收到應(yīng)答,那么表明接收站發(fā)現(xiàn)幀中有錯誤,也就是說,ACK場已損壞或網(wǎng)絡(luò)中的報文無站接收。CAN協(xié)議也可通過位檢查的方法探測錯誤。 4.總線檢測 有時,CAN中的一個節(jié)點可監(jiān)測自己發(fā)出的信號。因此,發(fā)送報文的站可以觀測總線電平并探測發(fā)送位和接收位的差異。 5.位填充 一幀報文中的每一位都由不歸零碼表示,可保證位編碼的最大效率。然而,如果在一幀報文中有太多相同電平的位,就有可能失去同步。為保證同步,同步沿用位填充產(chǎn)生。在五個生。在五個連續(xù)相等位后,發(fā)送站自動插入一個與之互補(bǔ)的補(bǔ)碼位;接收時,這個填充位被自動丟掉。例如,五個連續(xù)的低電平位后,CAN自動插入一個高電平位。CAN通過這種編碼規(guī)則檢查錯誤,如果在一幀報文中有6個相同位,CAN就知道發(fā)生了錯誤。如果至少有一個站通過以上方法探測到 一個或多個錯誤,它將發(fā)送出錯標(biāo)志終止當(dāng)前的發(fā)送。這可以阻止其它站接收錯誤的報文,并保證網(wǎng)絡(luò)上報文的一致性。當(dāng)大量發(fā)送數(shù)據(jù)被終止后,發(fā)送站會自動地重新發(fā)送數(shù)據(jù)。作為規(guī)則,在探測到錯誤后23個位周期內(nèi)重新開始發(fā)送。在特殊場合,系統(tǒng)的恢復(fù)時間為31個位周期。但這種方法存在一個問題,即一個發(fā)生錯誤的站將導(dǎo)致所有數(shù)據(jù)被終止,其中也包括正確的數(shù)據(jù)。因此,如果不采取自監(jiān)測措施,總線系統(tǒng)應(yīng)采用模塊化設(shè)計。為此,CAN協(xié)議提供一種將偶然錯誤從永久錯誤和局部站失敗中區(qū)別出來的辦法。這種方法可以通過對出錯站統(tǒng)計評估來確定一個站本身的錯誤并進(jìn)入一種不會對其它站產(chǎn)生不良影響的運行方法來實現(xiàn),即站可以通過關(guān)閉自己來阻止正常數(shù)據(jù)因被錯誤地當(dāng)成不正確的數(shù)據(jù)而被終止。八、CAN的可靠性 為防止汽車在使用壽命期內(nèi)由于數(shù)據(jù)交換錯誤而對司機(jī)造成危險,汽車的安全系統(tǒng)要求數(shù)據(jù)傳輸具有較高的安全性。如果數(shù)據(jù)傳輸?shù)目煽啃宰銐蚋?或者殘留下來的數(shù)據(jù)錯誤足夠低的話,這一目標(biāo)不難實現(xiàn)。從總線系統(tǒng)數(shù)據(jù)的角度看,可靠性可以理解為,對傳輸過程產(chǎn)生的數(shù)據(jù)錯誤的識別能力。殘余數(shù)據(jù)錯誤的概率可以通過對數(shù)據(jù)傳輸可靠性的統(tǒng)計測量獲得。它描述了傳送數(shù)據(jù)被破壞和這種破壞不能被探測出來的概率。殘余數(shù)據(jù)錯誤概率必須非常小,使其在系統(tǒng)整個壽命周期內(nèi),按平均統(tǒng)計時幾乎檢測不到。計算殘余錯誤概率要求能夠?qū)?shù)據(jù)錯誤進(jìn)行分類 ,并且數(shù)據(jù)傳輸路徑可由一模型描述。如果要確定CAN的殘余錯誤概率,我們可將殘留錯誤的概率作為具有80~90位的報文傳送時位錯誤概率的函數(shù),并假定這個系統(tǒng)中有5~10個站,并且錯誤率為1/1000,那么最大位錯誤概率為10—13數(shù)量級。例如,CAN網(wǎng)絡(luò)的數(shù)據(jù)傳輸率最大為1Mbps,如果數(shù)據(jù)傳輸能力僅使用50%,那么對于一個工作壽命4000小時、平均報文長度為 80位的系統(tǒng),所傳送的數(shù)據(jù)總量為9×1010。在系統(tǒng)運行壽命期內(nèi),不可檢測的傳輸錯誤的統(tǒng)計平均小于10—2量級。換句話說,一個系統(tǒng)按每年365天,每天工作8小時,每秒錯誤率為0. 7計算,那么按統(tǒng)計平均,每1000年才會發(fā)生一個不可檢測的錯誤。
回答者:EQag59318452016-06-08 00:00
你好,根據(jù)你的故障描述,可以初步診斷為汽車K線出現(xiàn)了短路,希望我的回答能夠幫助到你。祝你用車愉快!
提問者:worisi1ba2016-04-15
CAN總線只是一種通訊手段,是無法直接控制用電器的,比如說倒檔時倒車燈亮,倒檔開關(guān)為控制端,倒車燈為用電器,傳統(tǒng)的接法時直接從倒車開關(guān)到倒車燈;如果非得通過CAN總線控制,則必須增加兩個控制器(A和B),A控制器用來采集
提問者:jacki20112013-06-09
故障有各樣的原因,需要從外到內(nèi)、從機(jī)械到電氣、從軟件到硬件逐步進(jìn)行檢查測試和判斷。但更重要的是要注意防范,要改善不良的使用環(huán)境,改變不良的使用習(xí)慣,堅持按科學(xué)合理的使用程序開機(jī)、關(guān)機(jī)和操作。電腦工作時,尤其是讀寫數(shù)據(jù)時不
提問者:與oo千萬別相約2016-09-04
1、什么是CAN-BUS? CAN-BUS控制器局域網(wǎng)絡(luò)總線技術(shù)(ControllerAreaNetwork-BUS)已經(jīng)成為判斷一部汽車是否“數(shù)字化”的一個重要標(biāo)志. 實質(zhì)上,CAN-BUS是一種實時數(shù)據(jù)總
提問者:2013-06-21
用診斷儀讀取故障代碼,根據(jù)相應(yīng)的錯誤代碼在數(shù)據(jù)庫里找,就能得出哪個節(jié)點控制的哪個零件出錯了。
提問者:hunangang2013-11-03
摘要:控制器局域網(wǎng)(CAN)是一種有效支持分布式控制或?qū)崟r控制的現(xiàn)場總線,具有高性能和高可靠性的特點;隨著現(xiàn)代汽車技術(shù)的發(fā)展,CAN技術(shù)在汽車電子領(lǐng)域應(yīng)用日益廣泛。文章介紹了符合CAN2.0B協(xié)議汽車CAN系統(tǒng)設(shè)計方
提問者:wsdhrnsdhr2013-11-18