5G系列MAC (Medium Access Control)协议详解

Posted 从善若水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5G系列MAC (Medium Access Control)协议详解相关的知识,希望对你有一定的参考价值。

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解

NR MAC 协议详解

一、MAC概述

MAC:全称Mediu Access Control

1.1 MAC层主要功能

  • 逻辑信道和传输信道之间的映射;
  • 复合来自不同逻辑信道的MAC SDU到一个传输块,经传输信道递交下层;
  • 将从下层(PHY)接收的MAC SDU解复合并递交到不同的逻辑信道;
  • HARQ;
  • 逻辑信道优先级(LCP);
  • 数据缓存上报(BSR);
  • 随机接入(RACH);
  • 上行定时维护(RACH);
  • 功率余量上报(PHR);
  • DRX;

1.2 MAC提供的服务

  • 提供给上层的服务包括:
    • 数据传输和无线资源分配(传输机会通知);

  • 期待来自下层的服务包括:
    • 数据传输;
    • HARQ反馈指示;
    • 调度请求信令;
    • 测量;

1.3 LTE MAC 与 5G MAC比较

5G MAC与LTE MAC相比:

  • 1️⃣引入BWP(Bandwidth Part)以及Numerology概念。可以根据实际的传输需求,配置不同的BWP/numerology,降低了UE功耗。
  • 2️⃣此外,不同于LTE, MAC PDU中不再是MAC子头+MAC SDU的形式,而采用MAC子头与MAC SDU交叉摆放的形式,提高了数据处理速率。



二、MAC实体

MAC 架构如下图:

  • 单连接下,一个UE只有一个MAC实体;
  • MAC实体与上层之间的通道为逻辑信道,与下层之间的通道为传输信道;
  • 为提高资源利用率,MAC会将来自不同的逻辑信道的数据包复用到同一传输块,主要由逻辑信道优先级(LCP)进程完成;上行复用根据预先定义的规则在UE完成;

  • 如果UE配置了SCG(双连接架构下),UE将有两个MAC 实体,一个用于管理MCG,一个用于管理SCG;
  • 如果没有明确说明,两个MAC 实体是独立运作的,并且各MAC实体的一些配置参数和定时器都是独立配置的;

三、MAC PDU介绍

3.1 MAC PDU (transparent MAC)


来自以下信道的数据,会进行透传(也就是没有MAC包头)👇:

  • PCH (e.g. Paging)
  • BCH (e.g. MIB)
  • DL-SCH including BCCH (e.g. SI)

3.2 MAC PDU (Random Access Response)

MAC PDU consisting of MAC RARs


Timing Advance Command: 绝对上行定时
UL grant: 用于Msg3发送的上行授权
Temporary C-RNTI: 用于Msg4接收

3.3 MAC PDU(others including DL-SCH and UL-SCH)

【注意顺序】下行MAC PDU要求组装subPDU的时候,CEs优先于SDU,SDU优先于padding

【注意顺序】上行MAC PDU要求组装subPDU的时候,SDU优先于CEs,CEs优先于padding

3.4 MAC subheader

LCID: 逻辑信道标识用于表示用于数据传输逻辑信道MAC CE类型
F: L域的长度
L: 对应的MAC SDU或MAC CE长度

有以下三种 MAC subheader:

四、波束失败检测

  • 在规定时间(beamFailureDetectionTimer)内收到波束失败的指示信息(来自物理层的beam failure instance indication),则BFI_COUNTER + 1
  • 在规定时间(beamFailureDetectionTimer)内没有收到波束失败的指示信息, BFI_COUNTER = 0
  • 当BFI_COUNTER达到最大次数beamFailureInstanceMaxCount ,则触发波束失败恢复过程(RACH过程

五、随机接入过程

5.1 触发条件

  • RRC_IDLE初始接入;
  • RRC连接重建立;
  • 切换;
  • 上行或下行数据到达且上行失步;
  • RRC_INACTIVE连接建立;
  • 系统信息请求(Msg1/3 based);
  • 波束恢复Beam failure recovery.

基于竞争的RACH

基于非竞争的RACH

5.2 Msg1随机接入资源选择


当Serving Cell 配置了supplementaryUplink,则检查下行路损参考的RSRP是否小于门限值sul-RSRP-Threshold,若是的话则选择SUL进行随机接入过程,否则采用N-SUL进行随机接入。

5.3 Msg1(PRACH)发送

传输次数控制:PREAMBLE_TRANSMISSION_COUNTER不超过preambleTxMax

传输功率控制:设置PREAMBLE_RECEIVED_TARGET_POWER = preambleReceivedTargetPower + DELTA_PREAMBLE + (PREAMBLE_POWER_RAMPING_COUNTER – 1) × preamblePowerRampingStep

Note:在Preamble对应的下行接收beam(如SSB)发生改变时,或功率受限导致的Preamble发送取消时,PREAMBLE_POWER_RAMPING_COUNTER不累加。

5.4 RAR接收


RA-RNTI的计算:
RA-RNTI (用于PDSCH 上接收RAR) = 1 + s_id + 14 × t_id + 14 × 80 × f_id + 14 × 80 × 8 × ul_carrier_id

s_id (0 ≤ s_id < 14)是PRACH资源对应的第一个OFDM符号的index;
t_id (0 ≤ t_id < 80)是PRACH资源对应的第一个slot的index;
f_id (0 ≤ f_id < 8)是PRACH资源对应的频率域的index;
ul_carrier_id (0 for NUL carrier, and 1 for SUL carrier)是msg1传输对应的上行载波index

5.5 竞争解决


如果Msg3携带C-RNTI MAC CE,下行C-RNTI PDCCH指示竞争解决结果;

如果Msg3没有携带C-RNTI MAC CE,下行Contention Resolution Identity MAC CE检测判断竞争解决结果;

六、TA维护

PTAG: 下行定时参考是SpCell (即PCell或PSCell)
STAG: 下行定时参考是SCell

NTA(New) = NTA(Old) + TAC

MAC CE 如下:
每个TAG下的上行对齐定时器(timeAlignmentTimer)在收到TAC(Timing Advance Command)时启动或重启,在超时后认为NTA不可用(即上行失步),停止上行信号的发送。

七、功率余量报告(Power Headroom Reporting)

上报UE的功率余量,用于闭环功率控制

触发条件包括:

  • PHR相关参数重配置;
  • DL pathloss变化超过门限值;
  • 上行功率回退变化超过门限值;
  • PSCell添加;
  • SCell激活;
  • 周期上报定时器phr-PeriodicTimer超时

Single Entry PHR数据格式

Multiple Entry PHR数据格式

V: PH上报是否基于真实传输还是参考传输
PH (Type-1): PUSCH发送后的功率余量
PH (Type-2): PUSCH + PUCCH发送后的功率余量
PH (Type-3): SRS发送后的功率余量
PCMAX,c : 小区最大发送功率(需考虑功率回退)


八、省电相关功能

8.1 SCell激活 与 去激活

SCell Activation/Deactivation MAC CE

  • 当sCellDeactivationTimer(per SCell)超时,去激活SCell
  • SCell有(动态或预先配置的)调度数据传输,重启动sCellDeactivationTimer
  • SCell去激活,停止RACH过程

8.2 BWP激活 与 去激活

  • RRC配置初始激活的BWP;
  • DCI变更激活的BWP;
  • bandwidthPartInactivityTimer定时器运行期间BWP保持激活;
  • BWP有(动态或配置的)调度数据传输,重启动bandwidthPartInactivityTimer;
  • bandwidthPartInactivityTimer超时,变更激活的BWP为default BWP

8.3 DRX

  • a DRX Command MAC CE: 直接进入非激活状态;
  • Long DRX Command MAC CE: 从short cycle状态进入long cycle状态;



九、调度资源

9.1 资源申请方式


当UE有数据要传输时,必须具有上行资源。有三种资源申请方式:

  • 向网络侧发送BSR
    BSR:Buffer Status Report,即缓存状态报告。这种通过UE发送控制单元方式(MAC CE),可以让网络侧知道UE需要发送的数据量,网络侧可以针对性的分配上行资源。(BSR在UL-SCH上发送,如果没有对应资源是不能发送的,可以通过在PUCCH上发送SR向网络侧申请资源)
  • 向网络侧发送SR
    SR:Scheduling Request,即调度请求。发送SR可以让网络侧知道UE有数据需要发送,但不能告知网络侧具体的待传数据量。网络侧收到SR后会调度资源给UE以便于其发送BSR。(如果没有发送SR的PUCCH资源,UE只能通过RACH过程向网络侧申请资源)
  • 发起CBRA
    CBRA:Contention Based Random Access,竞争随机接入,目的之一就是上行资源。这种方式中,UE在Msg2的RAR中获得UL grant,UE将利用该UL grant发送Msg3,在Msg3中插入一个BSR控制单元以此告诉网络侧需要的资源信息

9.2 BSR

UE基于LCG来上报BSR,而不是每个LCH上报一个BSR,以减少上报开销;(为应对越来越多的业务,NR中LCG个数由4个扩展到8个

BSR触发方式:

  • 常规BSR

    • 对于常规BSR(regular BSR),以下任一条件满足将触发(不一定上报BSR):
    • 当属于某个逻辑信道组的某个逻辑信道有上行新数据可供传输,并且这条逻辑信道的优先级高于目前任何逻辑信道组中任何逻辑信道的优先级,或者目前所有逻辑信道组中的逻辑信道均无可传数据时有新数据到达,此时将触发一个常规BSR;
    • 为了避免UE发送了BSR却一直没有收到UL grant的情况,gNodeB为UE配置了一个retxBSR-Timer定时器,当该timer超时且UE的任意一个LCG的任意一个逻辑信道里有数据可以发送时,将会触发常规BSR;
  • 填充BSR
    分配有UL grant,当padding bit(一个TB就是一个MAC PDU,如果有多余的空间没有使用,MAC需要用 0 来填充)的数量等于或大于“BSR MAC control element + 对应的subheader”的大小时,UE会使用这些bit来发送BSR,该BSR被称为“Padding BSR”

  • 周期BSR
    周期定时器periodicBSR-Timer超时,此时UE将会触发一个BSR,且该BSR叫做周期BSR(Periodic BSR)。 增加这种机制原因,是当常规BSR、填充BSR触发条件都不满足时,网络侧也可以知道UE对资源需求,为UE分配适当的上行资源。

【注】协议规定:尽管有多个事件触发了BSR,但一个MAC PDU中最多只能包含一个BSR MAC控制单元,且常规BSR和周期BSR优先于填充BSR的发送。

Short BSR and Short Truncated BSR MAC CE

Long BSR and Long Truncated BSR MAC CE

BSR取消条件:

  • 如果在一个TTI(Transmission Time Interval)内的UL grant能够容纳UL buffer里的所有pending data,却不足以容纳额外BSR MAC control element和其对应的subheader比特总和时,所有已经触发的BSR都会被UE取消;
  • 当一个BSR包含在一个待传输的MAC PDU里时,所有已经触发的BSR都会被取消;

9.3 SR

一个SR资源配置(Scheduling Requested)可以包括:

  • 多个BWP的SR resource;
  • 多个Cell的SR resource;

SR发送:

  • 每个逻辑信道可以配置其可以触发的SR资源配置,map(LCID, Scheduling Requested)(为不同的业务配置不同SR资源,获得延时和可靠性的区分)。
  • 只有当触发的BSR(pending状态)中包含的逻辑信道有对应的SR资源配置,UE才允许在该对应的SR资源触发SR。采用优先级最高的逻辑信道对应的SR资源进行SR的发送。
  • SR发送次数会有对应的计数器SR_COUNTER (per SR configuration)。当达到最大发送次数的时候,UE停止该SR configuration (Scheduling Requested)对应的SR发送,并触发CB-RACH,同时取消所有的pending SR

SR取消条件:

  • 当BSR被发送后,所有pending SR要取消;
  • 当缓存的数据被发送后,所有pending SR要取消;


十、数据传输-LCP(逻辑信道优先级)

当MAC选中的逻辑信道有多个时,按照信道优先级确定分配资源的先后顺序。以下为LCP过程中需要考虑的相对优先级(按从高到低的顺序排列):

  • C-RNTI MAC CE,或来自UL-CCCH的数据;
  • Configured Grant Confirmation MAC CE(SPS激活确认消息);
  • 用于除“padding BSR”外的BSR MAC control element;
  • PHR MAC CE;
  • 除UL-CCCH的数据外,来自其他逻辑信道的数据;
  • 用于“padding BSR”的BSR MAC CE;

MAC在分配资源时进行逻辑信道选择,能够获得资源的逻辑信道的限制条件包括:

  • 该上行授权的子载波间隔是否是网络配置的子载波间隔 (allowedSCS-List);
  • 该上行授权的PUSCH duration是否是网络配置的PUSCH duration(maxPUSCH-Duration);
  • 该上行授权类型是否是配置授权类型1(configuredGrantType1Allowed);
  • 该上行授权对应的小区是否是网络配置的小区(allowedServingCells);

当有新传数据时,按照如下步骤进行逻辑信道优先级:

1️⃣步骤1:对于所有Bj(+=PBR × T) > 0的逻辑信道,按照优先级递减顺序组包,每个逻辑信道分配的无线资源只能满足PBR的要求。当某个逻辑信道的PBR配置成无穷大时,只有当这个逻辑信道的资源得到满足后,才会考虑比它优先级低的逻辑信道Max(Bj)=(PBR*BSD)。

2️⃣步骤2:Bj减去逻辑信道j在步骤1里复用到MAC PDU的所有MAC SDUs的大小。(参考实现:对于逻辑信道j,每传输一个RLC SDU,先比较Bj是否大于0。如果Bj大于0,则往MAC PDU中添加该SDU。然后将Bj减去该SDU的大小Tsdu。如此反复,直到Bj小于0,接着处理下一逻辑信道)

3️⃣步骤3:如果前两步执行完还剩有上行资源的话,则不管Bj的大小,把剩余的资源按照逻辑信道优先级分配给各个逻辑信道。只有当所有高优先级的逻辑信道的数据都发送完毕且UL grant还未耗尽的情况下,低优先级的逻辑信道才能得到服务。即此时UE最大化高优先级的逻辑信道的数据传输。

下图的 T参数 ,是Bj上一次增加(PBT×T) 的时间间隔


LCP额外限制:

  • UE不应该对RLC SDU进行分段如果整个SDU能够被传输;
  • 如果UE对一个逻辑信道的RLC SDU进行分段,UE应该尽可能将该RLC segment填满该UL grant;
  • UE应该最大化数据传输(即尽量不传padding);
  • 如果一个UL grant的大小是大于或等于8 bytes,且UE有数据传输,UE不能仅仅只传padding BSR 和/或 padding;

本文主要从MAC协议的宏观角度进行讲解,未详细描述每个流程具体细节,后续会对一些重要的流程进行针对性讲解,例如:RACH,HARQ


【5G系列】高层协议栈——协议栈架构
【5G系列】SDAP (Service Data Adaptation Protocol)协议详解
【5G系列】PDCP (Packet Data Convergence Protocol)协议详解
【5G系列】RLC (Radio Link Control )协议详解


以上是关于5G系列MAC (Medium Access Control)协议详解的主要内容,如果未能解决你的问题,请参考以下文章

ORAN专题系列-25:5G nFAPI接口 - 中文规范-2- 消息交互流程物理层与MAC层同步原理

5G无线技术基础自学系列 | 5G信道结构

5G安全系列NAS层安全密钥衍生——USIM相关密钥的衍生

5G安全系列NAS层安全密钥衍生——USIM相关密钥的衍生

使用VS Code配合Remote Development插件连接远程服务器(Mac/Linux+Windows) | Using VS Code with Remote Development Co

5G MAC随机接入流程中的 Msg2 (RAR)