[0051] 为了更好的说明本发明的技术方案,下面结合附图对本发明的具体实施方式进行详细描述。
[0052] 本发明的具体实施方式中,构建的PDDU的结构如图1所示,包括PDDU头和分组数据存储单元;所述分组数据存储单元用于存储下行分组数据;所述PDDU存储空间的长度=PDDU头长度+分组数据存储单元长度;其中,分组数据存储单元长度=PPP头长度+SDU长度+PPP尾长度;
[0053] 其中,所述PDDU头包括:PDDU首地址存储单元,用于存储PDDU存储空间的首地址;偏移地址存储单元,用于存储下行分组数据在分组数据存储单元的起始存储地址距离所述PDDU存储空间首地址的偏移量;分组数据长度存储单元,用于存储分组数据存储单元中存储的下行分组数据的长度;
[0054] 分组数据长度存储单元的长度和偏移地址存储单元长度可根据具体通信系统的要求进行设置,例如,对GMR-1卫星通信系统,分组数据长度存储单元可以设置为2个字节,偏移地址存储单元长度可设置为1或2个字节;
[0055] 具体实施例
[0056] 本实施例为本发明无线Modem分组数据处理方法中下行分组数据处理的一种优选实施方式。
[0057] 参见图2,如图2所示,本实施例的下行分组数据处理方法包括:
[0058] RLC从MAC模块接收包含下行分组数据的PDU;将接收到的PDU组装为SDU;
[0059] S101、RLC模块申请PDDU存储空间;
[0060] 本实施例中,所述PDDU存储空间的长度=PDDU头长度+分组数据存储单元长度;其中,分组数据存储单元长度=PPP头长度+SDU长度+PPP尾长度;
[0061] S102、RLC模块设置第一数据长度和第一偏移地址;
[0062] 第一数据长度=SDU的长度;
[0063] 第一偏移地址=PDDU头长度+PPP头长度;
[0064] S103、RLC模块将所述SDU写入所述分组数据存储单元;
[0065] 所述SDU写入的起始地址=所述PDDU存储空间首地址+第一偏移地址;
[0066] S104、RLC模块发送所述第一数据长度和第一偏移地址给PDCP模块;
[0067] 作为一种优选实现方案,本实施例中,本步骤可以进一步包括:
[0068] S1041、RLC模块将所述第一数据长度保存到所述分组数据长度存储单元,将所述第一偏移地址保存到所述偏移地址存储单元;
[0069] S1042、RLC模块发送所述PDDU的首地址给所述PDCP模块;
[0070] 本实施例中,步骤S104也可以采用其他方式实现,本发明对此没有限制;
[0071] 例如,RLC模块也可以直接将所述第一数据长度、所述第一偏移地址和所述PDDU的首地址一起发送给PDCP模块。
[0072] 例如,步骤S101中,RLC模块完成PDDU存储空间申请后,将PDDU存储空间首地址发送给PDCP模块、接口适配模块、接口驱动模块;步骤S104中,RLC模块将所述第一数据长度保存到所述分组数据长度存储单元,将所述第一偏移地址保存到所述偏移地址存储单元,RLC模块发送中断通知PDCP模块,PDCP模块从所述PDDU存储空间中获取所述第一偏移地址和第一数据长度。
[0073] S105、PDCP模块设置第二数据长度和第二偏移地址;
[0074] 第二数据长度=第一数据长度-PDCP头长度;
[0075] 第二偏移地址=第一偏移地址+PDCP头长度;
[0076] S106、PDCP模块发送所述第二偏移地址和第二数据长度给接口适配模块;
[0077] 作为一种优选实现方案,本实施例中,本步骤可以进一步包括:
[0078] S1061、PDCP模块用所述第二数据长度更新所述分组数据长度存储单元,用所述第二偏移地址更新所述偏移地址存储单元;
[0079] S1062、PDCP模块发送所述PDDU的首地址给所述接口适配模块。
[0080] 本实施例中,步骤S106也可以采用其他方式实现,本发明对此没有限制;
[0081] 例如,PDCP模块也可以直接将所述第二数据长度、所述第二偏移地址和所述PDDU的首地址一起发送给接口适配模块。
[0082] 例如,步骤S101中,RLC模块完成PDDU存储空间申请后,将PDDU存储空间首地址发送给PDCP模块、接口适配模块、接口驱动模块;步骤S106中,PDCP模块用所述第二数据长度更新所述分组数据长度存储单元,用所述第二偏移地址更新所述偏移地址存储单元,PDCP模块发送中断通知接口适配模块,接口适配模块从所述PDDU存储空间中获取所述第二偏移地址和第二数据长度。
[0083] S107、接口适配模块设置第三偏移地址和第三数据长度;
[0084] S1071、接口适配模块判断主机与无线Modem的连接方式,如果连接方式为拨号连接执行步骤S1072,如果连接方式为虚拟以太网连接,执行步骤S1074;
[0085] S1072、接口适配模块设置第三偏移地址=第二偏移地址-PPP头长度,设置第三数据长度=第二数据长度+PPP头长度+PPP尾长度;
[0086] S1073、接口适配模块将PPP头和PPP尾写入分组数据存储单元,执行步骤S108;
[0087] 所述PPP头写入的起始地址=PDDU存储空间首地址+第三偏移地址,所述PPP尾写入的起始地址=PDDU存储空间首地址+第三偏移地址+PPP头长度+第二数据长度;
[0088] S1074、如果主机与无线Modem的连接方式为虚拟以太网连接,接口适配模块设置第三偏移地址=第二偏移地址,设置第三数据长度=第二数据长度;
[0089] S108、接口适配模块发送所述第三偏移地址和第三数据长度给接口驱动模块;
[0090] 作为一种优选实现方案,本实施例中,本步骤可以进一步包括:
[0091] S1081、接口适配模块用所述第三数据长度更新所述分组数据长度存储单元,用所述第三偏移地址更新所述偏移地址存储单元;
[0092] S1082、接口适配模块发送所述PDDU的首地址给所述接口驱动模块。
[0093] 本实施例中,步骤S108也可以采用其他方式实现,本发明对此没有限制;
[0094] 例如,接口适配模块模块也可以直接将所述第三数据长度、所述第三偏移地址和所述PDDU的首地址一起发送给接口驱动模块。
[0095] 例如,步骤S101中,RLC模块完成PDDU存储空间申请后,将PDDU存储空间首地址发送给PDCP模块、接口适配模块、接口驱动模块;步骤S108中,接口适配模块用所述第三数据长度更新所述分组数据长度存储单元,用所述第三偏移地址更新所述偏移地址存储单元,接口适配模块发送中断通知接口驱动模块,接口驱动模块从所述PDDU存储空间中获取所述第三偏移地址和第三数据长度。
[0096] S109、接口驱动模块将所述分组数据存储单元中保存的下行分组数据转换为下行数据发送到主机。
[0097] 本实施例中,本步骤进一步包括:
[0098] S1091、接口驱动模块判断主机与无线Modem的连接方式,如果连接方式为拨号连接,执行步骤S1092;如果连接方式为虚拟以太网连接,执行步骤S1093;
[0099] S1092、接口驱动模块对所述下行分组数据进行加入逃逸字节操作,获得下行数据,执行步骤S1094;
[0100] S1093、接口驱动模块将所述分组数据存储单元保存的下行分组数据作为下行数据;
[0101] S1094、接口驱动模块发送下行数据给主机。
[0102] 本具体实施例中,通过构建PDDU,无线Modem在下行分组数据处理过程中仅需要在RLC模块接收到MAC模块发送的PDU后申请一次存储空间用于存储SDU;此后,RLC模块和PDCP模块、PDCP模块和接口适配模块、接口适配模块和接口驱动模块之间在数据传输过程中均无需拷贝、存储全部分组数据,各模块之间也只需要传递少量的地址信息,减少了下行分组数据处理过程中数据拷贝和保存、存储空间申请和释放的操作次数,有效的提高了下行分组数据处理过程的效率。
[0103] 需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。