STM32F1之CAN介紹

目錄

?編輯

1. CAN 是什么?

2.? 總線拓撲圖

3. CAN 的特點

4. CAN 協議的基本概念


1. CAN 是什么?

CAN 是 Controller Area Network 的縮寫(以下稱為 CAN),是 ISO*1 國際標準化的串行通信協議。

????????在當前的汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由于這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應“減少線束的數量”、“通過多個 LAN,進行大量數據的高速通信”的需要,1986 年德國電氣商博世公司開發出面向汽車的 CAN 通信協議。此后,CAN 通過 ISO11898 及 ISO11519 進行了標準化,現在在歐洲已是汽車網絡的標準協議。

????????現在,CAN 的高性能和可靠性已被認同,并被廣泛地應用于工業自動化、船舶、醫療設備、工業設備等方面。

????????圖 1 是車載網絡的構想示意圖。CAN 等通信協議的開發,使多種 LAN 通過網關進行數據交換得以實現。

圖 1? 車載網絡構想

2.? 總線拓撲圖

????????CAN 控制器根據兩根線上的電位差來判斷總線電平。總線電平分為顯性電平和隱性電平,二者必居其一。發送方通過使總線電平發生變化,將消息發送給接收方。

圖 2 是 CAN 的連接示意圖

圖 2? CAN 連接圖

3. CAN 的特點

CAN 協議具有以下特點。

(1) 多主控制

????????在總線空閑時,所有的單元都可開始發送消息(多主控制)。

????????最先訪問總線的單元可獲得發送權(CSMA/CA 方式*1)。

????????多個單元同時開始發送時,發送高優先級 ID 消息的單元可獲得發送權。

(2) 消息的發送

????????在 CAN 協議中,所有的消息都以固定的格式發送。總線空閑時,所有與總線相連的單元都可以開始發送新消息。兩個以上的單元同時開始發送消息時,根據標識符(Identifier 以下稱為 ID)決定優先級。ID 并不是表示發送的目的地址,而是表示訪問總線的消息的優先級。兩個以上的單元同時開始發送消息時,對各消息 ID 的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優先級最高)的單元可繼續發送消息,仲裁失利的單元則立刻停止發送而進行接收工作。

(3) 系統的柔軟性

????????與總線相連的單元沒有類似于“地址”的信息。因此在總線上增加單元時,連接在總線上的其它單元的軟硬件及應用層都不需要改變。

(4) 通信速度

????????根據整個網絡的規模,可設定適合的通信速度。

????????在同一網絡中,所有單元必須設定成統一的通信速度。即使有一個單元的通信速度與其它的不一樣,此單元也會輸出錯誤信號,妨礙整個網絡的通信。不同網絡間則可以有不同的通信速度。

(5) 遠程數據請求

????????可通過發送“遙控幀” 請求其他單元發送數據。

(6) 錯誤檢測功能·錯誤通知功能·錯誤恢復功能

????????所有的單元都可以檢測錯誤(錯誤檢測功能)。

????????檢測出錯誤的單元會立即同時通知其他所有單元(錯誤通知功能)。

????????正在發送消息的單元一旦檢測出錯誤,會強制結束當前的發送。強制結束發送的單元會不斷反復地重新發送此消息直到成功發送為止(錯誤恢復功能)。

(7) 故障封閉

????????CAN 可以判斷出錯誤的類型是總線上暫時的數據錯誤(如外部噪聲等)還是持續的數據錯誤(如單元內部故障、驅動器故障、斷線等)。由此功能,當總線上發生持續數據錯誤時,可將引起此故障的單元從總線上隔離出去。

(8) 連接

????????CAN 總線是可同時連接多個單元的總線。可連接的單元總數理論上是沒有限制的。但實際上可連接的單元數受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數增加;提高通信速度,則可連接的單元數減少。

4. CAN 協議的基本概念

????????CAN 協議如圖3 所示涵蓋了 ISO 規定的 OSI*1 基本參照模型中的傳輸層、數據鏈路層及物理層。

????????CAN 協議中關于 ISO/OSI 基本參照模型中的傳輸層、數據鏈路層及物理層,具體有哪些定義如圖 4 所示。

圖3??ISO/OSI 基本參照模型

5??ISO/OSI 基本參照模型和 CAN 協議

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209548.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209548.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209548.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

javaWebssh學生系統myeclipse開發mysql數據庫MVC模式java編程計算機網頁設計

一、源碼特點 java ssh學生管理系統是一套完善的web設計系統(系統采用ssh框架進行設計開發),對理解JSP java編程開發語言有幫助,系統具有完整的源代碼和數據庫,系統主要采用B/S模 式開發。開發環境為TOMCAT7.0,My…

前端開發中,Web Storage的存儲數據的方法localstorage和sessionStorage的使用及區別

在 Web瀏覽器中存儲數據以改善用戶體驗和提升Web應用程序性能是非常常見的。在大多數情況下,可供我們使用就是LocalStorage和SessionStorage。 本文中,我們將會從安全性和用戶體驗兩個方面對SessionStorage和LocalStorage進行評估。然后我們將討論如何根…

Linux驅動安裝遇到的問題(Kernel configuration is invalid)(Invalid module format)

Linux驅動編譯安裝遇到的問題(Kernel configuration is invalid)(Invalid module format) 前言1. Kernel configuration is invalid2. Invalid module format2.1 第一種情況:內核模塊編譯的環境與現在insmod想要運行的…

python:mplfinance 畫K線圖+布林線

pip install mplfinance ; python 安裝使用 TA-lib 安裝主要在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 這個網站找到 TA_Lib-0.4.24-cp310-cp310-win_amd64.whl pip install /pypi/TA_Lib-0.4.24-cp310-cp310-win_amd64.whl 編寫 mpf_kline_boll.py 如下 # -*- cod…

英語口語練習(背誦老友記)

There is nothing to tell! 這沒什么好說的! Hes just some guy I work with. 他不過是我的同事。 Cmon, youre going out with the guy! 少來了,你們都在約會了! Theres gotta be something wrong with him! 這個男人一定有什么問題&…

華為OD機試真題-快遞員的煩惱-2023年OD統一考試(C卷)

題目描述: 快遞公司每日早晨,給每位快遞員推送需要送到客戶手中的快遞以及路線信息,快遞員自己又查找了一些客戶與客戶之間的路線距離信息,請你依據這些信息,給快遞員設計一條最短路徑,告訴他最短路徑的距離。 注意: 1. 不限制快遞包裹送到客戶手中的順序,但必須保證都…

【VRTK】【VR開發】【Unity】12-占位身體

課程配套學習資源下載 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概要】 目前你會發現,就算存在非Trigger Collider的墻壁屏障等,也能夠正常穿過,這會導致不沉浸的體驗。你需要一個占位身體來實現讓墻壁等碰撞并擋住自己…

基于java的貪吃蛇小游戲

貪吃蛇游戲需要做兩點:圖形界面和游戲邏輯。在 Java 中,可以使用 Swing 或 JavaFX 來創建圖形界面。下面代碼創建了一個簡單的 Swing 窗口,實現了一個基本的貪吃蛇游戲。在游戲中,使用方向鍵控制貪吃蛇的移動,吃到食物…

`Numpy`數組中 數據的修改(第10講)

Numpy數組中 數據的修改(第10講) ??????? ??博主 侯小啾 感謝您的支持與信賴。?? ????????????????????????????????????????????????????????????????????????????????????…

YOLOv5獨家原創改進:SPPF自研創新 | 可變形大核注意力(D-LKA Attention),大卷積核提升不同特征感受野的注意力機制

??????本文自研創新改進: 可變形大核注意力(D-LKA Attention)高效結合SPPF進行二次創新,大卷積核提升不同特征感受野的注意力機制。 收錄 YOLOv5原創自研 https://blog.csdn.net/m0_63774211/category_12511931.html ??????全網獨家首發創新(原創),適合p…

Python學習路線 - Python語言基礎入門 - 函數使用

Python學習路線 - Python語言基礎入門 - 函數使用 函數介紹函數函數的快速體驗 函數的定義函數的定義 函數的參數函數的傳入參數函數的傳入參數 - 傳參定義函數的傳入參數 - 語法解析練習案例:升級版自動查詢核酸 函數的返回值函數返回值的定義返回值的語法None類型…

Python----異常

1、什么是異常 當檢測到一個錯誤時,解釋器就無法繼續執行了,反而出現了一些錯誤的提示,這就是所謂的"異常"。 2、異常演示 # 運算符 # print(10/0) # 文件異常 f open(python.txt, r) content f.readlines() print(content) 3…

vue中el-upload結合vuedraggable實現圖片的上傳、排序、刪除以及預覽等功能

實現效果&#xff1a; 功能實現&#xff1a; 要實現圖片的拖拽功能首先需要安裝vuedraggable庫 npm install vuedraggable --save在組件中引入并注冊 vuedraggable <script>import draggable from "vuedraggable";export default {// 注冊組件components: {…

SI24R03 高度集成低功耗SOC 2.4G 收發一體芯片

今天給大家介紹一款Soc 2.4G 收發一體模塊-SI24R03 Si24R03是一款高度集成的低功耗無線SOC芯片&#xff0c;芯片為QFN32 5x5mm封裝&#xff0c;集成了資源豐富的MCU內核與2.4G收發器模塊&#xff0c;最低功耗可達1.6uA&#xff0c;極少外圍器件&#xff0c;大幅降低系統應用成本…

詳解Android單元測試最佳實踐

目的 充分的單元測試就是提高代碼質量最有效的手段之一&#xff0c;而單元測試嚴重依賴代碼的可測試性&#xff0c;本文主要通過一個簡單的DEMO演示如何對Android原生應用進行單元測試&#xff0c;同時示例代碼采用MVP模式以提高代碼的可讀性和可測試性 簡介 在Android原生應…

mmdetection測試保存到新的文件夾,無需標簽

這個是用demo這個代碼測試的&#xff0c;需要先訓練一個pth文件夾&#xff0c;訓練之后再調用pth文件夾進行測試。測試的代碼文件名是&#xff1a;image_demo_new.py&#xff0c;代碼如系所示&#xff1a; # Copyright (c) OpenMMLab. All rights reserved. import asyncio fr…

使用selenium的edge瀏覽器登錄某為

互聯網上基本都是某哥的用法&#xff0c;其實edge和某哥的用法是一樣的就有一下參數不一樣。 一、運行環境 Python&#xff1a;3.7 Selenium&#xff1a;4.11.2 Edge&#xff1a;版本 120.0.2210.61 (正式版本) (64 位) 二、執行代碼 from time import sleepfrom selenium…

調新浪分享

前端寫一個按鈕,通過按鈕來調出新浪界面, window.location.href http://service.weibo.com/share/share.php?url 這行代碼調出新浪分享界面,要是想要添加一些圖片和文字 使用: window.location.href http://service.weibo.com/share/share.php?url encodeURIComponent…

P2 Qt Creator創建第一個Qt程序

前言 &#x1f3ac; 個人主頁&#xff1a;ChenPi &#x1f43b;推薦專欄1: 《C_ChenPi的博客-CSDN博客》??? &#x1f525; 推薦專欄2: 《LLinux C應用編程&#xff08;概念類&#xff09;_ChenPi的博客-CSDN博客》??? &#x1f33a;本篇簡介 &#xff1a;這一章我們學…

Python基礎——兩個常用且容易忘記的知識點

1. replace函數的第三個參數 replace 方法提供了一個可選的參數 count&#xff0c;可以用于指定替換的次數。你可以將 count 設置為 1 來限制替換的次數&#xff0c;只替換第一個匹配項。 下面是使用 replace 方法限制替換次數的示例&#xff1a; date_str "2023/05/1…