Skip to content

LTE 协议与接口详解

LTE 空口协议栈

物理层(PHY)

LTE 物理层基于 OFDMA(正交频分多址)技术:

下行(基站→终端):OFDMA
  - 子载波间隔:15 kHz
  - FFT 大小:128 ~ 2048 点
  - 循环前缀:Normal CP(4.7μs)/ Extended CP(16.7μs)

上行(终端→基站):SC-FDMA(单载波频分多址)
  - 降低 PAPR(峰均比),节省终端功耗
  - 子载波间隔同为 15 kHz

LTE 资源块(Resource Block):

1 个 RB = 12 个子载波 × 1 个时隙(0.5ms)
        = 12 × 15kHz = 180 kHz 带宽
        = 84 个 RE(资源元素)

系统带宽与 RB 数量:
  1.4 MHz → 6 RB
  3 MHz   → 15 RB
  5 MHz   → 25 RB
  10 MHz  → 50 RB
  15 MHz  → 75 RB
  20 MHz  → 100 RB

MAC 层

MAC 层负责调度和 HARQ(混合自动重传请求):

HARQ 工作原理:
  1. 发送方发送数据包
  2. 接收方解码失败 → 发送 NACK
  3. 发送方重传(Chase Combining 或 Incremental Redundancy)
  4. 接收方合并多次接收的信号,提高解码成功率

HARQ 进程数:
  FDD:8 个并行 HARQ 进程
  TDD:最多 15 个

RLC 层

RLC 提供三种传输模式:

模式说明适用场景
TM(透明模式)无头部,无重传广播、寻呼
UM(非确认模式)有序传输,无重传VoIP、视频流
AM(确认模式)有序传输,ARQ 重传TCP 数据

USB 接口详解

USB 枚举模式

移远 4G 模组 USB 接口支持多种枚举模式:

bash
# 查询当前 USB 模式
AT+QCFG="usbnet"
# 0: NDIS/QMI(默认,Windows 推荐)
# 1: CDC-ECM(Linux 推荐)
# 2: MBIM(Windows 10+ 推荐)
# 3: RNDIS(通用网卡)

# 设置为 ECM 模式(Linux)
AT+QCFG="usbnet",1

Linux 下的 USB 驱动

bash
# 方法1:使用内核自带 qmi_wwan 驱动
# 适用于 NDIS/QMI 模式
modprobe qmi_wwan
# 会创建 wwan0 接口,需要配合 libqmi 或 ModemManager 使用

# 方法2:使用 CDC-ECM 驱动
# 适用于 ECM 模式
modprobe cdc_ether
# 会创建 usb0 接口,可直接使用 DHCP

# 方法3:使用移远提供的 GobiNet 驱动
# 下载:https://github.com/quectel/GobiNet
make && make install
# 创建 eth0 接口

# 方法4:使用 quectel-CM 连接管理工具
./quectel-CM -s cmnet -4
# 自动处理拨号和路由

Windows 下的驱动安装

1. 下载移远 Windows USB 驱动
   官网:https://www.quectel.com/download/
   
2. 安装驱动后,设备管理器会出现:
   - Quectel USB AT Port(COM口,AT指令)
   - Quectel USB DM Port(诊断口)
   - Quectel USB NMEA Port(GNSS数据,如有)
   - Quectel USB Modem(拨号网络)
   - Quectel USB Net Adapter(网卡,NDIS模式)

3. 使用 NDIS 模式拨号:
   AT+QCFG="usbnet",0
   AT+CGDCONT=1,"IP","cmnet"
   AT$QCRMCALL=1,1

PCIe 接口详解

高端 4G/5G 模组(EP06、RG520N 等)支持 PCIe 接口,提供更高带宽。

PCIe 接口规格

EP06(Cat.12):PCIe Gen2 x1
  - 理论带宽:5 Gbps
  - 实际可用:约 500 Mbps(受模组速率限制)

RG520N(5G):PCIe Gen3 x1
  - 理论带宽:8 Gbps
  - 实际可用:约 4 Gbps

Linux PCIe 驱动

bash
# 查看 PCIe 设备
lspci | grep Quectel
# 输出:01:00.0 Wireless controller: Quectel Wireless Solutions ...

# 加载驱动(移远提供)
# 下载:https://github.com/quectel/quectel-CM
insmod pcie_mhi.ko
insmod mhi_netdev.ko

# 查看网络接口
ip link show mhi_netdev0

UART 接口详解

UART 是最简单的接口,适合资源受限的 MCU 系统。

UART 配置

bash
# 查询当前波特率
AT+IPR?
# +IPR: 115200

# 设置波特率(重启后生效)
AT+IPR=921600;&W

# 常用波特率:9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600

# 查询流控设置
AT+IFC?
# +IFC: 2,2  (硬件流控 RTS/CTS)

# 关闭流控(简化接线)
AT+IFC=0,0

UART 多路复用(MUX)

通过 3GPP TS 27.010 MUX 协议,在单个 UART 上虚拟出多个逻辑通道:

bash
# 开启 MUX 模式
AT+CMUX=0  # 基本模式
# 或
AT+CMUX=1  # 高级模式

# 开启后,UART 上会有多个虚拟通道:
# 通道1:AT 指令
# 通道2:PPP 数据
# 通道3:GNSS 数据(如有)

褚成志的笔记