# gprs_demo **Repository Path**: yocop/gprs_demo ## Basic Information - **Project Name**: gprs_demo - **Description**: gprs_demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-23 - **Last Updated**: 2025-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 概述 使用移远EC200A 4G模组的网络使用示例。 本示例通过USB与EC200A模组通讯,使用了RNDIS和USB Serial两个USB class。 # 启动 ``` (cli-uart)# ###YoC###[Nov 29 2022,16:31:06] cpu clock is 0Hz aos debug init ok. [ 1.112]main app_main.c[54]: build time: Nov 29 2022, 16:31:06 [ 1.372]USB usbh_hub.c[382]: Port change:0x02 [ 1.376]USB usbh_hub.c[388]: Port 1 change [ 1.380]USB usbh_hub.c[400]: port 1, status:0x101, change:0x01 [ 1.412]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 1.444]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 1.476]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 1.508]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 1.540]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 1.856]USB usbh_hub.c[496]: New full-speed device on Hub 1, Port 1 connected [ 1.864]USB usbh_core.c[528]: New device found,idVendor:058f,idProduct:6254,bcdDevice:0100 [ 1.872]USB usbh_core.c[568]: The device has 1 interfaces [ 1.876]USB usbh_core.c[635]: Enumeration success, start loading class driver [ 1.884]USB usbh_core.c[651]: Loading hub class driver [ 1.908]USB usbh_core.c[429]: Ep=81 Attr=03 Mps=1 Interval=255 Mult=00 [ 1.916]USB usbh_hub.c[296]: port 1, status:0x100, change:0x00 [ 1.920]USB usbh_hub.c[296]: port 2, status:0x101, change:0x01 [ 1.928]USB usbh_hub.c[296]: port 3, status:0x100, change:0x00 [ 1.932]USB usbh_hub.c[296]: port 4, status:0x100, change:0x00 [ 1.940]USB usbh_hub.c[305]: Register HUB Class:/dev/hub2 [ 1.944]USB usbh_hub.c[382]: Port change:0x04 [ 1.948]USB usbh_hub.c[382]: Port change:0x04 [ 1.952]USB usbh_hub.c[388]: Port 2 change [ 1.956]USB usbh_hub.c[400]: port 2, status:0x101, change:0x01 [ 1.992]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.024]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.056]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.088]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.120]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.324]USB usbh_hub.c[496]: New full-speed device on Hub 2, Port 2 connected [ 2.332]USB usbh_core.c[528]: New device found,idVendor:05e3,idProduct:0610,bcdDevice:0654 [ 2.340]USB usbh_core.c[568]: The device has 1 interfaces [ 2.344]USB usbh_core.c[635]: Enumeration success, start loading class driver [ 2.352]USB usbh_core.c[651]: Loading hub class driver [ 2.376]USB usbh_core.c[429]: Ep=81 Attr=03 Mps=1 Interval=255 Mult=00 [ 2.384]USB usbh_hub.c[296]: port 1, status:0x100, change:0x00 [ 2.392]USB usbh_hub.c[296]: port 2, status:0x101, change:0x01 [ 2.396]USB usbh_hub.c[296]: port 3, status:0x100, change:0x00 [ 2.404]USB usbh_hub.c[296]: port 4, status:0x100, change:0x00 [ 2.408]USB usbh_hub.c[305]: Register HUB Class:/dev/hub3 [ 2.412]USB usbh_hub.c[382]: Port change:0x04 [ 2.420]USB usbh_hub.c[382]: Port change:0x04 [ 2.424]USB usbh_hub.c[382]: Port change:0x04 [ 2.428]USB usbh_hub.c[382]: Port change:0x04 [ 2.432]USB usbh_hub.c[388]: Port 2 change [ 2.436]USB usbh_hub.c[400]: port 2, status:0x101, change:0x01 [ 2.468]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.500]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.532]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.564]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.596]USB usbh_hub.c[436]: Port 2, status:0x101, change:0x00 [ 2.824]USB usbh_hub.c[496]: New full-speed device on Hub 3, Port 2 connected [ 2.832]USB usbh_core.c[528]: New device found,idVendor:0bda,idProduct:8153,bcdDevice:3100 [ 2.840]USB usbh_core.c[568]: The device has 1 interfaces [ 2.844]USB usbh_core.c[635]: Enumeration success, start loading class driver [ 2.852]USB usbh_core.c[651]: Loading usb_serial class driver [ 2.856]USB usbh_serial.c[18]: ignore intf:0 [ 2.860]USB usbh_hub.c[382]: Port change:0x04 [ 2.864]USB usbh_hub.c[382]: Port change:0x04 [ 9.060]USB usbh_hub.c[382]: Port change:0x02 [ 9.064]USB usbh_hub.c[388]: Port 1 change [ 9.068]USB usbh_hub.c[400]: port 1, status:0x101, change:0x01 [ 9.100]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 9.132]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 9.164]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 9.196]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 9.228]USB usbh_hub.c[436]: Port 1, status:0x101, change:0x00 [ 9.456]USB usbh_hub.c[496]: New full-speed device on Hub 3, Port 1 connected [ 9.464]USB usbh_core.c[528]: New device found,idVendor:2c7c,idProduct:6005,bcdDevice:0318 [ 9.472]USB usbh_core.c[568]: The device has 5 interfaces [ 9.476]USB usbh_core.c[635]: Enumeration success, start loading class driver [ 9.484]USB usbh_core.c[651]: Loading rndis class driver [ 9.488]USB usbh_core.c[429]: Ep=83 Attr=02 Mps=64 Interval=00 Mult=00 [ 9.496]USB usbh_core.c[429]: Ep=0c Attr=02 Mps=64 Interval=00 Mult=00 [ 9.500]USB usbh_rndis.c[263]: rndis init success [ 9.508]USB usbh_rndis.c[270]: rndis query OID_GEN_SUPPORTED_LIST success,oid num :28 [ 9.516]USB usbh_rndis.c[320]: Ignore rndis query iod:00010101 [ 9.520]USB usbh_rndis.c[320]: Ignore rndis query iod:00010102 [ 9.524]USB usbh_rndis.c[320]: Ignore rndis query iod:00010103 [ 9.532]USB usbh_rndis.c[320]: Ignore rndis query iod:00010104 [ 9.536]USB usbh_rndis.c[323]: rndis query iod:00010106 success [ 9.544]USB usbh_rndis.c[323]: rndis query iod:00010107 success [ 9.548]USB usbh_rndis.c[320]: Ignore rndis query iod:0001010a [ 9.556]USB usbh_rndis.c[320]: Ignore rndis query iod:0001010b [ 9.560]USB usbh_rndis.c[320]: Ignore rndis query iod:0001010c [ 9.568]USB usbh_rndis.c[320]: Ignore rndis query iod:0001010d [ 9.572]USB usbh_rndis.c[320]: Ignore rndis query iod:00010116 [ 9.580]USB usbh_rndis.c[320]: Ignore rndis query iod:0001010e [ 9.584]USB usbh_rndis.c[320]: Ignore rndis query iod:00010111 [ 9.592]USB usbh_rndis.c[323]: rndis query iod:00010114 success [ 9.596]USB usbh_rndis.c[323]: rndis query iod:00010202 success [ 9.604]USB usbh_rndis.c[320]: Ignore rndis query iod:00020101 [ 9.608]USB usbh_rndis.c[320]: Ignore rndis query iod:00020102 [ 9.616]USB usbh_rndis.c[320]: Ignore rndis query iod:00020103 [ 9.620]USB usbh_rndis.c[320]: Ignore rndis query iod:00020104 [ 9.624]USB usbh_rndis.c[320]: Ignore rndis query iod:00020105 [ 9.632]USB usbh_rndis.c[323]: rndis query iod:01010101 success [ 9.636]USB usbh_rndis.c[323]: rndis query iod:01010102 success [ 9.644]USB usbh_rndis.c[320]: Ignore rndis query iod:01010103 [ 9.648]USB usbh_rndis.c[320]: Ignore rndis query iod:01010105 [ 9.656]USB usbh_rndis.c[323]: rndis query iod:01010104 success [ 9.660]USB usbh_rndis.c[320]: Ignore rndis query iod:01020101 [ 9.668]USB usbh_rndis.c[320]: Ignore rndis query iod:01020102 [ 9.672]USB usbh_rndis.c[320]: Ignore rndis query iod:01020103 [ 9.680]USB usbh_rndis.c[333]: rndis set OID_GEN_CURRENT_PACKET_FILTER success [ 9.688]USB usbh_rndis.c[340]: rndis set OID_802_3_MULTICAST_LIST success [ 9.692]USB usbh_rndis.c[344]: Register RNDIS Class:/dev/rndis [ 9.700]USB usbh_core.c[651]: Loading usb_serial class driver [ 9.704]USB usbh_serial.c[18]: ignore intf:1 [ 9.708]USB usbh_core.c[651]: Loading usb_serial class driver [ 9.716]USB usbh_serial.c[18]: ignore intf:2 [ 9.720]USB usbh_core.c[651]: Loading usb_serial class driver [ 9.724]USB usbh_core.c[429]: Ep=89 Attr=03 Mps=64 Interval=16 Mult=00 [ 9.732]USB usbh_core.c[429]: Ep=86 Attr=02 Mps=64 Interval=00 Mult=00 [ 9.736]USB usbh_core.c[429]: Ep=0f Attr=02 Mps=64 Interval=00 Mult=00 [ 9.744]USB usbh_serial.c[44]: Register serial Class:/dev/serial [ 9.752]USB usbh_core.c[651]: Loading usb_serial class driver [ 9.756]USB usbh_serial.c[18]: ignore intf:4 [ 9.760]USB usbh_hub.c[382]: Port change:0x02 [ 9.764]USB usbh_hub.c[382]: Port change:0x02 [ 9.768]USB usbh_hub.c[382]: Port change:0x02 [ 11.120]netmgr netmgr_service.c[316]: start gprs [ 11.124]atparser atparser.c[587]: line(ATE0), format(OK%n), count=-1 [ 11.132]atparser atparser.c[587]: line(+CME ERROR: 14), format(+CPIN: READY%n), count=-1 [ 12.140]atparser atparser.c[587]: line(+CME ERROR: 13), format(+CPIN: READY%n), count=-1 [ 13.148]atparser atparser.c[587]: line(+CME ERROR: 14), format(+CPIN: READY%n), count=-1 [ 14.156]atparser atparser.c[587]: line(+CME ERROR: 14), format(+CPIN: READY%n), count=-1 [ 17.164]netmgr netmgr_service.c[187]: start dhcp [ 19.124]netmgr netmgr_service.c[211]: IP: 192.168.43.200 [ 19.128]main app_main.c[30]: Got IP [ 19.132]main app_main.c[37]: NTP Start [ 19.164]NTP ntp.c[197]: ntp1.aliyun.com [ 19.212]NTP ntp.c[259]: NTP sec: 1669711309 usec: 930362 [ 19.216]NTP ntp.c[288]: sync success [ 19.220]main app_main.c[45]: NTP Success ``` 设备启动以后usb协议栈会检测usb hub和usb device,检测到en200a模块后 会启动netmgr 进行联网,联网完成后会进行ntp时间同步 ## RNDIS 网卡调试 默认开了CONFIG_RNDIS_DEVICE_ETH宏,是通过接入windows,作为windows的网卡,和设备进行通讯。 启动后可以usb插入pc后有如下打印 ``` [10:38:01.816]收←◆(cli-uart)# ###YoC###[Jun 20 2023,02:35:46] cpu clock is 0Hz aos debug init ok. [ 0.024]main app_main.c[62]: build time: Jun 20 2023, 02:35:47 [ 0.032]rndis v_rndis_device.c[237]: queue send error [ 0.036]netmgr netmgr_service.c[316]: start eth [10:38:01.929]收←◆DevEnumSpeed:0 [10:38:01.995]收←◆USBD_EVENT_CONFIGURED USBD_EVENT_CONFIGURED usbd_configure_done_callback ``` 设备端输入ifconfig可以看到有一个 eth0的网卡,ip为 192.168.11.10。 ``` ifconfig eth0 Link encap:eth HWaddr 00:00:00:00:00:00 inet addr:192.168.11.10 GWaddr:192.168.11.1 Mask:255.255.255.0 DNS SERVER 0: 208.67.222.222 ``` 同时,windows电脑上也会有一个rndis网卡出现,通过修改 windows上的rndis网卡在的ip,就可以和设备进行通讯了。(由于通过usb连接,没有dhcpd功能,电脑和设备都需要设置静态ip) 通过去掉 宏 CONFIG_RNDIS_DEVICE_ETH 可以配置使用 移远的4G网卡。 ## 4G 网卡调试 查看USB设备 ``` (cli-uart)# lsusb -t /: Hub 01, ports=1, is roothub |__Port 1,Port addr:0x02, ID 058f:6254, If 0,ClassDriver=hub /: Hub 02, ports=4, mounted on Hub 01:Port 1 |__Port 2,Port addr:0x03, ID 05e3:0610, If 0,ClassDriver=hub /: Hub 03, ports=4, mounted on Hub 02:Port 2 |__Port 1,Port addr:0x05, ID 2c7c:6005, If 0,ClassDriver=rndis |__Port 1,Port addr:0x05, ID 2c7c:6005, If 1,ClassDriver=usb_serial |__Port 1,Port addr:0x05, ID 2c7c:6005, If 2,ClassDriver=usb_serial |__Port 1,Port addr:0x05, ID 2c7c:6005, If 3,ClassDriver=usb_serial |__Port 1,Port addr:0x05, ID 2c7c:6005, If 4,ClassDriver=usb_serial |__Port 2,Port addr:0x04, ID 0bda:8153, If 0,ClassDriver=usb_serial ``` 查看网络设备 ``` (cli-uart)# ifconfig gprs0 Link encap:GPRS inet addr:192.168.43.200 Signal Quality(31): -52 dBm Sim insert is OK Sim ccid:898600E61xxxxxxxxxx ``` ping ``` (cli-uart)# ping www.baidu.com ping www.baidu.com(36.152.44.95) from 36.152.44.95: icmp_seq=1 time=40 ms from 36.152.44.95: icmp_seq=2 time=24 ms from 36.152.44.95: icmp_seq=3 time=28 ms ```