掌桥专利:专业的专利平台
掌桥专利
首页

报文处理方法、O-RU和计算机可读存储介质

文献发布时间:2023-06-19 19:28:50


报文处理方法、O-RU和计算机可读存储介质

技术领域

本申请实施例涉及通信技术领域,特别涉及一种报文处理方法、O-RU和计算机可读存储介质。

背景技术

伴随着通信系统的发展,陆续出现了多种前传接口协议,例如:通用公共无线接口(Common Public Radio Interface,CPRI)协议、eCPRI协议、开放无线接入网(Open RadioAccess Network, ORAN)协议等。ORAN前传接口C面协议为了支持5G的混合参数集传输,明确了多种参数集共存时资源块(Resource Block,RB)序号的排列方式和slot时隙定时编号的统一编码方式,但目前还不存在不同子载波间隔的天线传输时如何统一调度的技术手段,导致难以适应不同参数集混合传输的场景。

发明内容

本申请实施例的主要目的在于提出一种报文处理方法、O-RU和计算机可读存储介质,使得可以适应不同参数集混合传输的场景。

为至少实现上述目的,本申请实施例提供了一种报文处理方法,应用于开放无线接入网射频单元O-RU,包括:根据天线接收的上行链路数据得到频域IQ数据,并将所述频域IQ 数据存入预设的存储空间中;接收开放无线接入网分布单元O-DU下发的控制面报文,对所述控制面报文进行解析得到控制面参数,并将所述控制面参数缓存入队列组中与所述控制面参数对应的队列中;其中,队列组中的M个队列分别用于存储M个符号的控制面参数,M个符号与M个队列一一对应;读取缓存的所述控制面参数,并根据读取的所述控制面参数,生成用户面报文传输调度命令;根据所述用户面报文传输调度命令,从所述存储空间中读取频域IQ数据;根据读取的频域IQ数据,得到待发送的上行用户面报文,并将所述上行用户面报文发送给O-DU。

为实现上述目的,本申请实施例还提供了一种O-RU,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的报文处理方法。

为至少实现上述目的,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的报文处理方法。

本申请实施例提供的报文处理方法,对于不同参数集混合传输的场景,提供了不同天线数据之间的调度策略。通过设置分别用于存储M个符号的控制面参数的队列组,不同符号的控制面参数对应不同的队列,即支持对于不同控制面参数的缓存。由于子载波间隔为控制面参数中的一个参数,不同控制面参数对应不同的子载波间隔,不同的子载波间隔对应不同的参数集,从而使得本申请实施例可以应用在不同参数集混合传输的场景下。在不同参数集混合传输的场景下,通过将解析得到的控制面参数缓存入队列组中与控制面参数对应的队列中,即不同的控制面参数可以被缓存入队列组中的不同队列中,以便在读取出不同队列中缓存的控制面参数之后,产生访问数据缓存的传输命令即生成用户面报文传输调度命令。可以理解的是,每读取一个队列中缓存的控制面参数,就可以生成一个或多个用户面报文传输调度命令,从而可以按照用户面报文传输调度命令的序列依次从存储空间中读取频域IQ数据,以得到待发送的上行用户面报文,并将上行用户面报文发送给O-DU,使得可以提高不同参数集混合传输的场景下报文传输的时效性。

附图说明

图1是本申请实施例中提到的报文处理方法的流程示意图;

图2是本申请实施例中提到的将控制面参数缓存入与控制面参数对应的队列中的实现过程的流程示意图;

图3是本申请实施例中提到的应用层分片的示意图;

图4是本申请实施例中提到的实现报文传输方法的结构图;

图5是本申请实施例中提到的下行O-RU接收方向上的报文处理的流程示意图;

图6是本申请实施例中提到的上行O-RU发送方向上的报文处理的流程示意图;

图7是本申请实施例中提到的O-RU的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

为便于对本申请实施例的理解,下面首先对本申请中所涉及的相关技术进行简要说明:

在分布式基站(Distributed Radio Access NetworkRadio,D-RAN)系统和集中化无线接入 Centralized RAN,也可以指Cloud-RAN中,远端射频单元(Remote Radio Unit,RRU)通常被安装在需要覆盖的区域,与基站处理单元(Base Band Unit,BBU)之间通过一根或多根光纤进行通信。这种方案RRU无限接近于天线,大大减少了通过馈线(天线与RRU的连接) 的衰减;同时BBU迁移并集中于中心机房,形成BBU基带池;而中心机房与RRU通过光纤链路组成的前传网络连接,非常有利于小区间协同工作,减少了传输中造成的衰减,节省成本。

伴随着通信系统的发展,陆续出现了多种前传接口协议,例如:CPRI协议、IR协议,eCPRI协议、RoE协议、ORAN协议等。其中ORAN协议是由中国移动等运营商于2018年提出来的,最初是想通过把RAN系统中非实时的应用软件从专用硬件上剥离开来,降低整个 RAN系统设备一次性投入的成本。因此,ORAN首要的实施部署的目标是5G RAN系统中的各个网元。ORAN是在5G 3GPP已有的各个网元接口协议基础之上进行了扩展,以支持新的开放性的要求,ORAN协议包括:4G/5G的3GPP协议;

ORAN为开放性和自能性目标新增加的协议和规范。其中,ORAN前传接口的协议分为控制面(Control Plane,C面)协议、用户面(User Plane,U面)协议、同步面(Synchronization Plane,S面)协议和管理面(Management Plane,M面)协议。如果不考虑扩展循环前缀 (cyclickprefic,CP)和多媒体广播多播业务(Multimedia BroadcastMulticast Service,MBMS), 4G LTE空口只有一种物理层波形,即子载波间隔只能是15KHz。而5G业务使用的频段的跨度很大,部署方式也多种多样,因此需要一个可以灵活扩展的正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)参数集(numerology)。3GPP Release 15协议为 5G空口规定了5种物理层波形,对应的子载波间隔分别为15KHz、30KHz、60KHz、120KHz 和240KHz。

不同的参数集的时隙和OFDM符号在时域是对齐的,这对于时分双工(TimeDivision Duplexing,TDD)网络有着重要的意义。参数集的选择取决于很多因素,包括部署的方式(频分双工或者时分双工)、载频、业务需求(时延、可靠性和数据速率)、硬件品质(本地晶振的相位噪声)、移动性,以及实现复杂性。

在15KHz的子载波间隔的基础上,设计出更多的大子载波间隔的numerology后,5GNR 就能为用户提供对时延有苛刻要求的业务,如URLLC业务——这种能力是LTE无法提供的。在所有的numerology中,每个时隙中的OFDM符号数量都一样(14OFDM符号/时隙),简化了调度机制和参考信号设计。OFDM符号的持续时间与子载波间隔成反比,使用大子载波间隔时,时延就减少了。

另外,OFDM调制器的最大快速傅氏变换(Fast Fourier Transformation,FFT)采样数和子载波间隔决定了信道带宽,因此大子载波间隔的numerology需要较大的信号带宽,小子载波间隔的numerology则相反。5G NR使用的频段可大致分成两段:小于6GHz的频段(sub 6GHz),频率范围是450MHz——6000MHz,和毫米波频段(mmWave),频率范围是24250MHz ——52600MHz。在sub 6GHz频段,最大带宽是100MHz;在mmWave频段,最大带宽可以达到400MHz。因此,子载波间隔为15KHz和30KHz的numerology只能用在sub 6GHz频段,子载波间隔为120KHz的numerology只能用在毫米波频段,而子载波间隔为60KHz的numerology则两类频段都能使用。

本申请的发明人通过研究发现:目前ORAN前传接口C面协议为了支持5G的混合参数集传输,明确了多种参数集共存时RB序号的排列方式和slot时隙定时编号的统一编码方式,以便不同参数集混合传输时能够复用C面报文格式。但是ORAN协议并没有给出不同参数集混合传输时不同天线数据之间如何调度,如何实现混合参数集中各个天线的链路时延补偿,容易导致报文传输的时效性较差。基于此,本申请实施例中提供了一种报文处理方法,应用于开放无线接入网射频单元(Open Radio Access NetworkRadio Unit,O-RU);其中,O-RU 也可以理解为开放无线接入网(Open Radio Access Network,ORAN)中的射频拉远单元。本申请实施例中的报文处理方法可以适用于5G协议混合参数集场景下无线基站与射频拉远单元之间报文传输。无线基站也可以理解为开放无线接入网分布单元(Open RadioAccess NetworkDistributed Unit,O-DU)。下面对本实施例的报文处理方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

本实施方式中的报文处理方法的流程图可以如图1所示,包括:

步骤101:根据天线接收的上行链路数据得到频域IQ数据,并将频域IQ数据存入预设的存储空间中;

步骤102:接收O-DU下发的控制面报文,对控制面报文进行解析得到控制面参数,并将控制面参数缓存入队列组中与所述控制面参数对应的队列中;其中,队列组中的M个队列分别用于存储M个符号的控制面参数,M个符号与M个队列一一对应;

步骤103:读取缓存的控制面参数,并根据读取的所述控制面参数,生成用户面报文传输调度命令;

步骤104:根据用户面报文传输调度命令,从存储空间中读取频域IQ数据;

步骤105:根据读取的频域IQ数据,得到待发送的上行用户面报文,并将上行用户面报文发送给O-DU。

本申请实施例中,对于不同参数集混合传输的场景,提供了不同天线数据之间的调度策略。通过设置分别用于存储M个符号的控制面参数的队列组,不同符号的控制面参数对应不同的队列,即支持对于不同控制面参数的缓存。由于子载波间隔为控制面参数中的一个参数,不同控制面参数对应不同的子载波间隔,不同的子载波间隔对应不同的参数集,从而使得本申请实施例可以应用在不同参数集混合传输的场景下。在不同参数集混合传输的场景下,通过将解析得到的控制面参数缓存入队列组中与控制面参数对应的队列中,即不同的控制面参数可以被缓存入队列组中的不同队列中,以便在读取出不同队列中缓存的控制面参数之后,产生访问数据缓存的传输命令即生成用户面报文传输调度命令。可以理解的是,每读取一个队列中缓存的控制面参数,就可以生成一个或多个用户面报文传输调度命令,从而可以按照用户面报文传输调度命令的序列依次从存储空间中读取频域IQ数据,以得到待发送的上行用户面报文,并将上行用户面报文发送给O-DU,使得可以提高不同参数集混合传输的场景下报文传输的时效性。

在步骤101中,空口天线接收到用户侧设备的上行链路数据之后,O-RU可以将该上行链路数据经过中射频时域处理,得到时域同相正交(in-phase quadrature,IQ)数据,并将时域IQ数据存入预设的存储空间中,其中,预设的存储空间可以为随机存取存储器(Random Access Memory,RAM)。然后,O-RU中的FFT加速器读取缓存在RAM中的时域IQ数据,并对时域IQ数据经过FFT处理之后,将时域IQ数据变换为频域IQ数据,并将频域IQ数据存入RAM中的指定地址。其中,不同的天线可以对应不同的指定地址,比如可以预先生成天线的编号与RAM中的指定地址的对应关系,该对应关系可以表现为预先配置的地址表,根据该地址表可以查询频域IQ数据需存入的RAM中的指定地址。

在步骤102中,O-RU可以接收O-DU下发的控制面(Control Plane,C面)报文,对C面报文进行解析得到C面参数,并将C面参数缓存入队列组中与控制面参数对应的队列中;其中,队列可以为先入先出队列(First Input First Output,FIFO),即可以将C面参数缓存入FIFO 组中与解析出的C面参数对应的FIFO中,不同的C面参数可以存入不同的FIFO中。FIFO 组中M个FIFO分别用于存储单位子帧对应的M个符号的C面参数,M个符号与M个FIFO一一对应。其中,单位子帧可以可以为一个1毫秒子帧,即FIFO组中M个FIFO分别用于存储一个1毫秒子帧对应的M个符号的C面参数。

在一个例子中,解析C面报文后得到的主要C面参数可以如下表1所示:

表1

在步骤103中,O-RU中的每个ORAN处理通道的多个处理单元bank均可以独立分配基准定时,每个处理单元按照各自的基准定时读取缓存的C面参数,并根据各自读取到的C面参数,生成用户面(User Plane,U面)报文传输调度命令的序列。可以理解的是,如果每个bank的基准定时,则每个bank读取缓存的C面参数的时间点不同,则生成U面报文传输调度命令的时间点也不同,从而可以根据不同U面报文传输调度命令的生成时间点,形成U面报文传输调度命令的序列。各个bank独立定时,bank之间轮循调度,既可以满足独立时间窗调度时延配置需求,也可以实现不同bank共享总线带宽访问RAM。

在具体实现中,可以根据C面参数确定待发送的上行数据(比如上行U面报文)时候时候发送(即发送时刻)以及怎么发送(即发送方式),从而把C面参数集成一个U面报文传输调度命令,控制上行U面报文的发送。

在步骤104中,O-RU可以根据报文传输调度命令的序列,依次从存储空间即RAM中读取频域IQ数据。

在步骤105中,O-RU可以对从RAM中取出的频域IQ数据进行压缩处理,然后在压缩后的频域IQ数据上添加上U面应用层报文头,完成U面组包。其中,U面组包的过程中可以按照U面报文结构添加公共报文头、分段报文头和PRB域字段。然后,进入传输层处理,即根据实际需要在U面组包中添加传输层eCPRI报文头或RoE报文头,从而得到待发送的上行U面报文。最后,经过MAC层路由处理,将每个ORAN处理通道的上行U面报文路由到对应的以太网接口上,经过以太网前传网络送给O-DU。

在一个实施例中,所述O-RU包括多个开放无线接入网ORAN处理通道,每个所述ORAN 处理通道包括多个处理单元且每个所述ORAN处理通道支持多种天线的配置,每种所述天线至少支持从5M带宽到100M带宽的载波处理能力。其中,O-RU中ORAN处理通道的数量、每个ORAN处理通道中处理单元bank的数量、以及每个ORAN处理通道支持的天线配置的数量可以根据实际需求进行设置。比如,O-RU产品形态支持2个25Gbps线速率的以太网口,内部有4个ORAN处理通道,每个通道分为8个处理单元,每个通道可以支持64个天线配置,并且每个天线可以独立配置使用8个处理单元中的某一个。每个天线可以支持从5M带宽到100M带宽的载波处理能力。

传统的前传链路中,每个传输通道只能支持一种子载波间隔或参数集,本实施例中可以支持一个处理通道内多种子载波间隔、多种参数集、大小带宽混模,在实时性比较高的业务类型使用更大的子载波间隔,在小带宽场景可以支持更多的天线传输,既可以在小带宽时充分利用天线配置资源,也能在大带宽时充分利用通道传输带宽能力,实现了传输实时性、带宽利用率和更多传输天线的兼顾。

在一个实施例中,每个所述ORAN处理通道支持多种制式数据的传输,所述多种制式数据至少包括以下任意组合:长期演进(Long Term Evolution,LTE)、窄带物联网(Narrow Band Internet of Things,NB-IoT)、5G新空口(New Radio,NR)、物理随机接入信道(Physical Random Access Channel,Prach)。也就是说,本实施例中支持不同制式数据在一个ORAN处理通道中混合传输,适用性更广。

在一个实施例中,O-RU包括多个处理单元,每个处理单元内设置有队列组,步骤102 中提到的将控制面参数缓存入与控制面参数对应的队列中,可以参考图2通过如下步骤实现:

步骤201:确定所述控制面参数需存入的处理单元;

步骤202:获取需存入的处理单元内所有天线载波的子载波间隔中最大的子载波间隔;

步骤203:根据控制面参数,得到时隙编号、所述控制面参数的天线载波的子载波间隔和天线载波符号编号;

步骤204:根据获取的管理面配置信息,得到时隙包含的符号个数;

步骤205:根据最大的子载波间隔、时隙编号、所述控制面参数的天线载波的子载波间隔、天线载波符号编号、时隙包含的符号个数,得到控制面参数需存入的处理单元内设置的队列组中的队列的编号地址;

步骤206:将控制面参数缓存入与编号地址对应的队列中。

本实施例中,队列组中的各队列可以预先设置有编号地址,将步骤205中得到的与编号地址对应的队列作为与控制面参数对应的队列,从而将控制面参数存入该与编号地址对应的队列。在得到队列的编号地址时,将最大的子载波间隔、时隙编号、所述控制面参数的天线载波的子载波间隔、天线载波符号编号、时隙包含的符号个数均考虑进去,有利于将不同参数集归一化到具有统一的一套定时基准的地址中,将不同子载波间隔之间的符号定时差异归一化处理,统一的定时基准使得可以提高系统的同步性,即提高报文传输的同步性。

在步骤201中,每个天线载波可以通过预先配置选择将对应的C面参数存入哪个处理单元bank里的FIFO组,即预先设置有不同处理单元与不同C面参数的对应关系,通过该对应关系可以确定当前解析得到的C面参数需存入的处理单元。

在步骤202中,O-RU可以获取需存入的处理单元内所有天线载波的子载波间隔中最大的子载波间隔,即获取一个bank内所有天线载波最大的子载波间隔。

在步骤203中,可以根据C面参数,得到时隙编号slotId、所述C面参数的天线载波的子载波间隔carrier_scs和天线载波符号编号symId。在具体实现中,slotId、carrier_scs、symId 均可以从解析出的C面参数的字段中得到。

在步骤204中,时隙包含的符号个数symNmum可以从管理面(Management Plane,M面)配置信息中获取。

在步骤205中,可以通过如下公式计算所述队列的编号地址:

carrier_fifo_addr=slotId*symNum+max_scs/carrier_scs*(symId+1/2)

其中,carrier_fifo_addr为计算的所述队列的编号地址,slotId为所述时隙编号,symNum为所述时隙包含的符号个数,max_scs为所述最大的子载波间隔,carrier_scs为所述控制面参数的天线载波的子载波间隔,symId为所述天线载波符号编号。当队列为FIFO时, carrier_fifo_addr可以理解为天线载波的C面参数在bank内的FIFO组存储的FIFO编号地址,即C面参数的缓存地址。

通过上述公式计算缓存FIFO编号地址,一方面可以实现C面参数按照符号排序,吸收前传网络传输时C面报文的时延抖动;另一方面可以实现不同子载波间隔的C面参数映射到具有统一的一套定时基准的缓存FIFO中,将不同子载波间隔之间的符号定时差异归一化处理。

在一个实施例中,步骤102中提到的:对所述控制面报文进行解析得到控制面参数,包括:通过所述O-RU中的硬件电路按照字节比特位置,解析所述控制面报文中的公共报文头,得到所述公共报文头中的控制面参数;其中,所述公共报文头中的控制面参数包括:定时信息、分段个数和分段类型;根据所述分段类型和所述分段个数,按照不同的报文类型解析所述控制面报文中的各个分段和扩展字段信息,得到各个分段和扩展字段信息中的控制面参数。其中,O-RU中的硬件电路可以为专门设计的用来进行报文解析的集成电路(Integrated Circuit, IC)芯片、现场可编程门阵列(Field-Programmable Gate Array,FPGA)等。

本实施例中对C面参数的解析方式可以理解为:硬件逻辑(即硬件电路)解析方式,每收到一个C面报文,参考上述表1,硬件电路首先可以按照字节比特位置解析公共报文头(Common Header),得到报文帧编号(frameId)、子帧编号(subframeId)、时隙编号(slotId)和起始符号编号(startSymbolId)等定时信息,以及分段个数(numberOfsections)和分段类型(sectionType)等字段。然后根据分段类型,按照不同的报文类型解析各个分段(Section Fields) 和扩展字段信息(extend command),直到一个包所有分段都完成解析。

在一个例子中,硬件电路可以获取应用层报文头中携带的报文定时信息,按照M面配置信息中的时间窗配置统计报文是否在时间窗内按时收到,以及早到、晚到的报文数量。对于早到、晚到的报文进行丢包处理。

在一个实施例中,步骤102中提到的:对所述控制面报文进行解析得到控制面参数,包括:通过O-RU中的CPU软核按照控制面报文的报文结构完成报文字段解析得到控制面参数。比如,O-RU中的硬件电路可以将接收到的C面报文透传写入存储空间RAM,并通知CPU软核,由CPU软核按照C面报文DE报文结构完成报文字段解析得到C面参数。CPU软核解析得到C面参数后,可以将解析得到的C面参数下发给硬件电路。

本实施例中对C面参数的解析方式可以理解为:软件逻辑(即CPU软核)解析方式,硬件电路将收到的C面报文透传写入数据缓存RAM,同时通过中断通知CPU软核,由软件逻辑按照报文结构完成报文字段解析,并将解析结果下发给硬件逻辑。软件解析方式很容易支持ORAN协议升级,对软件实时性要求比较高。

本实施例中,支持硬件逻辑解析C面报文,同时也提供了软件解析C面报文的处理通道,硬件逻辑解析C面参数,满足了报文处理高实时性场景需求;而软件解析C面参数,一方面便于后续ORAN协议演进升级时,通过软件方式支持固化的硬件逻辑无法支持的协议新特性;另一方面软解析接口也可用于硬件逻辑自环调测使用,在未连接O-DU的场景下,O-RU自环自测。

在一个实施例中,步骤103中提到的读取缓存的所述控制面参数,包括:确定所述控制面参数所存入的处理单元;根据空口定时和所述所存入的处理单元的链路传输延时,确定所述所存入的处理单元的基准定时;根据所述基准定时,读取缓存的控制面参数。其中,O-RU 侧基准定时源可以通过同步面(Synchronization Plane,S面)定时同步协议使用1588、SyncE 或GPS等方式获取网络基准定时,根据该网络基准定时得到空口定时。不同的处理单元bank 的链路传输延时可能不完全相同,因此根据空口定时和不同bank的链路传输延时,可以针对不同bank独立配置基准定时,使得不同的bank可以根据各自的基准定时,依次读取缓存的控制面参数。其中,对每个bank独立配置基准定时也可以理解为读侧定时,即每个bank的读侧定时可以独立配置,以便在读出控制面参数之后,产生访问数据缓存的传输命令即U面报文传输调度命令。

本实施例中,支持灵活的报文发送时延调度和时延补偿管理,每个ORAN处理通道,可以内部支持多个处理单元,每个处理单元可以采用不同的基准定时,每个处理单元内部,也支持天线之间延时是最小延时的倍数关系,可以灵活配置每个载波天线的调度时延。同时,每个处理单元也能支持接收的C面报文乱序重排,即使C面报文乱序,也能按照O-DU预定的帧结构在指定符号传输对应的U面报文。此外,通过数据缓存RAM,协助稳定窗吸收下行U面报文过早到达的时延,也作为上行时延补偿的IQ数据缓存空间。

在一个实施例中,步骤104中提到的根据所述用户面报文传输调度命令,从所述RAM 中读取频域IQ数据,包括:根据所述用户面报文传输调度命令,得到物理资源块(Physical Resource Block,PRB)的起始编号、所述PRB中的RB的个数、预先配置的天线载波在所述存储空间中的区域地址;根据PRB的起始编号、所述PRB中的RB的个数、预先配置的天线载波在所述存储空间中的区域地址,计算出PRB在所述存储空间中的存储地址;在所述PRB 在所述存储空间中的存储地址中,读取频域IQ数据。其中,用户面报文传输调度命令中可以携带物理资源块PRB的起始编号、PRB中的RB的个数、预先配置的天线载波在存储空间中的区域地址,从而使得可以根据用户面报文传输调度命令所携带的数据计算出PRB在数据缓存RAM中的存储地址,然后从该存储地址中取出频域IQ数据。

在一个实施例中,上述的根据PRB的起始编号、所述PRB中的RB的个数、预先配置的天线载波在所述存储空间中的区域地址,计算出PRB在所述存储空间中的存储地址,包括:在RB的个数对应的数据长度超出以太网最大报文长度的情况下,进行应用层分片,将所述控制面参数拆分成多个控制面子参数,并重新计算每个分片的PRB的起始编号和所述每个分片的PRB中的RB的个数;根据重新计算的每个分片的PRB的起始编号、所述每个分片的PRB中的RB的个数、预先配置的天线载波在存储空间中的区域地址,计算出PRB在所述存储空间中的存储地址。也就是说,U面传输命令产生时,需要判断PRB中的RB个数对应的数据量是否超出以太网最大报文长度,如果一个PRB包含的RB个数过多,需要进行应用层分片,将一个C面参数拆分成多个C面参数,并重新计算每个分片中PRB的起始编号和RB 个数。

在一个例子中,应用层分片的效果可以如图3所示,一个100M带宽天线载波,一个符号频域数据量为273RB,按照32RB拆分成9个分片,前8个分片每个包含32RB,最后一个分片包含17个RB,这9个分片属于同一个分段,拥有相同的分段编号。图3中,9个分片的标识依次为:U-Planemsg#1、U-Planemsg#2、U-Planemsg#3、U-Planemsg#4……U-Planemsg #9,9个分片拥有的相同的分段编号sectionid=ABC’h。

本实施例中,通过应用层分片,有利于避免一个U面数据包中的RB个数过多。将控制面参数拆分成多个控制面子参数,根据多个控制面子参数可以生成多个用户面报文传输调度命令,一个控制面子参数可以对应一个用户面报文传输调度命令,即根据一个控制面参数可以生成多个用户面报文传输调度命令,从而通过多个用户面报文传输调度命令进行调度,有利于加快调度的速度从而加快数据传输的速度。在具体实现中,如果不对控制面参数进行拆分,则根据该控制面参数可以生成一个用户面报文传输调度命令。

在一个实施例中,所述控制面参数包括:各个分段的压缩模式和压缩位宽;步骤105中提到的根据读取的频域IQ数据,得到待发送的上行用户面报文,包括:根据各个分段的压缩模式和压缩位宽,对读取的频域IQ数据进行压缩处理,得到压缩处理后的IQ数据;根据压缩处理后的IQ数据,得到待发送的上行用户面报文。本实施例中支持多个分段使用不同的压缩模式和压缩位宽,灵活性更高,有利于满足不同的传输需求。

其中,对读取的频域IQ数据进行压缩处理可以为通过ORAN协议定义的6种压缩算法中的任意一种对读取的频域IQ数据进行压缩处理。比如可以通过块浮点(BlockFloating Point, BFP)压缩算法进行压缩。通常12个IQ数据为一个RB,BFP压缩算法中以1个RB为单位,根据12个I路和12个Q路数据中绝对值最大的数据确定最大有效数据位宽,根据压缩位宽和实际数据最大有效位宽计算压缩因子,将数据右移压缩因子进行压缩。

本实施例中,支持动态压缩配置,可以根据C面参数中每个分段section的压缩模式、压缩位宽对每个section的IQ数据进行压缩。本实施例中支持每个符号内的RB数据分成多个 section使用不同的压缩模式和压缩位宽,并且支持实时在线改配压缩模式和位宽。可以根据链路带宽和不同用户、不同业务类型的传输质量要求,在线实时切换压缩模式和位宽,兼顾了传输带宽和服务质量之间的动态平衡。

为便于对本实施例的理解,下面以一个示例性的场景对本实施例的报文处理方法进行说明:

假定O-RU产品形态支持2个25Gbps线速率的以太网口,内部有4个ORAN处理通道,每个通道分为8个处理单元,每个通道可以支持64个天线配置,并且每个天线可以独立配置使用8个处理单元中的某一个。每个天线可以支持从5M带宽到100M带宽的载波处理能力。

在一个实施例中,本申请中的报文传输方法可以通过如图4所示的架构图实现,报文处理方法包括下行O-RU接收方向上的报文处理,参考图5,包括:

步骤401:O-RU收到C面、U面、S面和M面报文后,将C面和U面报文分配到对应的O-RU通道中,并将S面和M面报文直接传输给CPU软核处理。

其中,下行O-DU发送给O-RU的C面、U面、S面和M面报文通过以太网前传网络送给O-RU上的2个以太网接口。O-RU收到ORAN报文之后经过以太网MAC层交换处理,通过MAC地址、VLAN id、端口号或eAxC id等字段将C面和U面报文分配到对应的O-RU 通道中,并将S面和M面报文直接传输给CPU软件处理。

步骤402:C面报文和U面报文的传输层处理。

图4中的,eCPRI/RoE传输层报文头处理即可以理解为步骤402中的处理。不同于S面报文和M面报文是标准的以太网报文封装,C面报文和U面报文在以太网L2层之上还封装了可选的IP层,以及eCPRI协议或RoE协议封装的传输层。对C面报文和U面报文进行传输层报文头处理时,先得到以太网MAC层和IP层报文头,去除VLAN,得到传输层报文。然后根据eCPRI和RoE传输层协议的差异,得到传输层报文头,获取ORAN定义的传输层字段。

传输层处理,主要是解析ORAN协议在eCPRI/RoE协议中定义的eAxC_ID、MessageType 等字段,将eAxC_ID映射为内部各个ORAN处理通道的天线编号,并且把C面报文和U面报文分别送给对应的处理单元。

步骤403:C面报文解析和下行U面报文解析。

其中,可以按照ORAN协议定义解析应用层报文字段。ORAN的C面和U面应用层报文都包含公共报文头(Common Header)和分段报文头(Section Header),U面报文还包含额外的PRB字段用于传输频域RB数据。每个C面和U面报文包含一个公共报文头和至少一个分段报文头,U面每个分段报文头都紧跟一个PRB数据段,而C面每个分段报文字段还可以附加扩展字段(Section Extension Commands)。C面报文解析可以支持硬件逻辑解析和软件解析两种方式;其中,硬件逻辑解析和软件解析两种方式在上文已经阐述过,为避免重复,此处不再赘述。

U面报文时间管理和C面报文时间管理,可以理解为:硬件逻辑获取应用层报文头(U 面应用层报文头或C面应用层报文头)中携带的报文定时信息后,按照M面报文时间窗配置统计U面报文或C面报文是否在时间窗内按时收到,以及早到、晚到的报文数量。对于早到、晚到的报文进行丢包处理。

步骤404,U面报文解析之后去除应用层定时信息,并对剩余的Section字段的IQ压缩数据进行解压缩处理(即图4中的BFP解压缩)。

解压缩处理可以为BFP解压缩处理,也可以为其他解压缩处理方式。BFP解压缩是BFP 压缩的逆过程,根据U面section中传输的压缩因子和压缩数据,将I路数据和Q路数据左移压缩因子位恢复成非压缩数据。U面IQ数据解压缩之后,可以送给O-RU中的下行直接存储器访问(Direct Memory Access,DMA)数据搬移模块。

图4中的C面解析参数分配即:C面报文解析之后,获取报文参数信息即C面参数,将C面参数按照上、下行链路分别送给上行的传输命令产生模块和下行DMA数据搬移模块。C面参数可以包括上行C面参数和下行C面参数,上行C面参数被发送至U面传输命令产生模块,下行C面参数被发送至下行DMA数据搬移模块。

步骤405,将解压缩之后的频域IQ数据通过通用数据总线搬移到数据缓存RAM中的指定地址(即图4中的下行DMA数据搬移)。

其中,步骤405可以通过O-RU中的DMA数据搬移模快执行,DMA数据搬移模快主要实现对数据缓存RAM的读写访问控制、数据位宽转换、大小端转换、传输流量控制等功能。 U面报文,每个分段section均包含PRB在一个符号起始的RB编号和RB个数信息,DMA 数据搬移时,根据分段的PRB的起始编号、各天线在数据缓存RAM中的地址分区,将解压后的RB数据块存入数据缓存RAM中的指定位置。

步骤406,读取RAM中的频域IQ数据,经过逆FFT处理之后,将频域IQ数据变换为时域IQ数据,再重新写回数据缓存RAM。

其中,步骤406可以通过O-RU中的快速傅里叶变换(Fast Fourier Transform,FFT)加速器执行、

步骤407,时域侧DMA搬移模块将时域IQ数据从RAM中读取后经过中射频链路处理送给天线口,从而完成下行链路IQ数据从O-DU经过O-RU天线口最终到用户侧设备UE的传输过程。

在一个实施例中,报文处理方法包括上行O-RU发送方向的报文处理,参考图6,包括:

步骤501:空口天线收到用户侧设备的上行链路数据之后,经过中射频时域处理,将时域IQ数据存入RAM。

步骤502:FFT加速器读取RAM中的时域IQ数据,经过FFT处理之后,将时域IQ数据变换为频域IQ数据,并将频域IQ数据存入RAM中的指定地址。

在具体实现中,物理随机接入信道(Physical Random Access Channel,Prach)加速器也可以从时域IQ数据中获取Prach数据之后,同样经过FFT处理,转换为频域Prach数据存入数据缓存RAM指定地址。

步骤503:根据空口定时和链路传输延时产生上行数据包发送的基准定时,根据基准定时读取缓存的C面参数,并根据读取的C面参数产生U面报文传输调度命令。

其中,产生上行数据包发送的基准定时即图4中的U面报文发送定时管理。在产生U面报文调度命令(即图4中的U面传输命令产生)时,会依据M面配置信息进行应用层分包处理。上行DMA搬移模块按照U面报文传输调度命令的序列依次从RAM中读取频域IQ数据 (即图4中的上行DMA数据搬移)。

步骤503中主要涉及(1)C面参数缓存、(2)U面发送定时调度、(3)U面报文传输调度命令产生、(4)应用分片。下面对这四点依次进行阐述:

(1)C面参数缓存

O-RU上行U面报文发送之前,O-DU首先会给O-RU下发对应的C面报文,C面报文经过解析之后得到对应的C面参数,每个报文中的多个section分段会拆分成单独的C面参数。C面报文解析后得到的主要的C面参数可以参考上述表1。每个ORAN处理通道解析获取的C面参数,按照定时信息分别写入参数缓存FIFO组,FIFO组以符号为单位分别存储一个1毫秒子帧对应的M个符号的C面参数,M个符号与M个FIFO一一对应。每个通道有8 个处理单元bank,每个天线载波可以通过配置选择将载波C面参数存入哪个bank里的参数缓存FIFO组。为了实现不同子载波间隔的载波混合传输(1个子载波间隔可以理解为1个参数集),C面参数存入FIFO时,存入的FIFO编号按下面公式计算:

carrier_fifo_addr=slotId*symNum+max_scs/carrier_scs*(symId+1/2),其中,该公式在上文中已经阐述过,为避免重复,此处不再赘述。

(2)U面发送定时调度

每个ORAN处理通道的8个处理单元bank可以独立分配定时,每个bank可以支持3种子载波间隔混合传输,但具体实现中并不以3种为限。比如,O-RU侧基准定时源通过S面定时同步协议使用1588、SyncE或GPS等方式获取网络基准定时,根据该网络基准定时得到空口定时。根据不同处理单元的链路处理延时和空口定时,配置每个bank的读侧定时即基准定时,以便在读出C面参数之后,产生访问数据缓存的传输命令。每个bank内可以支持类似15kHz、30kHz、60kHz这样的3种子载波间隔配置,每个载波可以选择分配到哪个bank,同一个bank内,多个载波之间可以支持符号级时延差。通过这样的方式,8个bank独立定时,bank之间轮循调度,既可以满足独立时间窗调度时延配置需求,也可以实现不同bank共享总线带宽访问数据缓存RAM。

(3)U面报文传输调度命令产生

U面传输命令产生时,首先根据每个bank的基准定时,按照符号定时依次从FIFO组中读取C面参数,然后解析C面参数,根据参数中描述的PRB的起始编号、PRB中的RB个数信息、软件配置的天线载波在RAM中的区域地址,计算出PRB在RAM中的存储地址,然后由DMA数据搬移模块从该地址取出频域IQ数据。

(4)应用分片

U面传输命令产生时,可以判断PRB中的RB个数对应数据量是否超出以太网最大报文长度,如果一个PRB包含的RB个数过多,可以进行应用层分片,将一个C面参数拆分成多个C面参数,并重新计算每个分片中PRB的起始编号和RB个数。

步骤504:对RAM中取出的IQ数据进行BFP压缩处理,在压缩处理后的IQ数据上添加上U面应用层报文头,完成U面组包(即图4中的上行U面组包)。

这一过程是下行U面解包的逆过程,可以按照U面报文结构添加公共报文头、分段报文头和PRB域字段。

步骤505:上行U面报文传输层处理,包括传输层报文分片处理,添加传输层eCPRI或 RoE报文头。

步骤506:MAC层路由处理,将8个ORAN处理通道的上行U面报文路由到对应的以太网接口上,经过以太网前传网络送给O-DU。

本实施例可以实现参数集中各个天线定时调度和链路时延补偿,并且支持动态压缩模式实时切换和多种制式的混合传输。

以典型场景为例,本申请实施例在硬件逻辑时钟主频737.28MHz时,单个ORAN传输通道可以支持64个20M带宽天线载波,或者12个100M带宽天线载波。100M带宽时,传输效率最大,纯IQ数据(不算ORAN、eCPRI、MCA层等报文头)有效带宽为35.2Gbps,而一个传输通道本身的最大传输带宽为47.2Gbps,即纯IQ数据的最大传输效率为74.6%。实际上,由于ORAN接口协议传输时,每个U面IQ报文都包含以太网报文头、传输层报文头、应用层报文头和每个section的压缩因子等信息,还包括报文之间的包间隔,这些至少占用5%的传输带宽,因此本申请实施例的最大传输效率可以达到80%以上。

需要说明的是,本申请实施例中的上述各示例均为为方便理解进行的举例说明,并不对本发明的技术方案构成限定。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本申请实施例还提供了一种O-RU,如图7所示包括:至少一个处理器601;以及,与所述至少一个处理器601通信连接的存储器602;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述实施例所述的报文处理方法。

其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。

处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。

本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

相关技术
  • 传输报文的方法、代理服务器和计算机可读存储介质
  • 报文转发方法及装置、计算机可读存储介质、电子设备
  • 文本处理方法、装置、计算机可读存储介质和计算机设备
  • 数据处理方法、装置、计算机设备及计算机可读存储介质
  • 报文处理方法、装置、计算机设备和存储介质
  • 组播报文的处理方法、系统、计算机设备和可读存储介质
  • 报文处理方法、装置、电子设备及计算机可读存储介质
技术分类

06120115928727