Mac层hspa数据组装的方法及装置的制作方法

文档序号:7715620阅读:112来源:国知局
专利名称:Mac层hspa数据组装的方法及装置的制作方法
技术领域
本发明涉及到了第三代移动通信技术,尤其涉及一种高速分组接入(简称,HSPA)数据进行快速数据组装的方法及装置。
背景技术
HSPA包括了高速下行分组接入(简称,HSDPA)和高速上行分组接入(简称,HSUPA)两项技术,在TD-SCDMA系统中分别实现了单载波下行速率峰值2. 8Mbps和上行速率峰值2. 2Mbps。在高速率的数据交互过程中对数据的处理能力提出了更高的要求。
在TD-SCDMA移动终端(简称,UE)中,媒体接入控制(简称,MAC)层负责处理数据在物理层和协议栈之间的交互,在HSUPA业务中,MAC层需要对发送的数据进行组装,MAC层从无线链路层(简称,RLC)获取一个或多个MAC—d协议数据单元(简称,PDU),将这些MAC—d PDU组装成一个MAC_e PDU,在组装过程中,需要添加一个MAC头到MAC_e PDU,该MAC头的长度不一定是字节的整数倍,因此,在MAC层进行数据组装时,需要对MAC_d PDU进行以比特为单位偏移后再组装成相应的MAC_e PDU。同理,在HSDPA业务中,MAC层接收到的数据是包含有MAC头的MAC_hs PDU,MAC层需要去掉MAC头,再将数据分割组装成一个或多个MAC—dPDU,同样的,由于该MAC头的长度不一定是字节的整数倍,因此,需要对MACJis PDU进行以比特为单位的偏移后再组装成相应的MAC_d PDU。 现有技术实现MAC层HSPA数据组装的方法主要是采用软件来完成的。
现有技术实现MAC层HSUPA数据组装的方法如附图2所示
1 、 CPU将MAC头信息的前m个字节顺序存放到MAC_e PDU中;M^C头信息比特数 2、 CPU读出含有MAC头信息最后k比特数据的字节,根据偏移长度k截取该字节中的k个MAC头信息比特; 所述偏移长度k = MAC头信息比特数-(mX 8); 3、 CPU读取一个MAC_d PDU的首字节,截取其前8_k位比特信息,与MAC头信息比特拼接成一个完整的字节,作为MAC—e PDU的第一个字节保存到MAC-e PDU;
4、CPU读取该MAC_d PDU的第二个字节,截取其前8_k位比特信息与该MAC_d PDU首字节的后k比特信息拼接成一个字节,作为MAC_e PDU的第二个字节保存到MAC层所申请的MAC-e PDU存储空间; 5,以此类推,依次读取该MAC_d PDU的所有字节,每读取一个字节,截取其前8_k位比特信息与前一个字节的后k比特拼接成一个字节,顺序保存到MAC-e PDU,直到将该MAC_d PDU的最后一个字节的前8-k位比特信息与倒数第二个字节的后k比特拼接成一个字节; 6、判断是否还有其他的MAC_d PDU存在,如有则将剩下的最后一个字节的后k位比特信息与下一个MAC—d PDU的第一个字节的前8-k位比特信息拼接成一个字节并顺序保 所述111=
为向下取整;
所述HP
为向下取整;
存到MAC-e PDU ;否则执行步骤8 ; 7、重复步骤4、5直到将所有MAC_d PDU拼接完成; 8、将剩下的最后一个字节的后k位比特信息添加8-k位任意信息形成一个完整的
字节,作为MAC—e PDU的最后一个字节保存到MAC-e PDU,完成MAC—e PDU数据的组装。 现有技术MAC层实现HSDPA数据组装的方法如附图3所示 1、CPU读取MAC-hs PDU的第m+1和m+2两个字节,根据偏移长度k截取前一个字
节的后8-k比特和后一个字节的前k比特拼接成一个字节,保存到RLC层指定的MAC_d PDU
存储空间的第一个字节位置;
M4C头信息比特数 所述偏移长度k = MAC头信息比特数-(mX 8); 2、CPU继续读取下一个字节,将其前k比特与前一个字节的后8-k比特进行拼接,判断当前MAC_d PDU的长度是否达到RLC层指定的MAC_d PDU长度,如是,则将拼接好的字节放到下一个MAC_dPDU的第一个字节位置,否则将拼接好的字节顺序存放到当前MAC_dPDU存储空间; 3、重复步骤2,直到将MAC_hs PDU的最后一个字节的前k比特与倒数第二个字节的后8-k比特拼接,顺序存放到指定的MAC_dPDU ; 4、将MAC_hs PDU最后一个字节剩下的后8_k比特直接丢弃,完成MAC层HSDPA数
据组装。 现有技术实现HSPA数据组装的方法存在以下几点不足 1、由于现有技术在数据拼接中采用软件实现的方式,因此,在实现数据拼接操作时只能以字节为单位读取数据,然后通过"与"、"或"等操作将两个字节中的某些比特位拼接成一个字节,在实现数据的拼接过程中,在HSUPA中,每个字节都需要读取两次,在HSDPA中,除尾字节外,每个字节也需要读取两次,浪费了大量的时间,降低了系统数据传输的效率。 2、现有技术实现数据组装的过程全部由CPU控制完成,数据的读取、字节的拼接、数据的存储都要由CPU来实现,由于HSPA传输的数据量较大,使得每次数据组装时都会长时间占用CPU,耗费了大量的系统资源,不利于其他系统任务的及时处理机系统处理进程的优化。 现有技术中,软件只能以字节为单位实现数据的存取,而硬件则可实现以组合逻辑的方法在字节中读取任意比特,再将读取的每8比特组合为一字节存储。

发明内容
针对上述现有HSPA数据组装方法存在的问题,本发明提出了一种HSPA数据组装实现方法及装置,利用硬件组合逻辑可以以比特为单位实现数据存取的特点,使用硬件装置来完成HSPA数据组装。 本发明实现HSUPA数据组装的技术方案是
采用硬件装置来实现HSUPA数据组装; 1 、 CPU将MAC头信息、MAC头信息比特数、MAC_e PDU首地址及HSUPA数据组装命
6令发送给HSUPA数据组装硬件装置; 2、硬件装置将MAC头信息的前m个字节顺序保存到MAC_e PDU的前m个存储单 元; 3、硬件装置将MAC头信息剩余k比特保存作为偏移信息; 4、硬件装置依次读取每条数据组装命令,根据命令读取所指示的MAC—d PDU数 据,对每个MAC—d PDU,将其与偏移信息实施按比特拼接后以字节为单位顺序存放到MAC_e PDU,用其最后的k比特数据更新偏移信息; 5、硬件装置将最后一条命令所指示的MAC_d PDU的最后k比特数据补足为一个字 节,顺序存放到MAC_e PDU,完成本次HSUPA数据组装;
M乂C头信息比特数 其中,所述m二
8
为向下取整,偏移长度k = MAC头信息比
特数-(mX8); 所述数据组装命令包括MAC_d PDU的首地址及长度,数据组装命令的条数等于所 需组装的MAC_d PDU的个数。 所述根据命令读取所指示的MAC—d PDU数据,对每个MAC—dPDU,将其与偏移信息 实施按比特拼接后以字节为单位顺序存放到MAC—e PDU包括 从命令所指示的MAC_d PDU首地址开始,每次顺序读取n个字节的数据到硬件装 置的缓存器,如MAC—d PDU中剩余未读取数据不足n个字节,则读取全部剩余未读取字节到 硬件装置的缓存器; 每读取一次数据,将偏移信息与缓存器中的前8-k比特拼接为一个字节,并顺序 存放到MAC—e PDU,此后以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式 存放到MAC—e PDU,直到缓存器中剩余最后k比特数据,用缓存器中的最后k比特数据更新 偏移信息; 其中,所述n取值范围为1 L, L是硬件装置缓存器的长度。 优选的,所述硬件装置以命令队列的方式存放、读取CPU发送的HSUPA数据组装命令。 本发明实现HSDPA数据组装的技术方案是
采用硬件装置来实现HSDPA数据组装; 1、 CPU将MAC头信息比特数、MAC_hs PDU首地址及HSDPA数据组装命令发送给 HSDPA数据组装硬件装置; 2、硬件装置依次读取数据组装命令,从MACJis PDU首地址+m开始,顺序读取MAC— hs PDU数据,根据偏移长度k对读取的数据实施按比特拼接,并以字节为单位将拼接后的 数据顺序存放到命令所指示的MAC—d PDU; 3、存放的数据长度达到数据组装命令所指定的长度后,读取下一条命令,继续顺 序读取MACJis PDU数据并实施比特拼接,从命令指定的地址开始以字节的形式顺序存放拼 接后的数据,直到完成最后一条命令所指定MAC—d PDU的存放;
M4C头信息比特数 其中,所述m: 特数-(mX8);
<formula>formula see original document page 7</formula>
为向下取整,偏移长度k = MAC头信息比
所述HSDPA数据组装命令包括MAC—d PDU首地址及长度,HSDPA数据组装命令的 条数等于所需组装的MAC_d PDU个数。 所述顺序读取MAC_hs PDU数据,根据偏移长度k对读取的数据实施按比特拼接, 并以字节为单位将拼接后的数据顺序存放到命令所指示的MAC—d PDU包括
从MACJis PDU首地址+m开始,每次顺序从MACJis PDU中读取n个字节的数据 到硬件装置的缓存器中,如MAC_hs PDU中剩余未读取数据不足n个字节,则读取全部剩余 未读取字节到硬件装置的缓存器中;如是第一次从MACJis PDU读取数据,则将缓存器中前 k比特数据丢弃,否则将偏移信息与缓存器中第一个字节的前k比特数据拼接成一个字节, 顺序保存到命令所指示的MAC_d PDU ;从缓存器中的第k+1比特开始,以8比特为单位依次 读取缓存器中的数据并以字节的形式顺序存放到命令所指示的MAC_d PDU,将缓存器中的 最后8-k比特数据保存作为偏移信息;其中,所述n取值范围为1 L,L是硬件装置缓存器的长度。 优选的,所述硬件装置以命令队列的方式存放、读取CPU发送的HSDPA数据组装命令。 本发明还公开了一种HSUPA数据组装的装置,包括 接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU 的数据组装命令、MAC头信息、MAC头信息比特数、MAC—e PDU首地址;为本装置数据组装模 块与外部存储器之间提供数据信息交互接口 ;完成数据组装后产生中断信号发送给CPU ;
命令队列存储模块,以命令队列的形式存储数据组装命令;
偏移信息存储模块,用于存储偏移信息;
目的地址存储模块,用于存储目的地址; 数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSUPA数据组装, 从命令队列存储模块读取数据组装命令,通过接口模块读取MAC—d PDU数据,完成数据按比 特拼接,通过接口模块将数据存放到目的地址存储模块所指示的MAC_e PDU。
所述数据组装模块实现数据组装的过程包括数据组装模块依次从命令队列存储 模块中读取数据组装命令,每读取一条命令后,通过接口模块从命令所指示的MAC—d PDU首 地址开始,每次顺序读取n个字节的数据到硬件装置的缓存器,每读取一次数据,将偏移信 息模块中的偏移信息与缓存器中的前8-k比特拼接为一个字节,并顺序存放到MAC—e PDU, 此后以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式顺序存放到MAC_e PDU,直到缓存器中剩余最后k比特数据,用缓存器中的最后k比特数据更新偏移信息模块 中的偏移信息; 完成对最后一条命令所指示的MAC_d PDU的数据组装后,将偏移信息模块中偏移 信息补足为一个字节,顺序存放到MAC—e PDU; 其中,所述n取值范围为1 L,L是硬件装置缓存器的长度。
本发明还公开了一种HSDPA数据组装的装置,包括 接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU 的数据组装命令、MAC头信息比特数、MACj!s PDU首地址;为本装置数据组装模块与外部存 储器之间提供数据信息交互接口 ;完成数据组装后产生中断信号发送给CPU ;
命令队列存储模块,以命令队列的形式存储数据组装命令;
偏移信息存储模块,用于存储偏移信息;
源地址存储模块,用于存储源地址; 数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSDPA数据组装, 从命令队列存储模块读取数据组装命令,通过接口模块从源地址存储器所指示的地址读取 MAC_hs PDU数据,完成数据按比特拼接,通过接口模块将数据存放到数据组装命令所指示 的MAC_d PDU。 所述数据组装模块实现数据组装的过程包括数据组装模块依次读取命令队列存 储模块中的数据组装命令,每读取一条命令后,通过接口模块从源地址存储器所指示的源 地址开始,每次顺序从MAC_hsPDU中读取n个字节的数据到硬件装置的缓存器中,如是第一 次从MACJis PDU读取数据,则将缓存器中的前k比特数据丢弃,否则将偏移信息存储模块 中的偏移信息与缓存器中第一个字节的前k比特数据拼接成一个字节,顺序保存到命令所 指示的MAC—d PDU存储空间;从缓存器中的第k+1比特开始,以8比特为单位依次读取缓 存器中的数据并以字节的形式顺序存放到命令所指示的MAC—d PDU,将缓存器中的最后8-k 比特数据保存到偏移信息存储模块中作为偏移信息;直到完成最后一命令所指示的MAC_d PDU的组装; 其中,所述n取值范围为1 L, L是硬件装置缓存器的长度。 本发明的技术方案通过硬件装置来实现HSPA数据组装,利用硬件逻辑实现对数
据的按比特操作,减少了对数据操作的次数,提高了数据组装的速率,从而提高了HSPA数
据传输的效率;此外,CPU—次性将数据组装的命令发送给硬件装置,由硬件装置完成数据
组装的工作,在一次数据组装完成后CPU才会介入,进行后续处理,HSPA数据组装占用CPU
和总线的时间大大的减少,有效降低了 HSPA数据组装过程对CPU和系统资源的消耗。


图1是现有技术实现HSUPA数据组装搬移过程图 图2是现有技术实现HSDPA数据组装搬移过程图 图3是本发明具体实施例1HSUPA数据组装流程图 图4是本发明具体实施例2HSDPA数据组装流程图 图5是本发明HSUPA数据组装搬移过程图 图6是本发明HSDPA数据组装搬移过程图 图7是本发明具体实施例3HSUPA数据组装的装置结构图 图8是本发明具体实施例4HSDPA数据组装的装置结构图
具体实施例方式
为清楚说明本发明的技术方案,下面给出优选的实施例并结合附图详细说明。
具体实施例1 本实施例为本发明的HSUPA数据组装方法的一个优选实施例,总体流程如附图3 所示 1 、 CPU将MAC头信息字节、MAC头信息比特数、MAC_e PDU首地址及HSUPA数据组 装命令给HSUPA数据组装硬件装置;
其中所述数据组装命令包括MAC—d PDU的首地址及长度,数据组装命令的条数等
于所需组装的MAC_d PDU的个数;; 本实施例中,每个MAC_d PDU长度为336比特; 2、硬件装置将MAC头信息的前m个字节顺序保存到MAC_e PDU的前m个存储单 元;
MXC头信息比特数 其中,所述m二
为向下取整;
8 3、硬件装置将MAC头信息剩余k比特保存作为偏移信息,并本地保存CPU发送过 来的其他信息; 硬件装置将MAC头信息剩余k比特保存作为偏移信息字节的高k比特,将HSUPA 数据组装命令保存到命令队列,将MAC_e PDU首地址+m作为目的地址保存;
其中,偏移长度k = MAC头信息比特数_(mX8); 4、硬件装置依次读取每条数据组装命令,根据命令读取所指示的MAC_d PDU,将其 与偏移信息实施按比特拼接,并以字节为单位顺序存放到MAC—e PDU,用其最后的k比特数 据更新偏移信息; 401、硬件装置从命令队列中读取一条命令,将命令中指示的将要进行组装的MAC_ d PDU首地址作为源地址; 402、判断MAC_d PDU中剩余未读取字节数是否大于等于n,如是则执行步骤403, 否则执行步骤404 ; 其中,所述n的取值范围为1 L, L为硬件装置缓存器长度; 403、硬件装置从源地址开始,顺序读取n个字节的数据到其缓存器中,将源地址
加n,执行步骤405 ; 404、硬件装置读取MAC—d PDU全部剩余未读取字节到其缓存器中; 405、将偏移信息字节的高k比特与缓存器中的前8-k比特拼接为一个字节,存放
到目的地址所指示的存储单元,将目的地址加1 ; 所述拼接方式为将偏移信息字节的高k比特作为字节的前k比特,缓存器中的前 8_k比特作为字节的后8_k ; 406、以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式存放到目
的地址所指示的存储单元,每存放一个字节,将目的地址加1 ; 407、用缓存器中的最后k比特数据更新偏移信息字节高k比特;408、判断从当前MAC_d PDU读取的数据长度是否已达到命令所指示的MAC_d PDU
长度,如是,执行步骤409 ;否则执行步骤402 ; 409、判断命令队列是否为空,如是则执行步骤5,否则执行步骤401 ; 5、硬件装置将偏移信息字节高k比特数据补足为一个字节,存放到目的地址所指
示的存储单元; 具体补足方法为,将偏移信息字节高k比特数据作为字节的前k比特,在其后补充 任意8-k比特数据,形成一个完整的字节。 6、硬件装置产生HSUPA数据组装完成中断,发送给CPU,通知CPU本次HSUPA数据 组装完成。
10
具体实施例2 本实施例为本发明的HSDPA数据组装方法的一个优选实施例,总体流程参加图4。
1、 CPU将MAC头信息比特数、MAC_hs PDU首地址及HSDPA数据组装命令发送给HSDPA数据组装硬件装置; 所述HSDPA数据组装命令包括MAC—d PDU首地址及长度,HSDPA数据组装命令的条数等于MAC_d PDU个数; 本实施例中,每个MAC_d PDU长度为336比特;
2、硬件装置本地保存CPU发送过来的信息;
硬件装置将MAC_hs PDU首地址+m保存作为源地址,将数据组装命令保存到命令
队列; 所述m:
<formula>formula see original document page 11</formula> 3、硬件装置依次读取数据组装命令,从源地址开始,读取MAC_hsPDU数据,根据偏移长度k对读取的数据实施按比特拼接并以字节为单位将拼接后的数据顺序存放到命令所指示的MAC—d PDU ; 所述偏移长度k = MAC头信息比特数_(mX8); 301、从命令队列中读取一条命令,并从命令中获取MAC_d PDU首地址作为目的地址; 302、判断MACJis PDU中剩余未读取字节数是否大于等于n,如是则执行步骤303,否则执行步骤304 ; 303、从源地址指向的存储单元开始顺序读取n个字节的数据到数据组装模块的缓存器中,将源地址加n,执行步骤305 ; 304、从源地址指向的存储单元开始顺序读取MACJis PDU全部剩余未读取字节到硬件装置的缓存器中; 305、判断是否是第一次读取MACJis PDU,如是则执行步骤307,否则执行步骤
306 ; 306、将偏移信息字节的低8-k比特与缓存器的前k比特拼接成一个字节存放到目的地址所指示的存储单元,目的地址加1 ; 所述拼接方式为将偏移信息字节的低8-k比特作为字节的前8-k比特,将缓存器的前k比特作为字节的后k比特。 307、从缓存器第k+l比特开始,以8比特为单位依次读取数据,并以字节的形式顺序存放到目的地址指示的存储单元,每存放一个字节,将目的地址加1 ;
308、将缓存器中剩余的最后8-k比特数据保存到偏移信息字节的低8-k位;
309、判断已存放到当前MAC_d PDU的数据长度是否达到命令所指示的MAC_d PDU长度,如是执行步骤310,否则执行步骤302 ; 310、判断命令队列是否为空,如是执行步骤4、否则执行步骤301 ; 4、硬件装置产生HSDPA数据组装完成中断,发送给CPU,通知CPU本次HSDPA数据
组装完成。 具体实施例3
本实施例为本发明HSUPA数据组装的装置的一个优选实施例,其结构参见图7,包括 接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU的数据组装命令、MAC头信息、MAC头信息比特数、MAC—e PDU首地址;为本装置数据组装模块与外部存储器之间提供数据信息交互接口 ;完成数据组装后产生中断信号发送给CPU ;
命令队列存储模块,以命令队列的形式存储数据组装命令;
偏移信息存储模块,用于存储偏移信息;
目的地址存储模块,用于存储目的地址; 数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSUPA数据组装,从命令队列存储模块读取数据组装命令,通过接口模块读取MAC—d PDU数据,完成数据按比特拼接,通过接口模块将数据存放到目的地址存储模块所指示的MAC_e PDU。
下面介绍一下本具体实施例装置的工作流程 1、CPU将HSUPA数据组装命令、MAC头信息、MAC头信息比特数、MAC—e PDU首地址一次性发送到本装置接口模块; 2、接口模块将MAC头信息的前m个字节从MAC—e PDU首地址开始顺序存放到MAC_e PDU中;
M4C头信息比特数 其中,所述111=
为向下取整;
8 3、接口模块将HSUPA数据组装命令发送到命令队列存储模块以命令队列的方式保存,将MAC头信息剩余的k比特保存到偏移信息存储模块作为偏移信息字节的高k比特,将MAC_e PDU首地址+m保存到目的地址存储模块作为目的地址,将偏移长度k发送给数据组装模块; 其中,所述偏移长度k = MAC头信息比特数_(mX8); 4、数据组装模块从命令队列存储模块中读取一条数据组装命令,将命令中所包含的MAC_d PDU首地址作为源地址; 5、数据组装模块判断MAC_d PDU剩余未读取的字节数是否大于等于n ; 如是,数据组装模块通过接口模块,从源地址所指向的存储单元开始顺序读取n
个字节的数据到其缓存器,将源地址加n ; 否则,数据组装模块通过接口模块,从源地址所指向的存储单元开始顺序将剩余的字节全部读取到其缓存器; 其中,所述n为每次从MAC_d PDU数据中读取的字节数,其取值根据硬件装置的缓存器的长度设定,取值范围为1 L, L是MAC—dPDU的长度,本实施例中,n = L = 8 ;
6、数据组装模块的比特拼接逻辑单元从偏移信息存储模块中读取偏移信息字节的高k比特,与缓存器中的前8-k比特拼接为一个字节,通过接口模块存放到目的地址,将目的地址存储模块中的目的地址加1 ; 所述拼接方式为,将偏移信息字节的高k比特作为字节的前k比特,将缓存器中的前8-k比特作为字节的后8-k比特; 7、此后,比特拼接逻辑单元以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式通过接口模块存放到目的地址,每存放一个字节,将目的地址存储模块中的
12目的地址加1 ; 8、数据组装模块用缓存器中的最后k比特数据更新偏移信息模块中偏移信息字 节高k比特; 9、数据组装模块判断从当前MAC—d PDU读取的数据长度是否已达到命令所指示的 MAC_d PDU长度;如是,执行步骤IO,否则返回步骤5 ; 10、数据组装模块判断命令队列是否为空,如是则将偏移信息模块中偏移信息字
节高k比特补足为一个字节,通过接口模块存放到目的地址;否则返回步骤4 ; 11、数据组装模块通知接口模块数据组装完成,接口模块产生HSUPA数据组装完
成中断,发送给CPU。 具体实施例4 本实施例为本发明HSDPA数据组装的装置的一个优选实施例,其结构参见图8,包 括 接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU 的数据组装命令、MAC头信息比特数、MACj!s PDU首地址;为本装置数据组装模块与外部存 储器之间提供数据信息交互接口 ;完成数据组装后产生中断信号发送给CPU ;
命令队列存储模块,以命令队列的形式存储数据组装命令;
偏移信息存储模块,用于存储偏移信息;
源地址存储模块,用于存储源地址; 数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSDPA数据组装, 从命令队列存储模块读取数据组装命令,通过接口模块从源地址存储器所指示的地址读取 MAC_hs PDU数据,完成数据按比特拼接,通过接口模块将数据存放到数据组装命令所指示 的MAC_d PDU。 下面介绍一下本具体实施例装置的工作流程 1、 CPU将MAC头信息比特数、MAC_hs PDU首地址及HSDPA数据组装命令发送给 HSDPA数据组装硬件装置接口模块; 2、硬件装置接口模块将MAC_hs PDU首地址+m保存到源地址存储模块作为源地 址,将数据组装命令保存到命令队列存储模块,将偏移长度发送给数据组装模块;
M4C头信息比特数 其中,所述m-
为向下取整;
8 3、数据组装模块从命令队列中读取一条命令,并从命令中获取MAC_d PDU首地址 作为目的地址; 4、数据组装模块判断MAC_hs PDU剩余未读取的字节数是否大于等于n ; 如是,通过接口模块从源地址存储模块中的源地址指向的存储单元开始顺序读取
n个字节的数据到其缓存器中,将源地址存储模块中的源地址加n ; 否则、从源地址存储模块中的源地址指向的存储单元开始顺序读取顺序读取全部 剩余未读取字节到数据组装模块的缓存器中; 其中,所述n为每次从MAC_d PDU数据中读取的字节数,其取值根据硬件装置的缓 存器的长度设定,取值范围为1 L, L是MAC—dPDU的长度,本实施例中,n = L = 8 ;
5、数据组装模块判断是否是第一次读取MAC_hs PDU,如是6,否则执行步骤7 ;
6、数据组装模块的比特拼接逻辑单元将偏移信息模块中的偏移信息字节的低8-k 比特与缓存器的前k比特拼接成一个字节存放到目的地址所指示的存储单元,将目的地址 加1 ; 所述偏移长度k = MAC头信息比特数-(mX 8); 所述拼接方式为将偏移信息字节的低8-k比特作为字节的前8-k比特,将缓存器 的前k比特作为字节的后k比特。 7、比特拼接逻辑单元从缓存器第k+1比特开始,以8比特为单位依次读取数据,并 以字节的形式顺序存放到目的地址指示的存储单元,每存放一个字节,将目的地址加1 ;
8、数据组装模块将缓存器中剩余的最后8-k比特数据保存到偏移信息模块中作 为偏移信息字节的低8-k位; 9、数据组装模块判断已存放到当前MAC—d PDU的字节数是否达到命令所指示的 MAC_d PDU长度,如是执行步骤10,否则执行步骤4 ; 10、数据组装模块判断命令队列是否为空,如是执行步骤11、否则执行步骤3 ;
11、数据组装通知接口模块本次HSDPA数据组装完成,接口模块产生HSDPA数据组 装完成中断,发送给CPU。 以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人 员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的 这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些 改动和变型在内。
权利要求
一种媒体接入控制层高速上行分组接入数据组装方法,其特征在于采用硬件装置来实现媒体接入控制MAC层高速上行分组接入HSUPA数据组装;CPU将MAC头信息、MAC头信息比特数、MAC_e协议数据单元MAC_e PDU首地址及HSUPA数据组装命令发送给HSUPA数据组装硬件装置;硬件装置将MAC头信息的前m个字节顺序保存到MAC_e PDU的前m个存储单元;硬件装置将MAC头信息剩余k比特保存作为偏移信息;硬件装置依次读取每条数据组装命令,根据命令读取所指示的MAC_d协议数据单元MAC_d PDU数据,对每个MAC_d PDU,将其与偏移信息实施按比特拼接后以字节为单位顺序存放到MAC_ePDU,用其最后的k比特数据更新偏移信息;硬件装置将最后一条命令所指示的MAC_d PDU的最后k比特数据补足为一个字节,顺序存放到MAC_e PDU,完成本次HSUPA数据组装;其中,所述为向下取整,偏移长度k=MAC头信息比特数-(m×8);所述数据组装命令包括MAC_d PDU的首地址及长度,数据组装命令的条数等于所需组装的MAC_d PDU的个数。F2009101909237C00011.tif,F2009101909237C00012.tif
2. 根据权利要求l所述的方法,其特征在于,所述根据命令读取所指示的MAC—d PDU数 据,对每个MAC_d PDU,将其与偏移信息实施按比特拼接后以字节为单位顺序存放到MAC_e PDU包括:从命令所指示的MAC_d PDU首地址开始,每次顺序读取n个字节的数据到硬件装置的 缓存器,如MAC_d PDU中剩余未读取数据不足n个字节,则读取全部剩余未读取字节到硬件 装置的缓存器;每读取一次数据,将偏移信息与缓存器中的前8-k比特拼接为一个字节,并顺序存放 到MAC—e PDU,此后以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式存放 到MAC_e PDU,直到缓存器中剩余最后k比特数据,用缓存器中的最后k比特数据更新偏移 信息;其中,所述n取值范围为1 L, L是硬件装置缓存器的长度。
3. 根据权利要求1或2所述的方法,其特征在于硬件装置以命令队列的方式存放、读取CPU发送的HSUPA数据组装命令。
4. 一种媒体接入控制层高速下行分组接入数据组装的方法,其特征在于 采用硬件装置来实现媒体接入控制MAC层高速下行分组接入HSDPA数据组装;CPU将MAC头信息比特数、MACJis协议数据单元MAC_hs PDU首地址及HSDPA数据组装 命令发送给HSDPA数据组装硬件装置;硬件装置依次读取数据组装命令,从MACJis PDU首地址+m开始,顺序读取MACJis PDU 数据,根据偏移长度k对读取的数据实施按比特拼接,并以字节为单位将拼接后的数据顺 序存放到命令所指示的MAC_d协议数据单元MAC_d PDU ;存放的数据长度达到数据组装命令所指定的长度后,读取下一条命令,继续顺序读取 MAC_hs PDU数据并实施比特拼接,从命令指定的地址开始以字节的形式顺序存放拼接后的 数据,直到完成最后一条命令所指定MAC—d PDU的存放; 其中,所述npMXC头信息比特数为向下取整,偏移长度k = MAC头信息比特 数-(mX8);所述HSDPA数据组装命令包括MAC_d PDU首地址及长度,HSDPA数据组装命令的条数 等于所需组装的MAC_d PDU个数。
5. 根据权利要求4所述的方法,其特征在于,所述顺序读取MACJis PDU数据,根据偏移 长度k对读取的数据实施按比特拼接,并以字节为单位将拼接后的数据顺序存放到命令所 指示的MAC—dPDU包括从MAC_hs PDU首地址+m开始,每次顺序从MAC_hs PDU中读取n个字节的数据到硬件 装置的缓存器中,如MAC_hs PDU中剩余未读取数据不足n个字节,则读取全部剩余未读取 字节到硬件装置的缓存器中;如是第一次从MACJis PDU读取数据,则将缓存器中前k比特 数据丢弃,否则将偏移信息与缓存器中第一个字节的前k比特数据拼接成一个字节,顺序 保存到命令所指示的MAC_d PDU ;从缓存器中的第k+1比特开始,以8比特为单位依次读取 缓存器中的数据并以字节的形式顺序存放到命令所指示的MAC_d PDU,将缓存器中的最后 8-k比特数据保存作为偏移信息;其中,所述n取值范围为1 L, L是硬件装置缓存器的长度。
6. 根据权利要求4或5所述的方法,其特征在于硬件装置以命令队列的方式存放、读取CPU发送的HSDPA数据组装命令。
7. —种媒体接入控制层高速上行分组接入数据组装的装置,其特征在于,包括 接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU的数据组装命令、MAC头信息、MAC头信息比特数、MAC_e协议数据单元MAC_e PDU首地址;为本 装置数据组装模块与外部存储器之间提供数据信息交互接口 ;完成数据组装后产生中断信 号发送给CPU ;命令队列存储模块,以命令队列的形式存储数据组装命令; 偏移信息存储模块,用于存储偏移信息; 目的地址存储模块,用于存储目的地址;数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSUPA数据组装,从 命令队列存储模块读取数据组装命令,通过接口模块读取MAC_d协议数据单元MAC_d PDU 数据,完成数据按比特拼接,通过接口模块将数据存放到目的地址存储模块所指示的MAC_ ePDU。
8. 根据权利要求7所述的装置,其特征在于,所述数据组装模块实现数据组装的过程 包括数据组装模块依次从命令队列存储模块中读取数据组装命令,每读取一条命令后,通 过接口模块从命令所指示的MAC_d PDU首地址开始,每次顺序读取n个字节的数据到硬件 装置的缓存器,每读取一次数据,将偏移信息模块中的偏移信息与缓存器中的前8-k比特 拼接为一个字节,并顺序存放到MAC—e PDU,此后以8比特为单位,将缓存器中剩余的数据 顺序读出并以字节的形式顺序存放到MAC—ePDU,直到缓存器中剩余最后k比特数据,用缓 存器中的最后k比特数据更新偏移信息模块中的偏移信息;完成对最后一条命令所指示的MAC—d PDU的数据组装后,将偏移信息模块中偏移信息其中,所述m-M4C头信息比特数补足为一个字节,顺序存放到MAC—e PDU;其中,所述n取值范围为1 L, L是硬件装置缓存器的长度。
9. 一种媒体接入控制MAC层高速下行分组接入数据组装的装置,其特征在于,包括 接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU的数据组装命令、MAC头信息比特数、MAC_hs协议数据单元MAC_hs PDU首地址;为本装置数据 组装模块与外部存储器之间提供数据信息交互接口 ;完成数据组装后产生中断信号发送给CPU ;命令队列存储模块,以命令队列的形式存储数据组装命令; 偏移信息存储模块,用于存储偏移信息; 源地址存储模块,用于存储源地址;数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSDPA数据组装,从命 令队列存储模块读取数据组装命令,通过接口模块从源地址存储器所指示的地址读取MAC_ hs PDU数据,完成数据按比特拼接,通过接口模块将数据存放到数据组装命令所指示的 MAC_d协议数据单元MAC_d PDU。
10. 根据权利要求9所述的装置,其特征在于,所述数据组装模块实现数据组装的过程 包括数据组装模块依次读取命令队列存储模块中的数据组装命令,每读取一条命令后,通 过接口模块从源地址存储器所指示的源地址开始,每次顺序从MACJis PDU中读取n个字节 的数据到硬件装置的缓存器中,如是第一次从MACJis PDU读取数据,则将缓存器中的前k 比特数据丢弃,否则将偏移信息存储模块中的偏移信息与缓存器中第一个字节的前k比特 数据拼接成一个字节,顺序保存到命令所指示的MAC—d PDU存储空间;从缓存器中的第k+l 比特开始,以8比特为单位依次读取缓存器中的数据并以字节的形式顺序存放到命令所指 示的MAC—d PDU,将缓存器中的最后8-k比特数据保存到偏移信息存储模块中作为偏移信 息;直到完成最后一命令所指示的MAC_d PDU的组装;其中,所述n取值范围为1 L, L是硬件装置缓存器的长度。
全文摘要
本发明公开了一种MAC层HSPA数据组装的方法,采用硬件装置来实现MAC层HSPA数据组装,CPU将数据组装命令及相关参数发送给硬件装置。在HSUPA数据组装中,硬件装置将MAC头信息中非整数字节长度的偏移信息与MAC_d PDU实施按比特拼接,将多个MAC_d PDU组装成一个MAC_e PDU;在HSDPA数据组装中,硬件装置根据MAC头信息中非整数字节数据的偏移长度,对MAC_hs PDU数据实施按比特拼接,将一个MAC_hs PDU分解、组装成数据组装命令所指示的多个MAC_d PDU;此外本发明还公开了一种MAC层HSUPA数据组装装置及一种MAC层HSDPA数据组装装置;本发明的技术方案,减少了对数据组装过程中数据操作的次数,提高了HSPA数据传输的效率;有效的减少了数据组装过程占用CPU和总线的时间,从而降低了HSPA数据组装过程对CPU和系统资源的消耗。
文档编号H04W28/06GK101715210SQ20091019092
公开日2010年5月26日 申请日期2009年9月22日 优先权日2009年9月22日
发明者何兰, 刘荣, 陈吕洋 申请人:重庆重邮信科通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1