can總線協議講解_can總線協議分析
時間:2017-10-05 18:09 來源:ob体育竞彩
can總線協議講解_can總線協議分析
CAN總線的物理層是將ECU連接至總線的驅動電路。ECU的總數將受限於總線上的電氣負荷。物理層定義了物理數據在總線上各節點間的傳輸過程,主要是連接介質、線路電氣特性、數據的編碼/解碼、位定時和同步的實施標準。
CAN總線協議總線競爭的原則
BOSCH CAN基本上沒有對物理層進行定義,但基於CAN的ISO標準對物理層進行了定義。設計一個CAN係統時,物理層具有很大的選擇餘地,但必須保證CAN協議中媒體訪問層非破壞性位仲裁的要求,即出現總線競爭時,具有較高優先權的報文獲取總線競爭的原則,所以要求物理層必須支持CAN總線中隱性位和顯性位的狀態特征。在沒有發送顯性位時,總線處於隱性狀態,空閑時,總線處於隱性狀態;當有一個或多個節點發送顯性位,顯性位覆蓋隱性位,使總線處於顯性狀態。
在此基礎上,物理層主要取決於傳輸速度的要求。從物理結構上看,CAN節點的構成如圖7-8所示。在CAN中,物理層從結構上可分為三層:分別是物理信號層(Physical Layer Signaling,PLS)、物理介質附件(Physical MediaAttachment,PMA)層和介質從屬接口(Media Dependent:Inter-face,MDI)層。其中PLS連同數據鏈路層功能由CAN控製器完成,PMA層功能由CAN收發器完成,MDI層定義了電纜和連接器的特性。目前也有支持CAN的微處理器內部集成了CAN控製器和收發器電路,如MC68HC908GZl6。PMA和MDI兩層有很多不同的國際或國家或行業標準,也可自行定義,比較流行的是ISOll898定義的高速CAN發送/接收器標準。
CAN總線協議節點數量
CAN網絡上的節點不分主從,任一節點均可在任意時刻主動地向網絡上其他節點發送信息,通信方式靈活,利用這一特點可方便地構成多機備份係統,CAN隻需通過報文濾波即可實現點對點、一點對多點及全局廣播等幾種方式傳送接收數據,無需專門的"調度"。 CAN的直接通信距離最遠可達10km(速率5kbps以下);通信速率最高可達1Mbps(此時通信距離最長為40m)。 CAN上的節點數主要決定於總線驅動電路,目前可達110個;報文標識符可達2032種(CAN2.0A),而擴展標準(CAN2.0B)的報文標識符幾乎不受限製。
CAN總線協議CAN的數據鏈路層
CAN的數據鏈路層是其核心內容,其中邏輯鏈路控製(Logical Link control,LLC)完成過濾、過載通知和管理恢複等功能,媒體訪問控製(Medium Access control,MAC)子層完成數據打包/解包、幀編碼、媒體訪問管理、錯誤檢測、錯誤信令、應答、串並轉換等功能。這些功能都是圍繞信息幀傳送過程展開的。
CAN總線協議報文傳輸CAN總線協議報文類型
在CAN2.0B的版本協議中有兩種不同的幀格式,不同之處為標識符域的長度不同,含有11位標識符的幀稱之為標準幀,而含有29位標識符的幀稱為擴展幀。如CAN1.2版本協議所描述,兩個版本的標準數據幀格式和遠程幀格式分別是等效的,而擴展格式是CAN2.0B協議新增加的特性。為使控製器設計相對簡單,並不要求執行完全的擴展格式,對於新型控製器而言,必須不加任何限製的支持標準格式。但無論是哪種幀格式,在報文傳輸時都有以下四種不同類型的幀:
CAN總線協議幀類型
在報文傳輸時,不同的幀具有不同的傳輸結構,下麵將分別介紹四種傳輸幀的結構,隻有嚴格按照該結構進行幀的傳輸,才能被節點正確接收和發送。
(1)數據幀由七種不同的位域(Bit Field)組成:幀起始(Start of )、仲裁域(Arbitration Field)、控製域(Control Field)、數據域(DataField)、CRC域(CRC Field)、應答域(ACK Field)和幀結尾(End of )。數據域的長度可以為0~8個字節。
1)幀起始(SOF):幀起始(SOF)標誌著數據幀和遠程幀的起始,僅由一個“顯性”位組成。在CAN的同步規則中,當總線空閑時(處於隱性狀態),才允許站點開始發送(信號)。所有的站點必須同步於首先開始發送報文的站點的幀起始前沿(該方式稱為“硬同步”)。
2)仲裁域:仲裁域由標識符和RTR位組成,標準幀格式與擴展幀格式的仲裁域格式不同。標準格式裏,仲裁域由1l位標識符和RTR位組成。標識符位有ID28~IDl8。擴展幀格式裏,仲裁域包括29位標識符、SRR位、IDE(Identifier Extension,標誌符擴展)位、RTR位。其標識符有ID28~IDO。為了區別標準幀格式和擴展幀格式,CANl.0~1.2版本協議的保留位r1現表示為IDE位。IDE位為顯性,表示數據幀為標準格式;IDE位為隱性,表示數據幀為擴展幀格式。在擴展幀中,替代遠程請求(Substitute Remote Request,SRR)位為隱性。仲裁域傳輸順序為從最高位到最低位,其中最高7位不能全為零。RTR的全稱為“遠程發送請求(Remote TransmissionRequest)”。RTR位在數據幀裏必須為“顯性”,而在遠程幀裏必須為“隱性”。它是區別數據幀和遠程幀的標誌。
3)控製域:控製域由6位組成,包括2個保留位(r0、r1同於CAN總線協議擴展)及4位數據長度碼,允許的數據長度值為0~8字節。
4)數據域:發送緩衝區中的數據按照長度代碼指示長度發送。(//www.gdzxks.com/ ob体育竞彩
)對於接收的數據,同樣如此。它可為0~8字節,每個字節包含8位,首先發送的是MSB(最高位)。
5)CRC校驗碼域:它由CRC域(15位)及CRC邊界符(一個隱性位)組成。CRC計算中,被除的多項式包括幀的起始域、仲裁域、控製域、數據域及15位為0的解除填充的位流給定。此多項式被下列多項式X15+X14+X10+X8+X7+X4+X3+1除(係數按模2計算),相除的餘數即為發至總線的CRC序列。發送時,CRC序列的最高有效位被首先發送/接收。之所以選用這種幀校驗方式,是由於這種CRC校驗碼對於少於127位的幀是最佳的。
6)應答域:應答域由發送方發出的兩個(應答間隙及應答界定)隱性位組成,所有接收到正確的CRC序列的節點將在發送節點的應答間隙上將發送的這一隱性位改寫為顯性位。因此,發送節點將一直監視總線信號已確認網絡中至少一個節點正確地接收到所發信息。應答界定符是應答域中第二個隱性位,由此可見,應答間隙兩邊有兩個隱性位:CRC域和應答界定位。
7)幀結束域:每一個數據幀或遠程幀均由一串七個隱性位的幀結束域結尾。這樣,接收節點可以正確檢測到一個幀的傳輸結束。
(2)錯誤幀錯誤幀由兩個不同的域組成:第一個域是來自控製器的錯誤標誌;第二個域為錯誤分界符。
1)錯誤標誌:有兩種形式的錯誤標誌。
①激活(Active)錯誤標誌。它由6個連續顯性位組成。
②認可(Passive)錯誤標誌。它由6個連續隱性位組成。
它可由其他CAN總線協議控製器的顯性位改寫。
2)錯誤界定:錯誤界定符由8個隱性位組成。傳送了錯誤標誌以後,每一站就發送一個隱性位,並一直監視總線直到檢測出1個隱性位為止,然後就開始發送其餘7個隱性位。
(3)遠程幀: 遠程幀也有標準格式和擴展格式,而且都由6個不同的位域組成:幀起始、仲裁域、控製域、CRC域、應答域、幀結尾。與數據幀相比,遠程幀的RTR位為隱性,沒有數據域,數據長度編碼域可以是0~8個字節的任何值,這個值是遠程幀請求發送的數據幀的數據域長度。當具有相同仲裁域的數據幀和遠程幀同時發送時,由於數據幀的RTR位為顯性,所以數據幀獲得優先。發送遠程幀的節點可以直接接收數據。
(4)過載幀 過載幀由兩個區域組成:過載標識域及過載界定符域。下述三種狀態將導致過載幀發送:
1)接收方在接收一幀之前需要過多的時間處理當前的數據(接收尚未準備好);
2)在幀空隙域檢測到顯性位信號;
3)如果CAN節點在錯誤界定符或過載界定符的第8位采樣到一個顯性位節點會發送一個過載幀。
看過《can總線協議講解_can總線協議分析》的人還看了以下文章
|
關於CAN總線的一些事情 |
CAN總線是各種總線中使用比較廣泛的一種通信技術,它在單片機控製技術中和PLC控製技術中會常常使用這種通信技術。下麵我們來說說關於CAN總線的一些事情。 什麼叫CAN總線 CAN總線它是控製器局域網絡(Controller Area Network, CAN)的簡稱,是由德國博世(BOSC... |
|
iic總線為什麼需要上拉電阻 |
II總線是當今電子係統中應用最廣泛的芯片間通信標準,它是一種開漏通信標準,需要上拉電阻將總線電平拉到Vdd 在設計中需要增加上拉電阻,但關鍵是上拉電阻阻值取多少合適呢?通常芯片手冊中會有推薦的上拉阻值,所以在設計時按推薦的取值就可以了。下圖是一... |
|
組態王HTConvertTime函數年份上限2019怎麼 |
如下圖:組態王HTConvertTime使用2019年 相信用過組態王軟件的人都會知道,組態王HTConvertTime這個函數到了現在2020年已經不能用了,那以前做的項目怎麼辦能,接下來我來為大家介紹以下2種解決方案,如果適用,請采納。 方案1.致電組態王,要求組態王廠家發... |
|
電子開發中如何確定使用I2C總線還是SPI總線 |
電子項目開發中經常用到通訊功能,包括板子上芯片間的通訊和設備間的通訊。而常用的有線通訊方式無非就這幾種,如I2C、SPI、RS232、RS485接口、CAN、USB等。其中I2C也叫IIC,對於題目中提到的幾種通訊方式,I2C和SPI是芯片間的短距離通訊,無法長距離通訊。... |
|
can協議是什麼 |
CAN總線是德國公司BOSCH公司為解決現代汽車中眾多控製和測試儀器之間的數據交換而開發的一種串行數據通信協議,即控製器局域網總線。 其是一種多主總線,通信介質可以是雙絞線、同軸電纜、光纖,通信速率可達1Mb/s,通信距離可達10Km。此協議的最大特點是廢... |