STM32 CAN學習(一)

CAN總線應用最多的是汽車領域。

CAN(Controller Area Network)控制器 局域 網

局域網:把幾臺電腦連接到一臺路由器上,這幾臺電腦就可以進行通訊了。

控制器在汽車中的專業術語叫做ECU(Electronic Control Unit),可以看做是一臺超小型計算機,內部集成了供電系統,單片機,驅動系統,是汽車里面最小的控制模塊。

為了能讓ECU之間進行通信,人們設計了一種CAN協議。

在這里插入圖片描述
CAN總線在最開始是為了減少銅線的長度而開發的。

如果不使用CAN總線,就會使用數倍長的銅線,而且線束還非常雜亂。
在這里插入圖片描述
而通過CAN,這么多ECU只需要掛載到CAN總線上,就可以組成局域網通信了。
在這里插入圖片描述
要進行CAN通訊,需要專門的CAN收發芯片。
在這里插入圖片描述
在這里插入圖片描述
經過CAN收發器后,普通信號會被轉化為差分信號。
在這里插入圖片描述
差分線是用兩根線表示一個信號。

如果我們給CAN收發器發送一個低電平,它的兩根線分別輸出3.5V和1.5V,它們的電壓差是2V,這是顯性電平,表示邏輯0。
在這里插入圖片描述
發送高電平時,兩根線都輸出2.5V,壓差是0V,表示邏輯1。
在這里插入圖片描述
同樣的,CAN收發器也可以把接收到的差分信號,轉化為普通電平信號。

如果是普通信號,它只有一根線,當某一點受到干擾,它的電平就會發生跳變,這樣就會導致傳輸出現錯誤。
在這里插入圖片描述
長距離傳輸時,很容易出現錯誤。

CAN通訊采用的差分信號是兩根線共同作用,而且是雙絞線纏繞。這樣即使受到干擾,也是兩根線同時受到干擾,它們的壓差也會保持不變。

在這里插入圖片描述

所以CAN信號可以傳輸的距離很長,可達1000米。

CAN通訊傳遞的數據幀

第一位是起始位,一定是邏輯0。
接下來的11位是識別碼,根據11位識別碼,就可以知道這一幀數據是發送給哪個設備的。
在這里插入圖片描述
每一個設備都有屬于自己的11位識別碼。

RTR位是用來區分是數據幀還是遠程請求幀。

  • 如果是遠程請求幀,這一位是1。
  • 數據幀,就是0。

接下來六位是控制碼,用于控制數據長度。

  • IDE位用于區分標準格式和拓展格式。
    在這里插入圖片描述

在這里插入圖片描述
因為CAN總線上掛載了很多ECU,如果兩個ECU同時發送信息,哪一個設備發送的信息優先呢?
這就得看11位的識別碼,它不僅是設備的唯一識別碼,還代表了優先級。

在這里插入圖片描述
當總線同時出現邏輯0和邏輯1時,總線會被置為邏輯0,此后上面的數據幀就不會再發送了。

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

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

相關文章

多線程開發中List的使用

由于ArrayList在多線程高并發情況下是不安全的,因此要慎用,那么此時如果涉及到集合操作,應該怎么選: 方案一:Vector: 特點:通過給所有方法都用 synchronized 修飾從而保證線程安全, 缺點&…

論文閱讀筆記:Denoising Diffusion Implicit Models (2)

0、快速訪問 論文閱讀筆記:Denoising Diffusion Implicit Models (1) 論文閱讀筆記:Denoising Diffusion Implicit Models (2) 論文閱讀筆記:Denoising Diffusion Implicit Models &#xff08…

人工智能在醫療領域的前沿應用與挑戰

在當今數字化時代,人工智能(AI)技術正以前所未有的速度改變著我們的生活,其中醫療領域無疑是受益最為顯著的行業之一。從疾病診斷、治療方案制定到患者護理,AI的應用不僅提高了醫療服務的效率和質量,還為醫…

【計算機網絡】HTTP與HTTPS

文章目錄 1. HTTP定義2. HTTP交互3. HTTP報文格式3.1 抓包工具-fiddler3.2 抓包操作3.3 報文格式3.3.1 請求報文3.3.2 響應報文 4. URL5. 請求頭中的方法6. GET和POST的區別7. HTTP報頭7.1 Host7.2 Content_Length7.3 Content_Type7.4 User-Agent(UA)7.5 Referer7.6 Cookie 8 狀…

怎樣提升大語言模型(LLM)回答準確率

怎樣提升大語言模型(LLM)回答準確率 目錄 怎樣提升大語言模型(LLM)回答準確率激勵與規范類知識關聯類情感與語境類逆向思維類:為什么不,反面案例群體智慧類明確指令類示例引導類思維引導類約束限制類反饋交互類:對話激勵與規范類 給予獎勵暗示:在提示詞中暗示模型如果回…

【分享】內外網文件擺渡系統:讓數據傳輸更安全更可靠

【分享】Ftrans內外網文件擺渡系統:讓數據傳輸更安全更可靠! 隨著大數據時代的到來,數據的重要性日漸得到重視,數據作為數字經濟時代下的基礎性資源和戰略性資源,是決定國家經濟發展水平和競爭力的核心驅動力。以行業…

Python自動化面試通關秘籍

Python自動化測試工程師面試,不僅僅是考察你的代碼能力,更看重你如何在項目中靈活運用工具和框架解決實際問題。如果你正準備面試,這篇文章將為你總結最常見的高頻考題及答題技巧,幫助你快速上手,通關面試,…

Logstash開啟定時任務增量同步mysql數據到es的時區問題

本文使用修改時間modify_date作為增量同步檢測字段,可檢測新增和修改,檢測不到刪除,檢測刪除請使用canal查詢binlog日志同步數據 檢測修改時間字段為varchar的時候可以先創建索引,并設置對應的mapping為(可以無視時區…

如何使用 FastAPI 構建 MCP 服務器

哎呀,各位算法界的小伙伴們!今天咱們要聊聊一個超酷的話題——MCP 協議!你可能已經聽說了,Anthropic 推出了這個新玩意兒,目的是讓 AI 代理和你的應用程序之間的對話變得更順暢、更清晰。不過別擔心,為你的…

【Git】-- 處理 Git 提交到錯誤分支的問題

如果你不小心把本應提交到 test 分支的代碼提交到了 master 分支(但尚未 push),可以按照以下步驟解決: 方法一(推薦):使用 git reset 和 git stash 首先,確保你在 master 分支&…

通用目標檢測技術選型分析報告--截止2025年4月

前言 本文撰寫了一份關于通用目標檢測(General Object Detection)的技術選型分析報告,覆蓋2000至2025年技術演進歷程,重點納入YOLO-World、RT-DETR、Grounding DINO等2024-2025年的最新模型。 報告將包括技術定義、行業現狀、技…

鏈路追蹤Skywalking

一、什么是Skywalking 分布式鏈路追蹤的一種方式:Spring Cloud SleuthZipKin,這種方案目前也是有很多企業在用,但是作為程序員要的追逐一些新奇的技術,Skywalking作為后起之秀也是值得大家去學習的。 Skywalking是一個優秀的國產…

websocket獲取客服端真實ip

在websocket建立連接時,獲取訪問客戶端的真實ip 1. websocket建立連接過程 2. pom依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>3. 添加配置,握…

NSSCTF(MISC)—[justCTF 2020]pdf

相應的做題地址&#xff1a;https://www.nssctf.cn/problem/920 binwalk分離 解壓文件2AE59A.zip mutool 得到一張圖片 B5F31內容 B5FFD內容 轉換成圖片 justCTF{BytesAreNotRealWakeUpSheeple}

部分國產服務器CPU及內存性能測試情況

近日對部分國產服務器進行了CPU和內存的性能測試&#xff0c; 服務器包括華錕振宇、新華三和中興三家&#xff0c;CPU包括鯤鵬、海光和Intel&#xff0c;初步測試結果如下&#xff1a; 服務器廠商四川華錕振宇新華三中興中興服務器HuaKun TG225 B1R4930 G5R5930 G2R5300 G4操作…

【無標題】Scala函數基礎

函數和方法的區別 1&#xff09; 核心概念 &#xff08;1&#xff09; 為完成某一功能的程序語句的集合&#xff0c;稱為函數。 &#xff08;2&#xff09; 類中的函數稱之方法。 2&#xff09; 案例實操 &#xff08;1&#xff09; Scala 語言可以在任何的語法結構中聲明…

uniapp -- 列表垂直方向拖拽drag組件

背景 需要在小程序中實現拖拽排序功能,所以就用到了m-drag拖拽組件,在開發的過程中,發現該組件在特殊的場景下會有些問題,并對其進行了拓展。 效果 組件代碼 <template><!-- 創建一個垂直滾動視圖,類名為m-drag --><scroll

conda安裝python 遇到 pip is configured with locations that require TLS/SSL問題本質解決方案

以前寫了一篇文章&#xff0c;不過不是專門為了解決這個問題的&#xff0c;但是不能訪問pip install 不能安裝來自https 協議的包問題幾乎每次都出現&#xff0c;之前解決方案只是治標不治本 https://blog.csdn.net/wangsenling/article/details/130194456???????https…

【初階數據結構】隊列

文章目錄 目錄 一、概念與結構 二、隊列的實現 隊列的定義 1.初始化 2.入隊列 3.判斷隊列是否為空 4.出隊列 5.取隊頭數據 6.取隊尾數據 7.隊列有效個數 8.銷毀隊列 三.完整源碼 總結 一、概念與結構 概念&#xff1a;只允許在一端進行插入數據操作&#xff0c;在另一端進行刪除…

Apache Shiro 全面指南:從入門到高級應用

一、Shiro 概述與核心架構 1.1 什么是 Shiro&#xff1f; Apache Shiro 是一個強大且易用的 Java 安全框架&#xff0c;它提供了認證&#xff08;Authentication&#xff09;、授權&#xff08;Authorization&#xff09;、加密&#xff08;Cryptography&#xff09;和會話管…