[发明专利]wlan收发帧在mac和主内存间分块交付的实现方法无效
申请号: | 200810113120.7 | 申请日: | 2008-05-28 |
公开(公告)号: | CN101594199A | 公开(公告)日: | 2009-12-02 |
发明(设计)人: | 周朝显 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00;H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 10001*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | wlan 收发 mac 内存 分块 交付 实现 方法 | ||
技术领域
本发明属于无线局域网领域,作为一种802.11发送帧和接收帧在MAC和主机内存之间分块交付的设计实现方法,特别适用于具有内存主接口的无线局域网网卡和接入点芯片及其驱动设计,也适用于其他具有帧结构定义、具有内存主接口的通信领域的芯片及其驱动设计。
背景技术
802.11国际标准规定,802.11MAC层的帧结构为:[帧头,帧体,FCS],其发送数据帧的帧头一般为驱动程序根据相应信息生成;FCS为802.11MAC为保证本帧发送的正确性和完整性添加的固定长度的校验数据,一般不需要驱动往MAC层交付;而数据帧的帧体数据为驱动从上层得到,而且一个数据帧的帧体一般以在主机内存中不连续分布的多块数据的形式存在。在802.11MAC将数据帧发送时,是将帧头和帧体作为一个整体,添加完整性校验数据,然后发出。驱动一般将帧头和帧体在内存中搬移到一块连续的内存中,然后再根据这一块数据的信息生成一个发送帧描述符,将本发送帧描述符交付给具有内存主接口的802.11MAC,802.11MAC再根据这个发送帧描述符从内存中取走本帧数据,然后发出。之前的数据搬移需要主机进行大量的数据拷贝工作。对于接收帧而言,802.11MAC需要将本地接收的数据帧,根据驱动交付下来的接收帧描述符,将接收到的数据帧通过内存主接口回写到主机内存中。因为驱动无法预期一个接收帧的长度,所以驱动生成并交付下来的接收帧描述符,指向一块最大数据帧长度的内存空间,以便于接收帧存放。不管接收帧多短多长,驱动在其接收之前,都要同样开辟出一块最大数据帧长度的内存空间。在内存使用比较紧张的情况下,无疑浪费了内存使用。本文提出了一种方法,由具有主接口的802.11MAC根据驱动交付下来的块描述符,而非帧描述符,以预定的顺序连续的取走不连续分布的帧体数据块,从而避免了主机的大量数据拷贝工作。由具有主接口的802.11MAC根据驱动交付下来的小长度的空内存块描述符,收到一帧后,可以将接收帧存到多个空内存块中,从而短帧仅需要比较少的空内存块,长帧需要比较多的空内存块,结果从整体上节省了内存的使用,避免了内存的使用浪费。
发明内容
对于802.11帧发送,上层交付到驱动的在内存中不连续分布的多个数据块,驱动可能会将它们作为一个帧交付给802.11MAC发出。能够避免将属于同一个帧的发送数据从不连续分布的多个数据块拷贝到一个大的数据块的方法是:驱动通过为每一个数据块生成一个块描述符,由802.11MAC根据驱动交付下来的块描述符链,通过其内存主接口,一个数据块接着另一个数据块的取过来,然后作为一个数据帧发出。
表1为发送块描述符为避免数据拷贝规定的内容。如果本数据块为当前发送帧的最后一个数据块,则本描述符的More Block为0;否则必须为1。如果本数据块所处的发送帧,不是发送帧队列的最后一帧,则本发送帧的所有块描述符中的More Frame指示为1;否则为0,Next Block Descriptor Pointer指向下一个发送数据块的描述符的首地址,下一个发送数据块,可能为同一个发送帧的下一个数据块,也可能为下一个发送帧的第一个数据块;
表1中所有信息都是驱动交付给802.11MAC的,802.11MAC得到了这些信息,会通过其内存主接口,先取来本数据块,然后判断是否需要去取下一个块描述符,如果需要,则根据下个块描述符的首地址,将下个块描述符取来。判断是否需要去取下一个块描述符的依据是,当前块描述符中More Block或者More Frame有效则需要去取下一个块描述符。
一个发送帧的帧头并不是由上层交付到驱动的,而是由驱动生成的,而且一般帧头较短。所以对于帧头而言,可以作为一个独立的数据块存在,其块描述符采用表1描述的通用格式。也可以在一个帧的块描述符设定一个特定域,特定域设计见表2。表2为发送帧帧头如果不采用发送块描述符通用格式而采用在块描述符增加的特定域,其中Frame Header Pointer为本数据块描述符所在帧的帧头内容首地址,Frame Header Length为本数据块描述符所在帧的帧头长度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810113120.7/2.html,转载请声明来源钻瓜专利网。