公司动态
DP83816以太网控制器:集成MAC/PHY芯片的硬件设计与驱动开发实战
1. 项目概述深入理解DP83816这颗“网络心脏”在嵌入式系统、工业控制或者老旧PC主板的网络功能设计中我们常常会遇到一个核心问题如何让设备稳定、高效地接入以太网尤其是在空间和成本都受限的场景下一个高度集成的解决方案就显得至关重要。DP83816这颗来自德州仪器TI的MacPhyter-II芯片就是为解决这类问题而生的经典之作。它不仅仅是一个简单的“网卡芯片”而是一个将数据链路层的媒体访问控制MAC和物理层的信号收发PHY功能完整集成在单一硅片上的片上系统SoC。这意味着开发者无需再为MAC和PHY的复杂互联、信号完整性问题而头疼一颗芯片加上必要的外围电路就能构建出一个完整的10/100Mbps以太网接口。它的核心价值在于“化繁为简”。在它出现之前实现一个以太网接口往往需要MAC控制器、独立的PHY芯片、隔离变压器、甚至可能还需要一颗EEPROM来存储配置信息。DP83816将这些功能融为一体通过标准的PCI总线与主机处理器通信极大地简化了硬件设计和软件驱动的开发工作。无论是为工控设备添加网络远程监控功能还是为嵌入式网关提供稳定的有线连接亦或是在定制化主板设计中集成网络模块DP83816都提供了一个经过市场验证的可靠选择。它的技术文档尤其是那份长达百页的数据手册就是一本关于如何实现一个工业级以太网接口的“百科全书”里面不仅定义了芯片的电气特性更详细阐述了从寄存器配置到PCB布局的每一个工程细节。2. 核心架构与功能模块深度解析要真正用好DP83816不能只把它当作一个黑盒必须深入理解其内部架构和各个模块的职责。这颗芯片的设计哲学是高度模块化和功能明确我们可以将其拆解为几个核心部分来理解。2.1 集成化设计MAC与PHY的协同DP83816最显著的特点是其单芯片集成了完整的IEEE 802.3兼容的MAC媒体访问控制器和PHY物理层收发器。MAC层负责数据帧的组装、寻址、错误检查CRC以及CSMA/CD载波侦听多路访问/冲突检测协议的执行。它通过一个集成的总线接口单元BIU与主机的PCI总线对话以总线主控Bus Master的方式进行高效的数据DMA传输最大支持128个双字512字节的突发传输这能显著降低CPU在数据搬运上的开销。PHY层则是信号转换的枢纽。它内部包含了两个独立的收发器一个用于10BASE-T10Mbps一个用于100BASE-TX100Mbps。10BASE-T部分集成了曼彻斯特编码/解码器和模拟滤波器而100BASE-TX部分则更为复杂包含了MLT-3编码器、数字自适应均衡器和时钟恢复电路。PHY层直接通过差分对TPTDP/TPTDM和TPRDP/TPRDM连接到外部的网络变压器和RJ45接口。这种集成设计消除了MAC与PHY之间标准的MII媒体独立接口连接不仅节省了引脚和PCB空间更重要的是避免了高速数字信号MII的25MHz时钟和数据线在板级传输可能带来的信号完整性和电磁干扰EMI问题。2.2 自动协商Auto-Negotiation机制详解自动协商是确保以太网设备能够“即插即用”并发挥最佳性能的关键功能。DP83816的自动协商功能完全遵循IEEE 802.3u标准其过程远比我们想象的智能。协商过程与优先级芯片上电或复位后PHY会通过发送快速链路脉冲FLP来宣告自身的能力。这些能力被编码在自动协商通告寄存器ANAR地址0x90h中包括是否支持10M半双工/全双工、100M半双工/全双工以及是否支持流量控制Pause帧。同时它也会监听链路上对端设备发送的FLP将对方的能力解码后存入自动协商链路伙伴能力寄存器ANLPAR地址0x94h。协商逻辑会比较双方的能力集并按照一个固定的优先级顺序100BASE-TX全双工 100BASE-TX半双工 10BASE-T全双工 10BASE-T半双工选择最高级的共同模式。整个协商过程通常需要2-3秒完成后会将结果速度、双工模式更新到PHY状态寄存器PHYSTS地址0xC0h的相应位并产生中断如果使能通知主机。并行检测Parallel Detection这是一个非常重要的后备机制。当对端设备是一个不支持自动协商的“哑”设备例如一个老式的10M集线器或强制工作在100M模式的交换机端口时DP83816的PHY会启动并行检测。10BASE-T接收器会检测是否有正常的链路脉冲NLP100BASE-TX接收器则会检测是否有有效的MLT-3信号。一旦检测到任何一种有效信号芯片就会自动配置为相应的速度和半双工模式注意并行检测无法协商全双工。这个功能确保了与绝大多数老旧设备的向后兼容性。配置要点与避坑指南软件使能如果芯片通过EEPROM或上电默认配置为强制模式如强制100M全双工而后需要通过软件改为自动协商必须遵循一个特定顺序先向BMCR寄存器的自动协商使能位bit 12写0再写1。直接写1可能无法生效这是因为内部状态机需要一个明确的“关闭-开启”跳变来触发重新协商。状态查询不要仅仅查询PHYSTS寄存器中的速度/双工状态位bit 1和2它们只在链路建立后才有效。必须结合基本模式状态寄存器BMSR地址0x84h的“自动协商完成”位bit 5和“链路状态”位bit 2来综合判断。只有ANEG_DN1且Link Status1时PHYSTS中的速度双工信息才是可靠的。链路丢失重协商当网线被拔掉再插回DP83816会自动重新启动自动协商过程。这个过程同样会触发“链路状态”变化中断驱动程序需要妥善处理这个中断重新读取并应用新的链路参数。2.3 电源管理与网络唤醒WoL实战对于需要节能或远程唤醒的设备如网络硬盘、工控终端DP83816的电源管理功能至关重要。它支持完整的PCI电源管理状态D0到D3cold。进入低功耗状态WoL模式的标准化流程软件准备驱动程序首先需要禁用接收器写命令寄存器CR的RXD位然后将接收描述符指针寄存器RXDP清零。接着再使能接收器写CR的RXE位此时芯片进入“静默接收”模式——它能接收并缓存数据包到内部的2KB FIFO但不会启动DMA传输到主机内存。配置唤醒过滤器这是WoL的核心。通过唤醒命令与状态寄存器WCSR地址0x40h可以设置唤醒条件例如魔术包Magic Packet、特定模式匹配Pattern Match、ARP包、广播/组播/单播包或PHY事件如链路状态变化。同时需要通过接收过滤控制寄存器RFCR地址0x48h精确配置接收过滤器确保只有符合唤醒条件的数据包才会被接受并触发事件。例如如果只希望被魔术包唤醒那么可以设置WKMAG1并在RFCR中仅使能完美地址匹配APM1并设置好本机的MAC地址同时关闭接受所有广播/组播AAB0, AAM0以避免被网络中的广播风暴误唤醒。启用PME并切换状态在PCI配置空间的电源管理控制与状态寄存器PMCSR地址0x44h中设置PMEEN1使能电源管理事件并将电源状态位PSTATE设置为D1、D2或D3hot。此时芯片的功耗会显著降低典型值从工作状态的383mW降至WoL待机的297mW但PHY和部分逻辑仍在运行以监听网络。系统级操作操作系统或BIOS将PCI时钟减慢或停止并将设备置于相应的低功耗状态。对于D3cold状态系统甚至会移除PCI总线电源。唤醒事件处理与恢复 当符合条件的网络包到达时DP83816会通过PMEN引脚与CLKRUNN复用向系统发出唤醒信号。系统恢复供电和时钟后驱动需要执行以下操作清除PMCSR中的PME状态位写1清除。读取WCSR寄存器确定具体的唤醒原因。重新初始化PCI配置空间如果是从D3hot/cold状态恢复。重新配置接收过滤器为正常模式通常设置为接收所有目标地址为本机或广播的包。将一个有效的接收描述符指针写入RXDP然后使能接收器。此时唤醒数据包会从FIFO中通过DMA传输到主机内存供上层协议栈处理。关键经验在进入WoL状态前务必确保RXDP被清零且接收器处于“静默接收”模式。如果RXDP指向一个有效的系统内存描述符芯片会尝试DMA数据而此时主机可能已进入睡眠状态访问无效的内存地址会导致系统错误如SERR。这是一个非常容易忽略但会导致系统不稳定的陷阱。3. 硬件设计要点与PCB布局实战指南数据手册第6、7、8章的应用信息是硬件工程师的“金科玉律”。这部分内容直接决定了电路的稳定性和EMC性能。3.1 时钟电路设计系统的脉搏DP83816需要一个精确的25MHz时钟源这可以通过外部晶体谐振器或CMOS振荡器提供。晶体方案低成本、高可靠性首选器件选型必须选择并联谐振、负载电容为20pF的AT切晶体。频率容差和稳定性建议在±50ppm以内以确保满足100BASE-TX严格的时钟抖动要求数据手册表6-1中长期抖动需小于800ps。电路设计参考图6-3在X1和X2引脚之间连接晶体。负载电容CL1和CL2的取值是关键它们需要与晶体的负载电容CL匹配。计算公式为C_L1 C_L2 2 * (C_L - C_stray)其中C_stray是PCB走线和芯片引脚的寄生电容通常估算为3-5pF。如果晶体规格书标明C_L20pFC_stray估算为4pF则C_L1 C_L2 2*(20-4)32pF。因此数据手册建议初始使用33pF的电容是合理的起点。串联电阻R1用于限制晶体驱动电平防止过驱。通常可以从0Ω开始如果振荡波形过冲或驱动电平超标应介于100μW到500μW之间再增加一个几欧姆到几十欧姆的电阻。务必在原型板上用示波器高阻探头测量X2引脚波形确保其幅值在芯片供电电压范围内且正弦波干净。有源振荡器方案简化设计 如果选择有源晶振只需将25MHz CMOS电平的时钟信号连接到X1引脚X2引脚悬空即可。此时需确保振荡器的输出电平与芯片的3.3V CMOS输入兼容上升/下降时间小于6ns抖动指标同样需满足要求。3.2 磁性元件与网络接口电路信号质量的咽喉图6-2所示的网络变压器接口电路是经典设计但每个元件的选择和布局都暗藏玄机。变压器选型数据手册推荐的Pulse H1102、H2019等都是经过验证的型号。选择时需关注几个关键参数匝数比必须是1:1。任何偏差都会导致信号幅度不匹配影响传输距离和抗噪性。插入损耗在1-100MHz范围内应小于-1dB。过大的损耗会削弱信号尤其在100米电缆末端。共模抑制比CMRR最好大于35dB在30MHz时。这是抑制共模噪声如来自电源或数字电路的干扰的关键指标。强烈建议选择集成共模扼流圈CMC的变压器或RJ45连接器这能省去外部分立CMC简化布局并提高一致性。隔离耐压至少1500Vrms以满足安规要求。外围电路参数49.9Ω差分匹配电阻精度要求1%。它们必须尽可能靠近芯片的TPTDP/TPTDM和TPRDP/TPRDM引脚放置其走线要短而粗直接通过过孔连接到电源平面VDD。这些电阻不仅提供了差分线的终端匹配其连接到电源的路径还为发射器的输出级提供了直流偏置。0.1μF去耦电容连接在变压器中心抽头和地之间。同样需要紧靠变压器引脚用于为共模信号提供低阻抗回流路径滤除高频噪声。数据手册中特意用星号(*)标注就是提醒布局优先级。布局血泪教训我曾在一个紧凑的四层板设计中为了走线方便将49.9Ω电阻放在了距离芯片约15mm的地方。结果100Mbps链路在长电缆下误码率急剧上升眼图完全闭合。后来将电阻挪到芯片3mm范围内并在电阻和芯片引脚间做了严格的差分对布线问题立刻解决。对于100MHz的信号1cm的走线引入的寄生电感和反射已经不可忽视。3.3 PCB布局与阻抗控制决定成败的细节数据手册第8章的布局指南是无数工程经验教训的总结必须逐条遵守。差分对布线黄金法则等长与平行TPTDP/TPTDM和TPRDP/TPRDM这两对差分线必须严格等长长度匹配误差建议控制在5mil以内且全程保持平行。不平行会导致差分模式转换为共模模式增加EMI辐射并降低噪声容限。图8-1中“Does Not Maintain Parallelism”的示意图就是典型的错误示范。禁止分叉Stubs绝对避免在差分线上引出任何分支或测试点图8-1中“Avoid Stubs”。任何分支都是阻抗不连续点会产生信号反射。完整参考平面差分线下方必须有一个完整、无分割的接地GND或电源VDD平面作为回流路径。严禁差分线跨越平面分割缝图8-2。如果必须换层应在信号过孔旁边放置足够多的接地过孔为回流电流提供最短路径。阻抗计算MDI介质相关接口信号线要求差分阻抗为100Ω单端阻抗为50Ω。这需要通过PCB叠层、线宽、线距和介质厚度来控制。对于常见的FR-4板材Er≈4.2表层微带线差分对通常需要线宽/线距为5mil/7mil左右内层带状线则需要更细的线宽。务必在投板前使用SI9000或类似工具进行仿真计算并与板厂工艺能力确认。电源去耦与层叠设计芯片去耦每个VDD电源引脚如PCIVDD, AUXVDD到最近的地引脚之间都必须放置一个0.1μF的陶瓷电容推荐X7R或X5R材质。布局上电容应放在芯片背面如果可能或紧邻引脚先经过电容再通过过孔连接到电源平面如图7-1所示。电源平面至少需要4层板信号-地-电源-信号才能保证良好的电源完整性和信号屏蔽。理想情况下应为芯片分配独立的模拟电源AVDD和数字电源DVDD平面并通过磁珠或0Ω电阻单点连接。图8-3和图8-4提供了多种层叠结构的参考。磁珠预留在电源入口处预留磁珠Ferrite Bead和额外电容的位置。这在EMI测试超标时是有效的滤波补救手段。4. 寄存器配置与驱动开发核心逻辑驱动开发的核心是与芯片的寄存器打交道。DP83816的寄存器分为PCI配置空间、操作寄存器和内部PHY存器三大类。4.1 初始化流程与关键寄存器配置一个稳健的驱动初始化流程应遵循以下步骤PCI设备枚举与配置系统BIOS或操作系统会分配I/O或内存空间基地址CFGIOA/CFGMA并设置中断线CFGINT。驱动需要读取些配置并映射操作寄存器空间。软件复位向命令寄存器CR偏移0x00的RST位写1等待该位自动清零。这会复位MAC和BIU逻辑但不会影响从EEPROM加载的配置。加载EEPROM配置可选如果板卡上挂了93C46系列EEPROM芯片上电时会自动加载配置如MAC地址、PCI子系统ID、电源管理支持等。驱动也可以通过PCI测试控制寄存器PTSCR偏移0x0C的EELOAD_EN位手动触发重新加载。PHY初始化与链路建立通过配置寄存器CFG偏移0x04的PHY_RST位复位内部PHY。配置基本模式控制寄存器BMCR偏移0x80。如果要使用自动协商设置ANEG_EN1如果要强制模式则设置ANEG_EN0并配置SPEED_SELECT和DUPLEX_MODE位。配置自动协商通告寄存器ANAR偏移0x90宣告本设备支持的能力如100M全双工、暂停帧等。如果需要使能PHY中断如链路变化于MII中断控制寄存器MICR偏移0xC4。等待BMSR寄存器的LINK_STATUS和ANEG_COMPLETE位变为1然后从PHYSTS寄存器读取最终的链路速度和双工模式。MAC层初始化配置发送配置寄存器TXCFG偏移0x24和接收配置寄存器RXCFG偏移0x34。这里需要仔细设置FIFO的填充阈值FLTH和排空阈值DRTH以及最大DMA突发长度MXDMA。一个常见的优化是将TXCFG:FLTH设置为比TXCFG:MXDMA稍大的值并确保两者之和小于TX FIFO总大小2016字节以避免指针重叠。对于RXCFGDRTH决定了何时启动DMA设置过小会增加总线事务开销设置过大会增加延迟并可能导致FIFO溢出。通常从中间值开始调试。设置接收过滤控制寄存器RFCR偏移0x48。在正常模式下通常使能接收所有广播AAB1、完美地址匹配APM1并设置好本机MAC地址可能还会使能组播哈希MHEN1以高效过滤组播流量。分配并初始化发送/接收描述符环Descriptor Ring在系统内存中将环的首地址写入发送描述符指针寄存器TXDP偏移0x20和接收描述符指针寄存器RXDP偏移0x30。启动收发引擎最后向命令寄存器CR的TXE和RXE位写1启动发送和接收状态机。4.2 描述符机制与数据流管理DP83816使用基于描述符的DMA机制这是高效数据吞吐的关键。描述符是位于主机内存中的数据结构用于告诉DMA引擎数据包在哪里以及如何处理。描述符格式每个描述符包含三个32位字段link指向下一个描述符的物理地址。通过将最后一个描述符的link指向第一个可以形成环状队列。cmdsts命令与状态字。包含所有权位OWN硬件置1表示描述符归芯片使用驱动置0表示归驱动所有、更多片段标志MORE、中断请求位INTR以及最终的状态如发送成功OK、CRC错误CRCE等。bufptr指向数据缓冲区存储实际以太网帧的物理地址。发送流程驱动准备一个数据包将其放入bufptr指向的缓冲区。驱动填充描述符的cmdsts字段设置OWN1INTR1请求发送完成中断等并将描述符链接到发送环。如果发送状态机空闲驱动写TXE1触发启动。芯片的DMA引擎读取描述符将数据从主机内存搬移到内部TX FIFO。MAC层从FIFO取出数据添加前导码、帧起始定界符和CRC通过PHY发送出去。发送完成后芯片将OWN位清零更新状态位如果INTR1则触发中断。驱动在中断服务例程中检查完成描述符的状态释放缓冲区并可能回收描述符以供下次使用。接收流程驱动预先分配一批空的接收缓冲区和描述符组成接收环并将所有描述符的OWN位设为1交给硬件。芯片收到数据包存入RX FIFO。当FIFO中数据量达到RXCFG:DRTH阈值或一个完整数据包到达时DMA引擎将数据搬移到当前描述符bufptr指向的缓冲区。数据搬移完成或缓冲区用完后芯片更新描述符状态如包长度、错误标志清除OWN位如果INTR1则触发中断。驱动在中断服务例程中处理接收到的数据包将缓冲区交给协议栈并分配新的缓冲区和描述符设置OWN1放回环中确保环不会空。性能调优经验描述符数量发送和接收环的大小需要权衡。环太小在高流量下容易溢出环太大会占用过多内存且增加中断延迟。通常接收环需要比发送环更大因为接收是异步的、不可预测的。可以从64个描述符开始测试。中断合并频繁的中断会消耗大量CPU资源。可以利用中断保持寄存器IHR偏移0x1C设置一个中断延迟时间例如100μs让芯片将一段时间内的多个完成事件合并为一个中断上报从而提升吞吐量尤其在小包密集的场景下效果显著。缓冲区对齐确保数据缓冲区起始地址在32位边界上对齐这能保证DMA传输的最高效率。4.3 诊断与调试寄存器使用技巧开发过程中以下寄存器是定位问题的利器中断状态寄存器ISR偏移0x10发生中断时首先读取此寄存器可以快速定位是发送完成TXOK、接收完成RXOK、FIFO溢出RXORN/TXURN还是PHY链路变化PHY等。管理信息库MIB计数器位于0x60-0x78地址段。这些硬件计数器可以统计接收错误包RXErroredPkts、CRC错误RXFCSErrors、帧对齐错误RXFAErrors等。在怀疑链路质量时定期读取并比较这些计数器的增长情况比抓包分析更直接。PHY状态寄存器PHYSTS偏移0xC0一站式查看链路状态Link Status、速度Speed Status、双工模式Duplex Status、自动协商完成Auto-Neg. Complete以及极性错误Polarity Status等信息。当网络不通时首先就应该查这里的链路状态位。100-Mb/s PCS配置与状态寄存器PCSR偏移0xD8其中的FORCE_100_OK位可以强制100M链路为“好”状态在调试物理层连接问题时非常有用可以绕过信号检测SD电路直接测试上层逻辑。PHY控制寄存器PHYCR偏移0xE4支持内置自测试BIST通过设置BIST_START位可以启动内部回环测试验证PHY的数据通路是否正常。5. 常见问题排查与实战经验汇总即使严格按照数据手册设计在实际项目中仍会遇到各种问题。以下是一些典型故障场景及其排查思路。5.1 链路无法建立或时断时续这是最常见的问题可能的原因层层递进物理连接检查最基础也最易忽略。确认网线完好建议用测线仪RJ45接头压接牢固变压器型号正确且焊接无误。电源与时钟用示波器测量芯片的3.3V电源是否干净纹波50mV。测量X1或X2引脚如果用晶体的时钟波形频率是否为精确的25MHz幅值是否达标波形是否为正弦波晶体或方波振荡器且无严重过冲软件配置驱动是否成功初始化读取PHYSTS寄存器Link Status是否为1如果不是检查ANEG_COMPLETE位。如果自动协商未完成检查ANAR寄存器配置是否正确对端设备是否支持自动协商。尝试强制模式在BMCR寄存器中关闭自动协商ANEG_EN0强制设置10M半双工SPEED_SELECT0,DUPLEX_MODE0看最基础的模式能否连通。信号质量测量终极手段如果以上都正常就需要用示波器最好带差分探头直接测量TPTDP/TPTDM这对差分输出信号。观察其眼图是否张开幅值是否在0.95V到1.05V之间100M模式上升/下降时间是否在3-6ns范围内如果眼图闭合或幅值异常问题几乎肯定在硬件上检查49.9Ω电阻的值和焊接、变压器中心抽头的去耦电容、以及差分线的阻抗和布局。5.2 数据传输速度慢或大量丢包当Ping测试出现高延迟或丢包时检查双工模式这是导致性能问题的头号元凶强制全双工设备与半双工设备对接必然导致大量冲突和重传性能急剧下降。确保DP83816与交换机/路由器端口的双工模式设置一致都设为自动协商或强制为相同模式。查看PHYSTS寄存器的双工状态位确认。检查中断和描述符处理在驱动中增加统计检查是否因为中断处理函数太慢或关闭中断时间过长导致接收FIFO溢出RXORN位置位或描述符环耗尽。尝试增加接收描述符环的大小。调整FIFO阈值TXCFG:FLTH和RXCFG:DRTH的默认值可能不适合你的特定系统如PCI总线延迟较大。适当增大TXCFG:FLTH可以让DMA提前预取更多数据减少发送过程中的FIFO下溢风险。适当减小RXCFG:DRTH可以让DMA更早开始搬移数据降低FIFO溢出风险但会增加总线开销。这是一个需要根据实际流量模式进行权衡和测试的参数。DMA burst设置TXCFG:MXDMA和RXCFG:MXDMA决定了每次DMA操作的最大长度。在PCI总线负载不重的系统中设置为最大值128双字512字节可以获得最高效率。但如果系统中存在其他高优先级DMA设备过大的突发长度可能导致总线占用过长影响实时性。可以尝试减小该值观察效果。启用流控制如果丢包发生在单向大数据流时如文件传输可能是接收方来不及处理。确保ANAR寄存器中的PAUSE位已设置如果支持并与对端成功协商了流量控制。这样当接收FIFO快满时DP83816可以发送Pause帧让对方暂停发送。5.3 系统不稳定或EMI测试失败电源去耦用示波器探头使用接地弹簧避免长地线环路仔细测量芯片每个VDD引脚附近的电源噪声。如果高频噪声过大检查0.1μF去耦电容是否真的紧贴引脚电容的ESR/ESL是否足够低推荐使用0402或0201封装的X7R电容。考虑在电源入口处增加一个10μF的钽电容或陶瓷电容进行低频去耦。时钟干扰25MHz时钟线是否远离模拟的MDI差分对是否用地线包围进行了屏蔽时钟驱动器的输出端是否串联了小电阻如22Ω以减缓边沿减少谐波辐射MDI差分线重申一遍这是EMI的主要辐射源。务必确保差分线严格等长、平行、且下方有完整地平面。远离其他数字信号线特别是时钟和周期性信号。如果条件允许将MDI差分线布在PCB的内层带状线结构其EMI性能远优于表层微带线。金属外壳与接地如果设备有金属外壳确保RJ45接口的金属外壳与设备机壳良好搭接低阻抗连接。变压器下方的PCB区域应按照数据手册图8-4的建议将电源/地平面挖空void以防止噪声通过平面耦合到其他电路。回顾整个DP83816的设计与调试过程其数据手册的详尽程度在同类芯片中是罕见的它几乎预见并解答了硬件和软件工程师可能遇到的大部分问题。成功的关键在于两点一是严格遵循数据手册中的硬件设计指南特别是布局和电源部分任何妥协都可能带来后期调试的噩梦二是深入理解其寄存器模型和状态机逻辑编写稳健的驱动程序妥善处理各种中断和错误状态。这颗诞生于2005年的芯片其设计理念和文档质量至今仍值得我们在开发任何网络接口时借鉴。