




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
WordCAN基礎(chǔ)知識介紹
1.
(CAN)協(xié)議
1.1
CAN協(xié)議簡介
CAN是控制器局域(網(wǎng)絡(luò))(ControllerAreaNetwork)的簡稱,它是由研發(fā)和生產(chǎn)(汽車電子)產(chǎn)品著稱的德國(BOSCH)公司開發(fā)的,并最終成為國際標(biāo)準(zhǔn)(ISO11519以及ISO11898),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。差異點(diǎn)如下:
1.2CAN物理層
CAN通訊不是以(時鐘)(信號)來進(jìn)行同步的,它是一種異步通訊,只具有CAN_High和
CAN_Low兩條信號線,共同構(gòu)成一組差分信號線,以差分信號的形式進(jìn)行通訊。CAN物理層的形式主要有兩種:
遵循ISO11898標(biāo)準(zhǔn)的高速、短距離閉環(huán)網(wǎng)絡(luò),總線最大長度為40m,(通信)速度最高為1Mbps,總線的兩端各要求有一個120歐的電阻
是遵循ISO11519-2標(biāo)準(zhǔn)的低速、遠(yuǎn)距離開環(huán)網(wǎng)絡(luò),最大傳輸距離為1km,最(高通)訊速率為125kbps,兩根總線是獨(dú)立的、不形成閉環(huán),要求每根總線上各串聯(lián)有一個2.2千歐的電阻
以TJA1050(芯片)作為CAN(收發(fā)器)的(電路原理)圖如下圖示
差分信號又稱差模信號,差分信號傳輸時,需要兩根信號線,這兩個信號線的振幅相等,相位相反,通過兩根信號線的電壓差值來表示邏輯0和邏輯1,CAN中顯性電平(差值為正)對應(yīng)邏輯0,隱性電平(差值小于或等于0)對應(yīng)邏輯1,顯性電平比隱性電平更強(qiáng)
1.3CAN協(xié)議層
CAN屬于異步通訊,沒有時鐘信號線,連接在同一個總線網(wǎng)絡(luò)中的各個節(jié)點(diǎn)會像串口異步通訊那樣,節(jié)點(diǎn)間使用約定好的波特率進(jìn)行通訊,CAN使用位同步的方式來抗干擾、吸收誤差,實(shí)現(xiàn)對總線電平信號進(jìn)行正確的采樣,確保通訊正常
位時序分解:為了實(shí)現(xiàn)位同步,CAN協(xié)議把每一個數(shù)據(jù)位的時序分解成SS段、PTS段、PBS1段、PBS2段,這四段的長度加起來即為一個CAN數(shù)據(jù)位的長度。分解后最小的時間單位是Tq,一個完整的位由8~25個Tq組成
波特率:總線上的各個通訊節(jié)點(diǎn)只要約定好1個Tq的時間長度以及每一個數(shù)據(jù)位占據(jù)多少個Tq,就可以確定CAN通訊的波特率
例如,假設(shè)上圖中的1Tq=1us,而每個數(shù)據(jù)位由19個Tq組成,則傳輸一位數(shù)據(jù)需要時間T1bit=19us,從而每秒可以傳輸?shù)臄?shù)據(jù)位個數(shù)為:1x10次方/19=52631.6(bps)。這個每秒可傳輸?shù)臄?shù)據(jù)位的個數(shù)即為通訊中的波特率。
同步過程:波特率只是約定了每個數(shù)據(jù)位的長度,數(shù)據(jù)同步還涉及到相位的細(xì)節(jié),此時就要用到數(shù)據(jù)位內(nèi)的SS、PTS、PBS1及PBS2段了。根據(jù)對段的應(yīng)用方式差異,CAN的數(shù)據(jù)同步分為硬同步和重新同步。其中硬同步只是當(dāng)存在幀起始信號時起作用,無法確保后續(xù)一連串的位時序都是同步的,而重新同步方式可解決該問題
硬同步:CAN節(jié)點(diǎn)通過總線發(fā)送數(shù)據(jù)時,會發(fā)送一個幀起始信號。而掛載到CAN總線上的節(jié)點(diǎn)在不發(fā)送數(shù)據(jù)時,會時刻(檢測)總線上的信號。如下圖,當(dāng)總線出現(xiàn)幀起始信號時,節(jié)點(diǎn)檢測到總線的幀起始信號不在節(jié)點(diǎn)內(nèi)部時序的SS段范圍,所以判斷它自己的內(nèi)部時序與總線不同步,因而這個狀態(tài)的采樣點(diǎn)采集得的數(shù)據(jù)是不正確的。所以節(jié)點(diǎn)以硬同步的方式調(diào)整,把自己的位時序中的SS段平移至總線出現(xiàn)下降沿的部分,獲得同步,同步后采樣點(diǎn)就可以采集得正確數(shù)據(jù)了
重新同步:前面的硬同步只是當(dāng)存在幀起始信號時才起作用,如果在一幀很長的數(shù)據(jù)內(nèi),節(jié)點(diǎn)信號與總線信號相位有偏移時,這種同步方式就無能為力了。因而引入重新同步方式,它利用普通數(shù)據(jù)位的高至低電平的跳變沿來同步。與硬同步方式相似的是它們都使用SS段來進(jìn)行檢測,同步的目的都是使節(jié)點(diǎn)內(nèi)的SS段把跳變沿包含起來。重新同步分為超前和滯后兩種情況,以總線跳變沿與SS段的相對位置進(jìn)行區(qū)分。
--相位超前:節(jié)點(diǎn)從總線的邊沿跳變中,檢測到它內(nèi)部的時序比總線的時序相對超前2Tq,這時控制器在下一個位時序中的PBS1段增加2Tq的時間長度,使得節(jié)點(diǎn)與總線時序重新同步
--相位滯后:節(jié)點(diǎn)從總線的邊沿跳變中,檢測到它的時序比總線的時序相對滯后2Tq,這時控制器在前一個位時序中的PBS2段減少2Tq的時間長度,獲得同步
報文種類及結(jié)構(gòu):對數(shù)據(jù)、操作命令(如讀/寫)以及同步信號進(jìn)行打包,打包后的這些內(nèi)容稱為報文。CAN一共規(guī)定了5種類型的幀
數(shù)據(jù)幀的結(jié)構(gòu):數(shù)據(jù)幀是在CAN通訊中最主要、最復(fù)雜的報文,它的結(jié)構(gòu)如下圖
其他報文結(jié)構(gòu)
2.CAN控制器
(STM32)的芯片中具有bxCAN控制器,支持CAN協(xié)議2.0A和2.0B標(biāo)準(zhǔn)。該CAN控制器支持最高的通訊速率為1Mb/s;可以自動地接收和發(fā)送CAN報文,支持使用標(biāo)準(zhǔn)ID和擴(kuò)展ID的報文;外設(shè)中有3個發(fā)送郵箱,發(fā)送報文的優(yōu)先級可以使用軟件控制,還可記錄發(fā)送的時間;有2個3級深度的接收FIFO,可使用過濾功能只接收或不接收某些ID號的報文;可配置成自動重發(fā);不支持使用(DMA)進(jìn)行數(shù)據(jù)收發(fā)??蚣苁疽鈭D如下:
STM32有兩組CAN控制器,其中CAN1是主設(shè)備,框圖中的存儲訪問控制器是由CAN1控制的,CAN2無法直接訪問存儲區(qū)域,所以使用CAN2的時候必須使能CAN1外設(shè)的時鐘??驁D中主要包含CAN控制內(nèi)核、發(fā)送郵箱、接收FIFO以及驗(yàn)收篩選器,下面對框圖中的各個部分進(jìn)行介紹
2.1CAN控制內(nèi)核
主控(寄存器)CAN_MCR:負(fù)責(zé)管理CAN的工作模式
INRQ位:用來控制初始化請求,在CAN初始化時,先設(shè)置該位為1,進(jìn)行初始化,之后再設(shè)置該位為0,讓CAN進(jìn)入正常工作模式
位時序寄存器CAN_BTR:用于配置測試模式、波特率以及各種位內(nèi)的段參數(shù)
CAN波特率的計算公式:只需要知道BS1和BS2的設(shè)置,以及APB1的時鐘頻率,就可以方便的計算出波特率。比如設(shè)置TS1=9、TS2=5和BRP=6,在APB1頻率為45Mhz的條件下,即可得到CAN通信的波特率=45000/6/(5+9+1)=500Kbps
2.2CAN發(fā)送郵箱
CAN共有3個發(fā)送郵箱,即最多可以緩存3個待發(fā)送的報文。每個發(fā)送郵箱中包含有標(biāo)識符寄存器CAN_(TI)xR、數(shù)據(jù)長度控制寄存器CAN_TDTxR及2個數(shù)據(jù)寄存器CAN_TDLxR、CAN_TDHxR,如下圖
當(dāng)使用CAN外設(shè)發(fā)送報文時,需要把報文的各個段分解,按位置寫入到這些寄存器中,并對標(biāo)識符寄存器CAN_TIxR中的發(fā)送請求寄存器位TMIDxR_TXRQ置1,即可把數(shù)據(jù)發(fā)送出去。其中標(biāo)識符寄存器CAN_TIxR中的STDID寄存器位比較特別。我們知道CAN的標(biāo)準(zhǔn)標(biāo)識符的總位數(shù)為11位,而擴(kuò)展標(biāo)識符的總位數(shù)為29位的。當(dāng)報文使用擴(kuò)展標(biāo)識符的時候,標(biāo)識符寄存器CAN_TIxR中的STDID[10:0]等效于EXTID[18:28]位,它與EXTID[17:0]共同組成完整的29位擴(kuò)展標(biāo)識符
發(fā)送郵箱標(biāo)識符寄存器CAN_TIxR
發(fā)送郵箱數(shù)據(jù)長度和時間戳寄存器CAN_TDTxR
發(fā)送郵箱低字節(jié)數(shù)據(jù)寄存器CAN_TDLxR
發(fā)送郵箱高字節(jié)數(shù)據(jù)寄存器CAN_TDHxR
2.3CAN接收FIFO
CAN共有2個接收FIFO,每個FIFO中有3個郵箱,即最多可以緩存6個接收到的報文。當(dāng)接收到報文時,F(xiàn)IFO的報文計數(shù)器會自增,而STM32內(nèi)部讀取FIFO數(shù)據(jù)之后,報文計數(shù)器會自減,通過狀態(tài)寄存器可獲知報文計數(shù)器的值,而通過前面主控制寄存器的(RF)LM位,可設(shè)置鎖定模式,鎖定模式下FIFO溢出時會丟棄新報文,非鎖定模式下FIFO溢出時新報文會覆蓋舊報文。跟發(fā)送郵箱類似,每個接收FIFO中包含有標(biāo)識符寄存器CAN_RIxR、數(shù)據(jù)長度控制寄存器CAN_RDTxR及2個數(shù)據(jù)寄存器CAN_RDLxR、CAN_RDHxR,它們的功能見下表
通過中斷或狀態(tài)寄存器知道接收FIFO有數(shù)據(jù)后,我們再讀取這些寄存器的值即可把接收到的報文加載到STM32的內(nèi)存中
接收FIFO郵箱標(biāo)識符寄存器CAN_RIxR
接收FIFO郵箱數(shù)據(jù)長度和時間戳寄存器CAN_RDTxR
接收FIFO郵箱低字節(jié)數(shù)據(jù)寄存器CAN_RDLxR
接收FIFO郵箱高字節(jié)數(shù)據(jù)寄存器CAN_RDHxR
2.4CAN驗(yàn)收篩選器
AN驗(yàn)收篩選器,共有28個篩選器組,每個篩選器組有2個寄存器,CAN1和CAN2共用篩選器。CAN協(xié)議中,消息的標(biāo)識符與節(jié)點(diǎn)地址無關(guān),但與消息內(nèi)容有關(guān)。因此,發(fā)送節(jié)點(diǎn)將報文廣播給所有接收器時,接收節(jié)點(diǎn)會根據(jù)報文標(biāo)識符的值來確定軟件是否需要該消息,為了簡化軟件的工作,STM32的CAN外設(shè)接收報文前會先使用驗(yàn)收篩選器檢查,只接收需要的報文到FIFO中。篩選器工作的時候,可以調(diào)整篩選ID的長度及過濾模式。
根據(jù)篩選ID長度來分類有有以下兩種:
檢查STDID[10:0]、EXTID[17:0]、IDE和RTR位,共31位
檢查STDID[10:0]、RTR、IDE和EXTID[17:15],共16位
根據(jù)過濾的方法分為以下兩種模式:
標(biāo)識符列表模式,它把要接收報文的ID列成一個表,要求報文ID與列表中的某一個標(biāo)識符完全相同才可以接收,可以理解為白名單管理。
掩碼模式,它把可接收報文ID的某幾位作為列表,這幾位被稱為掩碼,可以把它理解成關(guān)鍵字搜索,只要掩碼(關(guān)鍵字)相同,就符合要求,報文就會被保存到接收FIFO
通過配置篩選模式寄存器CAN_FM1R的FBMx位可以設(shè)置篩選器工作在哪個模式。通過配置篩選尺度寄存器CAN_FS1R的FSCx位可以設(shè)置篩選器工作在哪個尺度。不同的尺度和不同的過濾方法可使篩選器工作在圖的4種狀態(tài)
每組篩選器包含2個32位的寄存器,分別為CAN_FxR1和CAN_FxR2,它們用來存儲要篩選的ID或掩碼,各個寄存器位代表的意義與圖中兩個寄存器下面“映射”的一欄一致,各個模式的說明見表
例如下面的表格所示,在掩碼模式時,第一個寄存器存儲要篩選的ID,第二個寄存器存儲掩碼,掩碼為1的部分表示該位必須與ID中的內(nèi)容一致,篩選的結(jié)果為表中第三行的ID值,它是一組包含多個的ID值,其中x表示該位可以為1可以為0
而工作在標(biāo)識符模式時,2個寄存器存儲的都是要篩選的ID,它只包含2個要篩選的ID值(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書修復(fù)與保護(hù)保證館藏書籍的保存質(zhì)量計劃
- 專業(yè)品牌營銷團(tuán)隊的組建要點(diǎn)計劃
- 腦卒中的預(yù)防和護(hù)理
- 發(fā)展團(tuán)隊領(lǐng)導(dǎo)能力提升團(tuán)隊士氣計劃
- 社團(tuán)工作的組織和具體安排計劃
- 四川峨邊華竹溝礦業(yè)開發(fā)有限公司華竹溝磷礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案情況
- 茶飲店基礎(chǔ)知識培訓(xùn)課件
- 肺部粒子植入患者護(hù)理
- 2025年曲靖貨運(yùn)車從業(yè)考試題
- 2025年黔東南貨車資格證考試題
- 花城版三年級上冊音樂教學(xué)計劃
- GB/T 31821-2015電梯主要部件報廢技術(shù)條件
- GB/T 17574.11-2006半導(dǎo)體器件集成電路第2-11部分:數(shù)字集成電路單電源集成電路電可擦可編程只讀存儲器空白詳細(xì)規(guī)范
- 快手磁力聚星知識考試題庫及答案
- 學(xué)校衛(wèi)生監(jiān)督協(xié)管巡查記錄
- 《勾股定理在實(shí)際生活中的應(yīng)用》教學(xué)反思
- 游泳池給水排水安裝工程識圖
- 配位鍵和配位化合物課件
- 政 審 表打印模板
- 成人心肺復(fù)蘇(雙人)課件
- 蘇教版數(shù)學(xué)二年級下冊《認(rèn)識時分》教案(無錫公開課)
評論
0/150
提交評論