T536主板的4G通信功能的使用-盈鹏飞嵌入式
CoM-T536核心模块搭载全志T536四核处理器,支持4K视频编码、双通道LVDS/MIPI显示接口、17路UART和4路CAN FD总线。评估板STK-T536支持移远EC200/EM05系列4G模块,提供MINIPCIE和M.2双接口,支持ECM/RNDIS/PPP三种网络模式。系统预装Linux 5.10/Ubuntu 20.04,通过AT指令可配置模块工作模式并实现自动拨号,使用udhc
CoM-T536产品特性:
- 采用Allwinner公司Cortex-A55四核T536处理器,最高速度为1.6GHZ;
- 支持2TOPS NPU,仅特定型号支持;
- 支持4K/25fps H.264视频编码,支持4K/15fps MJPEG编码;
- 支持1-4G Bytes LPDDR4 SDRAM;
- 支持EMMC 4G-64G大容量电子盘,可启动;或支持SPI NAND启动;
- 支持双通道LVDS,分辨率最高1920x1080@60fps;支持MIPI DSI显示, 分辨率最高1920x1020@60fps;
- 支持PCIE2.1;支持最多17路UART;支持四路CANFD;支持双路千兆以太网;
- 稳定的操作系统的支持,可预装LINUX 5.10/Ubuntu 20.04
- 邮票孔198POS设计, 尺寸为:53.5*45MM
CoM-T536功能图

STK-T536评估板功能图:

3.16、4G模块测试
STK-T536评估板支持4G通信,固件已适配移远模组EC200T、EC200A、EM05。其中EC200系列插接在MINIPCIE接口;而EM05模块插接在M.2接口。以下是STK-T536评估板的MINIPCIE接口(CN20)和M.2接口(CN10)位置:

其中每个接口都有对应的指示灯和SIM卡座,对应关系如下:
| 接口 | SIM卡座 | 指示灯 |
| MINI PCIE(CN20) | CN21(开发板背面) | D36 |
| M.2(CN10) | CN11(开发板正面) | D17 |
3.16.1、4G模块的特性及驱动方式介绍
每个4G模块都有其特殊性,就拿我们目前支持的几款来说,他们的ID号是不同的。这里说的ID是VID/PID,Linux系统是靠这些ID来识别模块的,具体见下表:

备注:本表来自于《Quectel_UMTS_LTE_5G_Linux_USB_Driver_用户指导_V1.0.pdf》
从表中可以看出,EC200A的ID是VID:0x2c7c,PID:0x6005,可查看Linux内核驱动代码/drivers/usb/serial/option.c来确认模块是否被系统支持。
另外,在Linux系统下,一个模块可能有多种驱动方式。一般来说驱动方式决定了通信速度和通信的特性。以移远EC200A为例来说,它支持如下4种驱动模式:
| 驱动方式 | 说明 |
| ppp模式 | 最原始的通信模式,通信速度慢,耗费处理器资源,不推荐使用 |
| ecm模式 | 通过标准的CDC-ECM发起data call,是发送标准的ECM命令,获取局域网ip。这种模式配合cdc_ether驱动使用。 |
| ncm模式 | 是 CDC-ECM 的增强版本,提供更高的数据吞吐能力,适合需要更高网络性能的应用场景。 |
| rndis模式 | 基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡获取局域网ip。这种方式最简单,模块插上手机卡之后,模块会自动拨号上网。一般在Windows下使用。 |
以上驱动(拨号)方式的区别:
| 拨号方式 | Linux | Windows | IP地址 |
| ECM拨号 | 驱动系统自带,很老的内核都支持 | 需要安装专门的驱动程序 | 私网IP |
| RNDIS拨号 | 驱动是系统自带的,很老的内核都支持 | 不需要安装驱动程序,Windows系统内已经集成了驱动 | 私网IP |
PPP使用复杂,对CPU负载大,网速上不去,不推荐使用。
ECM不支持IP聚合和复用功能,决定了不适用于高速场景。
RNDIS协议上是支持IP聚合的,但是Linux自带驱动没有使用,所以也不适用于高速场景。
3.16.2、4G通信模块功能的演示
固件中已经集成了自动拨号的脚本,若4G模块的电源、SIM卡、天线均配置正常,系统上电后会自动按照ECM方式进行拨号联网,自动拨号脚本是/etc/init.d/S85_EC801E_dialing.sh,脚本内容如下:
#!/bin/sh
EC801E=`lsusb | grep 0903`
start_dailing() {
if [ -n "$EC801E" ];then
echo -e "\033[36m 4G EC801E Device\033[0m"
echo -e "AT+QCFG=\"nat\",1\r\n" > /dev/ttyUSB2
echo -e "AT+QNETDEVCTL=3,1,1 \r\n" > /dev/ttyUSB2
fi
}
case "$1" in
start)
start_dailing
;;
*)
echo "Usage: $0 {start}"
exit 1
;;
esac
exit $?
系统启动进入shell后,执行如下指令获取IP
Target# udhcpc -i usb0

执行完以上操作,D36指示灯由慢闪(1800ms灭/200ms亮)变为慢闪(200ms灭/1800ms亮)的状态,该状态表示已经正常联网。
通过ping指令判断是否联网成功,如果有数据回复,则说明网络功能正常。
Target# ping www.baidu.com
运行测试结果如下所示:

3.16.3、4G通信模块功能的分步演示
本次验证选择ECM方式,验证过程大概分如下5个步骤,1)连接模块,插入SIM卡;2)等待模块成功加载;3)检查SIM卡是否正常工作;4)配置模块网卡模式;5)拨号上网,以下就每个步骤进行阐述。
(一)4G模块的安装和SIM卡的安装
将4G模块按照下图插入评估板,并使用螺钉锁定,同时要插上配套的天线,否则会因为无信号而测试失败。另外,MINIPCIE接口(CN20)的电压是可调的,短接J1后CN20供电3.7V。

把NanoSIM卡插入如下卡座(CN21),并保证SIM卡正常备案且资费充足,否则可能测试失败。

备注:STK-T536有两个SIM卡座,一个是CN21,该接口位于主板背面,它和CN20(MiniPCIE接口)配套使用;另外一个是CN11,该接口位于主板正面,它和CN10(M.2接口)配套使用;
(二)判断4G模块是否正常工作
输入ls /dev/ttyUSB*指令确认是否存如下设备节点,如果有如下节点,表示4G模块已经工作正常,ttyUSB2节点用来接收AT命令。
Target# ls /dev/ttyUSB*
root@T536-embfly:~# ls /dev/ttyUSB*
ls /dev/ttyUSB*
#如果为下面的情况即为成功加载
root@T536-embfly:~# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
root@T536-embfly:~# ^C
固件默认使能4G模组,通过ifconfig usb0指令可看到usb0节点。
root@T536-embfly:~#ifconfig usb0

完成以上步骤,证明4G模块已经工作正常。接下来要验证第三步,确保SIM卡工作正常,只有SIM卡工作正常,才可测试拨号上网功能。
(三)验证SIM卡是否工作正常
一般通过microcom软件和4G模块进行交互,输入如下AT指令,即可判断SIM卡是否工作正常。microcom通过ctrl+x可退出。
Target# microcom /dev/ttyUSB2
在microcom中依次输入以下AT指令,进行拨号上网测试(采用ECM协议,非PPP)。
AT //收到OK,表示主板与4G模组通讯正常
AT+CPIN? //收到READY,表示SIM卡正常识别

测试也可以直接在Linux终端中使用echo指令:
Target# cat /dev/ttyUSB2 &
Target# echo -e "AT+CPIN?\r\n" > /dev/ttyUSB2
#在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat)
cat /dev/ttyUSB2 &
#检查sim卡的状态
echo -e "AT+CPIN?\r\n" > /dev/ttyUSB2
#如果返回值为如下即为获取sim卡成功
+CPIN: READY
OK
如果遇到无法读卡的问题,可能是卡的触点没有紧密与模块的卡座接触,也可能是模块不支持该SIM卡,可以联系模块的提供商进行解决。
(四)确认4G模块的工作方式
如果之前成功配置过网卡的模式,网卡是会把成功配置的网卡模式保存,就不需要额外再配置网卡模式。
ECM和RNDIS是两种不同的USB网络共享协议。1)ECM(Ethernet Networking Control Model)使用标准的Ethernet II帧格式,在ECM模式下,4G网卡会被识别为一个网络接口,可以直接通过DHCP获取IP地址。2)RNDIS(Remote Network Driver Interface Specification)使用Microsoft Remote NDIS(RNDIS)协议封装数据包,而在RNDIS模式下,4G网卡会被识别为一个USB设备,需要安装相应的驱动程序才能使用。
| 命令 | 功能 |
| AT+QCFG=”usbnet” | 查询网卡模式 |
| AT+QCFG="usbnet",1 | 设置网卡为ECM模式 |
| AT+QCFG="usbnet",3 | 设置网卡为RNDIS模式 |

操作指令如下:
#查询当前模式
#在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat)
cat /dev/ttyUSB2 &
#查询当前网卡的模式
echo -e "AT+QCFG=\"usbnet\"\r\n" > /dev/ttyUSB2
#例子:
cat /dev/ttyUSB2 &
[1] 1155
echo -e "AT+QCFG=\"usbnet\"\r\n" > /dev/ttyUSB2
+QCFG: "usbnet",3
#解析
可以看到返回了3,这个是网卡在RNDIS模式
+QCFG: "usbnet",3 :表示RNDIS模式
(五)配置4G模块的工作方式
- 配置模块网卡模式为ECM
#在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat)
cat /dev/ttyUSB2 &
#配置为ECM模式(返回:OK 代表配置成功)
echo -e "AT+QCFG=\"usbnet\",1\r\n" > /dev/ttyUSB2
#重启模块(重启模块才能生效)
echo -e "AT+CFUN=1,1\r\n" > /dev/ttyUSB2
#重启后可以查看配置是否成功生成
- 配置模块网卡模式为RNDIS
#在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat)
cat /dev/ttyUSB2 &
#配置为ECM模式(返回:OK 代表配置成功)
echo -e "AT+QCFG=\"usbnet\",3\r\n" > /dev/ttyUSB2
#重启模块(重启模块才能生效)
echo -e "AT+CFUN=1,1\r\n" > /dev/ttyUSB2
#重启后可以查看配置是否成功生成
如果你完成前面的配置,把网卡成功配置成ECM模式或者RNDIS模式,即可拨号上网。
(六)拨号上网
拨号上网的指令见下表:
| 命令 | 功能 |
| AT+qnetdevctl=1,1,1 | 立即拨号 |
| AT+qnetdevctl=3,1,1 | 自动拨号(开机自动拨号) |
| AT+qnetdevctl=0,1,1 | 断开拨号 |
| AT+QICSGP=1,”apn”,”username”,”password”,2 | 专网卡拨号 |
拨号上网流程如下:
#在后台显示/dev/ttyUSB2返回的信息(如果想退出后台显示,使用后面的命令:pkill cat)
cat /dev/ttyUSB2 &
#立即拨号(返回:OK 代表配置成功)
echo -e "AT+qnetdevctl=1,1,1\r\n" > /dev/ttyUSB2
#自动获取网络
udhcpc -i usb0

执行完以上操作,D36指示灯由慢闪(1800ms灭/200ms亮)变为慢闪(200ms灭/1800ms亮)的状态,该状态表示已经正常联网。
一般通过ping指令判断是否联网成功,如果有数据回复,则说明网络功能正常。
ping www.baidu.com
运行测试结果如下所示:

更多推荐
所有评论(0)