亚洲精品曰韩少妇无码_特级片av极速在线_真实单亲乱l仑对白视频_欧美综合一区二区三区在线观看_av自拍电影天堂_内射狼友国产情侣_網友分享999国产高清在线精品心得_成人性爽大片免费看_艳妇豪乳荡乳av无码福利_香蕉精品视频国产

國民技術(shù)

代理品牌

國民技術(shù)單片機CAN接口參數(shù)配置說明及應(yīng)用Application Note

國民技術(shù)單片機CAN接口參數(shù)配置說明及應(yīng)用Application Note

產(chǎn)品分類:國民技術(shù)

  • 產(chǎn)品說明

國民技術(shù)單片機CAN接口參數(shù)配置說明及應(yīng)用Application Note

說明:本文為國民技術(shù)Arm Cortex系列單片機的CAN參數(shù)配置參數(shù)說明部分章節(jié),可適用于國民技術(shù)所有32位MCU的CAN參數(shù)配置,若您需要完整的配置說明手冊或其它技術(shù)支持,請聯(lián)絡(luò)國民技術(shù)代理商深圳市綠都電子有限公司,聯(lián)絡(luò)方式:Email: philip.yf@szlvdu.com,0755-83777478,18688790400(微信同號)。

bxCAN 指的是基本擴展 CAN(Basic Extended CAN),它支持 CAN 協(xié)議 2.0A 和 2.0B。它在高效處理大量收到的報文的同時,極大地降低了 CPU 資源的消耗。可以通過軟件配置報文發(fā)送的優(yōu)先級特性。本篇應(yīng)用筆記可以幫助用戶了解 CAN 模塊,通過對 CAN 接口參數(shù)的詳解及典型應(yīng)用來了解 CAN 接口的使用。 

一、CAN 協(xié)議簡介

CAN 是控制器局域網(wǎng)絡(luò)(Controller Area Network)的簡稱,它是由研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國博世(BOSCH)公司開發(fā)的,并最終成為國際標準, CAN 總線協(xié)議已經(jīng)成為汽車計算機控制系統(tǒng)和嵌入式工業(yè)
控制局域網(wǎng)的標準總線。近年來,它具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應(yīng)用于汽車計算機控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強及振動大的工業(yè)環(huán)境。

1.1 CAN 物理層

與 I2C、SPI 等具有時鐘信號的同步通訊方式不同,CAN 通訊并不是以時鐘信號來進行同步的,它是一種異步通訊,只具有 CAN_High 和 CAN_Low 兩條信號線,共同構(gòu)成一組差分信號線,以差分信號的形式進行
通訊。

1.1.1 閉環(huán)總線網(wǎng)絡(luò)

CAN 物理層的形式主要有兩種,圖 1-1 中的 CAN 通訊網(wǎng)絡(luò)是一種遵循 ISO11898 標準的高速、短距離“閉環(huán)網(wǎng)絡(luò)”,它的總線最大長度為 40m,通信速度最高為 1Mbps,總線的兩端各要求有一個“120 歐”的電阻。


1.1.2 通訊節(jié)點
從 CAN 通訊網(wǎng)絡(luò)圖可了解到,CAN 總線上可以掛載多個通訊節(jié)點,節(jié)點之間的信號經(jīng)過總線傳輸,實現(xiàn)節(jié)點間通訊。由于 CAN 通訊協(xié)議不對節(jié)點進行地址編碼,而是對數(shù)據(jù)內(nèi)容進行編碼的,所以網(wǎng)絡(luò)中的節(jié)點個

數(shù)理論上不受限制,只要總線線束的電氣負載能力足夠即可,但實際應(yīng)用過程中,一條總線上的節(jié)點一般不會超過 100 個。

CAN 通訊節(jié)點由一個 CAN 控制器(如 MCU)及 CAN 收發(fā)器組成,控制器與收發(fā)器之間通過 CAN_Tx及 CAN_Rx 信號線相連,收發(fā)器與 CAN 總線之間使用 CAN_High 及 CAN_Low 信號線相連。其中 CAN_Tx

及 CAN_Rx 使用普通的類似 TTL 邏輯信號,而 CAN_High 及 CAN_Low 是一對差分信號線,下一小節(jié)將對該差分信號做較為詳細闡述 。

當 CAN 節(jié)點需要發(fā)送數(shù)據(jù)時,控制器把要發(fā)送的二進制編碼通過 CAN_Tx 線發(fā)送到收發(fā)器,然后由收發(fā)器把這個普通的邏輯電平信號轉(zhuǎn)化成差分信號, 通過差分線 CAN_High 和 CAN_Low 線輸出到 CAN 總線上。而通過收發(fā)器接收總線上的數(shù)據(jù)到控制器時,則是相反的過程,收發(fā)器把總線上收到的 CAN_High 及CAN_Low 信號轉(zhuǎn)化成普通的邏輯電平信號,通過 CAN_Rx 輸出到控制器中。

1.1.3 差分信號

差分信號又稱差模信號,與傳統(tǒng)使用單端信號的電壓表示邏輯的方式有區(qū)別,使用差分信號傳輸時,需要兩根信號線,這兩個信號線的振幅相等,相位相反,通過兩根信號線的電壓差值來表示邏輯 0 和邏輯 1。見圖1-2,它使用了 V+與 V-信號的差值表達出了圖下方的信號。 


CAN 協(xié)議中對它使用的 CAN_High 和 CAN_Low 表示的差分信號做了規(guī)定,如圖 1-3 和 1-4 所示,以高速CAN 協(xié)議(ISO11898)為例,當表示邏輯 1 時(隱形電平),CAN_High 和 CAN_Low 線上的電壓均為
2.5V,即他們的電壓差△ V=|VH-VL|=0V;而表示邏輯 0 時(顯性電平),CAN_High 的電平為 3.5V,CAN_Low 的電平為 1.5V,即他們的電壓差為△ V=|VH-VL|=2V。例如,當 CAN 收發(fā)器從 CAN_Tx 線接收到來自 CAN 控制器的低電平信號時(邏輯 0),它會使 CAN_High 輸出 3.5V,同時 CAN_Low 輸出 1.5V,從而輸出顯性電平表示邏輯 0。 


在 CAN 總線中,必須使它處于隱性電平(邏輯 1)或顯性電平(邏輯 0)中的其中一個狀態(tài)。假如有兩個 CAN通訊節(jié)點,在同一時間,一個輸出隱性電平,另一個輸出顯性電平,類似 I2C 總線的“線與”特性將使它處于顯性電平狀態(tài),顯性電平的名字就是這樣來的,即可以認為顯性具有優(yōu)先的意味。由于 CAN 總線協(xié)議的物理層只有 1 對差分線,在一個時刻只能表示一個信號,所以對通訊節(jié)點來說,CAN 通訊是半雙工的,收發(fā)數(shù)據(jù)需要分時進行。在 CAN 的通訊網(wǎng)絡(luò)中,因為共用總線,在整個網(wǎng)絡(luò)中同一時刻只能有一個通訊節(jié)點發(fā)送信號,其余的節(jié)點在該時刻都只能接收。 

1.2 協(xié)議

對 CAN 協(xié)議標準這里不作多余闡述,若對 CAN 通訊協(xié)議想要了解,可以瀏覽附件的文檔《CAN 入門教程》、《CAN2.0 規(guī)范》,或網(wǎng)上查找專業(yè)性資料進行學習CAN 外設(shè)接口參數(shù)說明。CAN 外設(shè)有許多的參數(shù)接口需要配置,例如初始化結(jié)構(gòu)體、發(fā)送及接收結(jié)構(gòu)體、過濾器結(jié)構(gòu)體等,下面將根據(jù) N32 庫的風格來對這些結(jié)構(gòu)體成員變量做一些解釋及配置說明


CAN 外設(shè)接口參數(shù)說明
CAN 外設(shè)有許多的參數(shù)接口需要配置,例如初始化結(jié)構(gòu)體、發(fā)送及接收結(jié)構(gòu)體、過濾器結(jié)構(gòu)體等,下面將根據(jù) N32 庫的風格來對這些結(jié)構(gòu)體成員變量做一些解釋及配置說明


2.1 CAN 內(nèi)

CAN 控制內(nèi)核包含了各種控制寄存器及狀態(tài)寄存器,主要講解其中的主控制寄存器 CAN_MCTRL 及位時序寄存器 CAN_BTIM

2.1.1 主控制寄存器 CAN_MCTRL

主控制寄存器 CAN_MCTRL 負責 CAN 的工作模式,它主要使用以下功能實現(xiàn)控制

(1) DBGF 調(diào)試凍結(jié)功能

DBGF(Debug freeze)調(diào)試凍結(jié),使用它可設(shè)置在調(diào)試時 CAN 處于工作狀態(tài)或禁止收發(fā)的狀態(tài),禁止收發(fā)時仍可訪問接收 FIFO 中的數(shù)據(jù)。這兩種狀態(tài)是當 N32 芯片處于程序調(diào)試模式時才使用的,平時使用并不影響。注:CAN 凍結(jié)時必須設(shè)置 DBG_CTRL.CAN_STOP 位

(2) TTCM 時間觸發(fā)模式

TTCM(Time triggered communication mode)時間觸發(fā)模式,它用于配置 CAN 的時間觸發(fā)通信模式,在此模式下,CAN 使用它內(nèi)部定時器產(chǎn)生時間戳,并把它保存在 CAN_TMDTx、CAN_RMDTx 寄存器中。內(nèi)部定時器在每個 CAN 位時間累加,在接收和發(fā)送的幀起始位被采樣,并生成時間戳。利用它可以實現(xiàn) ISO11898-4 CAN 標準的分時同步通信功能。

(3) ABOM 自動離線管理

ABOM(Automatic bus-off management) 自動離線管理,它用于設(shè)置是否使用自動離線管理功能。當節(jié)點檢測到它發(fā)送錯誤或接收錯誤超過一定值時,會自動進入離線狀態(tài),在離線狀態(tài)中,CAN 不能接收或發(fā)送報文。處于離線狀態(tài)的時候,可以軟件控制恢復(fù)或者直接使用這個自動離線管理功能,它會在適當?shù)臅r候自動恢復(fù)。

(4) AWKUM 自動喚醒

AWUM(Automatic bus-off management),自動喚醒功能,CAN 外設(shè)可以使用軟件進入低功耗的睡眠模式,如果使能了這個自動喚醒功能,當 CAN 檢測到總線活動的時候,會自動喚醒。

(5) NART 自動重傳

NART(No automatic retransmission)報文自動重傳功能,設(shè)置這個功能后,當報文發(fā)送失敗時會自動重傳至成功為止。若不使用這個功能,無論發(fā)送結(jié)果如何,消息只發(fā)送一次。

(6) RFLM 鎖定模式

RFLM(Receive FIFO locked mode)FIFO 鎖定模式,該功能用于鎖定接收 FIFO。鎖定后,當接收 FIFO 溢出時,會丟棄下一個接收的報文。若不鎖定,則下一個接收到的報文會覆蓋原報文。

(7) TXFP 報文發(fā)送優(yōu)先級的判定方法

TXFP(Transmit FIFO priority)報文發(fā)送優(yōu)先級的判定方法,當 CAN 外設(shè)的發(fā)送郵箱中有多個待發(fā)送報文時,本功能可以控制它是根據(jù)報文的 ID 優(yōu)先級還是報文存進郵箱的順序來發(fā)送。

2.1.2 位時序寄存CAN_BTIM

CAN 外設(shè)中的位時序寄存器 CAN_BTIM 用于配置測試模式、波特率以及各種位內(nèi)的段參數(shù)。

(1) 測試模式

為方便調(diào)試,N32 的 CAN 提供了測試模式,配置位時序寄存器 CAN_BTIM 的 SLM 及 LBM 寄存器位可以控制使用正常模式、靜默模式、回環(huán)模式及靜默回環(huán)模式,如圖 2-1 所示


(2) 位時序及波特率

N32 的 CAN 外設(shè)定義的時序與 CAN 標準時序有一點區(qū)別,如圖 2-2 所示:


N32 的 CAN 外設(shè)位時序中只包含 3 段,分別是同步段 SYNC_SEG、位段 BS1 及位段 BS2,采樣點位于BS1 及 BS2 段的交界處。其中 SYNC_SEG 段固定長度為 1Tq,而 BS1 及 BS2 段可以在位時序寄存器 7 CAN_ BTIM 設(shè)置它們的時間長度,它們可以在重新同步期間增長或縮短,該長度 RSJW 也可在位時序寄存器中配置。

理解 N32 的 CAN 外設(shè)的位時序時,可以把它的 BS1 段理解為是由前面介紹的 CAN 標準協(xié)議中 PTS 段與PBS1 段合在一起的,而 BS2 段就相當于 PBS2 段。了解位時序后,接下來可以配置波特率。通過配置位時序寄存器 CAN_BTIM 的 TBS1[3:0]及 TBS2[2:0]寄存器位設(shè)定 BS1 及 BS2 段的長度后,就可以確定每個 CAN 數(shù)據(jù)位的時間:

BS1 段時間:TS1=Tq x (TBS1[3:0] + 1)

BS2 段時間:TS2= Tq x (TBS2[2:0] + 1)

一個數(shù)據(jù)位的時間:T1bit =1Tq+TS1+TS2 =1+ (TBS1[3:0] + 1)+ (TBS2[2:0] + 1)= N Tq

其中單個時間片的長度 Tq 與 CAN 外設(shè)的所掛載的時鐘總線及分頻器配置有關(guān),CAN1 和 CAN2 外設(shè)都是掛載在 APB1 總線上的,而位時序寄存器 CAN_BTIM 中的 BRTP[9:0]寄存器位可以設(shè)置 CAN 外設(shè)時鐘的分頻值 ,所以:Tq = (BRTP[9:0]+1) x TPCLK

其中的 PCLK 指 APB1 時鐘,N32G45X 默認值為 36MHz。

最終可以計算出 CAN 通訊的波特率:BaudRate = 1/N Tq

如下圖 2-3 說明了一種把 N32G45X 的 CAN 波特率配置為 1Mbps 的方式

(以下內(nèi)容因篇幅原因未詳述,詳細應(yīng)用筆記請聯(lián)絡(luò)國民技術(shù)代理商深圳市綠都電子有限公司索取,聯(lián)絡(luò)方式:Philip.yf@szlvdu.com,0755-83777479, 18688790400)

2.2 CAN 初始化結(jié)構(gòu)體

2.3 CAN 發(fā)送及接收結(jié)構(gòu)體

2.4 CAN 過濾器結(jié)構(gòu)體

3 CAN 外設(shè)典型應(yīng)用

3.1 修改采樣率

3.2 過濾指定 ID 報文 

4 注意事項