最新原創(chuàng)CAN總線總結(jié)_第1頁
最新原創(chuàng)CAN總線總結(jié)_第2頁
最新原創(chuàng)CAN總線總結(jié)_第3頁
最新原創(chuàng)CAN總線總結(jié)_第4頁
最新原創(chuàng)CAN總線總結(jié)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、端電阻(起吸收反射波、高頻抗干擾的作用)oCAN 總線技術(shù)學(xué)習(一) CAN 總線是控制器局域網(wǎng)絡(luò) (Controller Area Network,CAN) 的簡 稱,是德國 BOSCH 公司開發(fā),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一, CAN 總 線已成為汽車計算機和嵌入式工控局域網(wǎng)標準總線。為了全面了解 CAN 總線,需要先對其有個整體的概念,這中間還有一個小 故事,一個應(yīng)屆畢業(yè)生到公司去應(yīng)聘,負責招聘的經(jīng)理問他: “你會哪方面的技 術(shù)?”,畢業(yè)生說:“我會 CAN 總線”,經(jīng)理疑惑的問:“你會看什么總線?” 。 那么什么是 CAN 總線呢?1、首先 CAN 總線是一種串行總線, 不是并行的

2、, 是用來傳輸電子數(shù)據(jù) 的,就像串口總線、 USB 總線、以太網(wǎng)一樣;2、CAN 總線是半雙工傳輸模式,發(fā)的時候不能收,收的時候不能發(fā);3、CAN 總線使用雙線傳輸,一根定義為 CAN_H, 一根定義為 CAN_L, 使用差分信號傳輸(差分信號就是通過計算兩線壓差) ;4、CAN 總線的波特率最高可達 1Mbps ,傳輸距離最遠 10 公里,傳輸 波特率和傳輸距離成反比,波特率越高有效傳輸距離越短;5、組網(wǎng)時總線兩端 CAN_H 和 CAN_L 之間要分別連接一個 120 歐的終那么 CAN 總線有什么優(yōu)勢呢?1、CAN 總線作為現(xiàn)場總線只有兩根傳輸線,比以太網(wǎng)組網(wǎng)簡單,成本 也低很多,在不需

3、要大數(shù)據(jù)量傳輸?shù)脑O(shè)備通訊上有相當?shù)膬?yōu)勢;2、CAN 總線使用差分信號和屏蔽線傳輸,抗干擾能力強,數(shù)據(jù)傳輸穩(wěn) 定,因為在某點有干擾時兩根信號會被同步干擾,不會影響信號傳輸?shù)男畔ⅲ?、CAN 總線波特率最高可達 1Mbps ,傳輸速率相對串口快很多,同 時總線協(xié)議中加入 CRC 校驗,相對于串口的奇偶校驗,數(shù)據(jù)安全性強;4、CAN 總線使用差分雙線傳輸,易于組網(wǎng),布線簡單;5、CAN 總線通訊不分主從,網(wǎng)絡(luò)上每個設(shè)備都可以主動發(fā)送數(shù)據(jù);6、CAN 總線協(xié)議應(yīng)用非破壞性逐位仲裁機制,即通過發(fā)送幀的幀 ID 的大小作為優(yōu)先級判斷網(wǎng)絡(luò)上數(shù)據(jù)發(fā)送沖突, 優(yōu)先級高的信息發(fā)送, 優(yōu)先級低的 數(shù)據(jù)停止發(fā)送,極大

4、提供總線的利用率;7、CAN 總線協(xié)議設(shè)置對發(fā)送的自動重發(fā)機制,當發(fā)送監(jiān)測到發(fā)送沖突 時,停止發(fā)送,等總線空閑后自動重發(fā);8、通過設(shè)置總線控制器中驗收寄存器和屏蔽寄存器,可以使節(jié)點在硬件層允許接收某些幀或屏蔽接收某些無用幀,節(jié)約單片機 ECU 接收和判斷處理的時間。綜上所述,CAN總線在設(shè)計成本、傳輸速率、傳輸穩(wěn)定性、傳輸安全性、易于組網(wǎng)以及總線協(xié)議完善設(shè)計方面的優(yōu)勢, 使其在現(xiàn)代汽車、工控局域網(wǎng)絡(luò)領(lǐng) 域得到廣泛的應(yīng)用。CAN總線既然作為一種現(xiàn)場總線,用途就是在不同設(shè)備間傳輸數(shù)據(jù),基本的邏輯框圖如圖1所示:主控制器接口管理lig輯發(fā)發(fā)迸接赍接受控制器檢心塊總 線 收 發(fā) 器圖1 CAN總線邏輯

5、框圖CAN總線通訊主要包括:主控制器(一般為單片機)、CAN總線控制器(圖 例為SJA1000 ,方框中為一個芯片器件)和收發(fā)器,主控制器初始化設(shè)置CAN總線控制器工作,CAN總線控制器為主要 CAN總線邏輯器件,負責將數(shù)據(jù)轉(zhuǎn) 換為總線協(xié)議串行信號和將收發(fā)器接收到的信號轉(zhuǎn)換為有效數(shù)據(jù),并屏蔽無效數(shù)據(jù),監(jiān)測故障錯誤并報告,收發(fā)器將 CAN總線收發(fā)信號轉(zhuǎn)換成半雙工 CAN總 線差分信號。有的單片機將 CAN控制器芯片功能集成在單片機中,如富士通 MB90340 系列、STM32f10x 系列等。CAN總線組網(wǎng)的邏輯框圖如圖2所示:如圖所示,多個CAN總線節(jié)點通過差分信號連接到 CAN總線網(wǎng)絡(luò)上,網(wǎng)

6、 絡(luò)兩端(CAN_H和CAN_L之間)分別連接一個120歐姆的終端電阻(吸收反 射波,抗干擾)。各節(jié)點不分主從,都可以主動向總線上發(fā)送 CAN信息,也可 以設(shè)置CAN控制器的驗收屏蔽寄存器有選擇的接收總線上的信息。圖2 CAN總線網(wǎng)絡(luò)框圖CAN總線技術(shù)學(xué)習(二)CAN總線信息以幀的形式傳輸,每個幀包括多個段:起始位SOF、仲裁段、 控制段、數(shù)據(jù)段、CRC校驗、確認位、結(jié)束位等,各個段依次串行被傳輸?shù)娇?線上。起始位、CRC校驗、確認位和結(jié)束位由控制器硬件自動生成,軟件可以 配置仲裁段、控制段和數(shù)據(jù)段的內(nèi)容。每個 CAN幀最多發(fā)送數(shù)據(jù)段長度為8個 字節(jié)即64位。CAN總線協(xié)議有兩種:CAN2.0

7、A 和CAN2.0B協(xié)議,CAN2.0A 支持幀ID 為11位的標準幀,CAN2.0B協(xié)議支持幀ID為11位的標準幀和幀ID為29位 的擴展幀,如圖1和圖2所示。4Y-忡觀罷12住程壤充為I前蛙的型大績艮度+ CRC分隔將一5F際識骨R TRIPEDLCCRCIACKE0F11111110-61151a7付填充 b*潛-H圖1 CAN標準幀BA AN擴展幀格式位涼充圖2 CAN擴展幀F(xiàn)面解釋幾個CAN總線問題:位填充:上述圖中都提到位填充的問題,即當發(fā)送的一幀 CAN信息中出現(xiàn) 連續(xù)5個相同位時,控制器會自動填充一個相反的位進去,控制器接收一幀CAN 信息時發(fā)現(xiàn)5個相同的位,也會自動把其后的一

8、個翻轉(zhuǎn)位去掉。 那么可能我們會 問為什么要做這種看似無用的操作呢?因為 CAN總線通訊屬于異步通訊,雖然通訊雙方約定設(shè)定相同的波特率通訊,但是每一位( bit)的寬度也不可能絕對相同,多個相同的位累積起來可能出現(xiàn)較大的誤差, 造成接收信息出錯, 那么如 何解決這個問題呢? CAN 協(xié)議中規(guī)定在位跳轉(zhuǎn)時要做同步補償,那么這樣可以 消除多個位累積造成的錯誤,但是如果 CAN 幀信息連續(xù)出現(xiàn)多個 0 或 1 ,接收 方?jīng)]辦法監(jiān)測到翻轉(zhuǎn)位,不能做出正確的補償,可能導(dǎo)致發(fā)送方發(fā)了10 位 0,接收方監(jiān)測出 11 個 0 出來的情況出現(xiàn), 所以當發(fā)送方連續(xù)發(fā)送 5 個 0 時,要位 填充一個 1 進去,然

9、后再發(fā)送下面的位,而接收方接收到 5 個 0 后接收到下面 的 1 可以做出相應(yīng)的同步補償,同時要丟棄這個填充位。按照 CAN 協(xié)議規(guī)定如 果在 CAN 信息中接收到連續(xù) 6 個以上的相同位被認為是錯誤信息, CAN 控制 器錯誤計數(shù)加 1 。CAN協(xié)議:如上圖所示,標準幀標識符(幀ID)有11位,擴展幀標識符 (幀ID )有29位,CAN2.0B協(xié)議也兼容CAN2.0A協(xié)議,可以同時識別標準 幀和擴展幀。標準幀和擴展幀的區(qū)別在于 IDE位,IDE為0時表示標準幀,IDE 為 1 時表示擴展幀。CAN信號:CAN總線使用一對差分信號通訊,即 CAN_H和CAN_L,通過 識別它們的壓差獲取 0

10、 或 1 的信息,上電后兩個信號對地都會有一定的電壓, 即V_CANH和V_CANL,通過判斷V_CANH-V_CANL識別信息,總線信號分 為顯性(壓差為1V以上,也即數(shù)字0)和隱性(壓差小于0.5V,也即數(shù)字1 )。 一般在沒有數(shù)據(jù)通訊時 V_CANH和V_CANL都為2.5V,所以CAN總線默認為 沒有壓差(隱性,數(shù)字1),當有起始位SOF (數(shù)字0,顯性)時每個網(wǎng)絡(luò)上的 節(jié)點都能監(jiān)測到,準備接收信息,如圖 3 所示- can h伸哎的屯; 在ait狀葫時達兩帚罐釣電戌坤育的2 5和電罕)ecwHxwti的電用璽的1 5V圖3 CAN總線電壓示意圖逐位仲裁機制:CAN節(jié)點發(fā)送的信息都會被

11、自己接收并判斷。當CAN總線上兩個節(jié)點同時發(fā)送 CAN信息時,CAN節(jié)點也會比較自己發(fā)送的數(shù)據(jù)和接 收的數(shù)據(jù)是否一致,由于CAN信號有顯性(數(shù)字0,壓差大于1V)和隱性(數(shù) 據(jù)1,壓差小于0.5V)兩種,當一個節(jié)點發(fā)送0而另一個節(jié)點發(fā)送1時,總線 表現(xiàn)為顯性0,那么發(fā)送1的節(jié)點監(jiān)測到后知道發(fā)送總線沖突,自動退出發(fā)送, 所以可以看出,CAN總線信息小的優(yōu)先級高。通過這種方式可以實現(xiàn)非破壞性 逐位仲裁,優(yōu)先級高的節(jié)點正常發(fā)送,不受任何影響。CAN總線技術(shù)學(xué)習(三)CAN控制器比較通用的是SJA1000T,收發(fā)器使用比較多的是TAJ1050或 82C250,學(xué)習CAN總線首先需要準備一塊開發(fā)板,現(xiàn)在

12、CAN總線開發(fā)板很多, 一般都是單片機帶CAN控制器和收發(fā)器的方式。各種接口的CAN設(shè)備也很多,USB接口、PCI接口,智能非智能的很多種,相對而言,廣州周立功的產(chǎn)品種類多,軟件兼容性高,可以參考使用學(xué)習CAN軟件開發(fā),首先就是要熟悉 CAN控制器的寄存器配置,不同的CAN 控制器寄存器不同,如何設(shè)置也不同,市面上通用的就是SJA1000T的控制器,芯片中文資料可在網(wǎng)上下載,網(wǎng)上也有很多軟件例程,學(xué)習起來相對容易。對于 一些集成CAN控制器的單片機來說,CAN寄存器控制一般都不同,總體來說 主要包括三部分:初始化、接收(中斷)、發(fā)送,流程圖分別如圖1、2、3所示。圖1 CAN初始化流程圖2 CAN發(fā)送數(shù)據(jù)流程關(guān)CAN屮斷|N已錄盤職砒;MTi門似識刖討:柬源爐一品和Ww; :33;飛-開CAN中斷p圖3中斷接收流程對于CAN總線控制器初始化,主

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論