《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > CAN總線基礎(chǔ)知識(一)

CAN總線基礎(chǔ)知識(一)

2015-05-08
關(guān)鍵詞: CAN 主動錯誤狀態(tài) MAC LLC

1.CAN總線是什么?

    CAN(Controller Area Network)是ISO國際標準化的串行通信協(xié)議。廣泛應(yīng)用于汽車、船舶等。具有已經(jīng)被大家認可的高性能和可靠性。

    CAN控制器通過組成總線的2根線(CAN-H和CAN-L)的電位差來確定總線的電平,在任一時刻,總線上有2種電平:顯性電平和隱性電平。

    “顯性”具有“優(yōu)先”的意味,只要有一個單元輸出顯性電平,總線上即為顯性電平,并且,“隱性”具有“包容”的意味,只有所有的單元都輸出隱性電平,總線上才為隱性電平。(顯性電平比隱性電平更強)。

    總線上執(zhí)行邏輯上的線“與”時,顯性電平的邏輯值為“0”,隱性電平為“1”。

    下圖顯示了一個典型的CAN拓撲連接圖。

    連接在總線上的所有單元都能夠發(fā)送信息,如果有超過一個單元在同一時刻發(fā)送信息,有最高優(yōu)先級的單元獲得發(fā)送的資格,所有其它單元執(zhí)行接收操作。

捕獲.PNG

2.CAN總線的特點

     CAN總線協(xié)議具有下面的特點:

    1) 多主控制

    當(dāng)總線空閑時,連接到總線上的所有單元都可以啟動發(fā)送信息,這就是所謂的多主控制的概念。

    先占有總線的設(shè)備獲得在總線上進行發(fā)送信息的資格。這就是所謂的CSMA/CR(Carrier Sense MultipleAccess/Collosion Avoidance)方法

    如果多個設(shè)備同時開始發(fā)送信息,那么發(fā)送最高優(yōu)先級ID消息的設(shè)備獲得發(fā)送資格。

    2) 信息的發(fā)送

    在CAN協(xié)議中,所有發(fā)送的信息要滿足預(yù)先定義的格式。當(dāng)總線沒有被占用的時候,連接在總線上的任何設(shè)備都能起動新信息的傳輸,如果兩個或更多個設(shè)備在同 時刻啟動信息的傳輸,通過ID來決定優(yōu)先級。ID并不是指明信息發(fā)送的目的地,而是指示信息的優(yōu)先級。如果2個或者更多的設(shè)備在同一時刻啟動信息的傳輸, 在總線上按照信息所包含的ID的每一位來競爭,贏得競爭的設(shè)備(也就是具有最高優(yōu)先級的信息)能夠繼續(xù)發(fā)送,而失敗者則立刻停止發(fā)送并進入接收操作。因為 總線上同一時刻只可能有一個發(fā)送者,而其它均處于接收狀態(tài),所以,并不需要在底層協(xié)議中定義地址的概念。

    3) 系統(tǒng)的靈活性

    連接到總線上的單元并沒有類似地址這樣的標識,所以,添加或去除一個設(shè)備,無需改變軟件和硬件,或其它設(shè)備的應(yīng)用層軟件。

    4) 通信速度

    可以設(shè)置任何通訊速度,以適應(yīng)網(wǎng)絡(luò)規(guī)模。

    對一個網(wǎng)絡(luò),所有單元必須有相同的通訊速度,如果不同,就會產(chǎn)生錯誤,并妨礙網(wǎng)絡(luò)通訊,然而,不同網(wǎng)絡(luò)間可以有不同的通訊速度。

    5) 遠程數(shù)據(jù)請求

可以通過發(fā)送“遙控幀”,請求其他單元發(fā)送數(shù)據(jù)。

    6) 錯誤檢測、錯誤通知、錯誤恢復(fù)功能

所有單元均可以檢測出錯誤(錯誤檢測功能)。

檢測到錯誤的單元立刻同時通知其它所有的單元(錯誤通知功能)。如果一個單元發(fā)送信息時檢測到一個錯誤,它會強制終止信息傳輸,并通知其它所有設(shè)備發(fā)生了錯誤,然后它會重傳直到信息正常傳輸出去(錯誤恢復(fù)功能)。

    7) 錯誤隔離

在CAN總線上有兩種類型的錯誤:暫時性的錯誤(總線上的數(shù)據(jù)由于受到噪聲的影響而暫 時出錯);持續(xù)性的錯誤(由于設(shè)備內(nèi)部出錯(如驅(qū)動器壞了、連接有問題等)而導(dǎo)致的)。CAN能夠區(qū)別這兩種類型,一方面降低常出錯單元的通訊優(yōu)先級以阻 止對其它正常設(shè)備的影響,另一方面,如果是一種持續(xù)性的錯誤,將這個設(shè)備從總線上隔離開。

    8) 連接

CAN總線允許多個設(shè)備同時連接到總線上且在邏輯上沒有數(shù)目上的限制。然而由于延遲和負載能力的限制,實際可連接得設(shè)備還是有限制的,可以通過降低通訊速度來增加連接的設(shè)備個數(shù)。相反,如果連接的設(shè)備少,通訊的速度可以增加。


3.錯誤

3.1 錯誤狀態(tài)

    設(shè)備總是處于下面三個狀態(tài)之一:

    1)主動錯誤狀態(tài)

    在此狀態(tài)下,設(shè)備能夠參加總線上的正常通訊。如果處于主動錯誤狀態(tài)的設(shè)備檢測到一個錯誤,它會發(fā)送一個主動錯誤標志,更細節(jié)見第6章的“CAN協(xié)議”。

    2)被動錯誤狀態(tài)

    是指易于引起錯誤的狀態(tài)。

    盡管處于被動錯誤狀態(tài)的設(shè)備能夠參加總線上的通訊,但是在接收期間,它不可能主動地向其它設(shè)備發(fā)送錯誤通知,以避免影響它們的通訊。處于被動錯誤狀態(tài)的設(shè) 備即使檢測到一個錯誤,如果其它處于主動錯誤狀態(tài)的設(shè)備沒曾檢測到錯誤,那么也認為在總線上未曾出現(xiàn)過任何錯誤。

    當(dāng)處于被動錯誤狀態(tài)的設(shè)備檢測到一個錯誤的時候,它發(fā)送一個被動錯誤標志。

    另外,處于被動錯誤狀態(tài)的單元在發(fā)送結(jié)束后不能立刻再次開始發(fā)送。在開始下次發(fā)送前,在間隔幀期間內(nèi)必須插入“暫停發(fā)送期”(由8個位的隱性位組成)。

更細節(jié)見第6章的“CAN協(xié)議”。

    3)總線切斷狀態(tài)

    處于此狀態(tài)下時,設(shè)備不能參加總線的通訊。設(shè)備所有的收發(fā)操作都被禁止。

    這些狀態(tài)是通過發(fā)送錯誤計數(shù)器和接收錯誤寄存器來管理,相關(guān)錯誤狀態(tài)由這些計數(shù)器值的組合來標識,錯誤狀態(tài)和計數(shù)器值之間的關(guān)系見表1和圖4。

捕獲.PNG

捕獲.PNG

3.2 錯誤計數(shù)器的值

    發(fā)送和接收錯誤計數(shù)器的值按照規(guī)定的條件來改變。

    表2小結(jié)了錯誤計數(shù)器值改變的條件。

    在一個數(shù)據(jù)收發(fā)操作中可能會發(fā)生多個條件重疊。

    錯誤計數(shù)器增加的時間發(fā)生在錯誤標志的第一bit位置。

捕獲.jpg

4.CAN協(xié)議的基本概念

    CAN協(xié)議包括OSI參考模型的傳輸層、數(shù)據(jù)鏈路層、物理層。圖5顯示了CAN協(xié)議每個層的定義。

    數(shù)據(jù)鏈路層劃分為MAC(Medium Access Control媒體存取控制)和LLC(Logical Link Control羅輯鏈路控制)。MAC子層組成CAN協(xié)議的核心。數(shù)據(jù)鏈路層的功能是將從物理層接收到的信號組織成有意義的信息,提供如傳輸錯誤控制等數(shù) 據(jù)傳輸控制流程。更具體來說,包括:信息如何封裝成一幀,數(shù)據(jù)沖突仲裁、應(yīng)答、錯誤的檢測或通知。數(shù)據(jù)鏈路層的這些功能通常由CAN控制器硬件來實現(xiàn)。

    物理層定義信號的實際傳輸方式、位的時序、位的編碼、同步的過程步驟,然而,CAN協(xié)議并沒有定義了信號電平、通訊速度、采樣點值、驅(qū)動器和總線電氣特征、連接器形式。對每個系統(tǒng),這些特征由用戶自行確定。

    在BOSCH公司的CAN協(xié)議中,并沒有關(guān)于收發(fā)器和總線的電氣特征的定義,而在ISO CAN協(xié)議中,如ISO11898和ISO11519-2卻對此有明確的定義。

捕獲.jpg

捕獲.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。