PHY+MAC - 网络接口的帧发送与接收机制

121 篇文章 ¥59.90 ¥99.00
本文详细介绍了网络通信中PHY和MAC层如何协同工作,实现数据帧的发送和接收。PHY层将数据转换为物理信号,MAC层负责帧的组织和解析。通过实例代码展示了帧发送和接收的过程,强调了PHY+MAC在网络接口中的核心作用。

在网络通信中,PHY(物理层)和MAC(媒体访问控制层)是实现数据帧发送和接收的关键组件。PHY层负责将数据帧转换为物理信号并进行传输,而MAC层则负责协调多个节点之间的访问以及数据帧的组织和解析。本文将详细介绍PHY+MAC网络接口是如何实现帧的发送和接收的。

帧发送
帧发送过程中,数据被划分为多个帧,每个帧包含了数据的有效载荷以及必要的控制信息。以下是一个简化的帧发送的示例代码:

// 定义帧结构
struct Frame {
   
   
  uint8_t payload[MaxPayloadSize]; // 最大有效载荷大小
  uint16_t length; // 有效载荷长度<
由于当前环境为文本交互模式,无法直接生成或上传图像类文件(如PDF、PNG、SCH等格式的原理图),但我可以为你**详细描述一个基于GD32F407ZGT6的完整硬件原理图结构设计**,包括各模块的器件连接关系、关键信号命名和外围电路参数。你可以根据此描述在Altium Designer、KiCad或其他EDA工具中绘制实际原理图。 --- ### 可行的硬件原理图设计方案(适用于GD32F407) #### 一、主控核心:GD32F407ZGT6 - 封装:LQFP-144 - 工作电压:3.3V - 外接晶振:8MHz主时钟 + 32.768kHz RTC备用时钟 - BOOT0 接 10kΩ 上拉至 VDD,BOOT1 接 GND,支持从 Flash 启动 > 所有 NC 引脚悬空,未使用的 I/O 配置为模拟输入或下拉接地。 --- #### 二、电源系统设计 | 模块 | 方案 | |------|------| | 输入电源 | DC 24V(工业标准) | | 转换为5V | LM2596 或 MP2307 DC-DC(效率高) | | 转换为3.3V | AMS1117-3.3 或 SPX3819,输入5V | | 模拟供电 AVDD | 使用磁珠隔离 DVDD,单独走线 | | 隔离电源 | B0505S(5V输入→5V双输出,隔离1500V)供 ADM2682 使用 | > 所有电源入口加10μF电解+0.1μF陶瓷去耦电容 --- #### 三、功能模块电路设计(逐项对应技术要求) ##### 1. **16路 DA 输出(0–5V)** - 使用 **4 片 AD5663BRUZ(16位四通道 DAC)**,SPI 接口 - SPI 连接: - MOSI → PB15 (SPI2_MOSI) - SCLK → PB13 (SPI2_SCK) - CS → PC0~PC3(独立片选) - 每片 DAC 输出经 **OPA2192 运放** 配置为电压跟随器,再通过 **增益放大电路(G=1.5)** 将 0–3.3V → 0–4.95V ≈ 0–5V - 所有 DAC 基准来自 REF5025(2.5V)或板载稳压源 ##### 2. **8路 AD 采集(±15V、5V)** - 信号调理电路: - ±15V → 分压比 1:5(R1=40kΩ, R2=10kΩ),中心点偏置 1.65V(虚地) - 输出 = $ \frac{(Vin + 15)}{5} \times 3.3 $,范围 0–3.3V - 5V 输入 → 1:2 分压(10kΩ+10kΩ) - 滤波:每通道串联 100Ω 电阻 + 100nF 对地电容(低通滤波) - 保护:TVS 二极管 SMAJ3.3CA 防止过压 - 接入 GD32 的 ADC1_IN0 ~ ADC1_IN7(PA0~PA7) ##### 3. **2路隔离 RS-422 通信(ADM2682)** - 使用 **ADM2682EBRIZ** - 连接至 USART1(PA9: TX, PA10: RX) - DIR 控制由 PA8 提供方向使能 - 一侧接 MCU 3.3V 系统,另一侧由 B0505S 提供隔离 5V - 差分输出 A/B 接 DB9 接口,末端并联 120Ω 匹配电阻 ##### 4. **4路非隔离 RS-422 通信(26C31/26C32)** - 发送端:26C31(四通道差分驱动器) - 输入来自 USART2/3/6/TIMx_PWM(模拟发送- 如:USART2_TX(PA2) → 26C31_IN1 → OUT → 422_A - 接收端:26C32(四通道差分接收器) - 422_B/A → 26C32_IN → OUT → PA3(USART2_RX) - 支持两组 HDLC 协议通信(需软件实现结构) ##### 5. **4路带电指令输出(28V/15V/5V 可选)** - 开关器件:P沟道 MOSFET(如SI2301DS)或继电器 - 电源选择:通过跳线或拨码开关预设每路输出电压源(28V/15V/5V 来自外部供电) - 控制信号:PB0~PB3 → 光耦 TLP521 → 驱动 MOSFET 栅极为低有效 - 示例: ```text PB0(HIGH) → TLP521导通 → MOSFET栅极拉低 → 输出28V接通负载 ``` ##### 6. **4路不带电指令输出** - 使用光耦输出(如PC817) - 一端接内部3.3V,另一端开漏输出至端子排 - 负载端自行供电,形成“干接点”效果 ##### 7. **4路指令/开关量采集** - 输入端子 → 限流电阻(1kΩ)→ 光耦 TLP521 输入侧(并联反向并联二极管防反) - 输出侧:3.3V → 上拉电阻(4.7kΩ)→ PD0~PD3(GPIO输入) - 支持 0V(断开)和 +24V(闭合)识别 ##### 8. **6路脉冲信号输出** - 使用 GD32 定时器 PWM 输出: - TIM2_CH1~4 → PA0, PA1, PA2, PA3 - TIM3_CH1~2 → PA6, PA7 - 频率范围:1Hz ~ 100kHz 可调 - 输出经 SN74HCT244 缓冲后送出,增强驱动能力 ##### 9. **2路网口通信** - 利用 GD32 内置 EMAC 控制器 - 第1路:RMII 接口 → LAN8720A(地址0)→ 百兆网口 - 第2路:需外加 KSZ8863MLL 或 W5500 芯片扩展第二 MAC/PHY - 使用 SPI 接口连接 W5500(替代方案) - 网口变压器集成于 RJ45 模块(HR911105A) --- #### 四、调试接口 - **SWD 下载口**:PA13(SWDIO), PA14(SWCLK),带 10kΩ 下拉 - **串口调试口**:USART3 → USB转TTL(CH340G) - **LED 指示灯**:PC13(运行指示),PD1(错误报警) - **按键复位**:NRST 外部复位按钮,10kΩ上拉 --- #### 五、推荐 PCB 设计要点 1. 数字地模拟地单点连接(靠近ADC区域) 2. 所有高速信号线(RMII、SPI)等长布线,差分对保持 5mil 间距 3. 电源平面分割清晰,4层板优先(Top → Signal, GND Plane, PWR Plane, Bottom → Signal) 4. 高压信号(±15V、28V)其他弱电信号保持 >2mm 安全距离 --- ### 总结:整体系统框图(文字版) ```text +------------------+ +---------------------+ | 外部电源 |------>| DC-DC → 5V → LDO → 3.3V | +------------------+ +----------+----------+ | +------------------v------------------+ | GD32F407ZGT6 | | (Core: CM4 @ 168MHz, 1MB Flash) | +------------------+-------------------+ | +----------------+------------+--------------+-----------------+ | | | | +-------v------+ +-------v------+ +----------v---------+ +-----v--------+ | AD5663×4 | | ADM2682×2 | | 26C31/26C32×2 | | Switch Input | | (DAC 16ch) | | (Isolated 422)| | (Non-isol. 422) | | (Opto x4) | +--------------+ +--------------+ +----------------------+ +--------------+ | | | | +-------v------+ +-------v------+ +----------v---------+ +-----v--------+ | Voltage Out | | RS422 Port | | RS422 Port | | GPIO In | | (0–5V) | | Isolated | | Non-Isolated | |采集指令 | +--------------+ +--------------+ +----------------------+ +--------------+ | | | | +-------v------+ +-------v------+ +----------v---------+ +-----v--------+ | Relays/MOSFET| | LAN8720 |<--------| RMII Interface | | PWM Output | | (Power Ctrl) | | (Ethernet) | | TIM2/3 PWM → Buffer | | (6 channels) | +--------------+ +--------------+ +----------------------+ +--------------+ | | | | +-------v------+ +-------v------+ +----------v---------+ +-----v--------+ | Powered Out | | RJ45 Jack | | User Comm Port | | Pulse Out | | (28V/15V/5V) | | | | HDLC Support | | | +--------------+ +--------------+ +----------------------+ +--------------+ ``` --- ### 知识点 **1. 多通道DAC外扩SPI总线管理** 通过SPI总线挂载多个DAC芯片,利用独立CS片选实现多路模拟输出扩展。 **2. 工业电平信号采集安全隔离技术** 使用电阻分压、偏置电路将高压信号适配至MCU ADC范围,并结合光耦保障系统安全。 **3. 嵌入式以太网硬件接口设计(RMII+PHY)** 掌握RMII协议引脚定义,正确连接GD32 EMAC外部PHY芯片(如LAN8720),实现TCP/IP通信基础。 --- > ✅ 说明:以上内容已足够作为你在 Altium Designer/KiCad 中绘制完整原理图的设计依据。若你需要 `.sch` 或 `.pdf` 输出,请告知我具体格式,我可以继续提供模块化原理图代码(如KiCad Schematic Text Format)或分页说明。改为28V输入。
11-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值