当前位置: 首页 > news >正文

第 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.xdnf.cn/news/552889.html

相关文章:

  • STM32中的ADC
  • CSS之box-sizing、图片模糊、计算盒子宽度clac、(重点含小米、进度条案例)过渡
  • 喷涂喷漆机器人详解
  • python-leetcode 68.有效的括号
  • RSA加解密实战指南:Java与JavaScript实现详解 + 在线工具推荐
  • PyTorch 之 torch.distributions.Categorical 详解
  • Vue 3.0 Transition 组件使用详解
  • 高等数学笔记——向量代数与空间解析几何1
  • Mujoco 学习系列(一)安装与部署
  • C#新建打开文件对话框
  • 机器学习 集成学习方法之随机森林
  • Oracle中如何解决LATCH:CACHE BUFFERS LRU CHAIN
  • 精益数据分析(73/126):黏性阶段的功能优先级法则——七问决策模型与风险控制
  • 【神经网络与深度学习】扩散模型之原理解释
  • 调皮用法|python语言中的self参数
  • python训练营打卡第29天
  • 【实用教程】如何快速搭建一套私有的埋点系统?
  • 国产视频转换LT6211UX:HDMI2.0转LVDS/MIPI芯片简介,支持4K60Hz
  • Zenmap代理情况下无法扫描ip
  • MongoDB 学习(三)Redis 与 MongoDB 的区别
  • EasyOCR 模型文件下载
  • 开源运维工具HHDESK源码开发
  • Linux(ubuntu18.04)下安装instant-ngp环境
  • JWT单双token实现机制记录
  • 精益数据分析(71/126):从移情到黏性——创业阶段的关键跨越与数据驱动策略
  • JavaScript性能优化实战(13):性能测试与持续优化
  • Mysql面经
  • 基于Python批量删除文件和批量增加文件
  • List介绍
  • Java操作Elasticsearch 之 [Java High Level REST Clientedit]