1. PPP拨号过程、协议细节及应用场景
PPP(点到点协议),在拨号过程中用于MS和PC间数据交互、协商。工作在数据链路层
主要包括三部分:LCP(Link Control Protocol)链路控制协议、NCP(Network Control Protocol)和PPP的扩展协议(如Multilink Protocol)
用于拨号上网,动态获取IP地址
2. CMUX驱动原理和细节,及应用场景
基于串口复用协议(Multiplexer Protocol),在一条物理串行接口上实现多个数据链路连接(DLC),具体方式:在一条物理串行接口上实现多个DLC。
Modem和User CPU两侧 MUX层,需相互兼容。
Data Link Connection Identifier (DLCI): 多个虚拟串口上的数据最终要在一个串口上传输,所以需用DLCI区分它们
3. TCP/UDP协议原理和通信过程,及应用场景
TCP Transmission Control Protocol 传输控制协议,面向连接的、可靠地、基于字节流的运输层协议,适用于对于数据传输有高可靠性要求的应用场景。
模块内置TCP协议栈(内部)vs 客户MCU自带TCP协议栈(外部)
模块内部已将PPP、TCP封装成对应AT指令,可通过AT直接实现拨号上网、连接建立与关闭,收发数据的操作
使用外部协议栈,需要客户主控MCU处理PPP、TCP协议的具体数据帧与数据内容。
传输模式
透明传输(透传):ATO进入透传模式,+++推出透传模式
非透明传输(非透传):模块主控调用AT指令发送数据;
模块从网络侧接收到的数据,模块为其封装"+TCPRECV"提示数据头, 而后直接串口上报给MCU主控进行处理
【模块初始化流程】
[10:01:09.625]OUT→◇AT
□
[10:01:09.628]IN←◆AT
OK
[10:01:20.124]OUT→◇AT+CGSN //模块的IMEI
□
[10:01:20.125]IN←◆AT+CGSN
+CGSN: 352273017386340
OK
[10:01:49.092]OUT→◇AT+CGMR
□
[10:01:49.093]IN←◆AT+CGMR
+CGMR: N58-R07-STD-OE_V20-00D
OK
[10:01:54.931]OUT→◇AT+CPIN?
□
[10:01:54.933]IN←◆AT+CPIN?
+CPIN: READY
OK
[10:02:05.977]OUT→◇AT+CIMI //SIM卡IMSI
□
[10:02:05.979]IN←◆AT+CIMI
+CIMI: 460046102509014
OK
[10:02:29.235]OUT→◇AT+CSQ //信号强度12(-83dBm以上)进行通信
□
[10:02:29.238]IN←◆AT+CSQ
+CSQ: 17,99
OK
[10:02:41.084]OUT→◇AT+CREG=2
□
[10:02:41.086]IN←◆AT+CREG=2
OK
[10:02:44.651]OUT→◇AT+CREG?
□
[10:02:44.653]IN←◆AT+CREG?//允许主动上报、已注册本地网络、地址区代码、小区编号、E-UTRAN
+CREG: 2,1,"24a4","0d250647",7
OK
[10:03:11.660]OUT→◇AT+CREG=0
□
[10:03:11.662]IN←◆AT+CREG=0
OK
[10:03:20.213]OUT→◇AT+CGATT?
□
[10:03:20.215]IN←◆AT+CGATT?
+CGATT: 1
OK
[10:03:29.636]OUT→◇AT$MYSYSINFO
□
[10:03:29.639]IN←◆AT$MYSYSINFO
$MYSYSINFO: 4,01
OK
【TCP UDP 非透传客户端】
[09:53:00.213]发→◇AT+NETAPN="CMNET","",""
□
[09:53:00.217]收←◆AT+NETAPN="CMNET","",""
OK
[09:53:08.854]发→◇AT+XIIC=1
□
[09:53:08.859]收←◆AT+XIIC=1
[09:53:28.150]发→◇AT+XIIC?
□
[09:53:28.156]收←◆AT+XIIC?
+XIIC: 1,100.88.232.45
OK
[09:53:32.784]收←◆
OK
[09:54:50.718]发→◇AT+TCPSETUP=0,183.239.240.40,6016 // 请提前确认183.239.240.40服务器对应端口是否打开
□
[09:54:50.722]收←◆AT+TCPSETUP=0,183.239.240.40,6016
OK
[09:54:50.944]收←◆
+TCPSETUP: 0,OK
[09:55:13.765]发→◇AT+TCPSEND=0,7
□
[09:55:13.770]收←◆AT+TCPSEND=0,7
>
[09:55:21.884]发→◇GUOTONG□
[09:55:21.890]收←◆
OK
+TCPSEND: 0,7
[09:55:22.143]收←◆
+TCPRECV: 0,7,GUOTONG
//设置数据接收模式从默认串口输出 变更为 缓存数据,外部MCU主动发送命令读取数据
[10:05:49.098]发→◇AT+RECVMODE=0
□
[10:05:49.102]收←◆AT+RECVMODE=0
OK
[10:05:57.409]发→◇AT+TCPSETUP=0,183.239.240.40,6012
□
[10:05:57.414]收←◆AT+TCPSETUP=0,183.239.240.40,6012
+TCPSETUP: 0,ERROR1
[10:06:07.818]发→◇AT+RECVMODE=0
□
[10: