第 4 章:網絡與總線——CAN / Ethernet / USB-OTG


本章目標:

  • 深入理解三種關鍵通信總線(CAN、Ethernet、USB-OTG)的協議架構、硬件接口與軟件驅動

  • 掌握 STM32(或同類 MCU)中各總線的寄存器配置、中斷/DMA 驅動框架

  • 通過實戰案例,實現基于 CAN 總線的節點通信、基于 Ethernet 的 TCP/IP 通信,以及基于 USB-OTG 的虛擬串口與大容量存儲訪問

章節結構
4.1 CAN 總線
?4.1.1 CAN 協議概覽與幀結構
?4.1.2 硬件電氣特性與物理連接
?4.1.3 STM32 CAN 控制器寄存器解析
?4.1.4 CAN 驅動框架(中斷與報文過濾)
?4.1.5 實戰案例:STM32 與多個節點的可靠通信
4.2 Ethernet
?4.2.1 Ethernet 協議棧概覽(MAC+PHY, TCP/IP)
?4.2.2 硬件接口與 MII/RMII/PSE 報文時序
?4.2.3 STM32 Ethernet MAC 寄存器解析
?4.2.4 LwIP 驅動集成與零拷貝 DMA
?4.2.5 實戰案例:Web 服務器與 MQTT 客戶端示例
4.3 USB-OTG
?4.3.1 USB 枚舉與端點模型(Host/Device/OTG)
?4.3.2 硬件信號:DP/DM、ID 引腳、VBUS 檢測
?4.3.3 STM32 USB-OTG 控制器寄存器解析
?4.3.4 USB-CDC(虛擬串口)與 MSC(大容量存儲)實現
?4.3.5 實戰案例:STM32 同時支持 CDC 與 MSC Composite 設備
4.4 本章小結與選型建議


4.1 CAN 總線

4.1.1 CAN 協議概覽與幀結構

Controller Area Network (CAN) 是一種多主、基于廣播的實時通信總線,廣泛用于汽車電子、工業控制與分布式系統。CAN 的關鍵特點包括:

  • 多主訪問:所有節點并行收發,使用位仲裁確保無沖突

  • 幀結構:支持標準幀(11 位標識符)與擴展幀(29 位標識符)、數據字段長度 0–8 字節

—— CAN 數據報文結構(標準幀) ——
┌────────┬───────┬───────┬───────┬───────┐
│ 標識符(11b) │ RTR(1) │ IDE(1) │ DLC(4) │ Data(0–8×8b) │ CRC(15) │
└────────┴───────┴───────┴───────┴───────┘
  • 標識符 (ID):決定優先級,ID 值越小優先權越高

  • RTR:遠程幀請求位

  • IDE:擴展幀指示位

  • DLC:數據長度碼

  • CRC:循環冗余校驗

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

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

相關文章

數據結構-DAY05

一、棧的概念 1.棧是限定僅在表尾進行插入和刪除操作的線性表。先進后出、后進先出 棧頂:允許操作的一端 棧底:不允許操作的一端入棧,出棧。 棧分為:順序棧 鏈式棧 2.棧結構是在堆區創建的 3.優先級就是通過棧來解決的 先進后出…

leetcode 153. Find Minimum in Rotated Sorted Array

題目描述 分析 可以發現一個規律: 假如整個數組最后一個元素是x。 最小值左側(不含最小值自己)的元素全部大于x。 最小值右側(包含最小值自己,不包含x)的元素全部小于x。 如果整個數組是有序的&#x…

如何在 AOSP 中判斷一個源文件屬于哪個模塊(以 CameraService 為例)

如何在 AOSP 中判斷一個源文件屬于哪個模塊(以 CameraService 為例) 在 AOSP 開發中,經常需要修改底層 C 代碼(如 CameraService.cpp),但很多人會遇到一個問題: 我修改了某個 .cpp 文件&#x…

云原生主要架構模式

云原生(Cloud Native)是一種利用云計算的優勢來構建和運行可擴展、彈性和高效應用程序的方法。它不僅僅是技術的集合,更是一種架構和設計理念。本文將圍繞你提出的幾部分,深入探討云原生主要的架構模式,幫助你理解如何利用這些模式構建現代化的應用。 1. 服務化架構模式(…

深入理解MySQL結構與執行流程

標題:深入理解MySQL結構與執行流程 MySQL以其開源、靈活性和強大的功能成為了最受歡迎的關系型數據庫管理系統之一。無論是初創公司還是大型企業,都廣泛使用MySQL來存儲和管理數據。為了幫助大家更好地理解和優化MySQL的性能,本文將詳細講解…

Python web 開發 Flask HTTP 服務

Flask 是一個輕量級的 Web 應用框架,它基于 Python 編寫,特別適合構建簡單的 Web 應用和 RESTful API。Flask 的設計理念是提供盡可能少的約定和配置,從而讓開發者能夠靈活地構建自己的 Web 應用。 https://andi.cn/page/622189.html

BMVC2023 | 多樣化高層特征以提升對抗遷移性

Diversifying the High-level Features for better Adversarial Transferability 摘要-Abstract引言-Introduction相關工作-Related Work方法-Methodology實驗-Experiments結論-Conclusion 論文鏈接 GitHub鏈接 本文 “Diversifying the High-level Features for better Adve…

虛幻引擎5-Unreal Engine筆記之攝像頭camera

虛幻引擎5-Unreal Engine筆記之攝像頭camera code review! 目錄 第一部分:攝像頭的基礎概念 1.1 UE5 中攝像頭的定義與作用1.2 UE5 中攝像頭的類型與分類 第二部分:攝像頭的代碼結構與分類 2.1 攝像頭是類還是組件?2.2 組件的本質&#xff…

【大數據】MapReduce 編程-- PageRank--網頁排名算法,用于衡量網頁“重要性”-排序網頁

PageRank 是 Google 創始人拉里佩奇(Larry Page)和謝爾蓋布林(Sergey Brin)在 1998 年提出的一種網頁排名算法,用于衡量網頁“重要性”的一種方式。它是搜索引擎中用于排序網頁的一種基礎算法 一個網頁越是被其他重要…

React Flow 數據持久化:Django 后端存儲與加載的最佳實踐(含詳細代碼解析)

在構建 React Flow 應用時,前端呈現的節點與連線構成的可視化流程只是冰山一角,其背后的數據持久化與靈活調取才是確保應用穩定運行、支持用戶數據回溯與協作的關鍵。因此,后端存儲與加載 React Flow 信息的環節,就如同整個應用的…

深度學習中的歸一化:提升模型性能的關鍵因素

📌 友情提示: 本文內容由銀河易創AI(https://ai.eaigx.com)創作平臺的gpt-4-turbo模型輔助完成,旨在提供技術參考與靈感啟發。文中觀點或代碼示例需結合實際情況驗證,建議讀者通過官方文檔或實踐進一步確認…

Pandas:Series和DataFrame的概念、常用屬性和方法

本文目錄: 一、Series和Dataframe的概念二、創建Series對象三、創建Dataframe對象(一)Series1.Series的常用屬性總結如下:2.Series的常用方法總結如下: (二)Dataframe1.Dataframe的常用屬性2.Da…

數據中心Overlay解決方案

文檔圍繞數據中心 Overlay 解決方案展開,指出數據中心向大集中、虛擬化、云業務演進,傳統架構存在網絡規劃復雜、彈性不足、業務擴展受限等問題。Overlay 網絡在物理網絡上構建虛擬網絡,實現名址分離、網絡與物理解耦,支持業務靈活部署。方案采用VXLAN 技術(如 SDN 控制模…

SpringBoot 項目實現操作日志的記錄(使用 AOP 注解模式)

本文是博主在做關于如何記錄用戶操作日志時做的記錄,常見的項目中難免存在一些需要記錄重要日志的部分,例如權限和角色設定,重要數據的操作等部分。 博主使用 Spring 中的 AOP 功能,結合注解的方式,對用戶操作過的一些…

以太聯 - Intellinet 閃耀臺北 SecuTech 國際安全科技應用博覽會

2025 年 5 月 7 日至 9 日,臺北 SecuTech 國際安全科技應用博覽會現場熱鬧非凡,以太聯 - Intellinet 攜旗下前沿產品與解決方案精彩亮相,成為展會上一道亮麗的風景線,吸引了眾多業內人士的目光,收獲了廣泛關注與高度認…

【華為鴻蒙電腦】首款鴻蒙電腦發布:MateBook Fold 非凡大師 MateBook Pro,擎云星河計劃啟動

文章目錄 前言一、HUAWEI MateBook Fold 非凡大師(一)非凡設計(二)非凡顯示(三)非凡科技(四)非凡系統(五)非凡體驗 二、HUAWEI MateBook Pro三、預熱&#xf…

OSA快速上手

我第一次接觸OSA,第一感覺就是龐雜,相關的文檔和資料基本都是英文,運行下示例場景,效果和效率確實很香。本文僅針對初次接觸OSA、望而卻步的朋友們進行快速運用的引導。 首先,找個安裝包,導入項目后&#…

RK3568下編譯解決未定義符號而報錯終止鏈接

現象:我從rk3568板子上導出來了一個 libsqlite3.so 然后編譯連接就會報這樣的錯誤 解決辦法有多種,以前我遇到這種情況,我都是使用sqlite3源碼從新編譯一份使用,并替換到板子上。 現在我是用另一種方法:增加編譯參數 …

LSTM-Attention混合模型:美債危機與黃金對沖效率研究

摘要:本文依托多維度量化分析框架,結合自然語言處理(NLP)技術對地緣文本的情緒挖掘,構建包含宏觀因子、風險溢價因子及技術面因子的三階定價模型,對當前黃金市場的波動特征進行歸因分析。實證結果顯示&…

Spring Boot 多參數統一加解密方案詳解:從原理到實戰

Spring Boot 多參數統一加解密方案詳解:從原理到實戰 一、前言:為什么需要參數加解密? 在現代Web開發中,數據安全傳輸是基本要求。特別是涉及敏感數據(如用戶隱私、支付信息等)時,僅靠HTTPS還不夠,我們需要對關鍵參數進行二次加密。本文將詳細介紹Spring Boot中實現多…