3. CPRI链路速率与层映射:速率等级、物理层与数据链路层详解

好,咱们进入第三章。这一章我打算把CPRI的速率等级和层结构彻底讲透。说实话,很多工程师干了三五年,对CPRI的Option还是模模糊糊的,只知道“速率越高越好”。但实际调试中,选错Option或者搞混层映射,板子直接起不来。我当年就吃过这个亏,后面细说。

3.1 CPRI速率等级:从Option 1到Option 10

CPRI标准定义了多个速率等级,官方叫法叫“Option”。每个Option对应一个具体的线速率。为什么要搞这么多?说白了,就是为了适配不同的应用场景。你做个室内小基站,跟做个宏站,对带宽的需求完全不一样。

下面这个表,是我个人习惯整理的,建议你收藏。调试时查起来很方便。

Option 线速率 (Gbps) 典型应用
Option 1 0.6144 早期3G,低带宽场景
Option 2 1.2288 3G扩容,小站
Option 3 2.4576 LTE早期,单载波
Option 4 3.0720 LTE 20MHz,单天线
Option 5 4.9152 LTE-A,2x2 MIMO
Option 6 6.1440 LTE-A,4x4 MIMO
Option 7 9.8304 LTE-A Pro,高带宽
Option 8 10.1376 特殊场景,兼容性
Option 9 12.1651 5G NR早期,中频
Option 10 24.3302 5G NR,毫米波,大带宽

关键点:Option 7和Option 10是目前5G时代最常用的两个等级。Option 7用于Sub-6GHz频段,Option 10用于毫米波。选型时,一定要算清楚你需要的IQ数据带宽,再反推Option。别选小了,否则链路直接饱和。

为什么会这样?因为CPRI的线速率是固定的,它不像以太网那样可以自适应。你选定了Option,整个物理层的时钟、PLL、SerDes都得跟着配。我见过一个项目,硬件工程师把Option 7的SerDes配成了Option 6的速率,结果链路一直不稳定,丢包严重。查了两天才发现是速率不匹配。

3.2 层1(物理层)详解

物理层,说白了就是负责把比特流从A点搬到B点。CPRI的物理层跟传统的以太网物理层有点像,但又有自己的特色。嗯,这里要注意几个核心概念。

3.2.1 8B/10B编码

CPRI物理层使用8B/10B编码。什么意思?就是把每8位数据,编码成10位传输。多出来的2位用于直流平衡和时钟恢复。这样做的好处是,接收端可以从数据流中直接提取时钟,不需要单独的时钟线。

我曾经在调试一个CPRI链路时,发现误码率很高。用示波器一看,眼图是张开的,但就是有随机误码。后来排查发现,是8B/10B编码器的初始化序列没对齐。你想想看,编码器都没同步,数据怎么可能对?

3.2.2 帧结构

CPRI物理层的基本帧是基本帧(Basic Frame),时长1个chip(3.84M chip/s对应约260.42ns)。每个基本帧包含16个字(Word),每个字长度取决于Option。比如Option 7,一个字是16位。

基本帧的结构如下:

  • 控制字(Control Word):每个基本帧的第一个字。用于传输同步、信令、管理信息。
  • IQ数据字(IQ Data Word):后面的15个字。用于传输天线载波的IQ采样数据。

这里有个坑:控制字和IQ数据字是时分复用的。也就是说,在同一个物理链路上,控制信息和用户数据是交替传输的。我刚开始做CPRI时,总以为控制信息是单独走一条通道的,结果调试时发现控制字老是解析不对。后来才明白,控制字是嵌在IQ数据流里的。

3.2.3 同步机制

物理层同步分为两步:

  1. 码组同步:接收端通过搜索特定的同步码组(K28.5),找到基本帧的起始位置。
  2. 超帧同步:在码组同步的基础上,通过超帧头(HFN)实现更高层次的帧对齐。

调试技巧:如果你在调试时发现链路状态是“Loss of Frame”或者“Loss of Signal”,先别急着怀疑硬件。用逻辑分析仪抓一下同步码组,看看是不是有干扰导致同步失败。我遇到过好几次,都是因为PCB走线太长,信号质量下降,导致同步码组无法被正确识别。

3.3 层2(数据链路层)详解

层2,也叫数据链路层。它的任务是在物理层提供的比特流之上,建立可靠的数据传输通道。CPRI的层2相对简单,没有以太网那么复杂,但该有的功能一个不少。

3.3.1 慢速控制与管理(Slow C&M)

慢速控制通道是层2的核心。它用于传输一些不频繁但重要的管理信息,比如:

  • 链路建立与维护
  • 告警上报
  • 软件版本查询
  • 天线校准参数

慢速控制通道的速率很低,通常只有几十kbps。为什么这么慢?因为它是通过控制字中的特定比特位来传输的,带宽有限。但好处是,它非常可靠,几乎不会丢包。

我记得有一次,客户反馈RRU(远端射频单元)经常掉线。我远程登录BBU(基带单元),查看慢速控制通道的统计信息,发现有很多CRC校验错误。这说明物理层虽然通了,但数据链路层有误码。后来排查发现,是光纤连接器脏了,导致光功率衰减。清洁之后,问题解决。

3.3.2 快速控制与管理(Fast C&M)

快速控制通道,顾名思义,用于传输对实时性要求高的信息。比如:

  • 功率控制命令
  • 时隙调度信息
  • 波束赋形权重

快速控制通道的速率比慢速控制高得多,可以达到几Mbps。它使用独立的控制字或者IQ数据字中的保留位来传输。

3.3.3 层2的帧格式

层2的帧格式其实很简单。它就是在物理层基本帧的基础上,对控制字进行进一步封装。每个超帧(256个基本帧)中,控制字被组织成一个完整的层2帧。

层2帧的结构大致如下:

| 起始标识 | 目的地址 | 源地址 | 控制类型 | 数据负载 | CRC校验 |
  • 起始标识:固定模式,用于帧同步。
  • 地址字段:用于标识发送端和接收端。CPRI支持点对点和点对多点拓扑。
  • 控制类型:区分是慢速控制还是快速控制,以及具体的命令类型。
  • 数据负载:实际的管理信息或控制命令。
  • CRC校验:16位CRC,用于检测传输错误。

避坑指南:我曾经在调试一个多RRU级联的场景时,发现层2的地址配置错了。两个RRU的地址设成了相同的值,导致BBU发下来的控制命令,两个RRU都响应,互相冲突。结果就是,一个RRU正常,另一个RRU频繁重启。所以,地址规划一定要仔细,每个RRU的地址必须唯一。

3.4 层1与层2的映射关系

最后,咱们聊聊层1和层2是怎么配合的。说白了,层2的数据是“装”在层1的容器里传输的。

具体映射关系如下:

  1. 层2的慢速控制帧,被拆分成多个小段,每个小段放入一个基本帧的控制字中。
  2. 层2的快速控制帧,则直接使用控制字中的快速控制字段,或者占用IQ数据字的保留位。
  3. IQ数据本身,直接映射到基本帧的IQ数据字中。

你想想看,这种映射方式,保证了IQ数据的高吞吐量,同时又不耽误控制信息的传输。CPRI的设计思路,其实很巧妙。

好了,这一章的内容就到这里。下一章,咱们会深入讲解CPRI的同步机制,包括帧同步、时钟同步和相位同步。这些都是实际调试中经常遇到的问题,到时候我会分享更多实战案例。