文件名称:接收状态的相关信息-史上最直白的ica教程
文件大小:5.26MB
文件格式:PDF
更新时间:2024-06-23 16:19:26
LPC23XX 中文资料
广州周立功单片机发展有限公司 第11章 以太网控制器 LPC23xx 用户手册 ©2008 Guangzhou ZLGMCU Development CO., LTD 142 两个串联的 CRC 如表 11.55 所示。 表 11.55 接收状态 hash CRC 位 符号 描述 8:0 SAHashCRC 从源地址中计算而得的 hash CRC 15:9 - 未使用 24:16 DAHashCRC 从目标地址中计算而得的 hash CRC 31:25 - 未使用 StatusInfo 包含的是由 MAC 返回的标志和由接收通道产生的反映接收状态的标志。表 11.56 列出了 StatusInfo 的位定义。 表 11.56 接收状态的相关信息 位 符号 描述 10:0 RxSize 传输给一个片段缓冲区的实际数据的字节数。换句话说,它是 DAM 管理器针 对一个描述符实际写入的帧或片段的字节数。该值可能与描述符控制区域中 Size 位(表示器件驱动程序分配的缓冲区大小)的值有所不同。该字段采用减 1 编码,例如,如果缓冲区有 8 个字节,则 RxSize 的值为 7 17:11 - 未使用 18 ControlFrame 表示这一个用于流控制的控制帧,它可以是一个暂停帧也可以是一个带有不支 持的操作码的帧 19 VLAN 表示一个 VLAN 帧 20 FailFilter 表示这帧信息的 Rx 过滤失败。这样的帧将不能正常地传递到存储器中。但由 于缓冲区大小的限制,帧中可能已有一部分信息传递到了存储器中。一旦发现 某帧的 Rx 过滤失败,就将该帧的剩余部分丢弃,而不传递到存储器中。但如 果命令寄存器中的 PassRxFilter 位置位,则整帧都将传递到存储器中 21 Multicast 当接收到一个多播帧时置位 22 Broadcast 当接收到一个广播帧时置位 23 CRCError 接收到的帧的 CRC 是错误的。 24 SymbolError 在接收过程中,PHY 通过 MII 报告有一个位错误 25 LengthError 该帧的帧长度区域指定了一个有效的帧长度,但它与实际的数据长度不相等 26 RangeError[1] 接收到的包超出了包长度的最大限制 27 AlignmentError 当检测到 dribble 位和一个 CRC 错误时,将“对齐错误”作上标记。这与 IEEE std.802.3/条款 4.3.2 是一致的 28 Overrun 接收溢出。适配器不能接收数据流 29 NoDescriptor 没有新的 Rx 描述符可用,并且对于当前的接收描述符中的缓冲区大小来说, 帧信息太长 30 LastFlag 该位置位表示这个描述符是一帧中的最后一个片段。如果一帧只由一个片段组 成,则该位也是置位的 31 Error 表示在该帧的接收过程中出现错误。它是 AlignmentError、RangeError 、 LengthError、SymbolError、CRCError 和 Overrun 逻辑“或”的结果 [1] EMAC 不区分帧类型和帧长度。例如,当接收到 IP(0x8000)或 ARP(0x0806)包时,EMAC 将 帧类型与最大长度进行比较并给出“长度超出范围”错误。事实上,该位不是一个错误指示,而只仅仅是 由芯片产生的、关于接收帧状态的一个说明。 对于具有多个片段的帧,该帧中除了最后一个片段之外的所有片段中的AlignmentError、