基于数据描述符的mac软硬件交互方法及其硬件实现装置的制作方法

文档序号:7720103阅读:216来源:国知局
专利名称:基于数据描述符的mac软硬件交互方法及其硬件实现装置的制作方法
技术领域
本发明涉及无线局域网(Wireless Local Area Network, WLAN)网络通信领域中 媒体访问层(Medium Access Control, MAC)的设计及实现技术领域,尤其涉及一种采用软 硬件协同工作,并利用数据描述符机制进行软硬件任务指令控制与数据传输的MAC软硬件 交互方法及其硬件实现装置。
背景技术
无线局域网(Wireless Local Area Network, WLAN)正以惊人的速度日益普及并 深入到日常生活和工作的各个领域。作为实现数据无线传输的关键功能模块——媒体访问 控制(Medium Access Control, MAC)协议——也涌现出大量的种类繁多的实现方式。与有线传输相比,IEEE 802. IlMAC协议有如下一些特点(1)包含一些时序约束 性任务,其中包括接收数据后要在短帧间距后(Sire)作出响应(ACK)、CRC的校验、产生需 要与帧的收发同步等;(2)时间精度较高,例如MAC控制器中需要以Iys的精度维持本站 点的时间同步功能计数器(TSF)。采用纯软件实现的MAC控制器无法维持高精度的站点时 间同步功能或带来较大功耗,同时软件实现的整体性能较弱无法完成强时序约束性任务。 因此,将MAC协议中对时序要求和时间精度要求较高的部分功能模块采用硬件实现,其余 非时序约束性任务仍由软件实现,采用软硬件协同工作的方式既实现了较高的系统性能又 保持了很好的灵活性。文献[1] [2]对采用软硬件协同工作的MAC控制器实现方式进行了分析和整体性 能对比,文献[3] [4]分别给出了两种较为成熟的MAC控制器实现方案。其中,文献[3]提出 了一种采用片外共享存储地址空间,主机与MAC硬件控制器采用中断方式使用外部存储空 间的指令和数据的方式,此种方式的弱点在于中断方式响应缓慢、效率较低,且其操作也比 较复杂,帧的收发控制均需等待较长的时间;文献[4]是一个完整的片上系统芯片(SoC), 其MAC控制器硬件部分作为整个系统的功能模块挂载于系统总线上,软硬件通讯方式通过 片内高速总线直接进行,虽然具有较高的效率,然而对于常规软硬件协同开发和嵌入式系 统开发不具有普适性。针对软硬件交互存在的实现方法和效率问题,本文提出了一种基于数据描述符的 MAC软硬件交互方法和硬件实现装置。本发明的主要贡献是软件部分采用规范化的数据描 述符数据格式,完成对帧发送和接收过程的控制,硬件部分以开放的发送/接收寄存器堆 的形式完成对发送、接收过程状态信息的反馈,传递至上层软件控制部分。具有简单灵活和 操作高效的特点,适用于符合IEEE 802. 11协议软硬件协同工作的MAC控制器。

发明内容
(一)要解决的技术问题本发明主要目的在于提供一种基于数据描述符的MAC软硬件交互方法及其硬件 实现装置,该方法使得软件部分能够灵活高效地完成对硬件逻辑的数据收发控制操作并可以实时监控硬件单元的收发状态信息,以便及时响应进一步的数据操作。解决了单一使用 中断控制而造成的响应缓慢、操作复杂等弊端。( 二 )技术方案为达到上述目的,本发明提供了一种基于数据描述符的MAC软硬件交互方法,该 方法包括软件部分将本次发送或待接收的帧数据信息及其控制信息组成发送或接收数据 描述符(Tx/Rx Descriptor),并发送给硬件部分完成对本次帧数据发送或接收的控制操 作;在硬件架构设计中开放系统控制/状态寄存器堆(SysJtrl/SysJtaRegister Banks)与发送/接收状态寄存器堆(Tx/Rx Status Register Banks),以分别实现软、硬件 之间的常规收发控制以及本次数据传输的控制及状态反馈;发送/接收描述符缓存控制器(TX/RX_DeSCBUfT)完成对描述符的解析,并对协议 控制单元(PCU)的数据收发操作进行控制。上述方案中,所述数据描述符包括发送描述符(Tx Descriptor)和接收描述符(Rx Descriptor),其中发送描述符至少包含有一个ID字段、一个Buff_Len字段、一个Buff_ Ptr字段、一个Frame_Len字段、一个FrameType字段、一个Link_Ptr字段和若干发送控制 字段;接收描述符至少包含一个ID字段、一个BufT_Len字段、一个BufT_Ptr字段和一个 Link_Ptr 字段。上述方案中,所述数据描述符以链表的形式储存于外部地址空间,其ID字段表示 该描述符的唯一标识,Buf_Ptr和BUf_Len给出了待发送或接收数据的外部地址和长度, Link_Ptr字段为链接到下一个数据描述符的外部地址空间。描述符的其余数据域为与帧发 送相关的控制信息。上述方案中,所述帧数据发送(Tx)过程主要包括如下步骤步骤1、MAC控制器软件部分将描述符在外部存储器中的地址写入硬件中某一发 送描述符缓存控制器(Tx_DeSCBUff)的描述符地址寄存器(Tx_DP),并同时向该发送描述 符缓存控制器的发送使能寄存器(Tx_En)置“1”;步骤2、该Tx_DeSCBuff按照Tx_DP中的描述符地址读入该描述符;步骤3、Tx_DescBuff正常处理该描述符,并将数据传输任务分配给一个Tx_DMA, 后者根据描述符中的Buff_Ptr以及BUff_Len读取指定的发送数据;步骤4、TX_DeSCBUfT控制器根据该描述符的控制信息完成对协议控制单元(PCU) 数据传输操作的控制;步骤5、Tx_DeSCBUff检测当前描述符中More数据域是否为空,若为1,则根据当前 描述符中Link_Ptr的值读入下一个发送描述符,之后重复步骤2 ;若More数据域为空,则 说明一帧数据已经完全处理完,则该Tx_DeSCBUff更新对应的发送状态寄存器(TxJtatus Register),将当前描述符对应数据帧的发送状态写入该状态寄存器以便软件部分读取;步骤6,当处理完该描述符后,如果当前的Tx_DeSCBUff所处理的当前描述符的 Link_Ptr数据域非空,则将将当前描述符的Link_Ptr中的地址传递给下一个TX_DeSCBufT 的Tx_DP寄存器,之后下一个Tx_DeSCBuff重复步骤2 ;步骤7,如果当前Tx_DeSCBuff所处理的描述符的Link_Ptr数据域为空,则说明当前链表指针已经处理完毕;系统下一次进行操作会重复步骤1。上述方案中,步骤1中所述MAC软件部分将描述符写入硬件Tx_DeSCBUff的过程, 具体包括步骤11、系统软件部分根据待发送帧的具体要求,生成发送描述符并将其存储于 以deSC_addr为首地址的外部存储空间中;步骤12、软件部分查询Central Controller中包含的N个Tx_DescBuff的状态 位,获取某一空闲Tx_DeSCBuff的使用权;步骤13、软件部分向该空闲Tx_DescBuff的Tx_DP寄存器写入desc_addr,并将其 Tx_En位置“ 1,,,允许其开始进行帧数据发送。上述方案中,步骤3中所述Tx_DeSCBUff处理数据描述符的过程,具体包括步骤31、I^x—DescBuff 向 Central Controller 申请!"x—DMA 的使用权;步骤32、Central Controller通过轮询得到某一空闲的Tx_DMA,并将其分配给 Tx_DescBuff 使用;步骤33、Tx_DescBuff将待发送数据的信息Buff_Ptr和Buff_Len信息传递给Tx_ DMA,后者发起数据传输申请,将外部存储空间的数据读入硬件内部。上述方案中,步骤5和6中所述Tx_DeSCBUff完成帧数据发送后的处理过程,具体 包括步骤51、Tx_DescBuff在得到P⑶发送帧数据返回的结果后,检查当前描述符中 More字段是否置位,若为1,表示当前帧包含多个分段,则该Tx_DesCBuff根据当前描述符 的Link_Ptr字段发起数据传输,将下一个数据描述符读入到当前Tx_DP寄存器中,重复步 骤2的工作;步骤52、若当前描述符More字段为0,表示当前帧不包含下一分段,则该Tx_ DescBuff将已完成发送的相关状态信息写入对应的TxJtatusRegister,以供软件部分读 取;步骤53、Tx_DescBuff在完成TxJtatus_Register更新的同时,将检查当前描述 符Link_Ptr字段是否非空。若非空,则Tx_DescBuff向CentralController申请空闲的 Tx_DeSCBUff,若为空,则说明当前描述符链表结束,系统下一次操作重复步骤1 ;步骤54,CentralController 在接到 Tx_DescBuff 的申请后,根据各Tx_DescBuff 的状态信息,获取某一空闲的Tx_DeSCBuff的使用权后分配给当前申请的TX_DeSCBufT ;步骤55、当前Tx_DeSCBuff获得下一可用的Tx_DeSCBuff后,将当前描述符的 Link_Ptr数据域写入到下一 TX_DeSCBufT的Tx_DP寄存器,并将其Tx_En置位,开始下一帧 数据段的传输。上述方案中,所述帧数据接收(Rx)过程主要包括如下步骤步骤10,MAC控制器的软件部分将描述符在外部存储空间的地址写入硬件中某一 个接收描述符缓存控制器(Rx_DeSCBUff)的描述符地址寄存器(Rx_DP);步骤20,该Rx_DeSCBuff按照Rx_DP中的描述符地址读入该描述符;步骤30,RX_DesCBuff等待Rx_DMA的描述符申请,当后者发起描述符使用申请时, Rx_DescBuff将当前描述符的Buff_Ptr和Buff_Len传递给Rx_DMA,并完成接收数据的传 输;
步骤40,当Rx_DMA将接收到的数据完全传输到指定的Buffer后,通知Rx_ DescBuff更新接收寄存器(Rxjtatus Register)并更新描述符完成信号;步骤50,当处理当前接收描述符后,若当前描述符的Link_Ptr不为空则等待空闲 的Rx_DeSCBUff并向其Rx_DP中写入描述符的外部地址,若为空表示此描述符链表处理完 毕。当再次写入描述符时,系统查询接收描述符缓存控制器的状态寄存器,向空闲的Rx_ DescBuff的Rx_DP中写入下一个接收描述符的外部地址,即重复步骤10。上述方案中,步骤10中所述MAC软件部分将描述符写入硬件Rx_DeSCBuff的过 程,具体包括步骤101、系统软件部分根据待接收帧的具体要求,生成接收描述符并将其存储于 以deSC_addr为首地址的外部存储空间中;步骤102、软件部分查询Central Controller中包含的M个Rx_DescBuff的状态 位,获取某一空闲Rx_DesCBuff的使用权;步骤103、软件部分向该空闲Rx_DescBuff的Rx_DP寄存器写入desc_addr。上述方案中,步骤30中所述Rx_DeSCBUff处理接收描述符的过程,具体包括步骤301、Rx_DMA将接收到的帧数据读入Rx_DMA缓存中,向Central Controller 发起申请,请求准备就绪的接收描述符;步骤302、Central Controller根据各Rx_DescBuff的状态位,获取某一已读入接 收描述符的Rx_DesCBuff的使用权,将发起申请的Rx_DMA与该RX_DesCBuff进行关联;步骤303、该Rx_DescBuff将当前接收描述符的Buff_Ptr和Buff_Len字段传递给 与其关联的Rx_DMA,指示其完成接收帧数据向外部存储器的传输。上述方案中,步骤50中所述Rx_DeSCBuff完成接收描述符的处理过程,具体包 括步骤501、Rx_DesCBuff在向Rx_DMA传递数据参数后,检查当前接收描述符的 Link_Ptr是否非空,若非空,则向Central Controller申请下一个可用的Rx_DescBuff ;步骤502、Central Controller根据各Rx_DescBuff的状态位,获取某一空闲的 Rx_DescBuff的使用权,将其分配给发起申请的Rx_DeSCBufT ;步骤503、当前Rx_DeSCBuff将当前接收描述符的Link_Ptr写入申请得到的Rx_ DescBuff,之后重复步骤52 ;步骤504、若当前描述符的Link_Ptr为空,则表示当前描述符列表处理完毕;当系 统再一次发起描述符写入操作时,重复步骤51的操作。为达到上述目的,本发明还提供了一种基于数据描述符的MAC软硬件交互的硬 件实现装置,包含P个发送DMA(Tx_DMA)、1个接收DMA(Rx_DMA)、N个发送描述符缓存控 制器(Tx_DescBuff)及其对应的N个发送状态寄存器(Tx_Status Register Banks)、M 个接收描述符缓存控制器(RX_DeSCBuff)及其对应的M个接收状态寄存器(RxJ^tatus RegisterBanks) U个系统控制寄存器(Sys_Ctrl Register) U个系统状态寄存器(Sys_ Sta Register)以及一个中央控制器(Central Controller),其中,P可根据发送数据流量 进行配置,N可根据发送数据流量进行配置,M可根据接收数据流量进行配置。上述方案中,所述发送描述符缓存控制器(Tx_DeSCBUff)包含一个Tx_DP地址寄 存器和一个Tx_En发送使能寄存器。
上述方案中,所述接收描述符缓存控制器(Rx_DeSCBuff)包含一个Rx_DP地址寄存器。(三)有益效果从上述技术方案可以看出,本发明具有以下有益效果1、本发明提供的这种基于数据描述符的MAC软硬件交互方法及其硬件实现装置, 具有结构简单、数据精简、易于硬件解析实现的特点。2、本发明提供的这种基于数据描述符的MAC软硬件交互方法及其硬件实现装置, 提供了可根据数据发送接收带宽要求进行调整的设计参数(N、M、P),具有较高的灵活性和 可配置性。3、本发明提供的这种基于数据描述符的MAC软硬件交互方法及其硬件实现装置, 具有操作灵活便捷、响应迅速的特点,解决了采用传统中断交互方式造成的操作复杂、响应 缓慢的问题。4、本发明提供的这种基于数据描述符的MAC软硬件交互方法及其硬件实现装置, 可广泛地应用于IEEE 802. Ilx协议规定的MAC控制器系统设计。


图1基于数据描述符的MAC控制器软硬件交互方法的工作流程图(以发送帧数据 过程为例);图1中各数字标号表示如下操作(1)软件部分将外部存储器中的数据描述符首地址写入硬件部分TX_DeSCBUfT的 Tx_DP寄存器,并将Tx_En置位;TX_DesCBufT根据Tx_DP的首地址值读入数据描述符;(2) Tx_DeSCBuff将描述符中指示带传输数据的Buff_Ptr和Buff_Len字段传递给 Tx_DMA,以供进行数据传输;(3) Tx_DMA从外部存储器中读入帧数据并传递给硬件部分的后续发送单元;(4)发送完成后,Tx_DescBuff更新对应的状态寄存器,软件部分从硬件部分的发 送寄存器中获取发送信息。图2发送和接收数据描述符的数据格式。图3基于描述符方式的MAC控制器软硬件交互的硬件实现装置。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照 附图,对本发明进一步详细说明。本发明提出了一种基于数据描述符的MAC软硬件交互方法及其硬件实现装置,提 出根据MAC控制器软硬件实现划分方案,软件部分将本次发送或待接收的帧数据信息及 其控制信息按照规定格式组成发送或接收数据描述符(Tx/Rx Descriptor),并发送给硬 件部分完成对本次帧数据发送或接收的控制操作;在硬件架构设计中开放系统控制/状 态寄存器堆(SyS_Ctrl/SyS_Ma Register Banks)与发送/接收状态寄存器堆(Tx/Rx StatusRegister Banks)以分别实现软、硬件之间的常规收发控制以及本次数据传输的控 制及状态反馈;发送/接收描述符缓存控制器(TX/RX_DeSCBUfT)完成对描述符的解析并对协议控制单元(PCU)的数据收发操作进行控制。请参阅图2,该图描述了发送和接收数据描述符的数据结构。数据描述符以链表的 形式储存于外部地址空间,其ID字段表示该描述符的唯一标识,Buf_Ptr和BUf_Len给出 了待发送或接收数据的外部地址和长度,Link_Ptr字段为链接到下一个数据描述符的外部 地址空间。描述符的其余数据域为与帧发送相关的控制信息。图3给出了基于数据描述符方式实现软硬件协同工作的MAC硬件实现装置。该 装置包括1个系统控制寄存器(Sys_Ctrl Register)、1个系统状态寄存器(Sys_Sta Register)、N个发送描述符缓存控制器(TX_DeSCBuff)及其对应的N个发送状态寄存器堆 (Tx_Status Register Banks) (N可根据发送数据流量进行配置)、M个接收描述符缓存寄存 器(Rx_DescBuff)及其对应的M个接收状态寄存器堆(Rx_Matus Register Banks) (Μ可 根据接收数据流量进行配置)、Ρ个发送DMA (Tx_DMA) (P可根据发送数据流量进行配置)、1 个接收DMA(Rx_DMA)以及1个中央控制器(CentralController)。该方法进行软硬件协同工作的过程包括帧数据发送过程和帧数据接收过程。请参阅图1,帧数据发送(Tx)过程包括以下步骤步骤1,MAC控制器软件部分将描述符在外部存储器中的地址写入硬件中某一发 送描述符缓存控制器(Tx_DeSCBUff)的描述符地址寄存器(Tx_DP),并同时向该发送描述 符缓存控制器的发送使能寄存器(Tx_En)置“1”;步骤2,该Tx_DeSCBuff按照Tx_DP中的描述符地址读入该描述符;步骤3,Tx_DescBuff正常处理该描述符,并将数据传输任务分配给一个Tx_DMA, 后者根据描述符中的Buff_Ptr以及BUff_Len读取指定的发送数据;步骤4,Tx_DescBuff控制器根据该描述符的控制信息完成对协议控制单元(PCU) 数据传输操作的控制;步骤5,Tx_DeSCBUff检测当前描述符中More数据域是否为空,若为1,则根据当前 描述符中Link_Ptr的值读入下一个发送描述符,之后重复步骤2 ;若More数据域为空,则 说明一帧数据已经完全处理完,则该Tx_DeSCBUff更新对应的发送状态寄存器(TxJtatus Register),将当前描述符对应数据帧的发送状态写入该状态寄存器以便软件部分读取;步骤6,当处理完该描述符后,如果当前的Tx_DeSCBUff所处理的当前描述符的 Link_Ptr数据域非空,则将将当前描述符的Link_Ptr中的地址传递给下一个TX_DeSCBufT 的Tx_DP寄存器,之后下一个Tx_DeSCBuff重复步骤2 ;步骤7,如果当前Tx_DeSCBuff所处理的描述符的Link_Ptr数据域为空,则说明当 前链表指针已经处理完毕。系统下一次进行操作会重复步骤1。上述帧发送方案中,步骤1中所述MAC软件部分将描述符写入硬件TX_DeSCBUfT 的过程,具体包括步骤11、系统软件部分根据待发送帧的具体要求,生成发送描述符并将其存储于 以deSC_addr为首地址的外部存储空间中;步骤12、软件部分查询Central Controller中包含的N个Tx_DescBuff的状态 位,获取某一空闲Tx_DeSCBuff的使用权;步骤13、软件部分向该空闲Tx_DescBuff的Tx_DP寄存器写入desc_addr,并将其 Tx_En位置“ 1 ”,允许其开始进行帧数据发送。
上述帧发送方案中,步骤3中所述Tx_DeSCBUff处理数据描述符的过程,具体包 括步骤31、I^x—DescBuff 向 Central Controller 申请!"x—DMA 的使用权;步骤32、Central Controller通过轮询得到某一空闲的Tx_DMA,并将其分配给 Tx_DescBuff 使用;步骤33、Tx_DescBuff将待发送数据的信息Buff_Ptr和Buff_Len信息传递给Tx_ DMA,后者发起数据传输申请,将外部存储空间的数据读入硬件内部。上述帧发送方案中,步骤5、6中所述Tx_DeSCBUff完成帧数据发送后的处理过程, 具体包括步骤51、Tx_DescBuff在得到P⑶发送帧数据返回的结果后,检查当前描述符中 More字段是否置位,若为1,表示当前帧包含多个分段,则该Tx_DeSCBUff根据当前描述符 的Link_Ptr字段发起数据传输,将下一个数据描述符读入到当前Tx_DP寄存器中,重复步 骤2的工作;步骤52、若当前描述符More字段为0,表示当前帧不包含下一分段,则该Tx_ DescBuff将已完成发送的相关状态信息写入对应的TxJtatusRegister,以供软件部分读 取;步骤53、Tx_DescBuff在完成TxJtatus Register更新的同时,将检查当前描述 符Link_Ptr字段是否非空。若非空,则Tx_DescBuff向CentralController申请空闲的 Tx_DeSCBUff,若为空,则说明当前描述符链表结束,系统下一次操作重复步骤1 ;步骤54,CentralController 在接到 Tx_DescBuff 的申请后,根据各Tx_DescBuff 的状态信息,获取某一空闲的Tx_DeSCBuff的使用权后分配给当前申请的TX_DeSCBufT ;步骤55、当前Tx_DeSCBuff获得下一可用的Tx_DeSCBuff后,将当前描述符的 Link_Ptr数据域写入到下一 TX_DeSCBufT的Tx_DP寄存器,并将其Tx_En置位,开始下一帧 数据段的传输。帧数据接收(Rx)过程包括以下步骤步骤10,MAC控制器的软件部分将描述符在外部存储空间的地址写入硬件中某一 个接收描述符缓存控制器(Rx_DeSCBUff)的描述符地址寄存器(Rx_DP);步骤20,该Rx_DeSCBuff按照Rx_DP中的描述符地址读入该描述符;步骤30,Rx_DeSCBuff等待Rx_DMA的描述符申请,当后者发起描述符使用申请时, Rx_DescBuff将当前描述符的Buff_Ptr和Buff_Len传递给Rx_DMA,并完成接收数据的传 输;步骤40,当Rx_DMA将接收到的数据完全传输到指定的Buffer后,通知Rx_ DescBuff更新接收寄存器(Rxjtatus Register)并更新描述符完成信号;步骤50,当处理当前接收描述符后,若当前描述符的Link_Ptr不为空则等待空闲 的Rx_DeSCBUff并向其Rx_DP中写入描述符的外部地址,若为空表示此描述符链表处理完 毕。当再次写入描述符时,系统查询接收描述符缓存控制器的状态寄存器,向空闲的Rx_ DescBuff的Rx_DP中写入下一个接收描述符的外部地址,即重复步骤1。上述帧接收方案中,步骤10中所述MAC软件部分将描述符写入硬件RX_DeSCBufT 的过程,具体包括
步骤101、系统软件部分根据待接收帧的具体要求,生成接收描述符并将其存储于 以deSC_addr为首地址的外部存储空间中;步骤102、软件部分查询Central Controller中包含的M个Rx_DescBuff的状态 位,获取某一空闲Rx_DesCBuff的使用权;步骤103、软件部分向该空闲Rx_DescBuff的Rx_DP寄存器写入desc_addr。上述帧接收方案中,步骤30中所述Rx_DeSCBUff处理接收描述符的过程,具体包 括步骤301、Rx_DMA将接收到的帧数据读入Rx_DMA缓存中,向Central Controller 发起申请,请求准备就绪的接收描述符;步骤302、Central Controller根据各Rx_DescBuff的状态位,获取某一已读入接 收描述符的Rx_DesCBuff的使用权,将发起申请的Rx_DMA与该RX_DesCBuff进行关联;步骤303、该Rx_DescBuff将当前接收描述符的Buff_Ptr和Buff_Len字段传递给 与其关联的Rx_DMA,指示其完成接收帧数据向外部存储器的传输。上述帧接收方案中,步骤50中所述Rx_DeSCBUff完成接收描述符的处理过程,具 体包括步骤501、Rx_DesCBuff在向Rx_DMA传递数据参数后,检查当前接收描述符的 Link_Ptr是否非空,若非空,则向Central Controller申请下一个可用的Rx_DescBuff ;步骤502、Central Controller根据各Rx_DescBuff的状态位,获取某一空闲的 Rx_DescBuff的使用权,将其分配给发起申请的Rx_DeSCBufT ;步骤503、当前Rx_DeSCBuff将当前接收描述符的Link_Ptr写入申请得到的Rx_ DescBuff,之后重复步骤52 ;步骤504、若当前描述符的Link_Ptr为空,则表示当前描述符列表处理完毕。当系 统再一次发起描述符写入操作时,重复步骤51的操作。以下结合具体符合IEEE 802. Ilx软硬件协同工作的MAC控制器进行帧数据发 送和接收过程的具体实例,以基于嵌入式开发平台的MAC控制器实现为例,软件平台采用 ARM926微处理器,该平台采用M位地址总线,16位数据总线的方式,进行数据传输。则在该平台下数据描述符中每个字的长度为16bit,Buff_Ptr和相关地址指针为 Mbit,需要两个字长的存储空间。同时该硬件平台MAC控制器硬件设备共包含1个系统控 制寄存器(Sys_Ctrl Register)、1个系统状态寄存器(Sys_Sta Register)、16个发送描述 符缓存控制器(Tx_DeSCBuff)及其对应的16个发送状态寄存器堆(Txjtatus Register Banks)、16个接收描述符缓存寄存器(RX_DeSCBuff)及其对应的16个接收状态寄存器堆 (Rx_Status Register Banks)、10 个发送 DMA (Tx_DMA)、1 个接收 DMA(Rx_DMA)以及 1 个中 央控制器(Central Controller)。本实例过程共发送一个具有两个分段的数据帧和接收一个数据帧分段。该方法进 行软硬件协同工作的过程包括帧数据发送过程和帧数据接收过程。请参阅图1,帧数据发送(Tx)过程包括以下步骤步骤1,MAC控制器软件部分将描述符在外部存储器中的24bit首地址写入硬件中 某一发送描述符缓存控制器(Tx_DeSCBUff)的描述符地址寄存器(Tx_DP),并同时向该发 送描述符缓存控制器的发送使能寄存器(Tx_En)置“1”;
该步骤进一步包括(1)系统软件部分根据待发送帧的具体要求,生成发送描述符并将其存储于以 deSC_addr为首地址的外部存储空间中;(2)软件部分查询Central Controller中包含的16个Tx_DescBuff的状态位,获 取某一空闲Tx_DescBuff的使用权,例如Tx_DescBuff#l ;(3)软件部分向Tx_DescBuff#l的!"x—DP寄存器写入24bit长的desc_addr,并将 其Tx_En位置“ 1 ”,允许其开始进行帧数据发送。步骤2,Tx_DescBuff#l按照Tx_DP中的描述符地址读入该描述符;步骤3,Tx_DescBuff#l正常处理该描述符,并将数据传输任务分配给一个Tx_ DMA,后者根据描述符中的Buff_Ptr以及Buff_Len读取指定的发送数据;该步骤进一步包括(l)Tx_DescBuff#l 向 Central Controller 申请 Tx_DMA 的使用权;(2)Central Controller通过轮询得到某一空闲的Tx_DMA,并将其分配给Tx_ DescBuff 使用,例如 1^_0嫩#5 ;(3) Tx_DescBuff#l将待发送数据的信息Buff_Ptr和Buff_Len信息传递给Tx_ DMA#5,后者发起数据传输申请,将外部存储空间的数据读入硬件内部。步骤4,Tx_DescBuff#l控制器根据该描述符的控制信息完成对协议控制单元 (PCU)数据传输操作的控制;步骤5,Tx_DeSCBUff#l检测当前描述符中More数据域为1,则根据当前描述符中 Link_Ptr的值读入下一个发送描述符,之后重复步骤2至步骤4 ;当TX_DeSCBuff#l检测到 当前描述符中More数据域为0,则表示当前数据帧发送完毕;Tx_DeSCBUff#l将PCU传递的 发送过程状态信息写入对应的TxJtatus Registertl,以便软件部分读取;该步骤进一步包括(l)Tx_DescBuff#l 将当前 Link_Ptr 的值写入!"x—DP 寄存器;(2)Tx_DescBuff#l根据Tx_DP的地址值读入在外部存储空间中的发送描述符,即 步骤2 ;(3)Tx_DescBuff#l 向 Central Controller 申请 Tx_DMA 的使用权;(4)Central Controller通过轮询得到某一空闲的Tx_DMA,并将其分配给Tx_ DescBuff 使用,例如 1^_0嫩#3 ;(5)Tx_DescBuff#l将待发送数据的信息Buff_Ptr和Buff_Len信息传递给Tx_ DMA#3,后者发起数据传输申请,将外部存储空间的数据读入硬件内部;(6)Tx_DescBuff#l控制器根据该描述符的控制信息完成对协议控制单元(P⑶) 数据传输操作的控制,即步骤4;(7) Tx_DescBuff#l检测到当前描述符中More数据域为0,则表示当前数据帧发送 完毕;Tx_DescBuff#l将PCU传递的发送过程状态信息写入对应的TxJtatus Register#l, 以便软件部分读取。步骤6,当处理完该描述符后,Tx_DeSCBuff#l检查当前描述符的Link_Ptr数据域 为空,则说明当前链表指针已经处理完毕。Tx_DeSCBUff复位等待下一次处理过程。帧数据接收(Rx)过程包括以下步骤
步骤1,MAC控制器的软件部分将描述符在外部存储空间的M位地址写入硬件中 某一个接收描述符缓存控制器(RX_DeSCBuff)的描述符地址寄存器(Rx_DP);该步骤进一步包括(1)系统软件部分根据待接收帧的具体要求,生成接收描述符并将其存储于以 deSC_addr为首地址的外部存储空间中;(2)软件部分查询Central Controller中包含的16个Rx_DescBuff的状态位,获 取某一空闲Rx_DescBuff的使用权,例如Rx_DescBuff#10 ;(3)软件部分向 Rx_DescBuff#10 的 Rx_DP 寄存器写入 desc_addr。
步骤2,Rx_DescBuff#10按照Rx_DP中的描述符地址读入该描述符;步骤3,Rx_DescBuff#10等待Rx_DMA的描述符申请,当后者发起描述符使用申请 时,Rx_DescBuff将当前描述符的Buff_Ptr和Buff_Len传递给Rx_DMA,并完成接收数据的 传输;该步骤进一步包括(l)Rx_DMA (例如Rx_DMA#2)将接收到的帧数据读入Rx_DMA#2缓存中,向Central Controller发起申请,请求准备就绪的接收描述符;(2)Central Controller根据各Rx_DeSCBuff的状态位,获取已读入接收描述符 的Rx_DescBuff#10的使用权,将发起申请的Rx_DMA#2与Rx_DescBuff#10进行关联;(3) Rx_DescBuff#10将当前接收描述符的Buff_Ptr和Buff_Len字段传递给与其 关联的Rx_DMA#2,指示其完成接收帧数据向外部存储器的传输。步骤4,当Rx_DMA#2将接收到的数据完全传输到指定的Buffer后,通知Rx_ DescBuff#10更新接收寄存器(Rxjtatus Register#10)并更新描述符完成信号;步骤5,当处理当前接收描述符后,Rx_DescBuff#10检查当前描述符Link_Ptr为 空,则表示此描述符链表处理完毕。RX_DesCBufT#10复位等待下一次数据接收。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡 在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保 护范围之内。参考文献[l]Nirav Salot, Implementation of IEEE 802. IlMedium AccessController. IIT BomBay, India,2004,.[2]Mikael Rudberg, Physical Layer Interface for IEEE 802. 11MAC, Institution of Systemteknik, Sweden,2002.[3]AMD AM79C930 PCnet Mobile Single Chip Wireless LAN MediaAccess Controller, AMD Incorporation,1998.[4]Marve11 88W8686 Integrated MAC/Baseband/RF Low Power SoC, Marvell Incorporation,2007.
权利要求
1.一种基于数据描述符的MAC软硬件交互方法,其特征在于,该方法包括软件部分将本次发送或待接收的帧数据信息及其控制信息组成发送或接收数据描述 符(Tx/Rx Descriptor),并发送给硬件部分完成对本次帧数据发送或接收的控制操作;在硬件架构设计中开放系统控制/状态寄存器堆(Sys_Ctrl/SysJtaRegister Banks)与发送/接收状态寄存器堆(Tx/Rx Status Register Banks),以分别实现软、硬件 之间的常规收发控制以及本次数据传输的控制及状态反馈;发送/接收描述符缓存控制器(TX/RX_DeSCBUfT)完成对描述符的解析,并对协议控制 单元(PCU)的数据收发操作进行控制。
2.根据权利要求1所述的基于数据描述符的MAC软硬件交互方法,其特征在于,所述 数据描述符包括发送描述符(Tx Descriptor)和接收描述符(Rx Descriptor),其中发送描 述符至少包含有一个ID字段、一个Buff_Len字段、一个Buff_Ptr字段、一个Frame_Len字 段、一个Frame Type字段、一个Link_Ptr字段和若干发送控制字段;接收描述符至少包含 一个ID字段、一个Buff_Len字段、一个Buff_Ptr字段和一个Link_Ptr字段。
3.根据权利要求2所述的基于数据描述符的MAC软硬件交互方法,其特征在于,所述 数据描述符以链表的形式储存于外部地址空间,其ID字段表示该描述符的唯一标识,Buf_ Ptr和BUf_Len给出了待发送或接收数据的外部地址和长度,Link_Ptr字段为链接到下一 个数据描述符的外部地址空间。描述符的其余数据域为与帧发送相关的控制信息。
4.根据权利要求1所述的基于数据描述符的MAC软硬件交互方法,其特征在于,所述帧 数据发送(Tx)过程主要包括如下步骤步骤1、MAC控制器软件部分将描述符在外部存储器中的地址写入硬件中某一发送描 述符缓存控制器(Tx_DeSCBUff)的描述符地址寄存器(Tx_DP),并同时向该发送描述符缓 存控制器的发送使能寄存器(Tx_En)置“1”;步骤2、该TX_DeSCBUfT按照Tx_DP中的描述符地址读入该描述符; 步骤3、Tx_DescBuff正常处理该描述符,并将数据传输任务分配给一个Tx_DMA,后者 根据描述符中的Buff_Ptr以及BUff_Len读取指定的发送数据;步骤4、TX_DeSCBUfT控制器根据该描述符的控制信息完成对协议控制单元(PCU)数据 传输操作的控制;步骤5、Tx_DeSCBUff检测当前描述符中More数据域是否为空,若为1,则根据当前描 述符中Link_Ptr的值读入下一个发送描述符,之后重复步骤2 ;若More数据域为空,则说 明一帧数据已经完全处理完,则该Tx_DeSCBUff更新对应的发送状态寄存器(TxJtatus Register),将当前描述符对应数据帧的发送状态写入该状态寄存器以便软件部分读取;步骤6,当处理完该描述符后,如果当前的Tx_DeSCBUff所处理的当前描述符的Link_ Ptr数据域非空,则将将当前描述符的Link_Ptr中的地址传递给下一个Tx_DeSCBuff的 Tx_DP寄存器,之后下一个Tx_DeSCBuff重复步骤2 ;步骤7,如果当前Tx_DeSCBUff所处理的描述符的Link_Ptr数据域为空,则说明当前链 表指针已经处理完毕;系统下一次进行操作会重复步骤1。
5.根据权利要求4所述的基于数据描述符的MAC软硬件交互方法,其特征在于,步骤1 中所述MAC软件部分将描述符写入硬件Tx_DeSCBUff的过程,具体包括步骤11、系统软件部分根据待发送帧的具体要求,生成发送描述符并将其存储于以deSC_addr为首地址的外部存储空间中;步骤12、软件部分查询Central Controller中包含的N个Tx_DescBuff的状态位,获 取某一空闲Tx_DeSCBuff的使用权;步骤13、软件部分向该空闲Tx_DescBuff的Tx_DP寄存器写入desc_addr,并将其Tx_ En位置“ 1,,,允许其开始进行帧数据发送。
6.根据权利要求4所述的基于数据描述符的MAC软硬件交互方法,其特征在于,步骤3 中所述TX_DeSCBuff处理数据描述符的过程,具体包括步骤 31、Tx_DescBuff 向 Central Controller 申请 Tx_DMA 的使用权; 步骤32、Central Controller通过轮询得到某一空闲的Tx_DMA,并将其分配给Tx_ DescBuff 使用;步骤33、Tx_DescBuff将待发送数据的信息Buff_Ptr和Buff_Len信息传递给Tx_DMA, 后者发起数据传输申请,将外部存储空间的数据读入硬件内部。
7.根据权利要求4所述的基于数据描述符的MAC软硬件交互方法,其特征在于,步骤5 和6中所述TX_DeSCBuff完成帧数据发送后的处理过程,具体包括步骤51、Tx_DeSCBUff在得到P⑶发送帧数据返回的结果后,检查当前描述符中More 字段是否置位,若为1,表示当前帧包含多个分段,则该Tx_DeSCBUff根据当前描述符的 Link_Ptr字段发起数据传输,将下一个数据描述符读入到当前Tx_DP寄存器中,重复步骤2 的工作;步骤52、若当前描述符More字段为0,表示当前帧不包含下一分段,则该Tx_DesCBuff 将已完成发送的相关状态信息写入对应的T^MatusRegister,以供软件部分读取;步骤53、Tx_DescBuff在完成TxJtatus Register更新的同时,将检查当前描述符 Link_Ptr字段是否非空。若非空,则Tx_DescBuff向CentralController申请空闲的Tx_ DescBuff,若为空,则说明当前描述符链表结束,系统下一次操作重复步骤1 ;步骤 54、Central Controller 在接到 Tx_DescBuff 的申请后,根据各 Tx_DescBuff 的 状态信息,获取某一空闲的Tx_DeSCBuff的使用权后分配给当前申请的TX_DeSCBufT ;步骤55、当前Tx_DeSCBuff获得下一可用的Tx_DeSCBuff后,将当前描述符的Link_ Ptr数据域写入到下一 TX_DeSCBufT的Tx_DP寄存器,并将其Tx_En置位,开始下一帧数据 段的传输。
8.根据权利要求1所述的基于数据描述符的MAC软硬件交互方法,其特征在于,所述帧 数据接收(Rx)过程主要包括如下步骤步骤10,MAC控制器的软件部分将描述符在外部存储空间的地址写入硬件中某一个接 收描述符缓存控制器(Rx_DeSCBUff)的描述符地址寄存器(Rx_DP); 步骤20,该RX_DesCBuff按照Rx_DP中的描述符地址读入该描述符; 步骤30,Rx_DescBuff等待Rx_DMA的描述符申请,当后者发起描述符使用申请时,Rx_ DescBuff将当前描述符的Buff_Ptr和Buff_Len传递给Rx_DMA,并完成接收数据的传输; 步骤40,当Rx_DMA将接收到的数据完全传输到指定的Buffer后,通知RX_DesCBuff 更 新接收寄存器(Rxjtatus Register)并更新描述符完成信号;步骤50,当处理当前接收描述符后,若当前描述符的Link_Ptr不为空则等待空闲的 Rx_DeSCBUff并向其Rx_DP中写入描述符的外部地址,若为空表示此描述符链表处理完毕。当再次写入描述符时,系统查询接收描述符缓存控制器的状态寄存器,向空闲的Rx_ DescBuff的Rx_DP中写入下一个接收描述符的外部地址,即重复步骤10。
9.根据权利要求8所述的基于数据描述符的MAC软硬件交互方法,其特征在于,步骤 10中所述MAC软件部分将描述符写入硬件Rx_DeSCBuff的过程,具体包括步骤101、系统软件部分根据待接收帧的具体要求,生成接收描述符并将其存储于以 deSC_addr为首地址的外部存储空间中;步骤102、软件部分查询Central Controller中包含的M个Rx_DescBuff的状态位,获 取某一空闲Rx_DesCBuff的使用权;步骤103、软件部分向该空闲Rx_DescBuff的Rx_DP寄存器写入desc_addr。
10.根据权利要求8所述的基于数据描述符的MAC软硬件交互方法,其特征在于,步骤 30中所述Rx_DeSCBUff处理接收描述符的过程,具体包括步骤301、Rx_DMA将接收到的帧数据读入Rx_DMA缓存中,向Central Controller发起 申请,请求准备就绪的接收描述符;步骤302、Central Controller根据各Rx_DeSCBuff的状态位,获取某一已读入接收描 述符的Rx_DesCBuff的使用权,将发起申请的Rx_DMA与该Rx_DeSCBuff进行关联;步骤303、该Rx_DeSCBuff将当前接收描述符的Buff_Ptr和Buff_Len字段传递给与其 关联的Rx_DMA,指示其完成接收帧数据向外部存储器的传输。
11.根据权利要求8所述的基于数据描述符的MAC软硬件交互方法,其特征在于,步骤 50中所述Rx_DeSCBUff完成接收描述符的处理过程,具体包括步骤501、Rx_DescBuff在向Rx_DMA传递数据参数后,检查当前接收描述符的Link_Ptr 是否非空,若非空,则向Central Controller申请下一个可用的Rx_DescBuff ;步骤502、Central Controller根据各Rx_DescBuff的状态位,获取某一空闲的Rx_ DescBuff的使用权,将其分配给发起申请的Rx_DeSCBufT ;步骤503、当前Rx_DeSCBuff将当前接收描述符的Link_Ptr写入申请得到的Rx_ DescBuff,之后重复步骤52 ;步骤504、若当前描述符的Link_Ptr为空,则表示当前描述符列表处理完毕;当系统再 一次发起描述符写入操作时,重复步骤51的操作。
12.一种基于数据描述符的MAC软硬件交互的硬件实现装置,其特征在于,包含P个发 送DMA (Tx_DMA)、1个接收DMA (Rx_DMA)、N个发送描述符缓存控制器(Tx_DescBuff)及其对 应的N个发送状态寄存器(Txjtatus Register Banks)、M个接收描述符缓存控制器(Rx_ DescBuff)及其对应的M个接收状态寄存器(RxJtatus RegisterBanks)、1个系统控制寄 存器(Sys_Ctrl Register)、1个系统状态寄存器(Sys_Sta Register)以及一个中央控制 器(Central Controller),其中,P可根据发送数据流量进行配置,N可根据发送数据流量 进行配置,M可根据接收数据流量进行配置。
13.根据权利要求12所述的基于数据描述符的MAC软硬件交互的硬件实现装置,其特 征在于,所述发送描述符缓存控制器(TX_DeSCBUfT)包含一个Tx_DP地址寄存器和一个Tx_ En发送使能寄存器。
14.根据权利要求12所述的基于数据描述符的MAC软硬件交互的硬件实现装置,其特 征在于,所述接收描述符缓存控制器(RX_DeSCBUfT)包含一个Rx_DP地址寄存器。c
全文摘要
本发明公开了一种基于数据描述符的MAC软硬件交互方法及其硬件实现装置。方法包括软件部分将本次发送或待接收的帧数据信息及其控制信息按照规定格式组成发送或接收数据描述符,并发送给硬件部分完成对本次帧数据发送或接收的控制操作;在硬件架构设计中开放系统控制/状态寄存器堆与发送/接收状态寄存器堆以分别实现软、硬件之间的常规收发控制以及本次数据传输的控制及状态反馈;发送/接收描述符缓存控制器完成对描述符的解析并对协议控制单元的数据收发操作进行控制。利用本发明可实现MAC控制器中软件部分对硬件部分的实时控制及状态监控,避免了单一使用中断控制而造成的响应缓慢、操作复杂等弊端,具有灵活高效的特点。
文档编号H04W80/00GK102065568SQ20091023777
公开日2011年5月18日 申请日期2009年11月17日 优先权日2009年11月17日
发明者吴斌, 周玉梅, 王海欣 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1