行业协会网站织梦模板,自建站有哪些,北京住房城乡建设部网站八大员,网站内页怎样做优化在学习车载互联网时#xff0c;看到了一句话#xff0c;Processor通过DMA直接存储访问与MAC之间进行数据的交互#xff0c;MAC通过MII介质无关接口与PHY之间进行数据的交互。常见的以太网硬件结构是#xff0c;将MAC集成进Processor芯片#xff0c;将PHY留在Processor片外…        在学习车载互联网时看到了一句话Processor通过DMA直接存储访问与MAC之间进行数据的交互MAC通过MII介质无关接口与PHY之间进行数据的交互。常见的以太网硬件结构是将MAC集成进Processor芯片将PHY留在Processor片外做成单独的收发器芯片。但是他并没有讲解MII使用的具体流程。本篇博客将聚焦MII与MIIM讲述PYH与MAC以及MAC与Processor是如何进行信息传递的。 在开始之前我们先简单介绍一下这些是什么。Processor也就是处理器也就是MCU微控制器,SOC/CPU,域控制前。他是执行数据处理和协议栈的软件/硬件模块。其主要作用是1.协议处理2.应用逻辑处理3.通信协调。PHY也就是我们常说的OSI七层模型中的物理层在OBD连接也就是车身诊断系统中他与外部通过100BaseTX(2对非屏蔽双绞线)连接而内部通常采用100BaseT1(1对非屏蔽双绞线))或者1000BaseT1相连接。通常CAN/LIN走的就是这些线路。在发送数据时PHY接收从MAC过来的数据将并行的数据转化为串行流数据按照物理层的编码规则把数据编码再变为模拟信号把数据发出去。接收数据时的流程则相反。那么PHY是如何接收MAC传递来的数据呢 MAC是物理链路层的一部分负责以太网帧的生成/解析与差错校验。MAC通过MII接口与PYH层进行数据交互通过MIIM对PHY进行管理。PHY通过MDI接口发送模拟信号。 MII(Media Independent Interfaces)是MAC与PHY之间的标准接口,支持数据的收发和接受。 MIIMManagement Data I/O Interface也称为MDIO/MDC。MDCManagement Data Clock和 MDIOManagement Data Input/Output是两个独立的信号线它们共同组成 MDIO 接口MIIMManagement Interface。MDC是 MDIO 管理接口的时钟信号由 MAC 端主动产生用于控制 MDIOManagement Data Input/Output 数据的传输时序。MDIO管理数据线用于 MAC 读写 PHY 寄存器.他们共同负责对PHY芯片寄存器进行读写管理配置设置工作模式监控PHY等操作。 MDI: MII 是 MAC 层和 PHY 层之间的接口主要用于 逻辑信号的交互以并行数字信号形式传输数据。而 MDI 是 PHY 层与物理介质如双绞线或光纤之间的接口主要用于 模拟信号的传输。由于讨论的重点是 从 MAC 到 PHY 的信号转换和编码 MDI 只在最终物理信号传输时使用。 
解析 MDIO/MDC 接口管理帧格式 
MDIO 传输数据的格式由多个字段组成每个字段有特定的作用 PRE预同步字段 由多个连续的 1 组成通常是 32 个 1。主要用于同步时钟信号确保 MDIO 和 PHY 设备可以正确通信。  ST起始字段Start of Frame 固定值 01用于标志帧的开始告诉 PHY 一次新的传输即将开始。  OP操作码Operation Code 用于区分本次传输是 读取READ10 还是 写入WRITE01。  PHYADPHY 地址5 位 该字段用于指定要访问的 PHY 设备地址支持最多 32 个不同的 PHY0~31。  REGAD寄存器地址5 位 指定 PHY 内部的寄存器地址最多支持 32 个寄存器。  TA转接字段Turnaround 数据方向切换字段用于协调主机MAC和从机PHY之间的数据传输 写操作时由主机MAC驱动总是 10。读操作时由从机PHY驱动值是 Z0其中 Z 表示高阻态PHY 释放总线。   DATA数据字段16 位 主要用于存储数据 写操作主机发送的数据写入 PHY 指定寄存器。读操作从 PHY 读取的数据。   IDLE空闲字段 当总线空闲时MDIO 线进入 高阻态Z表示当前无数据传输。  MDIO 接口的读写操作流程如下读取操作READ操作码 10 由主机发送帧的前半部分包括 PHY 地址和寄存器地址然后 PHY 在 TA 阶段接管总线并返回 16 位数据主机读取数据完成操作。写入操作WRITE操作码 01 由主机发送完整帧包括 PHY 地址、寄存器地址和 16 位数据PHY 在接收到数据后将其写入指定寄存器。 MII 的具体使用流程 
MII 主要用于 数据发送 和 数据接收 两个过程每个过程都由多个信号线协同工作。 
1. MII 发送流程MAC → PHY 
当 MAC 层有数据需要通过 PHY 发送出去时它会按照以下流程操作 MAC 准备数据 MAC 层按照以太网帧格式组织数据并将其拆分为 4 位宽度TXD[3:0]的数据块10/100Mbps 以太网使用 MII千兆以太网使用 GMII/SGMII。  发送数据和控制信号 MAC 层通过 MII 接口的 TXD[3:0] 数据总线逐个发送数据块。TX_ENTransmit Enable当有有效数据时MAC 层拉高该信号指示 PHY 接收数据。TX_ERTransmit Error用于标记传输错误。TX_CLKTransmit ClockPHY 生成的时钟信号MAC 层在时钟的上升沿发送数据。  PHY 编码数据并发送 PHY 层接收 TXD[3:0] 传输的数据并将其转换为物理层的信号如 MLT-3 编码、NRZ 编码。最终 PHY 将数据发送到 MDI 端口Medium Dependent Interface再传输到物理网络介质如双绞线。  2. MII 接收流程PHY → MAC 
当 PHY 接收到来自网络的以太网数据时它会按照以下流程传递给 MAC 层 PHY 解析物理信号 PHY 层从 MDI 接口接收模拟信号并解码成数字信号例如 Manchester 编码 → 二进制数据。  发送数据到 MAC PHY 层通过 RXD[3:0] 数据总线逐步将数据发送给 MAC 层。RX_DVReceive Data Valid当 PHY 发送有效数据时拉高此信号。RX_ERReceive Error如果 PHY 检测到错误如 CRC 校验失败则拉高该信号。RX_CLKReceive ClockPHY 生成的接收时钟信号MAC 在时钟的上升沿采样数据。  MAC 处理数据 MAC 层从 RXD[3:0] 获取数据并将其重新拼接成完整的以太网帧进行处理。  TXD[3:0] 是 MIIMedia Independent Interface 中的 发送数据总线用于在 MAC 层和 PHY 层之间传输数据。 同时我们也注意到MAC与Processor通过DMA进行信息传递。那么 什么是 DMA 
DMADirect Memory Access直接内存访问 是一种计算机系统中的数据传输机制允许 外设如网卡、硬盘、显卡等直接与内存交换数据而不需要 CPU 进行数据搬运。这大大提高了数据传输效率减少了 CPU 的负担使其可以专注于计算任务。 
DMA 的工作原理 
通常数据传输可以分为以下几种方式 程序控制方式CPU 控制 CPU 负责从内存读取数据然后再写入外设或者从外设读取数据再写入内存。缺点CPU 需要全程参与数据搬运占用大量计算资源影响系统性能。  中断驱动方式 设备通过中断请求 CPU 进行数据传输CPU 响应后执行数据搬运操作。缺点虽然减少了一些 CPU 轮询的开销但 CPU 仍然需要执行数据搬运影响效率。  DMA直接内存访问方式最优方式 DMA 控制器DMAC接管数据传输允许数据 直接 在 内存和外设如 MAC 网卡 之间传输而不经过 CPU。CPU 仅需要发起 DMA 传输请求剩下的传输过程由 DMA 控制器完成。优点 释放 CPU 资源让 CPU 可以处理其他任务。提高数据传输效率尤其是大块数据传输时效果明显。