基礎(chǔ)篇18.can總線工作原理_第1頁
基礎(chǔ)篇18.can總線工作原理_第2頁
基礎(chǔ)篇18.can總線工作原理_第3頁
基礎(chǔ)篇18.can總線工作原理_第4頁
基礎(chǔ)篇18.can總線工作原理_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學(xué)ARM從STM32開始主講人:劉洋學(xué)習(xí)板:LY-STM32手機(jī):網(wǎng)站:郵箱:

30094562淘寶店:本公司授課所使用產(chǎn)品均為本公司自主研發(fā)CAN總線工作原理CAN是什么?CAN是ControllerAreaNetwork的縮寫(以下稱為CAN),是ISO*1國際標(biāo)準(zhǔn)化的串行通信協(xié)議。

在當(dāng)前的汽車產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統(tǒng)被開發(fā)了出來。由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對可靠性的要求不盡相同,由多條總線構(gòu)成的情況很多,線束的數(shù)量也隨之增加。為適應(yīng)“減少線束的數(shù)量”、“通過多個LAN,進(jìn)行大量數(shù)據(jù)的高速通信”的需要,1986年德國電氣商博世公司開發(fā)出面向汽車的CAN通信協(xié)議。此后,CAN通過ISO11898及ISO11519進(jìn)行了標(biāo)準(zhǔn)化,現(xiàn)在在歐洲已是汽車網(wǎng)絡(luò)的標(biāo)準(zhǔn)協(xié)議。

現(xiàn)在,CAN的高性能和可靠性已被認(rèn)同,并被廣泛地應(yīng)用于工業(yè)自動化、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面。下圖是車載網(wǎng)絡(luò)的構(gòu)想示意圖。CAN通信協(xié)議的開發(fā),使多種LAN通過網(wǎng)關(guān)進(jìn)行數(shù)據(jù)交換得以實現(xiàn)。(1)多主控制在總線空閑時,所有的單元都可以發(fā)送消息(多主控制)。最先訪問總線的單元可獲得發(fā)送權(quán)。多個單元同時開始發(fā)送時,發(fā)送高優(yōu)先級ID消息的單元可獲得發(fā)送權(quán),所有的消息都以固定的格式發(fā)送。(2)系統(tǒng)的柔軟性與總線相連的單元沒有類似于“地址”的信息。因此在總線上增加單元時,連接在總線上的其它單元的軟硬件及應(yīng)用層都不需要改變。(3)通信速度根據(jù)整個網(wǎng)絡(luò)的規(guī)模,可設(shè)定適合的通信速度。在同一網(wǎng)絡(luò)中,所有單元必須設(shè)定成統(tǒng)一的通信速度。即使有一個單元的通信速度與其它的不一樣,此單元也會輸出錯誤信號,妨礙整個網(wǎng)絡(luò)的通信。不同網(wǎng)絡(luò)間則可以有不同的通信速度。CAN的特點(4)遠(yuǎn)程數(shù)據(jù)請求可通過發(fā)送“遙控幀”請求其他單元發(fā)送數(shù)據(jù)。(5)錯誤檢測功能·錯誤通知功能·錯誤恢復(fù)功能所有的單元都可以檢測錯誤(錯誤檢測功能)。檢測出錯誤的單元會立即同時通知其他所有單元(錯誤通知功能)。正在發(fā)送消息的單元一旦檢測出錯誤,會強(qiáng)制結(jié)束當(dāng)前的發(fā)送。強(qiáng)制結(jié)束發(fā)送的單元會不斷反復(fù)地重新發(fā)送此消息直到成功發(fā)送為止(錯誤恢復(fù)功能)。(6)故障封閉CAN可以判斷出錯誤的類型是總線上暫時的數(shù)據(jù)錯誤(如外部噪聲等)還是持續(xù)的數(shù)據(jù)錯誤(如單元內(nèi)部故障、驅(qū)動器故障、斷線等)。由此功能,當(dāng)總線上發(fā)生持續(xù)數(shù)據(jù)錯誤時,可將引起此故障的單元從總線上隔離出去。(7)連接CAN總線是可同時連接多個單元的總線??蛇B接的單元總數(shù)理論上是沒有限制的。但實際上可連接的單元數(shù)受總線上的時間延遲及電氣負(fù)載的限制。降低通信速度,可連接的單元數(shù)增加;提高通信速度,則可連接的單元數(shù)減少。STM32bxCAN主要特點●支持CAN協(xié)議2.0A和2.0B主動模式●波特率最高可達(dá)1兆位/秒●支持時間觸發(fā)通信功能發(fā)送●3個發(fā)送郵箱●發(fā)送報文的優(yōu)先級特性可軟件配置●記錄發(fā)送SOF時刻的時間戳接收●3級深度的2個接收FIFO●可變的過濾器組:─在互聯(lián)型產(chǎn)品中,CAN1和CAN2分享28個過濾器組─其它STM32F103xx系列產(chǎn)品中有14個過濾器組●標(biāo)識符列表●記錄接收SOF時刻的時間戳?xí)r間觸發(fā)通信模式●禁止自動重傳模式●16位自由運(yùn)行定時器●可在最后2個數(shù)據(jù)字節(jié)發(fā)送時間戳管理●中斷可屏蔽初學(xué)者需要關(guān)注的幾個重點1.隱性位與顯性位CAN總線為“隱性”(邏輯1)時,CAN_H和CAN_L的電平為2.5V(電位差為0V);CAN總線為“顯性”(邏輯0)時,CAN_H和CAN_L的電平分別是3.5V和1.5V(電位差為2.5V)2.數(shù)據(jù)幀類型:(1)標(biāo)準(zhǔn)數(shù)據(jù)幀(2)擴(kuò)展數(shù)據(jù)幀(3)標(biāo)準(zhǔn)遠(yuǎn)程幀(4)擴(kuò)展遠(yuǎn)程幀CAN總線上的所有器件都必須使用相同的比特率。然而,并非所有器件都要求具有相同的主振蕩器時鐘頻率。對于采用不同時鐘頻率的器件,應(yīng)通過適當(dāng)設(shè)置波特率預(yù)分頻比以及每一時間段中的時間份額的數(shù)量來對比特率進(jìn)行調(diào)整?!裢蕉?SYNC_SEG):同步段為首段,用于同步CAN總線上的各個節(jié)點。輸入信號的跳變沿就發(fā)生在同步段,該段持續(xù)時間為1TQ?!駮r間段1(BS1):定義采樣點的位置。其值可以編程為1到16個時間單元,但也可以被自動延長,以補(bǔ)償因為網(wǎng)絡(luò)中不同節(jié)點的頻率差異所造成的相位的正向漂移。●時間段2(BS2):定義發(fā)送點的位置。其值可以編程為1到8個時間單元,但也可以被自動縮短以補(bǔ)償相位的負(fù)向漂移。重新同步跳躍寬度(SJW)定義了,在每位中可以延長或縮短多少個時間單元的上限。其值可以編程為1到4個時間單元。3.位時間特性CAN波特率=系統(tǒng)時鐘/分頻數(shù)/(1*tq+tBS1+tBS2)其中tBS1=tq*(TS1[3:0]+1)tBS2=tq*(TS2[2:0]+1)tq=(BRP[9:0]+1)*tPCLK這里tq表示1個時間單元tPCLK=APB時鐘的時間周期BRP[9:0],TS1[3:0]和TS2[2:0]在CAN_BTR寄存器中定義CAN波特率計算公式總體配置保持tBS1>=tBS2,tBS2>=1個CAN時鐘周期,tBS2>=2tSJWCAN波特率參數(shù)設(shè)置5KBPSCAN_SJW=CAN_SJW_2tq;

CAN_BS1=CAN_BS1_6tq;

CAN_BS2=CAN_BS2_4tq;

CAN_Prescaler=600;10KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=600;20KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=300;25KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=240;40KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=150;CAN波特率參數(shù)設(shè)置50KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=120;62.5KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=96;80KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=75;100KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=60;125KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=48;CAN波特率參數(shù)設(shè)置200KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=30;250KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=24;400KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_5tq;

CAN_BS2=CAN_BS2_3tq;

CAN_Prescaler=10;500KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=12;800KBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_5tq;

CAN_BS2=CAN_BS2_3tq;

CAN_Prescaler=5;CAN波特率參數(shù)設(shè)置1MKBPSCAN_SJW=CAN_SJW_1tq;

CAN_BS1=CAN_BS1_3tq;

CAN_BS2=CAN_BS2_2tq;

CAN_Prescaler=6;(1)屏蔽位模式在屏蔽位模式下,標(biāo)識符寄存器和屏蔽寄存器一起,指定報文標(biāo)識符的任何一位,應(yīng)該按照“必須匹配”或“不用關(guān)心”處理。(2)標(biāo)識符列表模式在標(biāo)識符列表模式下,屏蔽寄存器也被當(dāng)作標(biāo)識符寄存器用。因此,不是采用一個標(biāo)識符加一個屏蔽位的方式,而是使用2個標(biāo)識符寄存器。接收報文標(biāo)識符

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論