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 kHzLTE 资源块(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 RBMAC 层
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",1Linux 下的 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,1PCIe 接口详解
高端 4G/5G 模组(EP06、RG520N 等)支持 PCIe 接口,提供更高带宽。
PCIe 接口规格
EP06(Cat.12):PCIe Gen2 x1
- 理论带宽:5 Gbps
- 实际可用:约 500 Mbps(受模组速率限制)
RG520N(5G):PCIe Gen3 x1
- 理论带宽:8 Gbps
- 实际可用:约 4 GbpsLinux 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_netdev0UART 接口详解
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,0UART 多路复用(MUX)
通过 3GPP TS 27.010 MUX 协议,在单个 UART 上虚拟出多个逻辑通道:
bash
# 开启 MUX 模式
AT+CMUX=0 # 基本模式
# 或
AT+CMUX=1 # 高级模式
# 开启后,UART 上会有多个虚拟通道:
# 通道1:AT 指令
# 通道2:PPP 数据
# 通道3:GNSS 数据(如有)