DMR(数字移动无线电)是由欧洲电信标准协会(ETSI)制定的公开数字对讲机协议(ETSI TS 102 361)。以下是其核心机制的详解,按协议层次展开:
一、物理层(Physical Layer)
1.调制方式
采用 4FSK(4级频移键控),符号速率9.6 kbd(千波特)。
每个符号携带2比特信息(00, 01, 10, 11对应4种频偏)。
频偏±1.8 kHz(低符号)和±5.4 kHz(高符号),抗噪声能力强。
2.信道带宽与时隙
12.5 kHz信道带宽(与模拟FM兼容)。
通过 TDMA(时分多址) 将信道分为2个时隙(Slot):
Slot 1 和 Slot 2 交替传输,每个时隙30ms。
物理帧总时长60ms,含发送、保护和同步序列。
3.突发结构
每个时隙包含:
同步序列:SB(未加密)或 ETSI(加密)同步码,用于时隙对齐。
数据字段:承载语音/数据。
保护间隔:防止时隙间干扰。
时隙参数 | 数值 | 功能说明 |
---|---|---|
物理帧长 | 60ms | 完整双时隙周期 |
单时隙长 | 30ms | 有效传输单元 |
保护间隔 | 2.5ms | 防止时隙重叠 |
二、数据链路层(Data Link Layer)
1. 逻辑信道结构
-
CACH(公共分配信道)
位于时隙起始处,携带:- 时隙类型(语音/数据)
- 目标地址(个人/组呼)
- 信道占用标志(防止冲突)
-
载荷类型
类型 用途 结构示例 语音突发 AMBE+2编码语音(共72比特) 前向纠错+语音数据 数据突发 文本消息/GPS/控制信令 头信息+用户数据+CRC校验
// CACH数据结构示例
struct cach_header {
uint8_t slot_type:2; // 时隙类型:00=语音 01=数据
uint8_t target_type:2; // 目标类型:00=个体 01=组呼 10=广播
uint8_t color_code:4; // 色码(0-15)
uint24_t dst_id; // 目标ID(24位)
};
- CACH(公共分配信道):时隙起始处的控制信道,承载路由关键信息
- 双时隙协同:Slot 1用于上行,Slot 2用于下行(中继模式)
AMBE+2声码器特性:
- 压缩率:20ms音频→72bit数字流
- 净速率:3.6kbps语音 + 1.2kbps FEC = 总4.8kbps/时隙
- 抗丢包:支持30%数据包丢失仍可解析语音
2. 地址机制
-
DMR标识符(ID)
- 24位地址空间(约1600万用户)。
- 分三类:
- 个体ID:单用户(如123456)
- 组ID:群组呼叫(如Group 88)
- 广播ID:全呼
-
色码(Color Code)
- 4比特(0-15),类似模拟CTCSS(模拟对讲机中广泛使用的亚音技术标准),区分同频相邻系统。
三、网络层与应用层
1. 呼叫类型
- 单工直通(Tier I/II)
无中继,点对点通信。终端A --[Slot1]--> 终端B 终端B --[Slot2]--> 终端A
- 中继模式(Tier III)
通过中继台路由,支持广域组网。终端A → 中继台(Slot1上行) → 中继台(Slot2下行)→ 终端B
2. 语音编码与处理
- 声码器:AMBE+2™ 或 IMBE™
- 压缩后速率 3.6 kbps(净语音)+ 前向纠错 = 总4.8 kbps/时隙。
- 帧结构:每30ms语音包包含2个子帧(各20ms数据)。
3. 数据传输功能
-
协议数据单元(PDU)类型
PDU类型 功能 结构 UDT 用户数据(文本/GPS) 目标ID + 文本/GPS ACK 数据确认 源ID + 序列号 预编码信令 遥毙/检查/报警 控制码 + 参数 -
应用示例(GPS位置上报)
[CACH: 组ID 0x0A] + [PDU: UDT(GPS: 39.9042°N, 116.4074°E)]
4. 通信拓扑模型
Tier分级部署方案:
Tier等级 | 部署架构 | 适用场景 |
---|---|---|
Tier I | 点对点直通 | 工地/酒店等小范围通信 |
Tier II | 单站中继 | 城市区域覆盖 |
Tier III | 多站集群 | 广域组网(支持漫游) |
四、关键协议细节
-
时隙同步
- 每个时隙以 同步字 开始(如“BP”突发同步为0x755FD7)。
- 接收端通过相关检测锁定时隙边界。
-
纠错机制
- FEC(前向纠错):
- 语音:Reed-Solomon(10,6) + 卷积码。
- 数据:CRC-16校验 + RS重传。
- FEC(前向纠错):
-
安全机制
- 基础加密:ARC4算法(40位密钥)。
- 高级加密:AES-256(可选)。
// ARC4加密流程示例
byte[] encrypt(byte[] payload, int[] key) {
ARC4 cipher = new ARC4(key);
return cipher.process(payload);
}
五、典型呼叫流程(组呼)
-
发起呼叫
终端A在Slot1发送:[CACH:组ID+色码]+[语音头:目标组ID]+[AMBE语音数据]
-
中继台广播
中继台在Slot2转发至全组用户。 -
用户响应
终端B抢占Slot1回复,中继台通过Slot2广播。
六、DMR协议栈总结
层 | 组件 | 功能 |
---|---|---|
物理层 | 4FSK调制 / TDMA / 突发结构 | 比特流传输 / 时隙分割 |
数据链路层 | CACH / 地址管理 / 纠错 | 逻辑控制 / 数据成帧 |
网络层 | 路由(Tier III) / IP互联 | 广域组网 / 与PSTN对接 |
应用层 | 语音编码 / 文本消息 / GPS | 用户数据实现 |
注:Tier I(直通)、Tier II(常规中继)、Tier III(集群系统)为DMR的三种部署等级,其中Tier II最常用。