news 2026/7/24 10:45:27

深入解析以太网PHY芯片DP83848Q-Q1:从MII/RMII接口到自动协商实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入解析以太网PHY芯片DP83848Q-Q1:从MII/RMII接口到自动协商实战

1. 项目概述:为什么我们需要深入理解一颗以太网PHY芯片?

在嵌入式系统开发,尤其是工业控制和汽车电子领域,网络连接早已不是“锦上添花”,而是“不可或缺”的基础设施。无论是产线上的PLC、车载信息娱乐系统,还是遍布工厂的传感器网关,其背后稳定、可靠的以太网通信,都离不开一个核心但常被忽视的组件——物理层收发器,也就是我们常说的PHY芯片。

你可能已经熟练使用各种MCU或MPU内置的MAC控制器,通过几行库函数就能收发数据包。但当你需要将设计推向更严苛的环境,比如-40°C到105°C的宽温范围,或者面对复杂的电磁干扰时,选择一颗合适的独立PHY芯片并正确配置它,就成了项目成败的关键。DP83848Q-Q1正是德州仪器(TI)为这类高要求场景打造的一款经典10/100Mbps以太网收发器。它不仅仅是一个简单的“电平转换器”,其内部集成的自动协商(Auto-Negotiation)、自动交叉(Auto-MDIX)、MII/RMII接口切换以及丰富的诊断功能,共同构成了一个智能、健壮的物理层解决方案。

理解这颗芯片,意味着你能在硬件设计时避开常见的坑,在软件驱动开发时知其所以然,在系统调试时快速定位问题是出在物理链路层还是更高层协议。本文将从实际工程角度出发,结合数据手册,深入解析DP83848Q-Q1的核心功能,特别是MII/RMII接口的设计考量与自动协商技术的实现细节,分享我在多个汽车和工业项目中使用这颗芯片的实战经验和避坑指南。

2. 核心功能模块深度解析

DP83848Q-Q1的功能框图清晰地展示了其内部架构,我们可以将其划分为几个关键子系统来理解。这不仅仅是罗列模块,更是理解其如何协同工作的基础。

2.1 模拟前端与数据转换:连接物理世界的桥梁

芯片的“手脚”是它的模拟前端,直接与双绞线打交道。TD+/TD-RD+/RD-是发送与接收的差分信号对。这里的关键在于内部的数模转换器(DAC)和模数转换器(ADC)。

  • 发送路径(TX):来自MAC的并行数字数据,经过并串转换和编码(如MLT-3编码用于100BASE-TX,曼彻斯特编码用于10BASE-T)后,由DAC转换为模拟差分信号。这个信号的幅度、上升/下降时间、抖动都必须严格符合IEEE 802.3标准,以确保在长达100米的电缆上可靠传输。
  • 接收路径(RX):从线缆上接收到的微弱差分模拟信号,首先经过一个可编程增益放大器,然后由ADC转换为数字信号。之后进行均衡(补偿电缆造成的高频衰减)、时钟数据恢复(CDR)和解码,最终还原出数字比特流。

实操心得:模拟部分的PCB布局布线是硬件设计的重中之重。TD+/TD-和RD+/RD-必须作为严格的差分对来处理,等长、等距、远离噪声源,并做好阻抗控制(通常为100欧姆)。电源去耦电容必须靠近芯片的模拟电源引脚放置,否则极易导致信号质量下降、误码率升高,表现为间歇性丢包或无法建立连接。

2.2 时钟生成与接口时钟域

时钟是数字电路的脉搏。DP83848Q-Q1的时钟系统设计体现了其灵活性。

  • 系统参考时钟(X1):这是一个外部输入的时钟源。其频率决定了PHY的工作模式。

    • MII模式:需要25MHz时钟。此时,PHY内部会利用这个25MHz时钟,为MAC侧分别产生TX_CLK(发送时钟)和RX_CLK(接收时钟)。在100Mbps速率下,这两个时钟都是25MHz;在10Mbps下,则分频为2.5MHz。
    • RMII模式:需要50MHz时钟。在RMII模式下,TX_CLKRX_CLK引脚不再使用,所有数据同步于这个50MHz的REF_CLK(由X1提供)。发送和接收都使用这同一个时钟,这是RMII减少引脚数量的关键。
  • 内部时钟管理:芯片内部还有锁相环(PLL)等电路,用于从接收数据流中恢复时钟(CDR),以及生成发送所需的各种时钟。

注意事项:时钟的精度和稳定性直接影响通信质量。务必使用精度高、抖动小的晶体振荡器或时钟发生器。特别是在RMII模式下,50MHz时钟的抖动过大会直接导致数据采样错误。我曾在一个项目中因使用了廉价的陶瓷谐振器代替晶体,导致RMII模式下的连接极不稳定,更换为有源晶振后问题立刻解决。

2.3 管理寄存器与串行管理接口(MDIO/MDC)

这是CPU/MPU配置PHY、读取PHY状态的核心通道。它遵循IEEE 802.3定义的MII管理接口规范。

  • MDC(管理数据时钟):由MAC或管理控制器驱动的时钟线,最高频率25MHz。
  • MDIO(管理数据输入输出):双向数据线,采用类似I2C但协议不同的帧结构进行通信。
  • 寄存器集:DP83848Q-Q1内部有数十个16位寄存器,地址从0x00到0x1F(甚至更多扩展寄存器)。这些寄存器控制着芯片的一切行为:复位、速度/双工模式设置、自动协商使能、LED模式、各种测试功能(如环回、BIST)以及读取链接状态、错误计数等。

一个典型的MDIO读操作帧格式如下:

阶段位数说明值(示例:读PHY地址1的BMCR寄存器0x00)
前导码32同步序列32个‘1’
起始位2帧开始“01”
操作码2读=“10”, 写=“01”“10”
物理地址5PHY地址(0-31)“00001”
寄存器地址5要访问的寄存器地址“00000”
转向2读操作时,第一比特高阻,第二比特PHY驱动为0“Z0”
数据16读取的寄存器数据[16位数据]
空闲-MDIO被上拉电阻拉高高电平

避坑指南:MDIO总线通常需要上拉电阻(典型值1.5kΩ - 4.7kΩ)。多个PHY可以挂载在同一条MDIO总线上,通过唯一的PHY地址区分。硬件设计时,务必通过电阻正确配置每个PHY的地址(PHYAD[4:0]引脚),避免地址冲突。软件驱动在初始化时,必须发送完整的32位前导码进行同步,之后如果芯片支持前导码抑制(BMSR寄存器的bit 6为1),则可以省略后续操作的前导码以提升效率。

3. MII与RMII接口详解与选型实战

MII和RMII是连接PHY和MAC的两种主要并行接口。选择哪一种,是硬件设计初期的重要决策。

3.1 MII接口:经典而完备

MII接口定义了完整的发送和接收通道,信号线较多,但时序关系清晰独立。

主要信号线:

  • 发送侧TXD[3:0](4位数据)、TX_EN(发送使能)、TX_CLK(发送时钟,由PHY提供)。
  • 接收侧RXD[3:0](4位数据)、RX_DV(接收数据有效)、RX_ER(接收错误)、RX_CLK(接收时钟,由PHY提供)。
  • 载波与冲突CRS(载波侦听)、COL(冲突检测),主要用于半双工模式的CSMA/CD协议。

工作流程:在100Mbps模式下,TX_CLKRX_CLK均为25MHz。每个时钟周期,MAC通过TXD[3:0]向PHY发送一个4位“半字节”(nibble)数据。PHY则每个时钟周期通过RXD[3:0]向MAC返回一个4位数据。TX_ENRX_DV分别标识有效数据段的开始和结束。

优势:接口标准,时序简单,发送和接收时钟独立,对时钟偏差容忍度高。劣势:引脚数量多(约16个信号线),布线占用的PCB空间大。

3.2 RMII接口:精简与集成

RMII旨在减少引脚数量(减少约50%),特别适合引脚资源紧张的嵌入式处理器。

主要信号线(精简后):

  • 参考时钟REF_CLK(50MHz),必须由外部提供(可以是MAC侧,也可以是PHY侧,但需一致)。发送和接收都同步于此时钟。
  • 发送侧TXD[1:0](2位数据)、TX_EN(发送使能)。
  • 接收侧RXD[1:0](2位数据)、CRS_DV(此信号合并了CRS和RX_DV的功能)。
  • 可选RX_ER(接收错误)。

工作流程与挑战:在100Mbps模式下,数据速率是100Mbps,而REF_CLK是50MHz。这意味着每个时钟周期需要传输2个比特。因此,RMII接口是2位宽的。TXD[1:0]RXD[1:0]在每个时钟的上升沿传输2位数据。

这里引出一个核心问题:时钟同步。REF_CLK由系统提供,而PHY从线缆上恢复出的接收时钟(Recovered Clock)可能与REF_CLK存在微小的频率偏差(由于时钟源精度误差)。为了解决这个问题,DP83848Q-Q1在RMII接收路径中内置了一个弹性缓冲区(Elasticity Buffer)

弹性缓冲区原理:它是一个先入先出(FIFO)队列。从线路上恢复的数据以恢复时钟的速率写入FIFO,而MAC以REF_CLK的速率从FIFO中读取数据。FIFO的深度(即可编程的起始阈值)决定了它能容忍的时钟偏差累积时间。如果时钟偏差导致FIFO被读空(下溢)或写满(上溢),就会产生帧错误。

配置建议(基于数据手册表5-3):假设系统时钟精度为±50ppm(百万分之五十),对方发送时钟精度也是±50ppm,则最坏情况下的相对频率偏差为±100ppm。对于一个最大尺寸的以太网帧(约1500字节+开销,约12000比特),时间偏差约为12000 bit * 100e-6 = 1.2 bit。DP83848Q-Q1的弹性缓冲区阈值以4比特为单位递增。为了安全容纳此偏差,通常选择起始阈值 = 2 (8比特)3 (12比特)是足够的。这通过配置RBR寄存器(RMII and Bypass Register)[1:0]位来实现。

实战经验:在RMII模式下,REF_CLK的质量至关重要。必须确保提供给PHY和MAC的REF_CLK是同源、同步的。常见做法是使用一个有源晶振同时驱动MAC和PHY,或者由MAC输出REF_CLK给PHY。绝对要避免PHY和MAC使用两个独立的时钟源,即使标称频率相同,微小的ppm差也会导致弹性缓冲区频繁溢出,表现为随机的大包丢包,调试起来非常棘手。

3.3 接口模式选择与硬件配置

DP83848Q-Q1支持通过硬件引脚(strap option)或软件寄存器来选择MII或RMII模式。

  • 硬件配置(上电锁存):芯片在上电或硬件复位时,会采样特定引脚的电平状态来确定工作模式。这是最可靠、最常用的方式。你需要根据设计,使用电阻将这些引脚拉高或拉低。对于RMII模式,必须通过硬件配置,因为它决定了芯片对X1引脚输入的时钟频率预期(50MHz vs 25MHz)。
  • 软件配置:也可以通过后期写特定寄存器来切换,但硬件初始配置必须正确。

选型决策清单:

  1. MAC侧资源:你的MCU/MPU的以太网控制器仅支持RMII还是同时支持MII?引脚是否紧张?
  2. 时钟系统:你的系统能否提供一个高质量、低抖动的50MHz时钟(RMII必需)?还是提供25MHz时钟(MII)更简单?
  3. PCB空间:RMII可以节省大量引脚和布线空间,对紧凑型设计有利。
  4. 性能与可靠性:MII接口更成熟,时钟独立,在极端环境下可能更稳健。RMII对时钟同步要求高,设计不当易出问题。

对于大多数现代嵌入式应用,RMII因其精简性已成为主流选择。只要妥善处理时钟问题,其可靠性完全有保障。

4. 自动协商与自动MDIX:实现即插即用的智能

这是PHY芯片“智能化”的集中体现,也是确保设备互联互通的关键。

4.1 自动协商的工作原理与流程

自动协商的目的是让链路两端的设备(例如你的设备和交换机)自动协商出双方都支持的最高性能通信模式(速度、双工)。

核心机制:使用快速链路脉冲(FLP Bursts)。在链路初始化阶段,双方PHY会向链路发送一系列特殊的FLP脉冲序列。每个FLP Burst中包含一个16位的“链路码字”,这个码字里包含了该设备的所有能力信息,例如:“我支持100BASE-TX全双工、100BASE-TX半双工、10BASE-T全双工、10BASE-T半双工”。

DP83848Q-Q1的协商优先级(从高到低):

  1. 100BASE-TX 全双工
  2. 100BASE-TX 半双工
  3. 10BASE-T 全双工
  4. 10BASE-T 半双工

双方设备交换各自的“能力广告”,然后按照这个优先级顺序,选择第一个双方都支持的模式作为最终的链路模式。

寄存器控制核心:

  • BMCR (Basic Mode Control Register, 0x00):最重要的控制寄存器。Bit 12 (ANE) 用于使能/禁用自动协商。Bit 9 (RESTART) 用于手动重启协商。Bit 8 (DUPLEX) 和 Bit 13 (SPEED) 在禁用自动协商时用于强制指定双工和速度。
  • ANAR (Auto-Negotiation Advertisement Register, 0x04):用于设置本端设备要“广告”的能力。你可以通过写这个寄存器来禁用某些能力(例如,只广告100M全双工)。
  • ANLPAR (Auto-Negotiation Link Partner Ability Register, 0x05):用于读取对端设备广告的能力。
  • BMSR (Basic Mode Status Register, 0x01)PHYSTS (PHY Status Register, 0x10):用于读取协商完成状态、当前链路速度、双工模式等信息。

4.2 并行检测:与“老式”设备兼容

如果链路对端是一个不支持自动协商的“老式”设备(例如,某些旧的10M网卡或强制模式的交换机),它不会发送FLP脉冲。此时,DP83848Q-Q1会启动并行检测功能。

  • 原理:PHY同时用10M接收器和100M接收器去监听线缆上的信号。
  • 判断:如果检测到100BASE-TX特有的信号特征(如MLT-3编码的IDLE流),则判定对端是100M设备。如果检测到10BASE-T的链路脉冲(NLP),则判定对端是10M设备。
  • 限制:并行检测无法确定双工模式。根据IEEE标准,当通过并行检测建立连接时,默认采用半双工模式。这是很多网络问题的根源。

经典故障案例:你的设备(支持自协商)连接到一个强制设置为“100M全双工”的交换机端口。你的设备发送FLP,但交换机不理睬(因为它被强制了,不进行协商)。你的设备启动并行检测,发现是100M信号,于是以“100M半双工”模式连接。这就导致了双工不匹配:一端是全双工,另一端是半双工。结果就是网络性能极差,大量冲突和FCS错误,时通时断。解决方案:要么将交换机端口也改为自协商,要么在你的设备端也禁用自协商,并强制设置为与交换机匹配的“100M全双工”。

4.3 自动MDIX:告别交叉线

MDI(媒体相关接口)和MDIX(交叉媒体相关接口)指的是网线引脚的不同定义。直通线用于连接不同设备(如电脑-交换机),交叉线用于连接相同设备(如电脑-电脑)。Auto-MDIX功能可以自动识别线缆类型,并在内部进行切换,使得无论使用直通线还是交叉线,设备都能正常通信。

  • 实现:DP83848Q-Q1在自动协商过程中,会探测线缆类型,并自动控制内部的电子开关,将发送和接收通道正确连接到对应的线对上。
  • 控制:通过PHYCR寄存器 (0x19)[15:14]位进行配置。默认是使能的。你也可以强制设置为MDI或MDIX模式。
  • 重要限制自动MDIX功能仅在自动协商启用时才有效!如果你强制了速度和双工模式(禁用自协商),那么Auto-MDIX也会失效,此时你必须确保使用正确类型的网线(通常是直通线连接到交换机)。

4.4 软件配置流程与最佳实践

一个健壮的PHY驱动初始化流程应包含以下步骤:

  1. 硬件复位后延时:等待至少1ms,确保PHY内部模拟电路稳定。
  2. 读取PHY ID:通过MDIO读取两个ID寄存器(0x02, 0x03),确认通信正常且芯片型号正确。
  3. 软件复位:向BMCR寄存器的bit 15写入1,然后等待复位完成(可轮询该位直到清零,或简单延时3μs以上)。
  4. 配置广告能力(可选):如果需要限制本端能力,则配置ANAR寄存器。例如,只广告100M全双工:ANAR = 0x01E1(使能100BASE-TX FD/HD, 10BASE-T FD/HD)。
  5. 重启自动协商:设置BMCR寄存器的bit 12 (ANE) = 1(使能自协商),bit 9 (RESTART) = 1(重启协商)。
  6. 等待协商完成:轮询BMSR寄存器的bit 5 (ANEG_COMPLETE),直到其为1。此过程通常需要2-3秒。
  7. 读取链路状态:读取PHYSTS寄存器,获取当前链路速度(bit 2:SPEED_STATUS)和双工模式(bit 3:DUPLEX_STATUS)。同时检查BMSR的bit 2 (LINK_STATUS) 确认链路已建立。
  8. 处理异常:如果长时间协商不成功,应读取状态寄存器分析原因(如对端无响应、并行检测故障等),并考虑降级重试或报错。

5. 高级功能与调试手段

除了基本通信,DP83848Q-Q1还提供了强大的诊断和测试功能,这对产品开发和现场问题排查极为有用。

5.1 环回测试

环回测试是验证数据路径完整性的最基本方法。

  • 内部环回(MII Loopback):通过设置BMCR寄存器的bit 14 (LOOPBACK) = 1来启用。在此模式下,从MAC发送到PHY TXD的数据,不会送到网线上,而是直接内部环回到RXD输出给MAC。这用于测试MAC到PHY的MII/RMII接口以及PHY的数字逻辑部分是否正常。
  • 外部环回:需要使用环回网线(将同一端的发送和接收短接)。此时数据从PHY发出,经过网线再被自己接收。这可以测试PHY的整个模拟收发链路以及外部网络变压器、RJ45接口是否正常。

注意:进行环回测试前,务必先禁用自动协商(设置ANE=0),并强制设置一个速度双工模式,否则PHY可能无法建立有效的链路状态来进行环回。

5.2 内置自测试

BIST功能可以生成一个伪随机码流(PRBS),在环回模式下进行更严格的误码率测试。

  1. 首先,使能内部环回模式。
  2. 配置PHYCR寄存器 (0x19)PSR_15位选择伪随机序列长度(9位或15位)。
  3. 设置CDCTRL1寄存器 (0x1B)BIST_CONT_MODE位为1,进入连续测试模式。
  4. 启动BIST测试(通过特定寄存器位控制)。
  5. 轮询PHYCR寄存器中的BIST状态位,检查测试是否通过。
  6. 还可以从CDCTRL1寄存器[15:8]位读取BIST错误计数。

BIST对于产线测试或深度硬件诊断非常有价值。

5.3 节能与链路检测模式

  • 能量检测模式:通过EDCR寄存器 (0x1D)控制。当线缆上没有活动时,PHY会进入极低功耗状态,同时周期性唤醒发送检测脉冲并监听线缆活动。一旦检测到活动,立即恢复正常工作。这对于电池供电的物联网设备至关重要。
  • LED指示:LED引脚可以配置为两种模式(通过PHYCR寄存器或硬件引脚配置):
    • 模式1:LED常亮表示链路正常,熄灭表示无链路。
    • 模式2:LED常亮表示链路正常,闪烁表示有数据活动。 硬件设计时需注意,LED配置引脚(如AN0)在上下电时会被采样用于确定配置,其电平同时决定了LED驱动是主动高还是主动低,需要根据LED的接法(共阳/共阴)来设计外部上拉/下拉电阻。

6. 常见问题排查与实战技巧

在实际项目中,与PHY相关的问题五花八门。下面是一个快速排查清单:

现象可能原因排查步骤与解决方法
完全无法连接,无链路1. 电源/复位不正常。
2. 时钟未提供或频率错误。
3. 网络变压器或RJ45连接问题。
4. 硬件配置(模式、地址)错误。
5. MDIO通信失败。
1. 测量电源电压、复位引脚波形。
2. 用示波器测量X1引脚时钟频率和幅度(MII:25MHz, RMII:50MHz)。
3. 检查变压器中心抽头接法,用通断测试仪检查网线。
4. 确认配置电阻是否正确焊接,测量PHYAD等引脚电平。
5. 用逻辑分析仪抓取MDC/MDIO波形,确认帧格式和PHY地址正确。
链路时断时续,不稳定1. PCB布局布线不良,信号完整性差。
2. 时钟质量差(抖动大)。
3. 电源噪声大。
4. 双工不匹配(经典问题)。
5. RMII模式弹性缓冲区配置不当。
1. 重点检查差分对布线,确保等长、阻抗控制、远离干扰源。
2. 更换更高精度的时钟源(晶体)。
3. 加强电源滤波,特别是模拟电源AVDD。
4.检查两端设备(如PHY和交换机)的双工模式设置是否一致。强制为相同模式或都启用自协商。
5. 调整RBR寄存器的弹性缓冲区起始阈值。
协商速度不正确1. 对端设备能力限制。
2. 本端ANAR寄存器广告能力配置错误。
3. 线缆质量太差,无法支持100M。
1. 读取ANLPAR寄存器,确认对端广告的能力。
2. 检查并重新配置ANAR寄存器。
3. 更换优质超五类或以上网线测试。
能Ping通小包,但大文件传输慢或丢包1. RMII时钟不同步或抖动大,导致弹性缓冲区溢出。
2. MAC侧DMA或缓冲区配置问题。
3. 网络中有其他异常流量或硬件故障。
1.这是RMII的典型问题。确保MAC和PHY使用同源、高质量的50MHz时钟。用示波器测量时钟抖动。
2. 检查MAC驱动配置,增大接收缓冲区。
3. 进行环回测试,隔离问题是否在本地。
LED指示灯行为异常1. LED驱动模式配置错误。
2. LED引脚同时用作配置引脚,上电时电平冲突。
3. 限流电阻值不当。
1. 确认PHYCR寄存器中LED模式配置位。
2. 根据AN0等引脚的上电电平,确定LED是主动高还是主动低驱动,调整LED电路接法(共阳/共阴)。
3. 计算LED电流,调整限流电阻。

最后一点个人体会:处理PHY问题,一定要有“分层诊断”的思想。先从最底层的硬件(电源、时钟、复位、焊接)和物理连接(网线、变压器)查起,然后用寄存器读取工具(或自己写简单MDIO读写程序)确认PHY的基本状态(是否识别、链路是否UP、速度双工模式)。再利用环回测试隔离是芯片本身问题还是外部链路问题。最后再结合MAC层的驱动和协议栈进行分析。拥有一块好的示波器和逻辑分析仪,能帮你省下大量的猜测时间。DP83848Q-Q1是一颗非常成熟可靠的芯片,绝大多数应用问题都源于外围电路设计或软件配置,吃透它的数据手册,理解每个功能模块背后的原理,就能让它在你的系统中稳定运行。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 10:44:47

TI ADS8353/7853评估套件实战:从硬件配置到性能分析的SAR ADC全流程评测

1. 项目概述与核心价值 在嵌入式系统、工业自动化或者精密测量领域,选型一颗合适的模数转换器(ADC)往往是项目成败的关键一步。数据手册上的参数虽然详尽,但如何将这些冰冷的数字转化为实际电路板上的稳定性能,是每个硬…

作者头像 李华
网站建设 2026/7/24 10:36:38

AI Agent核心技术解析:从原理到实践应用

1. AI Agent的本质解析 AI Agent(人工智能代理)本质上是一种能够感知环境、自主决策并执行行动的智能系统。不同于传统程序只能被动执行预设指令,AI Agent具备三大核心特征:自主性(Autonomy)、反应性&#…

作者头像 李华
网站建设 2026/7/24 10:36:07

AI工程与科学严谨性失衡:从Google论文看可靠AI系统构建

在AI技术快速发展的浪潮中,Google近期发布的一篇论文引发了广泛讨论,直指当前AI领域一个深层次问题:工程严谨性过剩而科学严谨性不足。这一观点精准地戳中了行业痛点——我们投入大量资源优化模型参数、提升推理速度、构建复杂系统&#xff0…

作者头像 李华
网站建设 2026/7/24 10:35:51

AI如何解决论文摘要写作难题?好写作AI实践指南

1. 论文写作痛点与AI解决方案写论文最痛苦的阶段是什么?根据我辅导上百名研究生的经验,90%的学生会脱口而出:"写摘要!"这个看似简单的部分,往往成为卡住整篇论文的瓶颈。为什么5000字论文都写完了&#xff0…

作者头像 李华