GSM时间管理核心:TDMA时隙、突发脉冲与逻辑信道映射全解析
2026/9/15 16:28:02 网站建设 项目流程

GSM 这套体制能被叫成“时间管理大师”,不是因为它会排日程表,而是因为它把无线电频谱的使用精确到了比特级:一个载频 200kHz 的带宽,要同时喂饱几个甚至十几个用户,光靠“分频”是不够的,必须再把时间切成极细的片。TDMA 时隙、突发脉冲、逻辑信道映射这几样东西,就是 GSM 管理时间的核心手段。这篇文章我想用做工程的习惯,把这条链从头到尾拆开,配合可以直接照做的查表方法和现场判断经验,帮你把“时隙”从概念变成脑子里可以随时调用的画面。

这篇内容适合三类人:刚接触 GSM 空口的通信专业学生、日常优化无线网络的网优工程师,以及那些想搞明白“手机上那个信号格背后到底在干嘛”的技术爱好者。我会把原理、字段、映射规则和对到实际信令里的方法放在一起讲,尽量让每个环节都能落地。

1. 为什么 GSM 非得把时间切成片:一个载频养活多个用户的基本逻辑

1.1 频率不够分,只能“分时”凑

GSM 系统最早设计时,每个载频只占 200kHz 带宽,一个 900MHz 频段全部可用带宽也就几十兆赫兹,能分出的载频数量非常有限。如果每个用户独占一个载频,一个基站小区撑死只能同时服务几十个人,根本不够用。于是 GSM 采用了 FDMA 和 TDMA 的组合方案:先把频谱切成一个个 200kHz 的载频,再把每个载频在时间上切成一个个时隙,不同用户在不同时间点使用同一个载频。

这个思路不难理解,就像火车轨道只有一条,但可以通过时刻表让多趟列车共用轨道。频率是“轨道”,TDMA 时隙就是“发车时刻”。多个用户错开时间,互不干扰。

1.2 8 个时隙组成一帧,4.615 毫秒转一圈

GSM 规定,一个 TDMA 帧包含 8 个时隙,编号为 TS0 到 TS7。每个时隙约 0.577 毫秒,一帧总共约 4.615 毫秒。手机通话时,不是一直占着载频发送语音,而是每隔一帧,在自己分配到的那个时隙里发送一个突发脉冲,其余 7 个时隙的时间可以用于测量邻区、切换发射频率等。

这里有个容易理解的类比:你去食堂打饭,如果每个人打饭要 5 分钟,8 个人一起挤在窗口前就乱套了。但如果你规定一号窗口 8:00-8:05 给张三,8:05-8:10 给李四,大家按时间表来,秩序就建立起来了。GSM 的 8 个时隙就是这张“窗口时间表”。

1.3 时间管理必须有“对表机制”:定时提前为什么存在

直接把时间切好就够了吗?不够。因为手机离基站的距离不一样,无线电波在空中传播需要时间。如果两台手机都按同一个时间点发送,离基站近的那台信号先到,远的那台信号后到,后到的信号就可能撞进下一个时隙,把别人的数据压坏。

GSM 的解法是“定时提前”(Timing Advance,简称 TA)。基站会测量手机上行信号到达的时间偏移,然后通过信令告诉手机:“你提前一点发。”提前多少呢?以 bit 为单位计算,一个 bit 约 3.69 微秒,对应传播距离大约 554 米。所以 TA=1 时,手机大约提前 3.69 微秒发送;TA=10 时,手机就提前约 5.5 公里对应的传播时间发送。

这个机制是不是很像会议主持人要求远程发言的人在轮到自己的时候稍微提前开麦?如果你等到主持人点到你了才开麦,声音传到会场已经晚了半拍。GSM 要的就是让每个用户的突发脉冲“分毫不差”地落到基站接收窗口中间,这就是时隙真正能工作的前提。

2. 从帧到复帧再到超帧:先看懂 GSM 的时间刻度表

2.1 最小单位不是“秒”,而是“bit 和时隙”

要理解 GSM 的时间管理,建议先建立一张层级表:bit 是最小信息单位,大约 3.69 微秒一个;156.25 个 bit 组成一个时隙,约 0.577 毫秒;8 个时隙组成一个 TDMA 帧,约 4.615 毫秒。

GSM 的空中接口速率为 270.833 kbit/s,所以每个时隙承载 156.25 bit 的时长。之所以有 0.25 这个小尾巴,是因为要留一部分时间做保护间隔,避免相邻时隙的信号在时间上相互叠加。这个 0.25 bit 的“零头”也解释了为什么突发脉冲实际内容往往只有 148 bit 左右,剩下的 8.25 bit 是空的保护区间。

2.2 框架为什么要分 26 帧和 51 帧两种

如果所有信道都按 8 个时隙一帧循环,控制信令和业务数据就会挤成一团。GSM 把成帧结构再往上扩展了两层:

  • 业务复帧:由 26 个 TDMA 帧组成,时长 120 毫秒,主要用于承载语音业务信道,并留出专门位置承载随路信令(SACCH)。
  • 控制复帧:由 51 个 TDMA 帧组成,时长约 235.4 毫秒,主要用于承载广播控制和公共控制信道。

为什么偏偏选 26 和 51?一个关键原因是这两个数互质。互质意味着业务复帧和控制复帧在时间轴上会错开排列,不会出现“业务信道总在某个位置撞到控制信道”的尴尬局面。24 个 TCH 突发加 1 个 SACCH 突发加 1 个空闲帧,刚好凑成 120 毫秒,和 20 毫秒一个语音编码块的节奏能良好配合。

2.3 超帧、超高帧与帧号 FN

26 个业务复帧组成一个超帧,51 个控制复帧也组成一个超帧,两者时间长度相同,都是 1326 个 TDMA 帧,约 6.12 秒。再往上,2048 个超帧组成一个超高帧,帧号 FN 从 0 到 2715647 循环。这个庞大的帧号就是 GSM 全网统一的“大时钟”,加密、跳频、测量上报都依赖它。

在工程里,FN 最常见的用途有两个:一是加密算法需要根据 FN 和时间戳计算出加密序列;二是跳频时,系统用 FN 和 HSN(跳频序列号)确定下一个突发跳到哪个载频上。所以看到空口信令里带着一串帧号,不要嫌它烦,它是定位问题的关键线索。

时间单位组成关系时长
bit1 bit ≈ 3.69 μs微小时间片
时隙156.25 bit约 0.577 ms
TDMA 帧8 个时隙约 4.615 ms
业务复帧26 个 TDMA 帧120 ms
控制复帧51 个 TDMA 帧约 235.4 ms
超帧51 个业务复帧或 26 个控制复帧约 6.12 s
超高帧2048 个超帧约 3 小时 28 分

3. 突发脉冲:每个时隙里到底塞了什么

3.1 普通突发:穿衣最多的“标准包裹”

普通突发(NB)是 GSM 里最常见的突发类型,语音业务、多数控制信道都使用它。一个普通突发长这样:3 bit 尾比特,57 bit 信息,1 bit 偷帧标志,26 bit 训练序列,1 bit 偷帧标志,57 bit 信息,3 bit 尾比特,最后还有 8.25 bit 保护间隔。

这个结构里,训练序列是重中之重。26 bit 的已知序列放在中间,接收端拿它做信道估计,从而判断无线环境里有多径反射、信号被扭曲成什么样,再通过均衡器把信号“掰直”。训练序列放在正中间是有讲究的:一个突发的前后半段都可能受到多径干扰,把已知序列放在中间,能让均衡器同时照顾到前后两段数据。

偷帧标志只有 1 bit,但作用很大。话音信道上如果突然要传紧急信令,比如切换命令,GSM 会把偷帧标志置为 1,接收方一看就知道“这一突发里不是正常语音,而是信令”,于是转去处理快速随路控制信道(FACCH)的内容。这就是为什么平时看统计 FACCH 占用率,可以间接判断切换频繁程度。

3.2 频率校正突发和同步突发:开机后最先见到的两种突发

手机上电后第一步是搜网。它怎么知道哪个载频是基站广播的 BCCH 载频?靠的就是频率校正突发(FB)。FB 的结构是 142 bit 全 0 序列,经过 GMSK 调制后,在频谱上会形成一条非常明显的单音信号。扫频时找到这条“亮线”,就知道这里是 BCCH 载频中心。

随后手机需要读取同步突发(SB),SB 里有一段 64 bit 的扩展训练序列,用来帮助手机锁定符号同步,同时还能携带当前帧号和基站识别码 BSIC。FCCH 帮你找到了“停车场入口”,SCH 告诉你“当前是几点、这是哪个停车场”,两者配合完成初步同步。

3.3 接入突发:第一次说话,人人都得留足安全距离

手机第一次接入网络时,还不知道定时提前量,所以 RACH 信道使用接入突发(AB)。AB 的保护间隔在五种突发里最长,达到 68.25 bit。为什么?因为手机可能离基站 30 公里远,信号来回传播需要时间,如果保护间隔不够长,第一次发送的突发就可能撞进后面的时隙。这段“安全距离”就是给未知传输时延留的余量。

拿生活类比:新手司机倒车入库时,如果车位两边都没有参考物,你会本能地留出更大的前后距离。等熟悉了车感之后,再一点点贴近。手机也是这样,第一次接入用长保护间隔,接入成功后进入正式通话,才改用短保护间隔的普通突发。

3.4 五种突发脉冲对比

突发类型核心特征保护间隔主要用途
普通突发 NB两个 57 bit 信息块 + 26 bit 训练序列8.25 bitTCH、BCCH、SDCCH、SACCH、FACCH 等多数信道
频率校正突发 FB142 bit 全 08.25 bitFCCH,形成单音供手机扫频
同步突发 SB64 bit 扩展训练序列 + 39 bit 信息8.25 bitSCH,携带帧号和 BSIC
接入突发 AB41 bit 同步序列 + 36 bit 信息68.25 bitRACH 随机接入
伪突发 DB固定填充内容8.25 bit空闲时隙填充

4. 逻辑信道映射:把快递包裹按地址送进对应的房间

4.1 先分清逻辑信道有哪些

逻辑信道是“数字通信里的快递面单”:它描述的是一种语义角色,不管它最终落在哪个物理时隙上。GSM 的逻辑信道大致分四类:

  • 广播信道:FCCH、SCH、BCCH,负责频率同步、时间同步和系统消息广播。
  • 公共控制信道:RACH(上行随机接入)、AGCH(下行接入允许)、PCH(下行寻呼)。
  • 专用控制信道:SDCCH(独立专用控制信道,传信令)、SACCH(慢速随路控制信道,传测量报告和 TA)、FACCH(快速随路控制信道,借用 TCH 资源)。
  • 业务信道:TCH/F(全速率语音)、TCH/H(半速率语音)。

这些逻辑信道不像互联网端口那样“随时随地在听”,它们必须被一位一位地安排进 TDMA 帧的时隙里,这就是映射。

4.2 51 复帧:控制信道的时间表

以最常见的 TS0 组合(BCCH + CCCH)为例,控制信道按 51 个 TDMA 帧循环安排。每隔 10 帧会出现一次 FCCH 和 SCH,然后是 4 帧 BCCH,再是 4 帧 CCCH,第 50 帧空闲。所以在 51 复帧里,FCCH 和 SCH 各出现 5 次,BCCH 和 CCCH 各有 20 帧。

手机开机搜网时之所以能较快锁定小区,就是因为 FCCH 在 51 复帧里出现得足够频繁,大约每 47 毫秒左右就能遇到一次频率校正突发。BCCH 的系统消息块需要 4 帧才能构成一个完整消息,所以一个 BCCH 消息块周期性重复,手机连续读几次就能拼出系统信息。

这里给你一个工程上的实用做法:如果拿到空口日志,想快速判断某个下行突发是不是 BCCH,可以取它的帧号 FN 对 51 取余数,再查所在位置。

FN mod 51信道用途
0FCCH
1SCH
2-5BCCH
6-9CCCH (PCH/AGCH)
每 10 帧循环一次重复上述结构
50空闲帧

4.3 26 复帧:业务信道的时间表

业务信道不按 51 帧走,而是按 26 帧循环。在一个业务复帧里,第 0 到第 11 帧用于 TCH,第 12 帧用于 SACCH,第 13 到第 24 帧用于 TCH,第 25 帧空闲。这样算下来,一个 TCH 全速率信道在一个 26 复帧周期里能拿到 24 个突发,刚好支撑一路语音的传输。

SACCH 的位置在第 12 帧,这一点对理解测量报告周期特别关键。SACCH 的一个完整消息块需要 4 个突发,分布在连续 4 个业务复帧里,所以测量报告大概每 480 毫秒上报一次。你在网优平台上看到的无线测量数据,本质上就是手机每隔约半秒上报一次的电平和质量统计。

4.4 组合信道:TS0 为什么这么忙

一个载频只有 8 个时隙,GSM 不可能给每个逻辑信道都分配独立时隙,所以它把多种逻辑信道“塞”在同一个时隙上,这叫组合信道配置。最常见的是 BCCH + CCCH 组合,占 TS0;如果要提高寻呼容量,TS0 也可以变成 BCCH + CCCH + SDCCH/4 的组合;要扩充信令承载能力,再用 TS1 配 SDCCH/8。

这样的设计会让工程现场看配置时感到眼花缭乱。我的经验是只要盯住一点:小区第一块载频的 TS0 几乎总是承载控制信道,绝对不能用来做业务信道。后面加的载频,则可以根据话务模型把时隙配成纯 TCH,或继续配一些 SDCCH。

4.5 为什么业务复帧和控制复帧“互质”这么重要

26 和 51 互质,让业务复帧里的 SACCH、空闲帧和控制复帧里的 FCCH、BCCH 能以一个自然周期错开,减少信道间互锁等待。这个设计比单用一种复帧更优雅:如果都用 51 帧,业务信道的 SACCH 位置和控制信道的 BCCH 位置就可能长期“打架”。

5. 实战图解:给你一个帧号,怎么算出它在哪个逻辑信道

5.1 用 Python 快速定位 TS0 控制信道

这一节,我们直接来点能“抄作业”的东西。下面这段代码可以在拿到帧号 FN 后,快速判断该帧落在 TS0 的哪个逻辑信道上:

def identify_ts0_channel(fn): n = fn % 51 # 51 复帧按 10 帧一组循环 block = n % 10 if n == 50: return "IDLE" elif block == 0: return "FCCH" elif block == 1: return "SCH" elif 2 <= block <= 5: return "BCCH" elif 6 <= block <= 9: return "CCCH/PCH-AGCH" else: return "UNKNOWN"

实际使用时要注意:这个判断只适用于 TS0 配置为 BCCH + CCCH 组合的情况。如果 TS0 还叠加了 SDCCH/4,那么部分帧会被拨给 SDCCH,直接套这段代码会把 SDCCH 帧误判成空闲帧。真机分析时最好先看系统消息里的信道组合指示。

5.2 用 26 复帧定位业务时隙

测试手机如果占用了某个 TCH 时隙,你想知道当前突发是语音还是 SACCH,可以按 26 复帧取模:

def identify_tch_channel(fn): n = fn % 26 if n == 12: return "SACCH" elif n == 25: return "IDLE" else: return "TCH"

这个例子比较理想化,真实网络还涉及跳频,但逻辑是一样的:先把帧号和时间关系对齐,再看落在哪个位置。

5.3 从开机到通话:一条完整的时间线走读

为了把前面的概念串起来,我们假设一部手机在 LAC 里做一次位置更新:

阶段逻辑信道方向突发类型关键信息
开机扫频FCCH下行FB找到 BCCH 载频,锁定频率
帧同步SCH下行SB获得帧号和 BSIC
读系统消息BCCH下行NB获取 LAI、控制信道参数
发起接入RACH上行AB随机接入请求
接入允许AGCH下行NB立即指配,指定 SDCCH
信令交互SDCCH双向NB位置更新请求/接受
随路控制SACCH双向NB携带 TA 和测量报告
释放SDCCH/SACCH双向NB信道释放

这张表你完全可以打印出来贴工位上。看空口信令的时候,先判断当前阶段处于哪一步,再去看对应的逻辑信道类型,思路会清晰很多。

5.4 测量报告和 TA 调整的“半秒节奏”

通话中,手机每个 SACCH 周期(约 480 毫秒)都会上报一次测量报告,内容包括服务小区电平、质量、邻区电平等。基站也会在下行 SACCH 上给手机调整 TA 和功率控制命令。这就是为什么 SACCH 被称为“慢速随路控制”:它不是实时每一帧都在发,而是每 480 毫秒集中处理一次。

在工程里,如果发现某小区上行干扰严重,你可以去统计 SACCH 上收到多少错误的测量报告;如果发现某用户经常出现 TA 特别大但信号又不太差的情况,要怀疑是不是存在直放站或拉远设备导致的时间延迟异常。

5.5 抓空口日志时的核对技巧

实际做外场测试时,我们用测试手机抓到的内部日志里会直接标出物理信道类型,但偶尔也会遇到只给时隙号和帧号的情况。这时候手动计算 FN mod 51 或 mod 26 就很实用。

再分享一个看频谱的小技巧:用频谱仪扫描 BCCH 载频时,你会看到在载频中心频率偏置约 67.7kHz 的位置有一条稳定亮线,那就是 FCCH。如果一条亮线都没有,说明该载频可能不是 BCCH 载频;如果有但间隔不规则,要怀疑小区覆盖存在同频干扰或设备故障。

6. 时间管理翻车现场:时隙配置、TA 超限与信道拥塞

6.1 一个载频为什么只能承载这么点用户

很多人初学时会困惑:一个载频有 8 个时隙,为什么小区容量听起来才几十人?因为 TS0 很可能被控制信道占用,剩下 7 个时隙如果全配 TCH/F,一个载频最多同时服务 7 个全速率语音用户。如果开启半速率,一个时隙可以掰成两路,理论容量能翻倍,但语音质量会有所下降。

这意味着扩容不是简单“加个载频”就完事。每加一个载频,要决定新增时隙是纯业务信道,还是要分摊一部分 SDCCH/CCCH 负荷。否则可能出现一种反直觉现象:TCH 还有空闲,SDCCH 却拥塞到手机无法完成寻呼响应。

6.2 TA 超限和上行干扰:时间错位造成的怪问题

TA 最大 63,对应半径约 35 公里。如果网优里看到一个用户 TA 接近上限,但发射功率已经调满,多半是覆盖过远或存在塔下黑、直放站放大延迟等。TA 异常会导致上行突发到达基站的时间不准确,即使频率没错,也会发生时隙间干扰。这不像同频干扰那样表现为频谱抬升,而是表现为上行误码率升高、随机接入成功率下降。

排查这类问题的一个实用思路是分时隙统计。如果某个上行时隙失败率明显高于其他时隙,先把该时隙的业务量、占用用户 TA 分布拉出来看,大概率能找到元凶。

6.3 SDCCH 拥塞、PCH 溢出和 TCH 拥塞,现象完全不一样

  • SDCCH 拥塞:位置更新成功率下降、呼叫建立中“立即指配”成功率低。
  • PCH 溢出:被叫寻呼无响应比例上升,主叫侧听到回铃音很久但被叫不震铃。
  • TCH 拥塞:业务信道分配失败,用户听到忙音。

这三类问题处理方式差异很大,但追根溯源都在时隙规划上。控制信道时隙给少了,SDCCH 和 CCCH 就会先出问题;业务时隙给少了,TCH 就会拥塞。扩容前先做话务模型测算,比事后反复调参数靠谱得多。

6.4 跳频场景下,别被“载频号”骗了

GSM 开启跳频后,同一个时隙可能每个 TDMA 帧都跳到不同载频上。此时你抓到的某个突发,物理载频是变化的,但时隙位置固定。分析时如果只看载频号容易误判,应该结合 FN、MAIO 和 HSN 推算当前帧实际使用的载频,或者直接依赖路测软件已经解出的信道类型。

BCCH 载频上的控制信道一般是不参与跳频的,这也是为什么 FCCH、SCH、BCCH 相对稳定,容易在频谱上找到。

6.5 给学习者的建议:怎么把这些概念变成自己的

我的建议是不要死记硬背 51 帧和 26 帧的每一格,而是先记住三个定位点:FCCH 在 51 复帧每个 10 帧周期的开头、SACCH 在 26 复帧第 12 帧、TS0 几乎一定是控制信道。把这三点刻在脑子里,任何一张空口日志拿出来,你都能快速找到切入位置。

如果手头有条件,可以用一台老款测试手机、一个频谱仪,对着真实的 GSM 小区抓一段时间的数据,再去回放日志看时序。没有条件的话,也可以用网上能找到的公开 GSM 空口样例数据练手,重点锻炼“看到一个帧号,立刻想到它应该落在哪类信道上”的反应速度。

我自己刚接触 GSM 那阵,也是被一堆复帧结构搞得晕头转向,后来发现最有效的方法是拿真实日志一段一段标出来,标注完十来个 51 复帧周期,自然就熟。技术这东西,看十遍不如动手对一遍,GSM 的时间管理再复杂,也经不住你拿真实数据反复拆。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询