EMTC
来自Jack's Lab
(版本间的差异)
(→Air724UG) |
(→睡眠、时钟) |
||
(未显示1个用户的90个中间版本) | |||
第1行: | 第1行: | ||
== Overview == | == Overview == | ||
+ | LTE Cat1 | ||
工信部 2020年1月1日起施行的《增强机器类通信系统频率使用管理规定(暂行)》中明确 eMTC 的频率为: | 工信部 2020年1月1日起施行的《增强机器类通信系统频率使用管理规定(暂行)》中明确 eMTC 的频率为: | ||
第7行: | 第8行: | ||
* 已规划用于 LTE 的 800MHz、900MHz、1800MHz、1900MHz 和 2100MHz 等公众移动通信频段 | * 已规划用于 LTE 的 800MHz、900MHz、1800MHz、1900MHz 和 2100MHz 等公众移动通信频段 | ||
* 已规划用于 LTE 的 1447-1467MHz 和 1785-1805MHz 等专用移动通信频段 | * 已规划用于 LTE 的 1447-1467MHz 和 1785-1805MHz 等专用移动通信频段 | ||
+ | |||
+ | |||
+ | Cat 1 首推国产芯片解决方案:紫光展锐 UIS8910DM | ||
+ | |||
+ | 紫光展锐春藤 8910DM 采用 28nm 工艺,支 持LTE Cat.1 BIS、GSM 双模,上行速率 5Mbps,下行速率达 10Mbps,同时集成蓝牙、Wi-Fi 室内定位,还支持 VoLTE,相比 4G 模块,功耗相当低。 | ||
+ | |||
+ | 全球 4G LTE 运营商都是基于最低 3GPP Release 8 协议版本部署,所以无需升级网络,只需简单的参数配置,就能让Cat.1终端接入网络。 | ||
+ | |||
+ | 采用紫光展锐 UIS8910DM 的相关模组有:中国移动 ML302、有 方N58、广和通 L610、合宙 Air724、安信可 Ca-01 | ||
<br><br> | <br><br> | ||
+ | |||
+ | == NOTES == | ||
+ | |||
+ | === SIM & 入网检测 === | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+ICCID | ||
+ | +ICCID: 89860434151990002355 | ||
+ | |||
+ | [10-21 17:37:30:560]AT+CREG? | ||
+ | [10-21 17:37:30:560] | ||
+ | [10-21 17:37:30:560]+CREG: 0,3 | ||
+ | # 0,5 已注册,漫游 | ||
+ | # 0,3 注册被拒绝; 0,1 未注册;ME 当前没有搜索要注册业务的新运营商 | ||
+ | # 0,2 未注册,但 ME 正在搜索要注册业务的新运营商 | ||
+ | # 0,1 已注册,本地网 | ||
+ | |||
+ | [10-22 11:10:58:494]AT+CGATT? | ||
+ | [10-22 11:10:58:520] | ||
+ | [10-22 11:10:58:520]+CGATT: 1 | ||
+ | [10-22 11:10:58:520] | ||
+ | [10-22 11:10:58:520]OK | ||
+ | |||
+ | AT^SYSCONFIG=<mode>,<acqorder>,<roam>,<srvdoman>: 设置网络模式 | ||
+ | AT^SYSINFO 查询当前的系统信息,返回:^SYSINFO:<srv_status>,<srv_domain>,<roam_status>,<sys _mode>,<sim_state>,<sys_submod> | ||
+ | [10-22 16:32:27:192]AT^SYSINFO | ||
+ | [10-22 16:32:27:192] | ||
+ | [10-22 16:32:27:192]^SYSINFO: 2,3,0,17,1,7 (valid service, CS and PS, no roaming, LTE, sim卡状态有效, E-UTRAN | ||
+ | nbiot 卡返回: | ||
+ | [10-22 16:48:55:127]+E_UTRAN Service | ||
+ | [10-22 16:48:55:153]*CGEV: ACT,5,"cmnbiot.MNC004.MCC460.GPRS","100.90.129.43" | ||
+ | [10-22 16:48:55:166]+NITZ: 21/10/22,08:48:54+32,0 | ||
+ | [10-22 16:48:55:550]SMS READY | ||
+ | [10-22 16:49:18:725]AT^SYSINFO | ||
+ | [10-22 16:49:18:742]^SYSINFO: 2,3,0,17,1,7 | ||
+ | [10-22 16:49:18:742]OK | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === 重启、关机、飞行模式 === | ||
+ | |||
+ | 测试环境(硬件、固件版本): | ||
+ | <source lang=bash> | ||
+ | [10-22 11:22:32:086]AT*I | ||
+ | [10-22 11:22:32:100] | ||
+ | [10-22 11:22:32:100]Manufacturer: AirM2M | ||
+ | [10-22 11:22:32:100]Model: Air724UG | ||
+ | [10-22 11:22:32:100]Revision: AirM2M_Air724UG_V1622_LTE_AT | ||
+ | [10-22 11:22:32:100]ATVer: 277 | ||
+ | [10-22 11:22:32:100]HWVer: A12 | ||
+ | [10-22 11:22:32:100]Buildtime: Nov 20 2020 13:58:06 | ||
+ | [10-22 11:22:32:126]IMEI: 868739051925521 | ||
+ | [10-22 11:22:32:126]ICCID: 89860434151990002355 | ||
+ | [10-22 11:22:32:126]IMSI: 460045459612355 | ||
+ | [10-22 11:22:32:126] | ||
+ | [10-22 11:22:32:126]OK | ||
+ | </source> | ||
+ | |||
+ | 硬件开机: | ||
+ | * VBAT上电后,可以通过 PWRKEY 管脚启动模块,拉低 1.2s 以上之后模块会进入开机流程,软件会检测 VBAT 管脚电压,若 VBAT 管脚电压大于软件设置的开机电压(3.1V),会继续开机动作直至系统开机完成;否则,会停止执行开机动作,系统会关机,开机成功后 PWRKEY 管脚可以释放。可以通过检测 V_GLOBAL_1V8 管脚的电平来判别模块是否开机 | ||
+ | * 从拉低 PWRKEY,到 UART 可用,应等待 18s 以上 | ||
+ | * 从拉低 PWRKEY,到 USB 可用,应等待 20s 以上 | ||
+ | |||
+ | |||
+ | 硬件关机: | ||
+ | * PWRKEY 管脚拉低 1.5s 以上时间,模块会执行关机动作。 | ||
+ | * 关机过程中,模块需要注销网络,注销时间与当前网络状态有关,经测定用时约 2s~12s,因此建议延长 12s 后再进行断电或重启,以确保在完全断电之前让软件保存好重要数据。 | ||
+ | |||
+ | |||
+ | <source lang=bash> | ||
+ | AT+RESET,重启,从命令发出到重启入网成功,NB 27s 左右: | ||
+ | [10-22 11:12:35:768]AT+RESET | ||
+ | [10-22 11:12:35:780] | ||
+ | [10-22 11:12:35:780]OK | ||
+ | [10-22 11:12:57:046] | ||
+ | [10-22 11:12:57:046]RDY | ||
+ | [10-22 11:12:59:228] | ||
+ | [10-22 11:12:59:228]+CPIN: READY | ||
+ | [10-22 11:13:00:028] | ||
+ | [10-22 11:13:00:028]^CARDMODE: 2 | ||
+ | [10-22 11:13:02:257] | ||
+ | [10-22 11:13:02:257]SMS READY | ||
+ | |||
+ | 从命令发出到重启入网成功,CAT1 28s 左右: | ||
+ | [10-22 15:26:26:881]AT+RESET | ||
+ | [10-22 15:26:26:881] | ||
+ | [10-22 15:26:26:881]OK | ||
+ | [10-22 15:26:51:215] | ||
+ | [10-22 15:26:51:215]RDY | ||
+ | [10-22 15:26:53:526] | ||
+ | [10-22 15:26:53:526]+CPIN: READY | ||
+ | [10-22 15:26:55:761] | ||
+ | [10-22 15:26:55:761]^CARDMODE: 2 | ||
+ | [10-22 15:26:58:705] | ||
+ | [10-22 15:26:58:705]+E_UTRAN Service | ||
+ | [10-22 15:26:58:705] | ||
+ | [10-22 15:26:58:705]*CGEV: ACT,5,"cmiot.MNC004.MCC460.GPRS","10.25.30.129" | ||
+ | [10-22 15:26:58:705] | ||
+ | [10-22 15:26:58:705]+NITZ: 21/10/22,07:26:58+32,0 | ||
+ | [10-22 15:26:58:984] | ||
+ | [10-22 15:26:58:984]SMS READY | ||
+ | |||
+ | AT+RSTSET:重启模块并恢复出厂设置 | ||
+ | |||
+ | AT+CPOWD=1:正常关机,返回:NORMAL POWER DOWN(23s 后自动重启?!): | ||
+ | [10-25 11:53:56:575]AT+CPOWD=1 | ||
+ | [10-25 11:53:57:136] | ||
+ | [10-25 11:53:57:136]NORMAL POWER DOWN | ||
+ | [10-25 11:54:20:053]RDY | ||
+ | [10-25 11:54:22:391] | ||
+ | [10-25 11:54:22:391]+CPIN: READY | ||
+ | [10-25 11:54:24:617] | ||
+ | [10-25 11:54:24:617]^CARDMODE: 2 | ||
+ | [10-25 11:54:27:412] | ||
+ | [10-25 11:54:27:412]+E_UTRAN Service | ||
+ | [10-25 11:54:27:412] | ||
+ | [10-25 11:54:27:412]*CGEV: ACT,5,"cmiot.MNC004.MCC460.GPRS","10.206.84.110" | ||
+ | [10-25 11:54:27:412] | ||
+ | [10-25 11:54:27:412]+NITZ: 21/10/25,03:54:28+32,0 | ||
+ | [10-25 11:54:27:596] | ||
+ | [10-25 11:54:27:596]SMS READY | ||
+ | |||
+ | AT+CPOWD=0:紧急关机,没有任何返回(23s 后自动重启?!): | ||
+ | [10-25 11:55:01:730]AT+CPOWD=0 | ||
+ | [10-25 11:55:24:975] | ||
+ | [10-25 11:55:24:975]RDY | ||
+ | [10-25 11:55:27:275] | ||
+ | [10-25 11:55:27:275]+CPIN: READY | ||
+ | [10-25 11:55:29:503] | ||
+ | [10-25 11:55:29:503]^CARDMODE: 2 | ||
+ | [10-25 11:55:32:250] | ||
+ | [10-25 11:55:32:250]+E_UTRAN Service | ||
+ | [10-25 11:55:32:277] | ||
+ | [10-25 11:55:32:277]*CGEV: ACT,5,"cmiot.MNC004.MCC460.GPRS","10.36.236.97" | ||
+ | [10-25 11:55:32:303] | ||
+ | [10-25 11:55:32:303]+NITZ: 21/10/25,03:55:33+32,0 | ||
+ | [10-25 11:55:32:493] | ||
+ | [10-25 11:55:32:493]SMS READY | ||
+ | |||
+ | AT+CFUN=1:全功能模式 | ||
+ | AT+CFUN=4:飞行模式 | ||
+ | AT+CFUN=0:最小功能模式 | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === 睡眠、时钟 === | ||
+ | |||
+ | <source lang=bash> | ||
+ | # setup automatic sleep mode | ||
+ | AT+CSCLK=2 | ||
+ | 串口空闲超过 AT+WAKETIM 配置的时间(默认 5s),模块自动进入睡眠模式 | ||
+ | 串口连续发送 AT 直到模块回应时即退出睡眠模式 2 | ||
+ | |||
+ | [10-22 11:18:11:076]+CSQ: 31,99 | ||
+ | [10-22 11:18:11:076] | ||
+ | [10-22 11:18:11:076]OK | ||
+ | [10-22 11:18:15:993]AT+CESQ | ||
+ | [10-22 11:18:15:993] | ||
+ | [10-22 11:18:15:993]+CESQ: 99,99,255,255,20,67 | ||
+ | [10-22 11:18:16:003] | ||
+ | [10-22 11:18:16:003]OK | ||
+ | |||
+ | [10-22 11:20:17:174]AT+CCLK? | ||
+ | [10-22 11:20:17:174] | ||
+ | [10-22 11:20:17:174]+CCLK: "00/01/01,00:25:15+00" | ||
+ | [10-22 11:20:17:174] | ||
+ | [10-22 11:20:17:174]OK | ||
+ | 10-22 15:04:05:953]AT+CCLK? | ||
+ | [10-22 15:04:05:953] | ||
+ | [10-22 15:04:05:953]+CCLK: "21/10/22,15:04:05+32" | ||
+ | [10-22 15:04:05:953] | ||
+ | [10-22 15:04:05:953]OK | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === MQTT === | ||
+ | |||
+ | <source lang=bash> | ||
+ | AT+MCONFIG=cat1753,test,test <client_id>,<user>,<passwd> | ||
+ | [10-22 15:11:11:373]AT+MCONFIG=cat1753,test,test | ||
+ | [10-22 15:11:11:373] | ||
+ | [10-22 15:11:11:373]OK | ||
+ | |||
+ | AT+MIPSTART="mqtt.test.net",1883 | ||
+ | [10-22 15:11:26:503]AT+MIPSTART="mqtt.test.net",1883 | ||
+ | [10-22 15:11:26:503] | ||
+ | [10-22 15:11:26:503]OK | ||
+ | [10-22 15:11:26:803] | ||
+ | [10-22 15:11:26:803]CONNECT OK | ||
+ | |||
+ | AT+MCONNECT=1,60 <clean_session (0-No/1-Yes)>,<keepalive_time (s)> | ||
+ | [10-22 15:11:51:423]AT+MCONNECT=1,60 | ||
+ | [10-22 15:11:51:423] | ||
+ | [10-22 15:11:51:423]OK | ||
+ | [10-22 15:11:51:668] | ||
+ | [10-22 15:11:51:668]CONNACK OK | ||
+ | |||
+ | AT+MPUB==<topic>,<qos>,<retain>,<message> | ||
+ | [10-22 15:12:17:110]AT+MPUB="dev/test",0,0,{\22gid\22:\2212126380998\22} | ||
+ | [10-22 15:12:17:110] | ||
+ | [10-22 15:12:17:110]OK | ||
+ | |||
+ | AT+MDISCONNECT: 关闭 MQTT 连接 (OK / ERROR) | ||
+ | [10-22 14:33:39:704]AT+MDISCONNECT | ||
+ | [10-22 14:33:39:704] | ||
+ | [10-22 14:33:39:704]OK | ||
+ | AT+MIPCLOSE:关闭 TCP 连接 (OK / ERROR) | ||
+ | [10-22 14:34:23:525]AT+MIPCLOSE | ||
+ | [10-22 14:34:23:525] | ||
+ | [10-22 14:34:23:525]OK | ||
+ | AT+MQTTSTATU:查询 MQTT 连接状态 (0: 离线,1:可以 pub,2:还没认证,需要发送 MCONNECT) | ||
+ | [10-22 14:33:12:435]AT+MQTTSTATU | ||
+ | [10-22 14:33:12:435] | ||
+ | [10-22 14:33:12:435]+MQTTSTATU :1 | ||
+ | [10-22 14:33:12:435] | ||
+ | [10-22 14:33:12:435]OK | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === DaTong === | ||
+ | |||
+ | <source lang=bash> | ||
+ | [10-22 15:49:40:528]RDY | ||
+ | [10-22 15:49:43:276] | ||
+ | [10-22 15:49:43:276]+CPIN: READY | ||
+ | [10-22 15:49:45:996] | ||
+ | [10-22 15:49:45:996]^CARDMODE: 2 | ||
+ | [10-22 15:49:48:891] | ||
+ | [10-22 15:49:48:891]+E_UTRAN Service | ||
+ | [10-22 15:49:48:907] | ||
+ | [10-22 15:49:48:907]*CGEV: ACT,5,"cmiotdtrl.sx.MNC004.MCC460.GPRS","10.183.103.132" | ||
+ | [10-22 15:49:48:923] | ||
+ | [10-22 15:49:48:923]+NITZ: 21/10/22,07:49:48+32,0 | ||
+ | [10-22 15:49:52:747] | ||
+ | [10-22 15:49:52:747]SMS READY | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
== Hardware == | == Hardware == | ||
+ | |||
+ | === Overview === | ||
+ | |||
+ | 鉴于其上电需要按开关开机的特性,外部必须加一个 MCU: | ||
+ | |||
+ | * 检测电池电压,10 min 持续的 < 3.2V,关机。10 min 持续的 > 3.3V,开机 | ||
+ | * 作为 LTE Cat1 模组系统的外部看门狗,系统异常需重启 | ||
+ | * 定时重启 | ||
+ | * 备用系统:切换为 AT 模式 | ||
+ | |||
+ | |||
+ | 需给 Linux Core 留有接口: | ||
+ | |||
+ | * LoRa (SPI) | ||
+ | * LTE Cat 1 (USB) | ||
+ | * UART ---> MODBUS | ||
+ | |||
+ | |||
+ | [[RT5350F]] | ||
+ | |||
+ | [[RT5350 Core Module Interface]] | ||
+ | |||
+ | [[F1C]] | ||
+ | |||
+ | |||
+ | TF 卡 + 文件系统 | ||
+ | |||
+ | |||
+ | 电源: | ||
+ | |||
+ | * SX1278: 1.8 ~ 3.7V | ||
+ | * SX1268: 1.8 ~ 3.7V (3.9 max) | ||
+ | * ASR6500: 1.8 ~ 3.7V | ||
+ | * Air724: 3.3 ~ 4.3V,至少 2A 电流能力。IO 电压 1.8V | ||
+ | |||
+ | <br> | ||
=== ML302 === | === ML302 === | ||
第16行: | 第304行: | ||
移动官方 LTE Cat1 模组 | 移动官方 LTE Cat1 模组 | ||
− | 紫光展锐 UIS8910 / RDA8910 | + | * 32mm x 29mm x2.5mm |
+ | * 紫光展锐 UIS8910 / RDA8910 / 春藤 8910DM | ||
* [https://download.csdn.net/download/llb19900510/12727009 ML302_OpenCPU_2.1.0.2006221020_release.7z] | * [https://download.csdn.net/download/llb19900510/12727009 ML302_OpenCPU_2.1.0.2006221020_release.7z] | ||
* [https://blog.csdn.net/llb19900510/article/details/106526411 ML302 opencpu开发环境搭建] | * [https://blog.csdn.net/llb19900510/article/details/106526411 ML302 opencpu开发环境搭建] | ||
+ | |||
+ | * https://github.com/hbqs/ML302 | ||
+ | |||
+ | |||
+ | * https://gitee.com/chenxiahuaxu/RDA8910_CSDK | ||
<br> | <br> | ||
第26行: | 第320行: | ||
* 24mm x 24mm | * 24mm x 24mm | ||
+ | * 紫光展锐 UIS8910 / RDA8910 | ||
* https://gitee.com/openLuat/Luat_CSDK_Air724U | * https://gitee.com/openLuat/Luat_CSDK_Air724U | ||
第33行: | 第328行: | ||
* [http://doc.openluat.com/article/2236/0 开发指南] | * [http://doc.openluat.com/article/2236/0 开发指南] | ||
+ | * [http://doc.openluat.com/article/383/0#332__242 Air724UG_模块硬件设计手册_V2.2] | ||
+ | |||
+ | * https://www.openluat.com/Product/4gcat1/S724.html 开发板官网 | ||
* https://blog.csdn.net/weixin_44570083/article/details/104285283 | * https://blog.csdn.net/weixin_44570083/article/details/104285283 | ||
第42行: | 第340行: | ||
* https://www.quectel.com/cn/infocenter/news/yiyuan-Cat1-chanpin-tiantuan-yinglai-xinchengyuan.htm | * https://www.quectel.com/cn/infocenter/news/yiyuan-Cat1-chanpin-tiantuan-yinglai-xinchengyuan.htm | ||
+ | <br> | ||
+ | |||
+ | == Air724UG == | ||
+ | |||
+ | * [http://doc.openluat.com/article/383/0#332__242 Air724UG_模块硬件设计手册] | ||
+ | * [https://doc.openluat.com/wiki/21?wiki_page_id=2055 Air724UG模块硬件资料] | ||
+ | * [http://doc.openluat.com/article/2236/0 EVB_Air724UG_A13开发板使用指南] | ||
+ | * [http://oldask.openluat.com/article/37 Air720模块Linux USB驱动以及PPP拨号说明] | ||
+ | * [http://oldask.openluat.com/article/79 Air720模块在linux设备上的RNDIS网卡使用] | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === RNDIS === | ||
+ | |||
+ | Ubuntu: | ||
+ | |||
+ | <source lang=bash> | ||
+ | comcat@auto:~/f1c/linux$ uname -a | ||
+ | Linux auto 5.3.0-64-generic #58-Ubuntu SMP Fri Jul 10 19:33:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux | ||
+ | comcat@auto:~/f1c/linux$ dmesg|tail -n 16 | ||
+ | [4658581.814120] tg3 0000:05:00.1 eno2: EEE is disabled | ||
+ | [4659835.062397] usb 1-6: new high-speed USB device number 47 using xhci_hcd | ||
+ | [4659835.210999] usb 1-6: New USB device found, idVendor=1782, idProduct=4d12, bcdDevice= 0.00 | ||
+ | [4659835.211000] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0 | ||
+ | [4659835.211001] usb 1-6: Product: UNISOC-8910 | ||
+ | [4659835.211002] usb 1-6: Manufacturer: UNISOC | ||
+ | [4659835.714741] usb 1-6: USB disconnect, device number 47 | ||
+ | [4659836.822341] usb 1-6: new high-speed USB device number 48 using xhci_hcd | ||
+ | [4659836.971039] usb 1-6: New USB device found, idVendor=1782, idProduct=4e00, bcdDevice= 0.00 | ||
+ | [4659836.971041] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0 | ||
+ | [4659836.971042] usb 1-6: Product: UNISOC-8910 | ||
+ | [4659836.971043] usb 1-6: Manufacturer: UNISOC | ||
+ | [4659836.985660] usbcore: registered new interface driver cdc_ether | ||
+ | [4659836.987884] rndis_host 1-6:1.0 eth0: register 'rndis_host' at usb-0000:00:14.0-6, RNDIS device, f0:4b:b3:b9:eb:e5 | ||
+ | [4659836.987904] usbcore: registered new interface driver rndis_host | ||
+ | [4659836.992163] rndis_host 1-6:1.0 enxf04bb3b9ebe5: renamed from eth0 | ||
+ | # lsusb | ||
+ | Bus 001 Device 001: ID 1d6b:0002 | ||
+ | Bus 001 Device 002: ID 1782:4e00 | ||
+ | </source> | ||
+ | |||
+ | |||
+ | BSP .config: | ||
+ | |||
+ | <source lang=bash> | ||
+ | CONFIG_USB_USBNET=y | ||
+ | CONFIG_USB_NET_CDCETHER=y | ||
+ | CONFIG_USB_NET_RNDIS_HOST=y | ||
+ | CONFIG_USB_NET_CDC_SUBSET_ENABLE=y | ||
+ | CONFIG_USB_NET_CDC_SUBSET=y | ||
+ | |||
+ | CONFIG_USB_ARMLINUX=y | ||
+ | |||
+ | CONFIG_USB_NET_RNDIS_WLAN=y | ||
+ | </source> | ||
+ | |||
+ | 正常启动 log; | ||
+ | |||
+ | <source lang=bash> | ||
+ | # dmesg | grep usb | ||
+ | [ 0.087514] usbcore: registered new interface driver usbfs | ||
+ | [ 0.087722] usbcore: registered new interface driver hub | ||
+ | [ 0.087957] usbcore: registered new device driver usb | ||
+ | [ 0.152829] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO | ||
+ | [ 0.890802] usbcore: registered new interface driver rndis_wlan | ||
+ | [ 0.896935] usbcore: registered new interface driver asix | ||
+ | [ 0.902571] usbcore: registered new interface driver ax88179_178a | ||
+ | [ 0.908815] usbcore: registered new interface driver cdc_ether | ||
+ | [ 0.914896] usbcore: registered new interface driver net1080 | ||
+ | [ 0.920790] usbcore: registered new interface driver rndis_host | ||
+ | [ 0.926844] usbcore: registered new interface driver cdc_subset | ||
+ | [ 0.933026] usbcore: registered new interface driver zaurus | ||
+ | [ 0.938802] usbcore: registered new interface driver cdc_ncm | ||
+ | [ 0.968749] usbcore: registered new interface driver usb-storage | ||
+ | [ 1.057718] usbcore: registered new interface driver usbhid | ||
+ | [ 1.063495] usbhid: USB HID core driver | ||
+ | [ 1.094510] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator | ||
+ | [ 1.106535] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver | ||
+ | [ 1.112542] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1 | ||
+ | [ 1.145447] usb0: HOST MAC 4a:0a:44:64:74:fd | ||
+ | [ 1.149904] usb0: MAC 5e:2f:11:c1:2c:d0 | ||
+ | [ 1.830558] usb 1-1: new high-speed USB device number 2 using musb-hdrc | ||
+ | [ 2.025078] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-musb-hdrc.1.auto-1, RNDIS device, f0:4b:b3:b9:eb:e5 | ||
+ | # dmesg | grep rndis | ||
+ | [ 74.669913] usb 1-1: new high-speed USB device number 3 using musb-hdrc | ||
+ | [ 76.149922] usb 1-1: new high-speed USB device number 4 using musb-hdrc | ||
+ | [ 76.335014] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-musb-hdrc.1.auto-1, RNDIS device, f0:4b:b3:b9:eb:e5 | ||
+ | [ 82.117916] protocol 0003 is buggy, dev eth0 | ||
+ | [ 83.842840] protocol 0003 is buggy, dev eth0 | ||
+ | [ 85.558717] protocol 0003 is buggy, dev eth0 | ||
+ | [ 93.933175] random: crng init done | ||
+ | # lsusb | ||
+ | Bus 001 Device 001: ID 1d6b:0002 | ||
+ | Bus 001 Device 004: ID 1782:4e00 | ||
+ | </source> | ||
+ | |||
+ | Buildroot 选中 udhcpc (dhcp客户端, BR2_PACKAGE_DHCPCD=y) 后自动连网: | ||
+ | |||
+ | <source lang=bash> | ||
+ | # dmesg | grep rndis | ||
+ | [ 74.669913] usb 1-1: new high-speed USB device number 3 using musb-hdrc | ||
+ | [ 76.149922] usb 1-1: new high-speed USB device number 4 using musb-hdrc | ||
+ | [ 76.335014] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-musb-hdrc.1.auto-1, RNDIS device, f0:4b:b3:b9:eb:e5 | ||
+ | [ 82.117916] protocol 0003 is buggy, dev eth0 | ||
+ | [ 83.842840] protocol 0003 is buggy, dev eth0 | ||
+ | [ 85.558717] protocol 0003 is buggy, dev eth0 | ||
+ | [ 93.933175] random: crng init done | ||
+ | # ifconfig | ||
+ | eth0 Link encap:Ethernet HWaddr F0:4B:B3:B9:EB:E5 | ||
+ | inet addr:192.168.5.8 Bcast:192.168.5.255 Mask:255.255.255.0 | ||
+ | UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 | ||
+ | RX packets:46 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:54 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions:0 txqueuelen:1000 | ||
+ | RX bytes:6179 (6.0 KiB) TX bytes:7480 (7.3 KiB) | ||
+ | </source> | ||
+ | |||
+ | Or: | ||
+ | |||
+ | <source lang=bash> | ||
+ | 启动后 log: | ||
+ | |||
+ | rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-musb-hdrc.1.auto-1, RNDIS device, f0:4b:b3:b9:eb:e5 | ||
+ | |||
+ | 发现新注册了eth0,手动将 eth0 添加到 network 中的 wan 部分。 | ||
+ | |||
+ | /etc/config/network | ||
+ | |||
+ | config interface 'wan' | ||
+ | option force_link '1' | ||
+ | option proto 'dhcp' | ||
+ | option ifname 'eth0' | ||
+ | |||
+ | /etc/init.d/network restart | ||
+ | </source> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | === AT === | ||
+ | |||
+ | * Air720 0x1286:0x4e3d | ||
+ | * Air724 0x1782:0x4e00 | ||
+ | * 带 RNDIS 网卡驱动 | ||
+ | ** ttyUSB0 AT 口 | ||
+ | ** ttyUSB1 AT+ ppp 口 | ||
+ | ** ttyUSB2 log 输出口 | ||
+ | * 不带 RNDIS 网卡驱动 | ||
+ | ** ttyUSB2 AT 口 | ||
+ | ** ttyUSB3 AT+ ppp 口 | ||
+ | ** ttyUSB4 log 输出口 | ||
+ | ** ttyUSB0 和 ttyUSB1 为无效口 | ||
+ | |||
+ | |||
+ | <source lang=bash> | ||
+ | # cat /sys/class/udc/musb-hdrc.1.auto/device/usb1/1-1/idVendor | ||
+ | 1782 | ||
+ | # cat /sys/class/udc/musb-hdrc.1.auto/device/usb1/1-1/idProduct | ||
+ | 4e00 | ||
+ | # cat /sys/class/udc/musb-hdrc.1.auto/device/usb1/1-1/manufacturer | ||
+ | UNISOC | ||
+ | </source> | ||
+ | |||
+ | |||
+ | <source lang=bash> | ||
+ | # ifconfig eth0 down | ||
+ | # picocom -b 115200 /dev/ttyUSB0 | ||
+ | ATI # 查看版本 | ||
+ | Luat_V0024_RDA8910_FLOAT | ||
+ | AT+CIMI # 查 SIM 卡的 IMSI | ||
+ | AT+CGSN # 查模组 IMEI | ||
+ | |||
+ | AT+CSQ #信号质量 | ||
+ | +CSQ: 14,99 | ||
+ | AT+CESQ # 查看信号强度 | ||
+ | +CESQ: 99,99,255,255,24,67 | ||
+ | AT+CEREG? # EPS network registration status, 确认基站注册状态 0,1 或者 0,5 1-代表本地已注册上, 5-代表漫游已注册 | ||
+ | +CEREG: 2,1,"0513","00000000",7 | ||
+ | AT+CGACT? # Context activation, state = 0: deactivated; =1: activated | ||
+ | +CGACT: 5, 1 | ||
+ | AT+CCLK? | ||
+ | +CCLK: "21/02/19,16:45:59+32" | ||
+ | AT+CGDCONT? | ||
+ | +CGDCONT: 5,"IP","cmiot","10.169.84.172", | ||
+ | AT+CPIN? | ||
+ | +CPIN: READY | ||
+ | |||
+ | |||
+ | AT+CPOF # 软件关机 | ||
+ | AT+CFUN? # Phone functionality, 0 最小功能,1 全功能 (Default),4 射频电路关闭,7 disable sim only | ||
+ | |||
+ | |||
+ | # Heart beat: | ||
+ | [I]-[ril.sendat] AT+CSQ | ||
+ | [I]-[ril.proatc] +CSQ: 31,99 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.sendat] AT+CESQ | ||
+ | [I]-[ril.proatc] +CESQ: 99,99,255,255,19,62 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.sendat] AT+EEMGINFO? | ||
+ | [I]-[ril.proatc] +EEMGINFO: 3, 2 | ||
+ | |||
+ | |||
+ | AT+CFUN=0 # 让模组强制进入深度休眠(opencpu 时只能选择此方式) | ||
+ | [I]-[ril.proatc] ^MODE: 0,0 | ||
+ | |||
+ | *CGEV: DEACT,5 | ||
+ | |||
+ | ^MODE: 0,0 | ||
+ | |||
+ | |||
+ | +CREG: 0,"0000","00005011",0 | ||
+ | [I]-[net.UpdNetMode] nil 4 0 0 | ||
+ | |||
+ | ^CARDMODE: 255 | ||
+ | [I]-[net.NET_UPD_NET_MODE] 0 | ||
+ | |||
+ | +CPIN: SIM REMOVED | ||
+ | [I]-[ril.proatc] +CREG: 0,"0000","00005011",0 | ||
+ | [I]-[net.creg] 0 +CREG: | ||
+ | [I]-[ril.proatc] ^CARDMODE: 255 | ||
+ | [I]-[ril.defurc] ^CARDMODE: 255 | ||
+ | [I]-[ril.proatc] +CPIN: SIM REMOVED | ||
+ | [I]-[ril.sendat] AT+COPS? | ||
+ | [I]-[SIM.subscribe] false NORDY | ||
+ | [I]-[ril.proatc] +COPS: 0 | ||
+ | [I]-[cops] nil nil true | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.defrsp] AT+COPS? true OK nil | ||
+ | [I]-[ril.sendat] AT+CREG? | ||
+ | [I]-[ril.proatc] +CREG: 2,0,"0000","00005011",0 | ||
+ | [I]-[net.creg] 0 +CREG: | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.defrsp] AT+CREG? true OK nil | ||
+ | [I]-[ril.sendat] AT+CSQ | ||
+ | [I]-[ril.proatc] +CSQ: 99,99 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.sendat] AT+CESQ | ||
+ | [I]-[ril.proatc] +CESQ: 99,99,255,255,255,255 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.sendat] AT+EEMGINFO? | ||
+ | |||
+ | +EEMGINFOSVC: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0 0, 0, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | ||
+ | |||
+ | [I]-[ril.proatc] +EEMGINFO: 3, 0 | ||
+ | [I]-[ril.defurc] +EEMGINFO: 3, 0 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.defrsp] AT+EEMGINFO? true OK nil | ||
+ | [I]-[ril.proatc] +EEMGINFOSVC: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0 0, 0, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0 | ||
+ | , 0, 0, 0, 0, 0, 0 | ||
+ | [I]-[link.Pdp_Act] false 0 true | ||
+ | [I]-[ril.sendat] AT+CGATT? | ||
+ | [I]-[ril.proatc] +CGATT: 0 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[testLbsLoc.getLocCb] 1 nil nil | ||
+ | [I]-[ril.sendat] AT+CSQ | ||
+ | [I]-[ril.proatc] +CSQ: 99,99 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.sendat] AT+CESQ | ||
+ | [I]-[ril.proatc] +CESQ: 99,99,255,255,255,255 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.sendat] AT+EEMGINFO? | ||
+ | |||
+ | +EEMGINFOSVC: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0 0, 0, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | ||
+ | |||
+ | [I]-[ril.proatc] +EEMGINFO: 3, 0 | ||
+ | [I]-[ril.defurc] +EEMGINFO: 3, 0 | ||
+ | [I]-[ril.proatc] OK | ||
+ | [I]-[ril.defrsp] AT+EEMGINFO? true OK nil | ||
+ | [I]-[ril.proatc] +EEMGINFOSVC: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0 0, 0, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0 | ||
+ | , 0, 0, 0, 0, 0, 0 | ||
+ | |||
+ | |||
+ | AT+CFUN=1 # 返回全功能模式(从深度睡眠返回) | ||
+ | </source> | ||
<br> | <br> | ||
2021年10月25日 (一) 17:51的最后版本
目录 |
[编辑] 1 Overview
LTE Cat1
工信部 2020年1月1日起施行的《增强机器类通信系统频率使用管理规定(暂行)》中明确 eMTC 的频率为:
- eMTC 系统使用无线电频率应当取得无线电频率使用许可
- 已规划用于 LTE 的 800MHz、900MHz、1800MHz、1900MHz 和 2100MHz 等公众移动通信频段
- 已规划用于 LTE 的 1447-1467MHz 和 1785-1805MHz 等专用移动通信频段
Cat 1 首推国产芯片解决方案:紫光展锐 UIS8910DM
紫光展锐春藤 8910DM 采用 28nm 工艺,支 持LTE Cat.1 BIS、GSM 双模,上行速率 5Mbps,下行速率达 10Mbps,同时集成蓝牙、Wi-Fi 室内定位,还支持 VoLTE,相比 4G 模块,功耗相当低。
全球 4G LTE 运营商都是基于最低 3GPP Release 8 协议版本部署,所以无需升级网络,只需简单的参数配置,就能让Cat.1终端接入网络。
采用紫光展锐 UIS8910DM 的相关模组有:中国移动 ML302、有 方N58、广和通 L610、合宙 Air724、安信可 Ca-01
[编辑] 2 NOTES
[编辑] 2.1 SIM & 入网检测
AT+ICCID +ICCID: 89860434151990002355 [10-21 17:37:30:560]AT+CREG? [10-21 17:37:30:560] [10-21 17:37:30:560]+CREG: 0,3 # 0,5 已注册,漫游 # 0,3 注册被拒绝; 0,1 未注册;ME 当前没有搜索要注册业务的新运营商 # 0,2 未注册,但 ME 正在搜索要注册业务的新运营商 # 0,1 已注册,本地网 [10-22 11:10:58:494]AT+CGATT? [10-22 11:10:58:520] [10-22 11:10:58:520]+CGATT: 1 [10-22 11:10:58:520] [10-22 11:10:58:520]OK AT^SYSCONFIG=<mode>,<acqorder>,<roam>,<srvdoman>: 设置网络模式 AT^SYSINFO 查询当前的系统信息,返回:^SYSINFO:<srv_status>,<srv_domain>,<roam_status>,<sys _mode>,<sim_state>,<sys_submod> [10-22 16:32:27:192]AT^SYSINFO [10-22 16:32:27:192] [10-22 16:32:27:192]^SYSINFO: 2,3,0,17,1,7 (valid service, CS and PS, no roaming, LTE, sim卡状态有效, E-UTRAN nbiot 卡返回: [10-22 16:48:55:127]+E_UTRAN Service [10-22 16:48:55:153]*CGEV: ACT,5,"cmnbiot.MNC004.MCC460.GPRS","100.90.129.43" [10-22 16:48:55:166]+NITZ: 21/10/22,08:48:54+32,0 [10-22 16:48:55:550]SMS READY [10-22 16:49:18:725]AT^SYSINFO [10-22 16:49:18:742]^SYSINFO: 2,3,0,17,1,7 [10-22 16:49:18:742]OK
[编辑] 2.2 重启、关机、飞行模式
测试环境(硬件、固件版本):
[10-22 11:22:32:086]AT*I [10-22 11:22:32:100] [10-22 11:22:32:100]Manufacturer: AirM2M [10-22 11:22:32:100]Model: Air724UG [10-22 11:22:32:100]Revision: AirM2M_Air724UG_V1622_LTE_AT [10-22 11:22:32:100]ATVer: 277 [10-22 11:22:32:100]HWVer: A12 [10-22 11:22:32:100]Buildtime: Nov 20 2020 13:58:06 [10-22 11:22:32:126]IMEI: 868739051925521 [10-22 11:22:32:126]ICCID: 89860434151990002355 [10-22 11:22:32:126]IMSI: 460045459612355 [10-22 11:22:32:126] [10-22 11:22:32:126]OK
硬件开机:
- VBAT上电后,可以通过 PWRKEY 管脚启动模块,拉低 1.2s 以上之后模块会进入开机流程,软件会检测 VBAT 管脚电压,若 VBAT 管脚电压大于软件设置的开机电压(3.1V),会继续开机动作直至系统开机完成;否则,会停止执行开机动作,系统会关机,开机成功后 PWRKEY 管脚可以释放。可以通过检测 V_GLOBAL_1V8 管脚的电平来判别模块是否开机
- 从拉低 PWRKEY,到 UART 可用,应等待 18s 以上
- 从拉低 PWRKEY,到 USB 可用,应等待 20s 以上
硬件关机:
- PWRKEY 管脚拉低 1.5s 以上时间,模块会执行关机动作。
- 关机过程中,模块需要注销网络,注销时间与当前网络状态有关,经测定用时约 2s~12s,因此建议延长 12s 后再进行断电或重启,以确保在完全断电之前让软件保存好重要数据。
AT+RESET,重启,从命令发出到重启入网成功,NB 27s 左右: [10-22 11:12:35:768]AT+RESET [10-22 11:12:35:780] [10-22 11:12:35:780]OK [10-22 11:12:57:046] [10-22 11:12:57:046]RDY [10-22 11:12:59:228] [10-22 11:12:59:228]+CPIN: READY [10-22 11:13:00:028] [10-22 11:13:00:028]^CARDMODE: 2 [10-22 11:13:02:257] [10-22 11:13:02:257]SMS READY 从命令发出到重启入网成功,CAT1 28s 左右: [10-22 15:26:26:881]AT+RESET [10-22 15:26:26:881] [10-22 15:26:26:881]OK [10-22 15:26:51:215] [10-22 15:26:51:215]RDY [10-22 15:26:53:526] [10-22 15:26:53:526]+CPIN: READY [10-22 15:26:55:761] [10-22 15:26:55:761]^CARDMODE: 2 [10-22 15:26:58:705] [10-22 15:26:58:705]+E_UTRAN Service [10-22 15:26:58:705] [10-22 15:26:58:705]*CGEV: ACT,5,"cmiot.MNC004.MCC460.GPRS","10.25.30.129" [10-22 15:26:58:705] [10-22 15:26:58:705]+NITZ: 21/10/22,07:26:58+32,0 [10-22 15:26:58:984] [10-22 15:26:58:984]SMS READY AT+RSTSET:重启模块并恢复出厂设置 AT+CPOWD=1:正常关机,返回:NORMAL POWER DOWN(23s 后自动重启?!): [10-25 11:53:56:575]AT+CPOWD=1 [10-25 11:53:57:136] [10-25 11:53:57:136]NORMAL POWER DOWN [10-25 11:54:20:053]RDY [10-25 11:54:22:391] [10-25 11:54:22:391]+CPIN: READY [10-25 11:54:24:617] [10-25 11:54:24:617]^CARDMODE: 2 [10-25 11:54:27:412] [10-25 11:54:27:412]+E_UTRAN Service [10-25 11:54:27:412] [10-25 11:54:27:412]*CGEV: ACT,5,"cmiot.MNC004.MCC460.GPRS","10.206.84.110" [10-25 11:54:27:412] [10-25 11:54:27:412]+NITZ: 21/10/25,03:54:28+32,0 [10-25 11:54:27:596] [10-25 11:54:27:596]SMS READY AT+CPOWD=0:紧急关机,没有任何返回(23s 后自动重启?!): [10-25 11:55:01:730]AT+CPOWD=0 [10-25 11:55:24:975] [10-25 11:55:24:975]RDY [10-25 11:55:27:275] [10-25 11:55:27:275]+CPIN: READY [10-25 11:55:29:503] [10-25 11:55:29:503]^CARDMODE: 2 [10-25 11:55:32:250] [10-25 11:55:32:250]+E_UTRAN Service [10-25 11:55:32:277] [10-25 11:55:32:277]*CGEV: ACT,5,"cmiot.MNC004.MCC460.GPRS","10.36.236.97" [10-25 11:55:32:303] [10-25 11:55:32:303]+NITZ: 21/10/25,03:55:33+32,0 [10-25 11:55:32:493] [10-25 11:55:32:493]SMS READY AT+CFUN=1:全功能模式 AT+CFUN=4:飞行模式 AT+CFUN=0:最小功能模式
[编辑] 2.3 睡眠、时钟
# setup automatic sleep mode AT+CSCLK=2 串口空闲超过 AT+WAKETIM 配置的时间(默认 5s),模块自动进入睡眠模式 串口连续发送 AT 直到模块回应时即退出睡眠模式 2 [10-22 11:18:11:076]+CSQ: 31,99 [10-22 11:18:11:076] [10-22 11:18:11:076]OK [10-22 11:18:15:993]AT+CESQ [10-22 11:18:15:993] [10-22 11:18:15:993]+CESQ: 99,99,255,255,20,67 [10-22 11:18:16:003] [10-22 11:18:16:003]OK [10-22 11:20:17:174]AT+CCLK? [10-22 11:20:17:174] [10-22 11:20:17:174]+CCLK: "00/01/01,00:25:15+00" [10-22 11:20:17:174] [10-22 11:20:17:174]OK 10-22 15:04:05:953]AT+CCLK? [10-22 15:04:05:953] [10-22 15:04:05:953]+CCLK: "21/10/22,15:04:05+32" [10-22 15:04:05:953] [10-22 15:04:05:953]OK
[编辑] 2.4 MQTT
AT+MCONFIG=cat1753,test,test <client_id>,<user>,<passwd> [10-22 15:11:11:373]AT+MCONFIG=cat1753,test,test [10-22 15:11:11:373] [10-22 15:11:11:373]OK AT+MIPSTART="mqtt.test.net",1883 [10-22 15:11:26:503]AT+MIPSTART="mqtt.test.net",1883 [10-22 15:11:26:503] [10-22 15:11:26:503]OK [10-22 15:11:26:803] [10-22 15:11:26:803]CONNECT OK AT+MCONNECT=1,60 <clean_session (0-No/1-Yes)>,<keepalive_time (s)> [10-22 15:11:51:423]AT+MCONNECT=1,60 [10-22 15:11:51:423] [10-22 15:11:51:423]OK [10-22 15:11:51:668] [10-22 15:11:51:668]CONNACK OK AT+MPUB==<topic>,<qos>,<retain>,<message> [10-22 15:12:17:110]AT+MPUB="dev/test",0,0,{\22gid\22:\2212126380998\22} [10-22 15:12:17:110] [10-22 15:12:17:110]OK AT+MDISCONNECT: 关闭 MQTT 连接 (OK / ERROR) [10-22 14:33:39:704]AT+MDISCONNECT [10-22 14:33:39:704] [10-22 14:33:39:704]OK AT+MIPCLOSE:关闭 TCP 连接 (OK / ERROR) [10-22 14:34:23:525]AT+MIPCLOSE [10-22 14:34:23:525] [10-22 14:34:23:525]OK AT+MQTTSTATU:查询 MQTT 连接状态 (0: 离线,1:可以 pub,2:还没认证,需要发送 MCONNECT) [10-22 14:33:12:435]AT+MQTTSTATU [10-22 14:33:12:435] [10-22 14:33:12:435]+MQTTSTATU :1 [10-22 14:33:12:435] [10-22 14:33:12:435]OK
[编辑] 2.5 DaTong
[10-22 15:49:40:528]RDY [10-22 15:49:43:276] [10-22 15:49:43:276]+CPIN: READY [10-22 15:49:45:996] [10-22 15:49:45:996]^CARDMODE: 2 [10-22 15:49:48:891] [10-22 15:49:48:891]+E_UTRAN Service [10-22 15:49:48:907] [10-22 15:49:48:907]*CGEV: ACT,5,"cmiotdtrl.sx.MNC004.MCC460.GPRS","10.183.103.132" [10-22 15:49:48:923] [10-22 15:49:48:923]+NITZ: 21/10/22,07:49:48+32,0 [10-22 15:49:52:747] [10-22 15:49:52:747]SMS READY
[编辑] 3 Hardware
[编辑] 3.1 Overview
鉴于其上电需要按开关开机的特性,外部必须加一个 MCU:
- 检测电池电压,10 min 持续的 < 3.2V,关机。10 min 持续的 > 3.3V,开机
- 作为 LTE Cat1 模组系统的外部看门狗,系统异常需重启
- 定时重启
- 备用系统:切换为 AT 模式
需给 Linux Core 留有接口:
- LoRa (SPI)
- LTE Cat 1 (USB)
- UART ---> MODBUS
TF 卡 + 文件系统
电源:
- SX1278: 1.8 ~ 3.7V
- SX1268: 1.8 ~ 3.7V (3.9 max)
- ASR6500: 1.8 ~ 3.7V
- Air724: 3.3 ~ 4.3V,至少 2A 电流能力。IO 电压 1.8V
[编辑] 3.2 ML302
移动官方 LTE Cat1 模组
- 32mm x 29mm x2.5mm
- 紫光展锐 UIS8910 / RDA8910 / 春藤 8910DM
[编辑] 3.3 Air724UG
- 24mm x 24mm
- 紫光展锐 UIS8910 / RDA8910
[编辑] 3.4 移远
[编辑] 4 Air724UG
- Air724UG_模块硬件设计手册
- Air724UG模块硬件资料
- EVB_Air724UG_A13开发板使用指南
- Air720模块Linux USB驱动以及PPP拨号说明
- Air720模块在linux设备上的RNDIS网卡使用
[编辑] 4.1 RNDIS
Ubuntu:
comcat@auto:~/f1c/linux$ uname -a Linux auto 5.3.0-64-generic #58-Ubuntu SMP Fri Jul 10 19:33:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux comcat@auto:~/f1c/linux$ dmesg|tail -n 16 [4658581.814120] tg3 0000:05:00.1 eno2: EEE is disabled [4659835.062397] usb 1-6: new high-speed USB device number 47 using xhci_hcd [4659835.210999] usb 1-6: New USB device found, idVendor=1782, idProduct=4d12, bcdDevice= 0.00 [4659835.211000] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [4659835.211001] usb 1-6: Product: UNISOC-8910 [4659835.211002] usb 1-6: Manufacturer: UNISOC [4659835.714741] usb 1-6: USB disconnect, device number 47 [4659836.822341] usb 1-6: new high-speed USB device number 48 using xhci_hcd [4659836.971039] usb 1-6: New USB device found, idVendor=1782, idProduct=4e00, bcdDevice= 0.00 [4659836.971041] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [4659836.971042] usb 1-6: Product: UNISOC-8910 [4659836.971043] usb 1-6: Manufacturer: UNISOC [4659836.985660] usbcore: registered new interface driver cdc_ether [4659836.987884] rndis_host 1-6:1.0 eth0: register 'rndis_host' at usb-0000:00:14.0-6, RNDIS device, f0:4b:b3:b9:eb:e5 [4659836.987904] usbcore: registered new interface driver rndis_host [4659836.992163] rndis_host 1-6:1.0 enxf04bb3b9ebe5: renamed from eth0 # lsusb Bus 001 Device 001: ID 1d6b:0002 Bus 001 Device 002: ID 1782:4e00
BSP .config:
CONFIG_USB_USBNET=y CONFIG_USB_NET_CDCETHER=y CONFIG_USB_NET_RNDIS_HOST=y CONFIG_USB_NET_CDC_SUBSET_ENABLE=y CONFIG_USB_NET_CDC_SUBSET=y CONFIG_USB_ARMLINUX=y CONFIG_USB_NET_RNDIS_WLAN=y
正常启动 log;
# dmesg | grep usb [ 0.087514] usbcore: registered new interface driver usbfs [ 0.087722] usbcore: registered new interface driver hub [ 0.087957] usbcore: registered new device driver usb [ 0.152829] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO [ 0.890802] usbcore: registered new interface driver rndis_wlan [ 0.896935] usbcore: registered new interface driver asix [ 0.902571] usbcore: registered new interface driver ax88179_178a [ 0.908815] usbcore: registered new interface driver cdc_ether [ 0.914896] usbcore: registered new interface driver net1080 [ 0.920790] usbcore: registered new interface driver rndis_host [ 0.926844] usbcore: registered new interface driver cdc_subset [ 0.933026] usbcore: registered new interface driver zaurus [ 0.938802] usbcore: registered new interface driver cdc_ncm [ 0.968749] usbcore: registered new interface driver usb-storage [ 1.057718] usbcore: registered new interface driver usbhid [ 1.063495] usbhid: USB HID core driver [ 1.094510] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator [ 1.106535] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver [ 1.112542] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1 [ 1.145447] usb0: HOST MAC 4a:0a:44:64:74:fd [ 1.149904] usb0: MAC 5e:2f:11:c1:2c:d0 [ 1.830558] usb 1-1: new high-speed USB device number 2 using musb-hdrc [ 2.025078] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-musb-hdrc.1.auto-1, RNDIS device, f0:4b:b3:b9:eb:e5 # dmesg | grep rndis [ 74.669913] usb 1-1: new high-speed USB device number 3 using musb-hdrc [ 76.149922] usb 1-1: new high-speed USB device number 4 using musb-hdrc [ 76.335014] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-musb-hdrc.1.auto-1, RNDIS device, f0:4b:b3:b9:eb:e5 [ 82.117916] protocol 0003 is buggy, dev eth0 [ 83.842840] protocol 0003 is buggy, dev eth0 [ 85.558717] protocol 0003 is buggy, dev eth0 [ 93.933175] random: crng init done # lsusb Bus 001 Device 001: ID 1d6b:0002 Bus 001 Device 004: ID 1782:4e00
Buildroot 选中 udhcpc (dhcp客户端, BR2_PACKAGE_DHCPCD=y) 后自动连网:
# dmesg | grep rndis [ 74.669913] usb 1-1: new high-speed USB device number 3 using musb-hdrc [ 76.149922] usb 1-1: new high-speed USB device number 4 using musb-hdrc [ 76.335014] rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-musb-hdrc.1.auto-1, RNDIS device, f0:4b:b3:b9:eb:e5 [ 82.117916] protocol 0003 is buggy, dev eth0 [ 83.842840] protocol 0003 is buggy, dev eth0 [ 85.558717] protocol 0003 is buggy, dev eth0 [ 93.933175] random: crng init done # ifconfig eth0 Link encap:Ethernet HWaddr F0:4B:B3:B9:EB:E5 inet addr:192.168.5.8 Bcast:192.168.5.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:46 errors:0 dropped:0 overruns:0 frame:0 TX packets:54 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6179 (6.0 KiB) TX bytes:7480 (7.3 KiB)
Or:
启动后 log: rndis_host 1-1:1.0 eth0: register 'rndis_host' at usb-musb-hdrc.1.auto-1, RNDIS device, f0:4b:b3:b9:eb:e5 发现新注册了eth0,手动将 eth0 添加到 network 中的 wan 部分。 /etc/config/network config interface 'wan' option force_link '1' option proto 'dhcp' option ifname 'eth0' /etc/init.d/network restart
[编辑] 4.2 AT
- Air720 0x1286:0x4e3d
- Air724 0x1782:0x4e00
- 带 RNDIS 网卡驱动
- ttyUSB0 AT 口
- ttyUSB1 AT+ ppp 口
- ttyUSB2 log 输出口
- 不带 RNDIS 网卡驱动
- ttyUSB2 AT 口
- ttyUSB3 AT+ ppp 口
- ttyUSB4 log 输出口
- ttyUSB0 和 ttyUSB1 为无效口
# cat /sys/class/udc/musb-hdrc.1.auto/device/usb1/1-1/idVendor 1782 # cat /sys/class/udc/musb-hdrc.1.auto/device/usb1/1-1/idProduct 4e00 # cat /sys/class/udc/musb-hdrc.1.auto/device/usb1/1-1/manufacturer UNISOC
# ifconfig eth0 down # picocom -b 115200 /dev/ttyUSB0 ATI # 查看版本 Luat_V0024_RDA8910_FLOAT AT+CIMI # 查 SIM 卡的 IMSI AT+CGSN # 查模组 IMEI AT+CSQ #信号质量 +CSQ: 14,99 AT+CESQ # 查看信号强度 +CESQ: 99,99,255,255,24,67 AT+CEREG? # EPS network registration status, 确认基站注册状态 0,1 或者 0,5 1-代表本地已注册上, 5-代表漫游已注册 +CEREG: 2,1,"0513","00000000",7 AT+CGACT? # Context activation, state = 0: deactivated; =1: activated +CGACT: 5, 1 AT+CCLK? +CCLK: "21/02/19,16:45:59+32" AT+CGDCONT? +CGDCONT: 5,"IP","cmiot","10.169.84.172", AT+CPIN? +CPIN: READY AT+CPOF # 软件关机 AT+CFUN? # Phone functionality, 0 最小功能,1 全功能 (Default),4 射频电路关闭,7 disable sim only # Heart beat: [I]-[ril.sendat] AT+CSQ [I]-[ril.proatc] +CSQ: 31,99 [I]-[ril.proatc] OK [I]-[ril.sendat] AT+CESQ [I]-[ril.proatc] +CESQ: 99,99,255,255,19,62 [I]-[ril.proatc] OK [I]-[ril.sendat] AT+EEMGINFO? [I]-[ril.proatc] +EEMGINFO: 3, 2 AT+CFUN=0 # 让模组强制进入深度休眠(opencpu 时只能选择此方式) [I]-[ril.proatc] ^MODE: 0,0 *CGEV: DEACT,5 ^MODE: 0,0 +CREG: 0,"0000","00005011",0 [I]-[net.UpdNetMode] nil 4 0 0 ^CARDMODE: 255 [I]-[net.NET_UPD_NET_MODE] 0 +CPIN: SIM REMOVED [I]-[ril.proatc] +CREG: 0,"0000","00005011",0 [I]-[net.creg] 0 +CREG: [I]-[ril.proatc] ^CARDMODE: 255 [I]-[ril.defurc] ^CARDMODE: 255 [I]-[ril.proatc] +CPIN: SIM REMOVED [I]-[ril.sendat] AT+COPS? [I]-[SIM.subscribe] false NORDY [I]-[ril.proatc] +COPS: 0 [I]-[cops] nil nil true [I]-[ril.proatc] OK [I]-[ril.defrsp] AT+COPS? true OK nil [I]-[ril.sendat] AT+CREG? [I]-[ril.proatc] +CREG: 2,0,"0000","00005011",0 [I]-[net.creg] 0 +CREG: [I]-[ril.proatc] OK [I]-[ril.defrsp] AT+CREG? true OK nil [I]-[ril.sendat] AT+CSQ [I]-[ril.proatc] +CSQ: 99,99 [I]-[ril.proatc] OK [I]-[ril.sendat] AT+CESQ [I]-[ril.proatc] +CESQ: 99,99,255,255,255,255 [I]-[ril.proatc] OK [I]-[ril.sendat] AT+EEMGINFO? +EEMGINFOSVC: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0 0, 0, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 [I]-[ril.proatc] +EEMGINFO: 3, 0 [I]-[ril.defurc] +EEMGINFO: 3, 0 [I]-[ril.proatc] OK [I]-[ril.defrsp] AT+EEMGINFO? true OK nil [I]-[ril.proatc] +EEMGINFOSVC: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0 0, 0, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0 [I]-[link.Pdp_Act] false 0 true [I]-[ril.sendat] AT+CGATT? [I]-[ril.proatc] +CGATT: 0 [I]-[ril.proatc] OK [I]-[testLbsLoc.getLocCb] 1 nil nil [I]-[ril.sendat] AT+CSQ [I]-[ril.proatc] +CSQ: 99,99 [I]-[ril.proatc] OK [I]-[ril.sendat] AT+CESQ [I]-[ril.proatc] +CESQ: 99,99,255,255,255,255 [I]-[ril.proatc] OK [I]-[ril.sendat] AT+EEMGINFO? +EEMGINFOSVC: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0 0, 0, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 [I]-[ril.proatc] +EEMGINFO: 3, 0 [I]-[ril.defurc] +EEMGINFO: 3, 0 [I]-[ril.proatc] OK [I]-[ril.defrsp] AT+EEMGINFO? true OK nil [I]-[ril.proatc] +EEMGINFOSVC: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0 0, 0, 65535, 0, 0, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0 AT+CFUN=1 # 返回全功能模式(从深度睡眠返回)
[编辑] 5 Reference