CANBUS培訓課件帶視頻講解_第1頁
CANBUS培訓課件帶視頻講解_第2頁
CANBUS培訓課件帶視頻講解_第3頁
CANBUS培訓課件帶視頻講解_第4頁
CANBUS培訓課件帶視頻講解_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄

1:網(wǎng)絡組建2:總線節(jié)點組成3:總線電平(總線上物理信號)4:抗電磁干擾能力5:通信原理(廣播方式)6:幀種類7:數(shù)據(jù)幀解析8:數(shù)據(jù)幀仲裁段解析9:數(shù)據(jù)幀控制段解析10:數(shù)據(jù)幀數(shù)據(jù)段解析11:發(fā)送沖突處理辦法(仲裁辦法)12:位填充規(guī)則(Bit-StuffingRule)13:錯誤種類14:位時序以及同步15:錯誤計數(shù)器第1頁1:CANbus網(wǎng)絡組建所有節(jié)點通過兩條線連接起來。兩條線分別稱為CAN_H和CAN_L。假如要求不高,一般用帶屏蔽雙絞線就能夠了。網(wǎng)絡兩端必須有120歐終端電阻。因此在設計線路板時候都要有一種120歐電阻,一般1/4瓦就夠了。通過跳線或者撥碼開關選擇是否使用這個電阻。第2頁2:CANbus節(jié)點組成一種節(jié)點一般包括3個部分:微控制器,CAN控制器和CAN收發(fā)器。典型組合有:51單片機+SJA1000+PCA82C250(5V)。另外,有微控制器內(nèi)部已經(jīng)包括了CAN控制器,例如STM32。STM32+SN65HVD230(3.3V)。收發(fā)器一般都是8個引腳芯片。集成CAN控制微控制器將是將來CANBUS應用首選。第3頁3:CANbus上總線電平(總線上物理信號)CANBUS上總線電平稱為隱性電平和顯性電平。Recessive:隱性(代表邏輯1)CAN_H=CAN_L=2.5V兩條線上電壓差:0VDominant:顯性(代表邏輯0)CAN_H=3.5V/CAN_L=1.5V兩條線上電壓差:2V假如CAN控制器發(fā)送邏輯1時,CAN收發(fā)器使CAN_H和CAN_L都為2.5V,這時,兩條線上電壓差為0V??偩€上稱為隱性電平。假如CAN控制器發(fā)送邏輯0時,CAN收發(fā)器使CAN_H為3.5V,CAN_L為1.5V,這時,兩條線上電壓差為2V??偩€上稱為顯性電平。多種節(jié)點同步開始發(fā)送時,會包括到總線仲裁(也就是誰能夠繼續(xù)發(fā)送)。顯性電平優(yōu)先級高于隱性電平,后來會專門講,這里先提一下。第4頁4:CANbus抗電磁干擾能力假如出現(xiàn)電磁干擾,那么肯定會同步干擾到CAN_H和CAN_L兩條線。CAN收發(fā)器始終采集是這兩條線上電壓差,而電壓差不會由于干擾而變化,這種方式顯著提升了抗干擾能力。這就是為何采取差分傳輸原因。第5頁5:CANbus通信原理(廣播方式)每一種節(jié)點都能夠積極發(fā)送幀。(幀是CAN協(xié)議要求發(fā)送或接收單位)每一種節(jié)點都能夠接收到來自其他節(jié)點發(fā)送幀。但詳細要不要接收,由你決定。一般是通過配備CAN控制器過濾器寄存器來設置。一旦設置好,CAN控制器會根據(jù)你設置,自動去判斷要不要接收,完全由硬件實現(xiàn),這個判斷要不要接收過程,也叫過濾。第6頁6:CANbus幀種類大家不要被這樣多種類幀嚇壞了,其實很多都是由硬件自動實現(xiàn)。通信是通過以上5種類型幀進行。幀由段組成,段由二進制位組成。發(fā)送或者接收只能以幀為單位?。。。?!數(shù)據(jù)幀和遠程幀有標準格式和擴展格式兩種。標準格式有11位標識符(Identifier:簡稱ID),擴展格式有29位標識符。錯誤幀,過載幀和幀間隔都是由硬件實現(xiàn),我們無法用軟件控制。對于應用者來說是透明,我們完全能夠不用管它們。數(shù)據(jù)幀和遠程幀構造上差不多,最大區(qū)分就是遠程幀沒有數(shù)據(jù)段。數(shù)據(jù)幀也是最復雜幀,因此我們重點解析數(shù)據(jù)幀。

幀幀用途1數(shù)據(jù)幀用于一種節(jié)點傳送信息到其他任一或所有節(jié)點2遠程幀用于一種節(jié)點積極要求其他節(jié)點發(fā)送信息3錯誤幀假如節(jié)點在接收過程中檢測到錯誤,它就會發(fā)送一種錯誤幀4過載幀當一種節(jié)點正忙于處理接收信息,能夠通知其他節(jié)點暫緩發(fā)送新報文5幀間隔幀與幀之間間隔第7頁7:CANbus數(shù)據(jù)幀解析數(shù)據(jù)幀由7個段組成。(1)幀起始(SOF):表達幀開始。(2)仲裁段(ArbitrationField):表達該幀優(yōu)先級(主要就是ID)。(3)控制段(ControlField):表白數(shù)據(jù)字節(jié)數(shù)。(4)數(shù)據(jù)段(DataField):數(shù)據(jù)詳細內(nèi)容,可發(fā)送0~8個字節(jié)數(shù)據(jù)。(5)CRC段(CRCField):用于校驗傳輸是否正確。(6)ACK段(ACKField):表達確認是否正常接收。(7)幀結束(EOF):表達此幀結束。其中幀起始,CRC段,ACK段,幀結束由硬件實現(xiàn)。第8頁8:CANbus數(shù)據(jù)幀仲裁段解析標準格式標識符長度是11位,緊隨其后是RTR位,用于表白此幀是數(shù)據(jù)幀還是遠程幀。IDE位用于表白此幀是標準幀還是擴展幀。擴展格式標識符長度是29位,緊隨其后是RTR位,用于表白此幀是數(shù)據(jù)幀還是遠程幀。IDE位用于表白此幀是標準幀還是擴展幀。CAN控制器都有有關寄存器與這些位對應。只需要操作寄存器就行了。ID能夠根據(jù)自己需要設置,例如能夠把它當做地址。節(jié)點接收數(shù)據(jù)時候主要就是過濾這里設置ID。這點非常主要,要認真體會!?。。。?!第9頁9:CANbus數(shù)據(jù)幀控制段解析保存位(r0、r1),CAN控制器硬件會自動處理,我們不論它。數(shù)據(jù)長度碼(DLC0---DLC3),CAN控制器有對應寄存器用來設置數(shù)據(jù)長度。數(shù)據(jù)字節(jié)數(shù)必須為0~8字節(jié)。但接收方對DLC=9~15情況并不視為錯誤。第10頁10:CANbus數(shù)據(jù)幀數(shù)據(jù)段解析數(shù)據(jù)段就是你想發(fā)送數(shù)據(jù)??砂?~8個字節(jié)數(shù)據(jù)。CAN控制器有對應寄存器,直接填入數(shù)據(jù)就行了??偨Y一下:我們做軟件時候只要設置ID,RTR,IDE,數(shù)據(jù)長度和詳細數(shù)據(jù),這些都有有關寄存器供我們操作。CAN控制器硬件會負責把這些東西打包成幀格式。第11頁11:CANbus發(fā)送沖突處理辦法(仲裁辦法)在總線空閑時,最先開始發(fā)送節(jié)點取得發(fā)送權,一旦開始發(fā)送,不會被其他節(jié)點搶占。多種節(jié)點同步開始發(fā)送時,各發(fā)送節(jié)點從仲裁段第一位開始進行仲裁。連續(xù)輸出顯性電平最多節(jié)點可繼續(xù)發(fā)送。(Dominant:顯性優(yōu)先)第12頁12:CANbus位填充規(guī)則(Bit-StuffingRule)位填充是為避免突發(fā)錯誤而設定功能。當同樣電平連續(xù)5位時則添加一種位反型數(shù)據(jù)。位填充組成如上圖所示,硬件自動實現(xiàn)。第13頁13:CANbus錯誤種類當發(fā)生錯誤時,一般都會觸發(fā)錯誤中斷,能夠查看中斷標志位,理解詳細發(fā)生了什么類型錯誤,然后根據(jù)本身情況處理。錯誤種類錯誤內(nèi)容1:位錯誤當發(fā)送器將自己發(fā)送電平與總線上電平相比較,發(fā)覺二者不相等時產(chǎn)生2:填充錯誤當節(jié)點檢測到6個相同電平值連續(xù)位時發(fā)生。在正常情況下,當發(fā)送器檢測到它已經(jīng)發(fā)送了5個數(shù)值相同連續(xù)位時,那么它將在第六位上插入一種取反值(稱之為位填充)。這樣,當節(jié)點檢測到6個連續(xù)具有相同值位時,即產(chǎn)生一種填充位錯誤。3:CRC錯誤當CRC(循環(huán)冗余檢查)值與發(fā)送器生成值不匹配時發(fā)生。每一幀包括一種由發(fā)送器初始化循環(huán)冗余檢查(CRC)域。接收器計算出CRC值,并與發(fā)送器產(chǎn)生值相比較。假如兩個值不相等,即產(chǎn)生CRC錯誤。4:格式錯誤當在一必須發(fā)送預定值區(qū)內(nèi)檢測到非法位時發(fā)生。確定預定義位值必須在CAN幀內(nèi)一種確定點發(fā)送,假如在這些區(qū)域中一種內(nèi)檢測到非法位值,即產(chǎn)生格式錯誤。5:ACK錯誤當發(fā)送器確定信息沒有得到應答時發(fā)生。在數(shù)據(jù)幀及遠程幀之間存在一種應答時間段。該時間段內(nèi),所有接收節(jié)點,無論是否是預定接收者都必須對接收信息作出應答。第14頁14:CANbus位時序以及同步正常位時間=1/波特率。例如:1M波特率。一種位時間就是1微秒。一種位時間我們?nèi)藶榈匕阉毞譃?段。同步段(SS)監(jiān)視由隱性電平到顯性電平邊緣并使之同步。傳輸時間段(PTS)用于吸取CAN網(wǎng)絡上物理延遲。相位緩沖段1(PBS1)相位緩沖段2(PBS2)再同步時,用于賠償相位誤差。第15頁同步重新同步跳躍寬度(SJW):對相位誤差進行同步賠償最大值。圖中加大或者減小量就是這個SJW。第16頁位時序設定舉例假如CAN波特率為1M,接收采樣時鐘為8M,那么我們把8M時鐘分為8份,其中SS:一份,PTS:3份,PBS1:2份,PBS2:2份。份尚有一種正式名稱:TimeQuantum(tq)。第17頁15:CANbus錯誤計數(shù)器節(jié)點始終處于3種狀態(tài)之一積極錯誤狀態(tài):積極錯誤狀態(tài)是能夠正常參與總線通信狀態(tài)。被動錯誤狀態(tài):被動錯誤狀態(tài)是易引發(fā)錯誤狀態(tài)??偩€關閉態(tài):總線關閉態(tài)是不能參與總線上通信狀態(tài),信息接收和發(fā)送均被嚴禁。這些狀態(tài)依靠發(fā)送錯誤計數(shù)和接收錯誤計數(shù)來管理,根據(jù)計數(shù)值決定進入何種狀態(tài)。錯誤狀態(tài)和計數(shù)值關系如上表所示。處于總線關閉態(tài)節(jié)點,檢測到128次連續(xù)11個位隱性位則:TEC=0REC=0。相稱于自動恢復。單元錯誤狀態(tài)發(fā)送錯誤計數(shù)值(TEC)接收錯誤計數(shù)值(REC)積極錯誤狀態(tài)0~127且0~127被動錯誤狀態(tài)128~255或128~255總線關閉態(tài)256

~第18頁北極星電子CANBUS周圍產(chǎn)品介紹PCI8510:基于PCI總線PCCAN接口卡。CAN控制器為SJA1000.工業(yè)級。收發(fā)速度達8000幀/秒以上。USBCAN:基于USB總線PCCAN接口卡。CAN控制器為SJA1000或者STM32(驅動提供各自寄存器操作),并有一路或者兩路CAN通道。工業(yè)級。接收速度可達7500擴展幀/秒。CANBUS協(xié)議分析儀:基于USB總線CAN協(xié)議分析儀。可解析CANOpenJ1939DeviceNet協(xié)議。以及常規(guī)CAN數(shù)據(jù)分析。更多資料:STM32CAN發(fā)送和接收過濾詳解

溫馨提示

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

評論

0/150

提交評論