一种适用于wlan的以太网mac子层控制器的制作方法

文档序号:7720104阅读:170来源:国知局
专利名称:一种适用于wlan的以太网mac子层控制器的制作方法
技术领域
本发明涉及计算机网络领域中的MAC子层以及微电子领域中的ASIC设计领域。尤 其涉及一种适用于WLAN无线传输系统网络接入的基于IEEE802. 3标准规范的以太网MAC 子层控制器。
背景技术
随着互联网和电子技术的发展,越来越多的电子设备开始接入网络,研究方便快 捷的网络接入方案有很强的现实意义。IEEE802. 3快速以太网标准规定了 10M/100M以太网 物理层和MAC子层规范。该协议规范最高支持IOOMbps可靠的全双工数据传输,能够满足 绝大多数数据流传输的吞吐率的需求。媒体介质访问控制(MAC)子层处于IEEE 802网络参考模型中的第二层,与最底层 的物理层通过媒体介质无关接口连接,是网络参考模型中重要的一层。MAC子层的主要功能 是实现媒体访问接入控制以及在物理层的基础上实现无差错的通信,具体负责发送过程 中将上层交下来的数据封装成帧进行发送,接收过程中将帧拆卸;实现和维护MAC协议;比 特差错监测;寻址[2]。设计一种简便,稳定的MAC子层控制器对于充分发挥网络的性能至 关重要。文献[3]设计的MAC控制器帧缓存结构采用片内RAM作为帧数据缓存,将RAM缓 存区分为若干连续的256字节大小的分片,对于长度小于256字节的帧用一个分片存储,如 果帧长大于256字节,则用几个分片来存储。这种缓存方案设计较为简单,但是存在接收短 帧时帧缓存利用率不高的问题,例如一个64字节的最小帧也要占用一个分片056字节) 的缓存空间。如果采用FIFO作为缓存则不会出现由于存储分片而造成存储的浪费,但是传 统的FIFO读写指针都为顺序的增加,难以满足发送数据帧冲突重传以及接收帧时直接丢 弃坏帧的功能。

发明内容
(一)要解决的技术问题有鉴于此,本发明主要目的在于提供一种适用于WLAN的以太网MAC子层控制器, 使得数据帧重传和丢弃等的功能实现更为简便,并且解决传统缓存结构在接收数据帧时的 缓存浪费的弊端。( 二 )技术方案为达到上述目的,本发明提供了一种适用于WLAN的以太网MAC子层控制器,该控 制器包括发送模块、接收模块、状态模块、控制模块、MII管理模块、发送缓存、接收缓存和寄 存器模块;其中,发送缓存和接收缓存采用读地址可载入的异步FIFO,实现数据帧的存储, 重传和丢弃;主机与MAC子层控制器之间的数据帧信息的交互通过数据帧缓存描述符来进 行,数据帧缓存描述符分为发送缓存描述符和接收缓存描述符,发送缓存描述符用来控制 数据帧的发送过程并记录和返回发送状态;接收缓存描述符用来控制读取接收到的数据帧并向主机返回帧接收状态。上述方案中,所述发送模块包括发送数据通路子模块、发送CRC子模块、随机数子 模块和发送状态机子模块,其中发送数据通路子模块,为发送模块的数据通路,用于为一帧数据添加前导码,填充 字段以及CRC校验字段,并以半位元的格式输出一帧数据; 发送CRC子模块,用于计算一帧数据的CRC校验码序列,它在一帧数据结束后产生 32位的有效的帧校验序列,并通过发送数据通路子模块发送至MII接口 ;随机数子模块,用来产生符合二进制指数随机退避时间长度的随机数;发送状态机子模块,是发送模块的状态机,按照802. 3协议的要求完成发送一帧 数据时的状态转换;模块内部还包含若干个计数器,包括记录发送数据的字节数、重发次数 的计数、IPG时间的计数和延迟时间计数,它与状态机子模块一起实现复杂的发送控制,包 括对数据通路的控制、控制发送CRC子模块的初始化及使能,以及根据在发送过程中产生 的各种状况产生状态信号至状态模块、发送缓存和接收缓存。上述方案中,所述接收模块用于完成数据帧的接收和错误校验,接收模块从MII 接口接收数据,识别前导码、目的地址,决定是否将此帧数据交给接收缓存,并对帧数据进 行CRC校验;同时,接收模块会响应在接收过程中发生的各种情况并在接收结束后产生此 帧数据的接收状态信号rX_StatuS ;接收模块包含接收计数器子模块、地址检测子模块、接 收CRC子模块、接收数据通路和接收状态机子模块。上述方案中,所述接收计数器子模块中包含若干计数器,用来对接收到的字节数、 接收到的半字节数及帧间间隔进行计数;接收CRC子模块用来实现对一帧数据的CRC校验; 接收状态机子模块用来控制帧接收过程中的状态转移。上述方案中,所述发送缓存和接收缓存所采用的读地址可载入的异步FIFO,使用 握手方式实现读写指针安全的异步时钟域之间的传输,通过握手方式传递读写指针,使得 读写指针可以跳跃变化。上述方案中,所述异步FIFO工作在三种工作模式普通FIFO模式、读地址可载入 /帧保护模式和读地址可载入/非帧保护模式;其中,读地址可载入/帧保护模式的特征 为在下一次读地址载入前,正在读取的一帧数据不会被覆盖掉;读地址可载入/非帧保护 模式的特征为读地址可载入,当前正在读取的帧中,已经读取过的数据可以被覆盖掉。上述方案中,所述异步FIFO使用握手方式实现读写指针安全的异步时钟域之间 的传输,在将读指针同步到写时钟域时,具体包括步骤1 首先读时钟域更新读指针寄存器r_wptr,然后向写时钟域发送一个请求 读取读指针寄存器的的信号w_req,w_req同步到写时钟域后变为w_req_SynC ;步骤2 写时钟域检测到W_req_SynC的上升沿会读取读指针寄存器,同时向读时 钟域发送一个回应信号w_ack,w_ack同步到读时钟域后产生信号w_aCk_SynC ;步骤3 读时钟域检测到w_aCk_SynC的上升沿并更新读指针计数器,同时复位 req信号;步骤4 写时钟域检测到W_req_SynC的下降沿后,复位w_ack ;步骤5 读时钟域检测到w_aCk_SynC的下降沿后,开始新一次的读取读指针寄存 器的请求。
上述方案中,所述发送缓存包含发送数据帧缓存单元、发送描述符控制单元以及 发送缓存控制单元,发送帧数据描述符至少包含以下几个字段首地址指针、帧数据长度、 帧的发送状态和发送缓存描述符状态;所述基于读地址可载入的异步FIFO和发送数据描述符的MAC控制器帧数据发送 过程包括如下步骤步骤10 主机通过发送缓存描述符获得可用的空闲发送缓存描述符,主机接口保 存当前的发送FIFO的写指针wptr ;步骤20 主机通过主机接口中的DMA将一帧数据写入到发送FIFO中;步骤30 主机通过主机接口将此帧数据的起始FIFO写指针,帧长度信息,描述符 状态信息写入发送缓存描述符子模块,发送缓存描述符子模块将这些信息组成一个发送描 述符,写入一个空闲的发送描述符缓存中;步骤40 发送缓存控制模块从发送缓存描述符子模块中读取一个发送缓存描述 符,寄存该描述符并向发送FIFO载入帧数据在发送FIFO中存储的首指针,开始读取数据并 发送;步骤50 如果发送过程中发生冲突需要重传,则发送缓存控制模块重新向发送 FIFO载入该帧的首指针,重传该帧;如果该帧发送完毕或失败,则向发送缓存描述符子模 块回写该帧的发送状态信息及描述符状态信息,发送缓存描述符子模块回写发送状态到相 应描述符并向主机产生发送中断,等待主机读取处理。上述方案中,所述接收缓存包含接收数据帧缓存单元、接收描述符控制单元以及 接收缓存控制单元,接收缓存数据描述符至少包含以下几个字段接收帧的首指针、帧数据 长度和帧的接收状态;接收缓存描述符控制单元由一个异步FIFO实现,使用三个FIFO存储 单元存储一个接收缓存描述符,第一个单元为全‘1’,标志一个接收缓冲描述符的边界;后 两个存储单元用来存储接收缓存描述符的有效内容。上述方案中,所述基于读地址可载入的异步FIFO和发送数据描述符的MAC控制器 帧数据接收缓存过程包括如下步骤步骤100 接收缓存控制单元在接收一帧数据之前,先保存当前接收数据FIFO的 写指针,然后开始接收帧数据;步骤200 该帧接收完毕后,将该帧在数据FIFO中的首指针、帧长度和帧接收状态 写入到接收缓存描述符模块中,并产生接收中断,等待主机处理;步骤300 主机响应中断,读取接收缓存描述符,并根据其中的信息从接收FIFO中 读取该帧;如果主机读取缓存描述符后发现该帧数据已损坏,则主机可以直接丢弃该描述 符,在读取下一个接收描述符后,直接向接收FIFO载入新描述符的首指针,则可以直接越 过接收FIFO中的坏帧,而无需将坏帧读出。(三)有益效果从上述技术方案可以看出,本发明具有以下有益效果1、本发明提供的适用于WLAN的以太网MAC子层控制器,具有很强的通用性,可广 泛适用于需要对数据帧进行缓存和处理的数字系统中。2、本发明提供的适用于WLAN的以太网MAC子层控制器,方便的实现了数据帧重传 和数据帧丢弃的功能,并提高了片内缓存的利用效率,具有很强的实用价值。


图1是本发明提供的适用于WLAN的以太网MAC子层控制器的示意图;图2是本发明提供的适用于WLAN的以太网MAC子层控制器中数据帧发送单元的 示意图;图3是本发明提供的适用于WLAN的以太网MAC子层控制器中数据帧接收单元的 示意图;图4是本发明提供的适用于WLAN的以太网MAC子层控制器中读地址可载入的多 模式异步FIFO结构的示意图;图5是本发明提供的适用于WLAN的以太网MAC子层控制器中发送缓存单元结构 的示意图;图6是本发明提供的适用于WLAN的以太网MAC子层控制器中接收缓存单元结构 的示意图;图7是本发明提供的适用于WLAN的以太网MAC子层控制器中FPGA实现平台结构 的示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照 附图,对本发明进一步详细说明。本发明提出了一种基于双口 RAM的读地址可以载入的异步FIFO并且将其应用到 缓存结构中,并基于此缓存结构提出了一种简单、稳定的快速以太网MAC子层控制器架构, 其主要特征为(1)支持10M/100M bps数据传输速率( 支持半双工、全双工传输模式,支 持半双工下的CSMA/⑶及全双工下的流量控制功能;(3)支持MIIM接口,可以对PHY芯片 进行管理操作(4)最多支持32个发送缓冲描述符和85个接收缓冲描述符。本发明提供的这种适用于WLAN的以太网MAC子层控制器,采用读地址可载入的异 步FIFO作为数据帧的缓存单元,实现数据帧的存储,重传和丢弃。主机与MAC子层控制器 之间的数据帧信息的交互通过数据帧缓存描述符来进行,数据帧缓存描述符分为发送缓存 描述符和接收缓存描述符。发送缓存描述符用来控制数据帧的发送过程并记录和返回发送 状态;接收缓存描述符用来控制读取接收到的数据帧并向主机返回帧接收状态。本发明的主要贡献是提出了一种快速以太网MAC控制器的系统架构,提出了一 种读地址可载入的异步FIFO结构以及帧数据缓存结构并应用于MAC控制器的实现架构中, 很好的解决了传统的MAC控制器帧缓存结构在接收短帧时缓存利用率低的问题,并方便了 帧重传及帧丢弃功能的实现。本发明可直接应用于WLAN无线传输系统。请参阅图1,该图描述了快速以太网MAC控制器的系统架构,整个系统分为发送模 块、接收模块、状态模块、控制模块、MII管理模块、发送/接收缓存和寄存器模块。图2给出了数据帧的发送模块的结构框图。发送数据通路子模块为发送模块的数 据通路,负责为一帧数据添加前导码,填充字段以及CRC校验字段,并以半位元的格式输出 一帧数据。发送CRC子模块用于计算一帧数据的CRC校验码序列,它在一帧数据结束后产 生32位的有效的帧校验序列,并通过发送数据通路子模块发送至MII接口。随机数子模块用来产生符合二进制指数随机退避时间长度的随机数。发送状态机子模块是发送模块的状 态机,它是发送模块中最重要的部分,按照802. 3协议的要求完成发送一帧数据时的状态 转换。该模块内部还包含了若干个计数器,包括记录发送数据的字节数,重发次数的计数, IPG时间的计数,延迟时间计数等。它与发送状态机模块一起实现复杂的发送控制,包括对 数据通路的控制,控制发送CRC子模块的初始化及使能,以及根据在发送过程中产生的各 种状况产生状态信号至状态模块和发送缓存模块。图3给出了数据帧的接收模块的结构框图。该模块的主要任务是完成数据帧的接 收和错误校验。接收模块从MII接口接收数据,识别前导码、目的地址,决定是否将此帧数 据交给接收缓存,并对帧数据进行CRC校验。同时,接收模块会响应在接收过程中发生的各 种情况并在接收结束后产生此帧数据的接收状态信号^status。接收模块包含接收计数 器子模块,地址检测子模块,接收CRC子模块,接收数据通路和接收状态机子模块。其中,接 收计数器子模块中包含若干计数器,用来对接收到的字节数,接收到的半字节数及帧间间 隔进行计数。因为按照802. 3协议,有些计数功能是不可能同时开启的,因此在设计中将一 个计数器分时复用,满足多个计数功能的需要,从而节省了资源。接收CRC子模块用来实现 对一帧数据的CRC校验。接收状态机子模块用来控制帧接收过程中的状态转移。图4给出了适用于该MAC控制器数据帧缓存单元的读地址可载入的异步FIFO的 设计框图。其特征在于(1)使用握手方式实现读写指针安全的异步时钟域之间的传递。(2)三种工作模式的选择可选择工作在普通FIFO模式、读地址可载入/帧保护 模式及读地址可载入/非帧保护模式。其中,读地址可载入/帧保护模式的特征为在下一 次读地址载入前,正在读取的一帧数据不会被覆盖掉;读地址可载入/非帧保护模式的特 征为读地址可载入,当前正在读取的帧中,已经读取过的数据可以被覆盖掉。(3)可以在读写端指示剩余缓存容量。该异步FIFO采用握手机制来实现读/写指针的同步。以将读指针同步到写时钟 域为例,首先读时钟域更新读指针寄存器r_wptr,然后向写时钟域发送一个请求读取读指 针寄存器的的信号w_req,w_req同步到写时钟域后变为w_req_SynC,写时钟域检测到 req_sync的上升沿会读取读指针寄存器,同时向读时钟域发送一个回应信号w_ack,w_ack 同步到读时钟域后产生信号w_aCk_SynC,读时钟域检测到w_aCk_SynC的上升沿并更新读 指针计数器,同时复位w_req信号。写时钟域检测到w_req_SynC的下降沿后,复位w_ack。 读时钟域检测到w_aCk_SynC的下降沿后,开始新一次的读取读指针寄存器的请求。通过这 样的握手方式,可以保证读指针寄存器在写时钟域对其进行读取时稳定不变,从而避免指 针传递错误的发生。与传统的MAC控制器中的缓冲器的架构相比,针对以太网MAC控制器中发送缓存 和接收缓存的需要,该异步FIFO中增加了读指针载入的功能,该功能可以方便的实现帧重 传以及坏帧丢弃的功能。读指针载入功能的原理为当地址载入信号有效时,FIFO先将要 载入的读指针寄存,然后等待允许改变读指针寄存器rg_rptr的信号r_ack_sync的上升 沿,并将寄存的读指针写入到rg_rptr中,并且从该地址开始读指针递增从FIFO内部的RAM 里读数据。此时,对于MAC接收数据帧时的需要,读指针可以同步到写时钟域进行比较,已 经读完的该帧数据也可以被写时钟覆盖掉,这时FIFO工作在读地址可载入/非帧保护模式;而当MAC在发送一帧数据时,因为有可能需要重传该帧,因此该帧已经发送的数据也不 能被覆盖掉,为了满足这一要求,在发送FIFO的设计中,读指针寄存器只在读指针载入(即 一帧数据的首地址)的时候发生改变并向写时钟域传递,在读取一帧数据的过程中,虽然 读指针递增,但是维持读指针寄存器为该帧存放的首地址,这样就可以保证该帧数据在发 送期间不会被覆盖,直到该帧数据发送完成,下一帧数据的首地址载入,在这种情况下FIFO 工作在读地址载入/帧保护模式。以下结合具体符合IEEE 802. 3x协议规范的MAC控制器进行帧数据发送和接收过 程的具体实例,并参照附图,对本发明进一步详细说明。图5为发送缓存单元的设计结构。发送缓存单元负责缓存主机要发送的数据帧, 并按照数据帧在发送FIFO中的队列顺序将数据帧交由发送模块进行一帧数据的发送,发 送缓存还要实现在冲突发生时帧重传以及将一帧数据发送的状态信息回写到发送缓存描 述符模块中以便主机读取的功能。发送缓存模块的结构如图六所示其中,发送FIFO为读 地址可载入的异步FIFO,用作发送帧的缓存,在发送缓存单元中该FIFO工作在读地址可 载入/帧保护模式。发送缓存控制模块负责从发送缓存描述符子模块读取发送描述符,回 写发送状态,以及对发送数据流的控制。发送缓存描述符子模块负责发送缓存描述符的管 理。发送缓存描述符子模块使用32bitX64的单口 RAM用作发送描述符的缓存,内部设计 了将发送时钟同步到主机时钟的逻辑。每个发送描述符使用64比特存储,包括首地址指针 (IObit),帧数据长度(16bit),帧的发送状态(16bit),发送缓存描述符状态(Sbit)以及保 留字段五个字段。所设计的MAC最多可以存储32个发送描述符。本实例过程发送一个发生一次冲突的数据帧,发送缓存模块的工作过程如下步骤一首先,主机通过tXbd_num_aval信号得知有多少个可用的空闲发送缓存 描述符。若有空闲的发送缓存描述符,主机接口模块保存当前的发送FIFO的写指针wptr。步骤二 主机通过主机接口中的DMA将一帧数据写入到发送FIFO中。步骤三主机通过接口将此帧数据的起始FIFO写指针,帧长度信息,描述符状态 信息写入发送缓存描述符子模块,发送缓存描述符子模块会按地址顺序写入一个空闲的发 送描述符缓冲中去。步骤四当有发送缓存描述符写入后,发送缓存描述符子模块的空标志信号 txbd_null无效。发送缓存控制模块向发送缓存描述符子模块申请读取一个发送缓存描述 符,发送缓存描述符会按地址顺序取一个有效的发送描述符给发送缓存控制模块,发送缓 存控制获取待发送帧的信息后,寄存该信息并向发送FIFO载入帧首指针,开始读取数据并 发送。步骤五在发送过程中发送模块检测到载波冲突并通知发送缓存单元,发送缓存 单元开始执行帧重传。发送缓存控制模块重新向发送FIFO载入该帧的首指针,重传该帧。 该帧发送完毕后,向发送缓存描述符子模块回写该帧的发送状态信息及描述符状态信息, 发送缓存描述符子模块会写发送状态到相应描述符并向主机产生发送中断,等待主机读取处理。图6为接收缓存单元的设计结构。接收缓存模块负责缓存帧数据,并将接收状态 写入到接收缓存描述符中,同时,接收缓存还要负责产生流量控制请求及清除的信号。因为 在数据帧接收过程中,在MAC端只需要对接收缓存描述符进行写操作,而在主机端只需对接收缓存进行读操作,所以用一个32位的异步FIFO来缓存接收缓存描述符。每个接收缓 存描述符占用64bit,每个接收缓存描述符在FIFO中占用三个存储单元,第一个存储单元 写全‘1’,作为接收描述符的起始标志字,接下来的两个存储单元依次存储一个64位的接 收缓冲描述符。接收缓存描述符的格式为接收帧的首指针(12bit),数据帧长度(16bit), 接收状态(16bit)和保留字段。所设计的MAC控制器使用深度4K的32位宽的FIFO作为 帧数据缓存,缓存容量为16KB ;使用深度为256的32位宽FIFO作为接收缓存描述符的缓 存,最多可容纳85个接收缓存描述符。本实例过程接收一个CRC校验错误的数据帧,接收缓存模块及主机端的工作过程 如下步骤一接收缓存控制模块在接收一帧数据之前,先保存当前接收数据FIFO的写 指针,然后开始接收帧数据。步骤二 该帧接收完毕后,首先向接收缓存描述符FIFO中写一个全‘1’的32位 字,然后将该帧在数据FIFO中的首指针、帧长度和帧接收状态写入到接收缓存描述符模块 的FIFO中,并产生接收中断,等待主机处理。步骤三主机响应中断,读取接收缓存描述符,主机根据接收缓存描述符模块中的 CRC校验状态字段发现该帧的CRC校验错误,主机直接丢弃该描述符,在读取下一个接收描 述符后,直接向接收数据FIFO载入新描述符的首指针,则可以直接越过接收数据FIFO中的 坏帧,而无需将坏帧读出。图7给出了该MAC控制器实现的FPGA验证平台,该验证平台基于ALTERA STRATIX II EP2S60 FPGA,采用专用的外围802. 3PHY芯片。验证平台用两块FPGA开发板和两台PC 搭建,构成PCl和PC2之间数据收发的双向通路。在PC端运行commview发包/抓包软件, 通过网口将数据帧发送至FPGA开发板1的RJ45接口,数据帧经过802. 3PHY.MAC后存储到 MAC的接收缓存中。转发逻辑模拟主机的行为,将收到的数据帧通过两块开发板中间的排 线发送到开发板2并写入FPGA开发板2的MAC发送缓存中,FPGA开发板2然后将数据帧 转发至PC2,通过PCl发送数据和PC2接收数据帧的比较,以及通过ALTERA FPGA内嵌的逻 辑分析仪signal tap观测实际的数据波形,可以验证以太网MAC控制器功能的正确性。两 块FPGA开发板共用一个晶振,使用同轴连接SMA 口完成晶振产生的时钟信号的板间传送, 在验证中使用的系统主时钟为33MHZ,两开发板之间用四位数据线进行数据的转发。在该测 试平台上对MAC进行的测试包括10M/100M,全双工/半双工模式下基本数据传输测试;单 播帧,广播帧和组播帧的接收测试;全双工模式下的流量控制测试等。在完成MAC基本功能 的验证之后,利用此验证平台进行大文件传输,以验证所设计的MAC的数据通路的健壮性。 方法为,在PC2运行FTP服务器端软件,在PCl端运行FTP客户端软件flashFXP,用FTP工 具在PCl和PC2之间传送文件。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡 在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保 护范围之内。文献索引[1] IEEE Std 802. 3,2000 Edition, Part 3 =Carrier sense multipleaccess with collision detection (CSMA/CD)accessmethod and physical layer apecifications[S].[2]谢希仁.计算机网络(第三版).大连大连理工大学出版社;2002[3]RTL8019AS DATASHEET, REALTEK Corporation,2000
权利要求
1.一种适用于WLAN的以太网MAC子层控制器,其特征在于,该控制器包括发送模块、 接收模块、状态模块、控制模块、MII管理模块、发送缓存、接收缓存和寄存器模块;其中,发 送缓存和接收缓存采用读地址可载入的异步FIFO,实现数据帧的存储、重传和丢弃;主机 与MAC子层控制器之间的数据帧信息的交互通过数据帧缓存描述符来进行,数据帧缓存描 述符分为发送缓存描述符和接收缓存描述符,发送缓存描述符用来控制数据帧的发送过程 并记录和返回发送状态;接收缓存描述符用来控制读取接收到的数据帧并向主机返回帧接 收状态。
2.根据权利要求1所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述发 送模块包括发送数据通路子模块、发送CRC子模块、随机数子模块和发送状态机子模块,其 中发送数据通路子模块,为发送模块的数据通路,用于为一帧数据添加前导码,填充字段 以及CRC校验字段,并以半位元的格式输出一帧数据;发送CRC子模块,用于计算一帧数据的CRC校验码序列,它在一帧数据结束后产生32 位的有效的帧校验序列,并通过数据通路子模块发送至MII接口 ;随机数子模块,用来产生符合二进制指数随机退避时间长度的随机数;发送状态机子模块,是发送模块的状态机,按照IEEE 802. 3协议的要求完成发送一帧 数据时的状态转换;模块内部还包含若干个计数器,包括记录发送数据的字节数、重发次数 的计数、IPG时间的计数和延迟时间计数,它与发送状态机子模块一起实现复杂的发送控 制,包括对数据通路的控制、控制发送CRC子模块的初始化及使能,以及根据在发送过程中 产生的各种状况产生状态信号至状态模块、发送缓存和接收缓存。
3.根据权利要求1所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述 接收模块用于完成数据帧的接收和错误校验,接收模块从MII接口接收数据,识别前导码、 目的地址,决定是否将此帧数据交给接收缓存,并对帧数据进行CRC校验;同时,接收模块 会响应在接收过程中发生的各种情况并在接收结束后产生此帧数据的接收状态信号rx_ status ;接收模块包含接收计数器子模块、地址检测子模块、接收CRC子模块、接收数据通 路子模块和接收状态机子模块。
4.根据权利要求3所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述接 收计数器子模块中包含若干计数器,用来对接收到的字节数、接收到的半字节数及帧间间 隔进行计数;接收CRC子模块用来实现对一帧数据的CRC校验;接收状态机子模块用来控 制帧接收过程中的状态转移。
5.根据权利要求1所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述发 送缓存和接收缓存所采用的读地址可载入的异步FIFO,使用握手方式实现读写指针安全的 异步时钟域之间的传输,通过握手方式传递读写指针,使得读写指针可以跳跃变化。
6.根据权利要求5所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述异 步FIFO工作在三种工作模式普通FIFO模式、读地址可载入/帧保护模式和读地址可载入 /非帧保护模式;其中,读地址可载入/帧保护模式的特征为在下一次读地址载入前,正在 读取的一帧数据不会被覆盖掉;读地址可载入/非帧保护模式的特征为读地址可载入,当 前正在读取的帧中,已经读取过的数据可以被覆盖掉。
7.根据权利要求5所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述异步FIFO使用握手方式实现读写指针安全的异步时钟域之间的传输,在将读指针同步到写 时钟域时,具体包括步骤1 首先读时钟域更新读指针寄存器r_wptr,然后向写时钟域发送一个请求读取 读指针寄存器的的信号w_req,w_req同步到写时钟域后变为w_req_SynC ;步骤2 写时钟域检测到W_req_SynC的上升沿会读取读指针寄存器,同时向读时钟域 发送一个回应信号w_ack,w_ack同步到读时钟域后产生信号w_aCk_SynC ;步骤3 读时钟域检测到w_aCk_SynC的上升沿并更新读指针计数器,同时复位w_req 信号;步骤4 写时钟域检测到W_req_SynC的下降沿后,复位w_ack ;步骤5 读时钟域检测到w_aCk_SynC的下降沿后,开始新一次的读取读指针寄存器的 请求。
8.根据权利要求1所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述发 送缓存包含发送FIFO、发送缓存控制子模块以及发送缓存描述符子模块,发送缓存描述符 子模块中的发送缓存描述符至少包含以下几个字段首地址指针、帧数据长度、帧的发送状 态和发送缓存描述符状态;所述基于读地址可载入的异步FIFO和发送缓存描述符的MAC控制器帧数据发送过程 包括如下步骤步骤10 主机通过发送缓存描述符子模块获得可用的空闲发送缓存描述符,主机接口 保存当前的发送FIFO的写指针wptr ;步骤20 主机通过主机接口中的DMA将一帧数据写入到发送FIFO中;步骤30 主机通过主机接口将此帧数据的起始FIFO写指针,帧长度信息,描述符状态 信息写入发送缓存描述符子模块,发送缓存描述符子模块将这些信息组成一个发送缓存描 述符,写入一个空闲的发送缓存描述符缓存中;步骤40 发送缓存控制子模块从发送缓存描述符子模块中读取一个发送缓存描述符, 寄存该描述符并向发送FIFO载入帧数据在发送FIFO中存储的首指针,开始读取数据并发 送;步骤50 如果发送过程中发生冲突需要重传,则发送缓存控制子模块重新向发送FIFO 载入该帧的首指针,重传该帧;如果该帧发送完毕或失败,则向发送缓存描述符子模块回写 该帧的发送状态信息及描述符状态信息,发送缓存描述符子模块回写发送状态到相应描述 符并向主机产生发送中断,等待主机读取处理。
9.根据权利要求1所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述接 收缓存包含接收FIFO、接收缓存描述符子模块以及接收缓存控制子模块,接收缓存描述符 子模块中的接收缓存描述符至少包含以下几个字段接收帧的首指针、帧数据长度和帧的 接收状态;接收缓存描述符控制单元由一个异步FIFO实现,使用三个FIFO存储单元存储一 个接收缓存描述符,第一个单元为全‘1’,标志一个接收缓冲描述符的边界;后两个存储单 元用来存储接收缓存描述符的有效内容。
10.根据权利要求9所述的适用于WLAN的以太网MAC子层控制器,其特征在于,所述基 于读地址可载入的异步FIFO和接收缓存描述符的MAC控制器帧数据接收缓存过程包括如 下步骤步骤100 接收缓存控制子模块在接收一帧数据之前,先保存当前接收FIFO的写指针, 然后开始接收帧数据;步骤200 该帧接收完毕后,将该帧在数据FIFO中的首指针、帧长度和帧接收状态写入 到接收缓存描述符子模块中,并产生接收中断,等待主机处理;步骤300 主机响应中断,读取接收缓存描述符,并根据其中的信息从接收FIFO中读取 该帧;如果主机读取缓存描述符后发现该帧数据已损坏,则主机可以直接丢弃该描述符,在 读取下一个接收缓存描述符后,直接向接收FIFO载入新描述符的首指针,则可以直接越过 接收FIFO中的坏帧,而无需将坏帧读出。
全文摘要
本发明公开了一种适用于WLAN的以太网MAC子层控制器,包括发送模块、接收模块、状态模块、控制模块、MII管理模块、发送缓存、接收缓存和寄存器模块;其中,发送缓存和接收缓存采用读地址可载入的异步FIFO,实现数据帧的存储,重传和丢弃;主机与MAC子层控制器之间的数据帧信息的交互通过数据帧缓存描述符来进行,数据帧缓存描述符分为发送缓存描述符和接收缓存描述符,发送缓存描述符用来控制数据帧的发送过程并记录和返回发送状态;接收缓存描述符用来控制读取接收到的数据帧并向主机返回帧接收状态。利用本发明实现了嵌入式设备的网络接入,实现了帧冲突重传和坏帧丢弃的功能,并且提高了接收短帧情况下片内缓存的利用效率。
文档编号H04W80/00GK102065569SQ20091023777
公开日2011年5月18日 申请日期2009年11月17日 优先权日2009年11月17日
发明者吴斌, 周玉梅, 尉志伟, 马洪亮 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1