数据发送方法及装置 技术领域 本发明涉及通信领域, 具体而言, 涉及一种数据发送方法及装置。 背景技术 在第 3代移动通信***中, 分布式基站已经取代了传统的宏基站。 分布式基站以 基带和射频分离为特征, 采用光纤或电缆进行拉远,而传统基站的基带和射频单元是一 体化的。 分布式基站的基带单元 (Baseband Unit, 简称为 BBU) 组成一个共享的基带 池,通过远距离传输手段, 比如光纤和电缆连接基带和射频,然后将射频单元(Remote Radio Unit, 简称为 RRU) 放置到各种需要的地方, 分布式基站将两个互相独立的部 分分离开来, 独立开发。
BBU和 RRU之间由光纤连接, 它们之间的接口已经形成了一个标准接口, 目前 主流的接口标准有公共无线接口 (The Common Public Radio Interface, 简称为 CPRI)、 RRU与 BBU之间的接口 (Interface between the RRU and the BBU, 简称为 IR)。 其中 CPRI 接口使用较为广泛, 能够支持全球移动通信 (Global system for Mobile Communication, 简称为 GSM )、 通用移动通信*** ( Universal Mobile Telecommunications System,简称为 UMTS)、码分多址 ( Code Division Multiple Access, 简称为 CDMA)、 长期演进(Long-Term Evolution, 简称为 LTE)等多种制式单模、 混 模的传输。
CPRI协议承载了三种类型的数据: 正交 IQ数据、 控制字和信令, 其中控制字和 信令的传输格式相对固定,而 IQ数据传输非常灵活。 CPRI协议中只规定了 IQ数据的 传输满足 CPRI传输的一个基本帧的速率(3.84Mbps)即可,因此,不同的制式在 CPRI 帧格式中 IQ摆放方式均不一样, 各种不同制式的混模在 CPRI帧格式中的 IQ摆放格 式也不一样, 带来了 IQ数据组解帧实现上的不同。 关于上述 IQ数据的组解帧, 目前大多数实现方案均是在 CPRI传输的一个基本帧 中寻求一种相对合适的 IQ数据摆放格式,然后根据这个摆放格式的特点进行数据组帧 和解帧处理, 并且处理的过程均是采用硬件实现。 但是, 上述方案实现的硬件复杂度较高, 同时, 随着 CPRI协议的发展和***的 升级, 其灵活性受到限制。 当不同制式 (单模或者混模) 的传输带宽发生变化后, 就
会直接影响 CPRI传输的一个基本帧中的 IQ数据摆放格式,进而导致硬件的实现方式 随之而变。 因此, 如何更好的适应协议和***的发展, 适应各种可能的 IQ数据摆放格 式成为关键的技术, 也是提高产品生命力和市场竞争力的主要问题。 发明内容 本发明提供了一种数据发送方法及装置, 以至少解决相关技术中, IQ数据的组解 帧硬件实现较复杂, 且灵活性较差的问题。 根据本发明的一个方面, 提供了一种数据发送方法, 包括: 接收来自于上行链路 的 IQ数据;根据 IQ数据在 CPRI基本帧中的映射,利用存储单元对 IQ数据进行排列; 将控制字与排列后的 IQ数据合并组成 CPRI数据, 并发送 CPRI数据。 优选地, 根据 IQ数据在 CPRI基本帧中的映射, 利用存储单元对 IQ数据进行排 列包括: 对 IQ数据进行采样; 根据 IQ数据在 CPRI基本帧中的映射, 将采样到的一 个时钟周期的 IQ数据中的每个比特分别提取出来;分别将每个比特存储到不同的存储 单元; 指示硬件在一个时钟周期内从不同的存储单元中读取同一载波的所有比特组成 载波数据。 优选地, 指示硬件在一个时钟周期内从不同的存储单元中读取同一载波的所有比 特组成载波数据包括: 通过寄存器指示硬件在一个时钟周期内从不同的存储单元中读 取同一载波的所有比特组成载波数据。 优选地, 存储单元是随机存取器 RAM。 根据本发明的另一个方面, 提供了一种数据发送装置, 包括: 接收模块, 设置为 接收来自于上行链路的 IQ数据; 排列模块, 设置为根据 IQ数据在 CPRI基本帧中的 映射, 利用存储单元对 IQ数据进行排列; 合并模块, 设置为将控制字与排列后的 IQ 数据合并组成 CPRI数据; 发送模块, 设置为发送 CPRI数据。 根据本发明的一个方面, 提供了一种数据发送方法, 包括: 接收到 CPRI数据, 将 CPRI数据中的控制字与 IQ数据分离;构造与 IQ数据在 CPRI基本帧中的映射相同 的信息, 利用存储单元对 IQ数据进行排列; 发送排列后的 IQ数据。 优选地, 构造与 IQ数据在 CPRI基本帧中的映射相同的信息包括: 根据当前制式 和位宽构造与 IQ数据在 CPRI基本帧中的映射相同的信息。
优选地, 利用存储单元对 IQ数据进行排列包括: 对 IQ数据进行采样; 指示硬件 将采样到的一个时钟周期的 IQ数据中的每个比特分别提取出来;分别将每个比特写入 不同的存储单元;在一个时钟周期内从不同的存储单元中读取出同一载波的所有比特, 将所有比特组成载波数据。 优选地, 从不同的存储单元中读取出同一载波的所有比特包括: 通过寄存器指示 硬件在一个时钟周期内从不同的存储单元中读取出同一载波的所有比特。 优选地, 存储单元是 RAM。 根据本发明的另一个方面, 提供了一种数据发送装置, 包括: 接收模块, 设置为 接收 CPRI数据; 分离模块, 设置为将 CPRI数据中的控制字与 IQ数据分离; 构造模 块, 设置为构造与 IQ数据在 CPRI基本帧中的映射相同的信息; 排列模块, 设置为利 用存储单元对 IQ数据进行排列; 发送模块, 设置为发送排列后的 IQ数据。 通过本发明, 利用存储单元将 IQ数据进行排列, 并提取排列后的数据 CPRI组帧 操作, 硬件处理简单, 实现复杂度小, ***升级, 多种制式 (单模或者混模) 的传输 带宽的变化和升级, 只会在软件层面上发生变动, 不会影响硬件的实现, 具有很好的 灵活性。 附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图 中: 图 1是根据本发明实施例的数据发送方法的流程图一; 图 2是根据本发明实施例的数据发送装置的结构框图一; 图 3是根据本发明实施例的数据发送方法的流程图二; 图 4是根据本发明实施例的数据发送装置的结构框图二; 图 5是根据本发明优选实施例的下行解帧的流程示意图; 图 6是根据本发明优选实施例的下行组帧的流程示意图。
具体实施方式 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中的特征可以相 互组合。 下面将参考附图并结合实施例来详细说明本发明。 目前无线产品中各种制式并存, 由于制式、 带宽以及光口速率的不同, IQ数据在 CPRI帧中摆放格式也不同。 为了适应上述不同, CPRI的 IQ数据组解帧的通用性、灵 活性以及设计复杂度的问题被提出。 本发明实施例提供了一种数据发送方法,应用于 IQ数据的组帧过程。图 1是根据 本发明实施例的数据发送方法的流程图一,如图 1所示,包括如下的步骤 S102至步骤 S106。 步骤 S102, 接收来自于上行链路的 IQ数据。 步骤 S104, 根据 IQ数据在 CPRI基本帧中的映射, 利用存储单元对 IQ数据进行 排列。 步骤 S106,将控制字与排列后的 IQ数据合并组成 CPRI数据,并发送 CPRI数据。 相关技术中, IQ数据的组解帧硬件实现较复杂,且灵活性较差。本发明实施例中, 利用存储单元将 IQ数据进行排列, 并提取排列后的数据 CPRI组帧操作, 硬件处理简 单, 实现复杂度小, ***升级, 多种制式(单模或者混模) 的传输带宽的变化和升级, 只会在软件层面上发生变动, 不会影响硬件的实现, 具有很好的灵活性。 步骤 S104包括: 对 IQ数据进行采样; 根据 IQ数据在 CPRI基本帧中的映射, 将 采样到的一个时钟周期的 IQ数据中的每个比特分别提取出来;分别将每个比特存储到 不同的存储单元; 指示硬件在一个时钟周期内从不同的存储单元中读取同一载波的所 有比特组成载波数据。 保证在一个时钟周期内将同一载波的比特全部读取出来, 从而 可以组成载波数据进行传输。 优选地, 指示硬件在一个时钟周期内从不同的存储单元中读取同一载波的所有比 特组成载波数据包括: 通过寄存器指示硬件在一个时钟周期内从不同的存储单元中读 取同一载波的所有比特组成载波数据。 优选地,上述存储单元可以是随机存取器(Random Access Memory,简称为 RAM)。
对应于上述数据发送方法(组帧), 本发明实施例还提供了一种数据发送装置, 图 2是根据本发明实施例的数据发送装置的结构框图一, 如图 2所示,包括接收模块 22、 排列模块 24、 合并模块 26和发送模块 28。 下面对其结构进行详细描述。 接收模块 22, 设置为接收来自于上行链路的正交 IQ数据; 排列模块 24, 连接至 接收模块 22, 设置为根据 IQ数据在 CPRI基本帧中的映射, 利用存储单元对 IQ数据 进行排列; 合并模块 26, 连接至排列模块 24, 设置为将控制字与排列后的 IQ数据合 并组成 CPRI数据; 发送模块 28, 连接至合并模块 26, 设置为发送 CPRI数据。 排列模块 24包括: 采样单元, 设置为对 IQ数据进行采样; 提取单元, 连接至采 样单元,设置为根据 IQ数据在 CPRI基本帧中的映射,将采样到的一个时钟周期的 IQ 数据中的每个比特分别提取出来; 存储单元, 连接至提取单元, 设置为分别将每个比 特存储到不同的存储单元; 指示单元, 连接至存储单元, 设置为指示硬件在一个时钟 周期内从不同的存储单元中读取同一载波的所有比特组成载波数据。 优选地, 指示单元通过寄存器指示硬件在一个时钟周期内从不同的存储单元中读 取同一载波的所有比特组成载波数据。 优选地, 上述存储单元可以是 RAM。 本发明还提供了一种数据发送方法,应用于 IQ数据的解帧过程。图 3是根据本发 明实施例的数据发送方法的流程图二,如图 3所示,包括如下的步骤 S302至步骤 S306。 步骤 S302, 接收到 CPRI数据, 将 CPRI数据中的控制字与 IQ数据分离。 步骤 S304,构造与 IQ数据在 CPRI基本帧中的映射相同的信息,利用存储单元对 IQ数据进行排列。 步骤 S306, 发送排列后的 IQ数据。 相关技术中, IQ数据的组解帧硬件实现较复杂,且灵活性较差。本发明实施例中, 利用存储单元将 IQ数据进行排列, 并发送排列后的 IQ数据, 硬件处理简单, 实现复 杂度小, ***升级, 多种制式 (单模或者混模) 的传输带宽的变化和升级, 只会在软 件层面上发生变动, 不会影响硬件的实现, 具有很好的灵活性。 优选地, 构造与 IQ数据在 CPRI基本帧中的映射相同的信息包括: 根据当前制式 和位宽构造与 IQ数据在 CPRI基本帧中的映射相同的信息。
步骤 S304包括: 对 IQ数据进行采样; 指示硬件将采样到的一个时钟周期 IQ数 据中的每个比特分别提取出来; 分别将每个比特写入不同的存储单元; 在一个时钟周 期内从不同的存储单元中读取出同一载波的所有比特, 将所有比特组成载波数据。 优选地, 从不同的存储单元中读取出同一载波的所有比特包括: 通过寄存器指示 硬件在一个时钟周期内从不同的存储单元中读取出同一载波的所有比特。 优选地, 上述存储单元可以是 RAM。 对应于上述数据发送方法(解帧), 本发明实施例还提供了一种数据发送装置, 图 4是根据本发明实施例的数据发送装置的结构框图二, 如图 4所示,包括接收模块 42、 分离模块 44、构造模块 46、排列模块 48和发送模块 49。下面对其结构进行详细描述。 接收模块 42, 设置为接收 CPRI数据; 分离模块 44, 连接至接收模块 42, 设置为 将 CPRI数据中的控制字与 IQ数据分离; 构造模块 46, 连接至分离模块 44, 设置为 构造与 IQ数据在 CPRI基本帧中的映射相同的信息; 排列模块 48, 连接至构造模块 46, 设置为利用存储单元对 IQ数据进行排列; 发送模块 49, 连接至排列模块 48, 设 置为发送排列后的 IQ数据。 优选地, 构造模块 46根据当前制式和位宽构造与 IQ数据在 CPRI基本帧中的映 射相同的信息。 排列模块 48包括: 采样单元, 设置为对 IQ数据进行采样; 指示单元, 连接至采 样单元,设置为指示硬件将采样到的一个时钟周期的 IQ数据中的每个比特分别提取出 来; 写入单元, 连接至指示单元, 设置为分别将每个比特写入不同的存储单元; 读取 单元, 连接至写入单元, 设置为在一个时钟周期内从不同的存储单元中读取出同一载 波的所有比特, 组成单元, 连接至读取单元, 设置为将所有比特组成载波数据。 优选地, 从不同的存储单元中读取出同一载波的所有比特包括: 通过寄存器指示 硬件在一个时钟周期内从不同的存储单元中读取出同一载波的所有比特。 优选地, 上述存储单元可以是 RAM。 综上所述, 本发明实施例中软件需要事先得到各种制式(包括混模)、位宽及光口 速率的 CPRI帧格式中 IQ数据摆放的表格, 以及对于同一载波的比特 (解帧)和需要 同一个时钟周期输出的比特 (组帧) 只能存储在不同的 RAM中, 而不能存储在某一 个 RAM的不同地址上。
上述实施例使得 CPRI接口能够不受制式和 IQ数据摆放的限制来承载 IQ数据进 行传输。 上述实施例给出了基于软硬件协同实现 CPRI组解帧的流程, 是一种软件主 导 CPRI组解帧的解决方案, 其最小颗粒度为单比特。 软件根据不同制式、 带宽和光 口速率在 CPRI帧格式中的摆放格式, 通过配置寄存器, 将 IQ中的每个比特存入存储 单元中; 同样是通过软件配置寄存器,从存储单元中提取不同的比特组成一组 IQ进行 解帧输出或者 CPRI组帧操作。 为了使本发明的技术方案和实现方法更加清楚, 下面将结合优选的实施例对其实 现过程进行详细描述。 基于上述描述, 本发明实施例基于软硬件协同实现 CPRI的 IQ数据组解帧, 主要 分为两个流程: 下行解帧流程和上行组帧流程。下面分别结合优选的实施例加以描述。
( 1 ) 下行解帧流程 下行解帧流程, 即从接收的来自于光纤上的 CPRI 的帧格式数据中解析出所需的 IQ数据的过程。 其处理流程如图 5所示。 第一步: 根据软件配置的 CPRI速率信息, 将控制字与 IQ数据分离。 第二步: 软件根据当前制式和位宽构造一个与 CPRI帧格式中 IQ数据摆放位置相 同的表, 同时得知 IQ数据的每个比特 (bit) 的载波信息; 软件根据该表告知硬件将 采样到的一个时钟周期的 IQ数据中的每个比特分别提取出来。 第三步: 将提取出来的不同载波的每个比特, 存入到不同的 RAM (存储单元)或 RAM的某个单元中。需要说明的是,存储时有一个关键限制是同一个载波的不同比特, 只能存储在不同的 RAM中,而不能存储在某一个 RAM的不同地址上,这是为了保证 同一载波的所有比特能在一个时钟周期内读出来。 第四步: 由于硬件存储的信息是由软件告知的,那么软件完全知道 IQ数据的每个 比特存储的相关信息, 从而软件可通过寄存器告知硬件从不同 RAM的地址中读取出 同一个载波的比特, 将其拼接成一个有效的载波数据输出。 解帧处理流程结束。 在上述处理流程中,软件通过 CPRI帧格式中 IQ数据摆放的表格来控制硬件将 IQ 数据中的每个比特写入规定的 RAM单元,并按照软件配置的要求从 RAM单元中读出 来。 软件需要获得 CPRI帧格式中 IQ数据摆放的格式信息, 该信息会受到光口速率、 制式、 ***传输带宽的因素影响, 但是在一种固定应用场景下, 上述因素是确定的,
所以在***上电前或者上电开始通过信令的传输软件就可以得知 CPRI帧格式中 IQ数 据摆放的格式信息。 另外, 由于传输是基于 CPRI 的基本帧格式进行传输的, 所以软件所获得的信息 就是一个基本帧中 IQ数据的摆放格式,而一个基本帧的大小是由光口速率决定的,所 以这里需要满足***支持的光口最大速率。 对于硬件部分, 核心组件是多个单比特位宽的 RAM以及相关的存储控制电路。 单比特位宽的 RAM的数据量要求至少存储一个 CPRI基本帧的数据量, 因此, 单比特 位宽的 RAM的个数是一次采样的数据的比特数,而单比特位宽的 RAM的深度是在某 一种速率下一个基本帧所包含的采样点数,相当于是软件中 IQ数据摆放格式在硬件上 的一个映射。 因此, 该单比特位宽的 RAM的资源取决于***支持的光口最大速率。 需要说明的是, 多比特位宽的 RAM也可实现上述方案, 只要在一个时钟周期内读出 同一载波的所有比特即可, 但是多比特位宽的 RAM应用于上述流程, 实现起来较复 杂。
(2) 上行组帧流程 上行组帧流程是下行解帧流程的逆过程。 接收来自于上行链路的 IQ 数据, 根据
CPRI的帧格式进行 IQ数据排列,最后按照当前光口的速率完成控制字与 IQ数据的合 并输出的过程。 其处理流程如图 6所示。 第一步:上行输入的每一个时钟周期的 IQ数据的每个比特都是同一载波的,软件 根据 CPRI帧格式中 IQ摆放位置, 将采样到的一个时钟周期的 IQ数据中的每个比特 分别提取出来。 第二步:将提取出来的不同载波的每个比特,存入到不同的 RAM或 RAM的某个 单元中。 需要说明的是, 存储时有一个关键限制是属于 CPRI的同一个 AxC (天线载 波)的不同比特, 只能存储在不同的 RAM中, 而不能存储在某一个 RAM的不同地址 上。 通过存储的控制, 完成了上行输入的 IQ数据到一个 CPRI基本帧中的映射。 第三步: 由于硬件存储的信息是由软件告知的,那么软件完全知道 IQ的每个比特 存储的相关信息, 从而软件即可通过寄存器告知硬件从不同 RAM的地址中读取出一 个时钟周期的比特拼接成一个有效的 CPRI的 AxC数据输出。 第四步: 根据软件配置的 CPRI速率信息, 将控制字与 IQ数据合并, 组成 CPRI 的帧格式输出。 组帧处理流程结束。
在上述组帧处理流程中, 关键的信息均是来自于软件配置, 核心技术与解帧处理 一致。 对于软件来说, 软件通过 CPRI帧格式中 IQ数据摆放的表格来控制硬件将 IQ 数据中的每个比特写入规定的 RAM单元,并按照软件配置的要求从 RAM单元中读出 来。 对于硬件部分, 核心组件是多个单比特位宽的 RAM以及相关的存储控制电路。 单比特位宽的 RAM的个数, RAM深度同解帧处理中描述一致。 需要说明的是, 在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的 计算机***中执行, 并且, 虽然在流程图中示出了逻辑顺序, 但是在某些情况下, 可 以以不同于此处的顺序执行所示出或描述的步骤。 综上所述, 根据本发明的上述实施例, 提供了一种数据发送方法及装置。 当 CPRI 的最大速率确定之后, 对 IQ在 CPRI帧格式中的摆放没有限制, 具有很好的通用性; 此方案硬件处理简单, 实现复杂度小; ***升级, 多种制式 (单模或者混模) 的传输 带宽的变化和升级, 只会在软件层面上发生变动, 不会影响硬件的实现, 具有很好的 灵活性。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现, 从而, 可以 将它们存储在存储装置中由计算装置来执行, 或者将它们分别制作成各个集成电路模 块, 或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。 这样, 本发明 不限制于任何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。