STM32之CAN控制器

2021-07-24 15:57:04 字數 2250 閱讀 3278

1、can只具有can_high和can_low兩條訊號線,can是以差分訊號的形式進行通訊的;

2、can通訊有兩種網路:一種是遵循iso11898標準的高速短距離閉環網路,它的匯流排最大長度為40m,通訊速度最高位1mbit/s;另外一種是遵循iso11519-2標準的低速遠距離開環網路,最大傳輸距離為1km,最高通訊速率為125kbit/s。

3、can的通訊節點由乙個can控制器、乙個can接收器組成;stm32的can介面即為can控制器,為了構成完整的節點,還要外接乙個can收發器。

4、差分訊號,即訊號的邏輯0和邏輯1由兩根差分訊號線的電壓差來表示。

iso11898規定can協議中處於邏輯1(隱性電平)時,can_high和can_low線上的電壓均為2.5v,即電壓差vh-vl=0v。而在邏輯0(顯性電平)時,can_high的電平為3.5v,can_low線的電平為1.5v,即他們的電壓差為vh-vl=2v。

5、在can匯流排中,必須處於隱性電平(邏輯1)或顯性電平(邏輯0)中的乙個狀態。假如有兩個can通訊節點,在同一時間,乙個輸出隱性電平,另乙個輸出顯性電平,匯流排的「線與」特性將使它處於顯性電平狀態,即可以認為顯性具有優先的意味。

6、can一共有5種型別的幀(報文):資料幀(用於傳送單元向接收單元傳送資料的幀)、遙控幀(用於接收單元向具有相同id的傳送單元請求資料的幀)、錯誤幀(用於當檢測出錯誤時向其他單元通知錯誤的幀)、過載幀(用於接收單元通知其尚未做好接收準備的幀)、幀間隔(用於將資料幀及遙控幀與前面的幀分離開來的幀);

7、資料幀是在can通訊中最主要、最複雜的報文;資料幀以乙個顯性位(邏輯0)開始,以7個連續的**位(邏輯1)結束。在它們之間,分為仲裁段、控制段、資料段、crc段和ack段。

7.1、仲裁段的內容主要為本資料幀的id資訊。資料幀分為標準格式和擴充套件格式兩種,區別就在於id資訊的長度,標準格式的id為11位,擴充套件格式的id為29位。

在can協議中,id起著重要的作用,它決定真資料幀傳送的優先順序,也決定著其他裝置是否會接收這個資料幀。

仲裁段除了報文id外,還有rtr、ide、srr位。其中rtr(remote transmission request)位用於區分資料幀和遙控幀的,在資料幀裡這一位為顯性(邏輯0)。ide(identifier extension)位用於區分標準格式與擴充套件格式的,在標準格式中為顯性,在擴充套件格式裡為隱性。srr(substitute remote request)位只存在於擴充套件格式,它用於替代標準格式中的rtr位。srr位為隱性位,由於rtr在資料幀為顯性位,所以在兩個id相同的標準格式報文與擴充套件格式報文中,標準格式的優先順序較高。

7.2、在控制段的r1和r0為保留位,預設設定為顯性位。最主要的為dlc段,dlc段由4位組成,msb先行,它的二級制編碼用於表示本報文中的資料段含有多少個位元組,dlc段表示的數字為0~8;

7.3、資料段為資料幀的核心內容,它由0~8個位元組組成,msb先行;

7.4、can的報文包含了一段15位的crc校驗碼,一旦接收端計算出crc跟接收到的crc碼不同,則會向傳送端反饋出錯資訊以及重新傳送。crc部分的計算和出錯處理一般由can控制器硬體完成或由軟體控制最大重發數;在crc校驗碼之後,有乙個crc界定符,它為隱性位,主要作用是把crc校驗碼與後面的ack段隔開。

7.5、ack段包括乙個ack槽位和ack界定符位。

8、can協議把每一位的時序分解為ss段、pts段、pbs1段和pbs2段,這四段的長度加起來即為乙個can資料位的長度。分解後最小的時間單位是tq,而乙個完整的位由8~25個t區組成。

8.1、ss段為同步段,若匯流排的跳變沿被包含在ss段的範圍之內,則表示節點與匯流排的時序同步。節點與匯流排同步時,取樣點採集到的匯流排電平即可被確定為該位的電平。ss段的大小為1tq。

8.2、pts段為傳播時間段,這個時間段用於補償網路的物理延時時間,是匯流排上輸入比較器延時和輸出驅動器延時總和的兩倍。pts段的大小為1~8tq;

8.3、pbs1段為相位緩衝段,主要用來補償邊沿階段的誤差,它的時間長度在重新同步的時候可以加長。pbs1段的初始大小可以為1~8tq;

8.4、pbs2段為另乙個相位緩衝段,也是用來補償邊沿階段誤差的,它的時間長度在重新同步時可以縮短。pbs2段的初始大小可以為2~8tq。

9、stm32的所有型號晶元中都具有不行can控制器(basic extend can),它支援can協議2.0a和2.0b。bxcan介面可以自動地接收和傳送can報文,支援標準識別符號和擴充套件識別符號。它具有3個傳送郵箱,傳送報文的優先順序可以使用軟體,可以記錄傳送的時間。有兩個3級深度的接收fifo,可以使用過濾功能只接收或不接收某些id號的報文。可以配置成自動重發。不支援使用dma進行資料收發。

STM32學習之CAN控制器簡介

1 stm32自帶了基本擴充套件can外設,又稱bxcan,bxcan的特點如下 支援can協議2.0a和2.0b主動模式 波特率最高達1mbps 支援時間觸發通訊 具有3個傳送郵箱 具有3級深度的2個接收fifo 可變的篩選器組 也稱過濾器組,最多28個 2 stm32 can控制器簡介 模式 初...

STM32網路之MAC控制器

之前的文章主要介紹了stm32的externalphy intereface部分,stm32網路電路設計 也就是下圖區域1。本文將重點講解stm32的mac控制器,也就是下圖區域2。stm32的mac控制器全稱是 mediaaccess control。stm32f207的mac控制器支援的模式 其...

STM32使用DMA控制器試驗總結

在使用串列埠dma試驗過程中,遇到了一些問題,通過試驗找到了問題所在,也對dma的應用有了新的認識,僅以此分享給大家,不足之處請多多指教。dma初始化 串列埠對應的dma請求通道 define usart tx dma channel dma1 channel4 define usart tx dm...