4G模块作为一种广泛应用的通信组件,其核心功能之一是通过AT命令与主控制器(如单片机、嵌入式系统等)进行交互,实现数据传输、网络注册、参数配置等功能,AT命令(Attention Command)是一种源自调制解调器的控制语言,其格式通常以“AT”或“AT+”开头,以回车符(CR)或回车换行符(CRLF)通过串口与4G模块进行通信,本文将详细介绍4G模块AT命令的分类、常用命令、使用场景及注意事项,帮助开发者快速掌握其应用方法。

AT命令基础格式与通信原理
4G模块的AT命令通信基于串口(UART)协议,主控制器通过串口发送AT命令,模块解析后返回响应结果,命令的基本格式为:AT+命令参数=值,例如AT+CSQ用于查询信号质量,模块的响应通常以“OK”表示成功,“ERROR”表示失败,部分命令会返回具体数据,如信号强度值,通信时需注意波特率、数据位、停止位、校验位等串口参数需与模块配置一致,常见的波特率有9600、115200等,部分模块支持命令回显(ATE1开启,ATE0关闭),调试时可开启以便观察命令发送与响应过程。
AT命令分类详解
基础命令
基础命令用于测试模块通信状态及控制基本功能,是所有操作的前提。
- AT:测试命令,模块返回“OK”表示通信正常。
- ATE0/ATE1:关闭/开启命令回显,ATE0可减少输出数据量。
- AT+CMEE:设置错误报告级别,如AT+CMEE=2返回详细错误码,便于调试。
网络相关命令
网络功能是4G模块的核心,需通过AT命令完成网络注册、查询等操作。
- AT+CREG?:查询网络注册状态,返回“+CREG: 0,1”表示已注册到家庭网络,“1,5”表示漫游中。
- AT+CEREG?:查询EPS网络注册状态(LTE网络),返回“+CEREG: 0,1”表示已注册到LTE网络。
- AT+CSQ:查询信号质量,返回值如“+CSQ: 25,99”,其中25为信号强度(0-31,31为最强),99为未收到信号。
- AT+COPS:选择网络运营商,如AT+COPS=1自动选择运营商,AT+COPS=3,"46000"手动选择中国移动。
TCP/UDP通信命令
4G模块支持基于TCP/UDP协议的数据传输,需通过AT命令配置Socket连接。

- AT+CIPMUX:设置多连接模式,AT+CIPMUX=0单连接,AT+CIPMUX=1多连接。
- AT+CIPSTART:建立连接,如TCP连接:AT+CIPSTART=0,"TCP","192.168.1.100",8080;UDP连接:AT+CIPSTART=0,"UDP","192.168.1.100",5000。
- AT+CIPSEND:发送数据,单连接模式下AT+CIPSEND=10(发送10字节),多连接模式下需指定ID,如AT+CIPSEND=0,5(连接0发送5字节)。
- AT+CIPCLOSE:关闭连接,AT+CIPCLOSE=0关闭指定连接,AT+CIPCLOSE关闭所有连接。
- AT+CIPSTATUS:查询连接状态,返回“+CIPSTATUS: 0,0”表示未连接,“3,0”表示已连接。
短信与电话命令(部分模块支持)
部分4G模块集成GSM功能,支持短信收发和电话拨打。
- AT+CMGF:设置短信模式,AT+CMGF=0为PDU模式,AT+CMGF=1为文本模式。
- AT+CMGS:发送短信,文本模式下AT+CMGS="13800138000",输入内容后按Ctrl+Z发送。
- AT+CMGR:读取短信,AT+CMGR=1读取第一条短信。
- ATD:拨打电话,ATD13800138000; 拨打电话。
功能配置命令
用于配置模块的工作参数,如APN、IP地址、心跳包等。
- AT+CGDCONT:设置PDP上下文(APN配置),如AT+CGDCONT=1,"IP","CMNET"(中国移动APN)。
- AT+CIPSHUT:关闭GPRS连接,重新初始化网络。
- AT+CSTT:启动任务并设置APN,AT+CSTT="CMNET","",""。
- AT+CIICR:激活网络连接,与AT+CSTT配合使用。
AT命令使用场景与示例
场景一:模块联网并上传数据
- 初始化模块:发送AT检查响应,确保通信正常。
- 配置APN:AT+CGDCONT=1,"IP","CMNET"。
- 启动网络:AT+CSTT="CMNET";AT+CIICR。
- 获取IP地址:AT+CIFSR,返回模块的IP地址。
- 建立TCP连接:AT+CIPMUX=0;AT+CIPSTART="TCP","api.example.com",80。
- 发送HTTP请求:AT+CIPSEND=30(发送30字节数据),如"GET /data HTTP/1.1"。
- 关闭连接:AT+CIPCLOSE。
场景二:多设备TCP服务器模式
- 设置多连接:AT+CIPMUX=1。
- 绑定服务器端口:AT+CIPSERVER=1,8080(开启8080端口监听)。
- 等待客户端连接:模块返回“+RECEIVE:0,CONNECT”表示客户端0连接成功。
- 接收数据:模块自动接收数据,可通过AT+CIPRXGET读取(部分模块支持)。
- 发送响应:AT+CIPSEND=0,10(向客户端0发送10字节数据)。
常见问题与注意事项
- 命令无响应:检查串口连接(TX/RX交叉连接)、波特率是否匹配、模块是否正常上电(指示灯状态)。
- 网络注册失败:确认SIM卡是否插好、是否欠费、当地信号是否良好,尝试手动设置运营商(AT+COPS)。
- TCP连接超时:检查目标IP和端口是否正确,防火墙是否阻止连接,可通过AT+CIPSTART? 查询连接状态。
- 发送数据失败:确认连接是否建立(AT+CIPSTATUS),检查数据长度是否与AT+CIPSEND指定的字节数一致。
- 模块频繁重启:可能是供电不足,确保模块工作电压(通常3.3V或5V)稳定,电流足够(峰值可达2A以上)。
相关问答FAQs
Q1: 如何通过AT命令判断4G模块是否成功连接到互联网?
A1: 可通过以下步骤判断:
- 发送AT+CSQ查询信号质量,确保信号强度大于10(避免信号弱导致连接失败)。
- 发送AT+CEREG? 查询EPS注册状态,返回“+CEREG: 0,1”或“+CEREG: 0,5”表示已注册到LTE网络。
- 发送AT+CIICR激活网络,然后AT+CIFSR获取IP地址,若返回非“0.0.0.0”的IP,则表示已成功连接互联网。
Q2: 为什么4G模块在发送TCP数据时出现“SEND FAIL”错误?
A2: 可能的原因及解决方法如下:

- 连接未建立:先通过AT+CIPSTATUS确认当前连接状态,若未连接,需重新执行AT+CIPSTART建立连接。
- 数据长度超限:部分模块对单次发送数据长度有限制(如1460字节),检查AT+CIPSEND指定的字节数是否超过限制,可分多次发送。
- 缓冲区溢出:若接收缓冲区未及时清理,可能导致发送失败,可通过AT+CIPRXGET清空缓冲区(部分模块支持)。
- 目标服务器无响应:检查目标IP和端口是否可达,使用电脑测试网络连通性,或尝试更换其他服务器地址。
开发者可以系统掌握4G模块AT命令的使用方法,结合实际项目需求灵活配置模块功能,实现稳定的无线通信,在实际开发中,建议参考具体模块的AT命令手册,不同厂商的模块可能存在命令差异,需以官方文档为准。
