嵌入式开发中,Modem(调制解调器)是实现设备联网、特别是通过蜂窝移动网络(4G Cat1)或工业总线进行远距离通信的核心部件。它扮演着设备与广阔网络世界之间的“翻译官”和“接线员”。
一、Modem核心角色:信号“翻译官”
为了让嵌入式设备能通过电话线、无线电波等模拟信道发送数字信息,Modem需要完成两个关键转换:
- 调制:发送时,将设备内部的数字信号(如0101)调制成适合在特定信道(电话线、蜂窝网络、卫星信号)中远距离传输的模拟信号。
- 解调:接收时,将来自信道的模拟信号还原回设备能理解的数字信号。
二、工作流程:如共享单车锁、远程气象站
传感器/应用 --->
设备端:应用程序 ---> 通信协议(TCP/IP、MQTT) ---> AT指令驱动 ---> “AT指令集” --->
通信核心:基带处理器 ---> 射频前端 ---> SIM/ESIM卡 ---> “无线射频信号” --->
基站/卫星 ---> 云端服务器
- 发起请求:当设备需要上报数据时,主控MCU通过串口(UART)向Modem发送一系列AT指令。例如,发送AT+CGACT=1,1来激活网络连接。
- 网络注册:Modem根据指令,通过内置的SIM卡向附近的蜂窝网络基站或卫星(如NB-IoT NIN)发起注册和连接请求。
- 数据传输:连接建立后,MCU将应用数据(如温度读数)通过Modem发送出去。Modem负责将数据打包、加密、调制,最终通过天线以无线电波形式发出。
- 接收指令:同样地,云端下发的控制指令经由网络到达Modem,解调后通过串口传送给MCU执行。
三、开发要点
1. 硬件接口:主要通过UART串口与主控MCU连接。部分高速Modem可能使用USB接口。
2. 软件核心——AT指令:你需要编写代码,让MCU能够发送和解析一系列标准的AT指令,来控制Modem完成联网、收发数据等所有操作。
3. 选择通信制式:根据项目选择合适的Modem,常见选择包括:
- 低功耗广域网:NB-IoT(小数据、静止)、LTE Cat.1(中等数据、移动性,适合共享设备)。
- 卫星物联网:支持NB-IoT NTN的Modem,用于无地面信号的偏远地区。
- 工业专用:HART Modem,用于改造现有工业现场仪表系统。
四、AT指令与Modem
AT指令是操控Modem的唯一语言,而Modem是执行这条语言的物理实体。
设备开机联网的全过程,本质上是系统软件自动、密集地发送一系列AT指令来配置和控制Modem的结果。即使用户没有输入,但底层驱动和操作系统不停地“对话”。
核心关系:MCU必须通过AT指令字符串,来“命令”Modem执行所有操作,包括开关、联网、发数据、读信号等。没有AT指令,MCU就无法与Modem进行任何有效交互。