嵌入式学习小组
直播中

郑静东

7年用户 204经验值
私信 关注

EC20 4G模块配置

4G网络连接
EC20 4G模块配置
EC20 4G模块联网测试

回帖(3)

倪梁靓

2021-1-5 14:45:59
  4G网络连接
  对于嵌入式Linux而言,4G网络连接是一个比较容易实现的功能,大多数的4G模块接口都是MiniPCIE接口,但是深入了解一下就会发现,4G模块的通信接口都是USB,所以4G模块的驱动就是USB驱动,只要USB驱动正常,4G模块在硬件上就能正常通信。下面看一下4G模块的硬件原理图:
  
  
  在原理图中,U25是4G模块的MiniPCIE接口,然后通信引脚会接到U15的HUB芯片上,所以4G模块会被识别成USB设备,CON5是SIM卡接口,在使用4G模块时,需要先插入SIM卡。在i.MX6UL终结者开发板上使用的EC20 4G模块,如图
  
举报

刘勇

2021-1-5 14:46:32
  EC20 4G模块配置
  2.1. 添加USB设备信息
  要使用EC20 4G模块首先需要在Linux内核中添加EC20的USB信息,这样内核启动后,才能正确识别EC20 4G模块。打开Linux内核下的drivers/u***/serial/option.c 文件,添加如下信息:
  1809 /* add support EC220 4G Module */
  1810 { USB_DEVICE(0x05C6, 0x9090) }, /* Quectel UC15 */
  1811 { USB_DEVICE(0x05C6, 0x9003) }, /* Quectel UC20 */
  1812 { USB_DEVICE(0x05C6, 0x9215) }, /* Quectel EC20 */
  1813 { USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC25/EC20 R2.0 */
  1814 { USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21 */
  1815 /* end add */其中第1813行是EC20 4G模块的USB信息。
  2.2. Linux内核配置
  添加完EC20 4G模块的USB信息后,需要修改Linux 内核配置来支持USBNET功能。具体配置如下:
  Device Drivers ---》
  Network device support ---》
  USB Network Adapters ---》
  Multi-purpose USB Networking Framework配置如图
  
  接下来我们还需要使能 USB 串口 GSM、CDMA 驱动,配置路径如下:
  Device Drivers ---》
  USB support ---》
  USB Serial Converter support ---》
  USB driver for GSM and CDMA modems
  配置如图
  
  然后配置ppp,配置路径如下:
  Device Drivers ---》
  Network device support ---》
  PPP (point-to-point protocol) support
  PPP BSD-Compress compression
  PPP Deflate compression
  PPP filtering
  PPP MPPE compression (encryption)
  PPP multilink support
  PPP over Ethernet
  PPP support for async serial ports
  PPP support for sync tty ports
  tty ports配置如图
  
  配置完成后,重新编译内核,然后使用新的内核启动开发板。如果配置成功开发板启动后会有如图 2.2.4信息打印:
  
  可以看出EC20 4G模块识别成功,并且虚拟出5个USB设备,分别为ttyUSB0~ttyUSB4。
举报

李妍

2021-1-5 14:47:29
  EC20 4G模块联网测试
  3.1. PPP软件包编译
  首先拷贝ppp-2.4.4.tar.gz到Ubuntu下,然后执行下面的命令解压:
  tar -xvf ppp-2.4.4.tar.gz
  解压完成得到ppp-2.4.4目录,进入ppp-2.4.4目录如图
  
  使用configure进行配置,命令如下:。/configure结果如图
  
  配置完成后,使用下面的命令进行编译:
  make CC=arm-linux-gnueabihf-gcc
  “CC=arm-linux-gnueabihf-gcc”指定编译器,和开发板Linux内核使用同一个编译器。编译完成如图
  
  编译完成后,分别在chat、pppd、pppdump、pppstats四个目录下生成chat、pppd、pppdump、pppstats可执行文件,用于后面的4G模块联网测试。
  3.2. EC20 4G模块联网测试
  首先安装好EC20 4G模块、天线和SIM卡,如图
  
  开发板准备好后启动Linux系统,待系统启动后,进入/etc目录,然后创建ppp目录,具体命令如下:
  cd /etc //进入etc目录
  mkdir ppp //创建ppp目录
  目录创建完后,使用U盘将上一节编译的chat、pppd、pppdump、pppstats四个可执行文件拷贝到/etc/ppp目录下,如图 :
  
  然后在/etc/ppp目录下创建pap-secrets文件,使用下面命令:
  touch pap-secrets //创建pap-secrets文件vi pap-secrets //打开pap-secret
  输入如下内容:
  # Secrets for authentication using PAP
  # client server secret IP addresses
  card * card *
  在4G信号在通信时候有一个密码的比对,密码对了就可以通信了。上面显示用户是card,密码是card。
  然后创建新文件夹peers,命令“mkdir peers”。
  进入peers文件夹,创建wcdma文件,命令如下:
  touch wcdma
  vi wcdma
  输入如下内容:
  # /etc/ppp/peers/wcdma
  # This is pppd script for China liantong
  # Usage: root》pppd call wcdma
  hide-password
  noauth
  connect ‘/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect’
  disconnect ‘/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect’
  debug
  /dev/ttyUSB2
  115200
  defaultroute
  noipdefault
  novj
  novjccomp
  noccp
  ipcp-accept-local
  ipcp-accept-remote
  local
  lock
  dump
  nodetach
  user “card”
  password “card”
  crtscts
  remotename 3gppp
  ipparam 3gppp
  usepeerdns
  需要注意的是使用/dev/ttyUSB2设备节点文件。
  “user “card””和“password “card””对应了pap-secrets文件中的用户名和密码。
  创建wcdma-chat-connect文件:
  touch wcdma-chat-connect
  vi wcdma-chat-connect
  内容如下:
  ABORT “BUSY”
  ABORT “NO CARRIER”
  ABORT “NO DIALTONE”
  ABORT “ERROR”
  ABORT “NO ANSWER”
  TIMEOUT 120
  “” AT
  OK /rATZ
  OK /rAT+CGDCONT=1,“IP”,“3gnet”,,0,0
  OK-AT-OK ATDT*99#
  CONNECT /d/c
  在这里 OK /rAT+CGDCONT=1,“IP”,“3gnet”,,0,0
  OK-AT-OK ATDT*99#
  这两句话会根据移动联通或者是电信而变化,这里用的是移动4G。
  创建wcdma-chat-disconnect文件:
  touch wcdma-chat-disconnect
  vi wcdma-chat-disconnect
  内容如下:
  ABORT “ERROR”
  ABORT “NO DIALTONE”
  SAY “INSending break to the modem/n”
  “”/k“
  ”“+++ATH”
  SAY “/nGood bye/n”
  所需文件创建完成后,就可以进行联网测试了。
  首先关闭eth0设备,因为和EC20 4G模块有冲突,同时只能使用一个设备。命令如下:
  ifconfig eth0 down
  然后在/etc/ppp目录下输入指令:
  。/pppd call wcdma &
  结果如图
  
  上图表示联网成功后的IP地址为10.47.135.182,使用ifconfig命令查看结果如图
  
  这时使用ping命令查看能够ping通外网,命令如下:ping 202.108.22.5 -c 4
  “-c”选项指定ping网络的次数。“202.108.22.5”是百度的IP地址,结果如图 :
  
  发现不能ping通外网,愿意是因为DNS没有设置对,在etc下有一个文件resolv.conf 。这个文件是用来放DNS的。就是这个里面的域名没有设置对。然而在eth0的运行脚本里强制性的把这个文件复制为了192.168.1.1 。这就造成即便在这里文件里设置上正确的DNS,再开机后也会发现这个文件里已经是192.168.1.1了。这是因为eth0,是开机自启动的。
  我们在/etc目录下新建一个文件resolv.conf_back:
  touch resolv.conf_back
  vi resolv.conf_back
  输入如下内容:
  nameserver 202.99.160.68
  nameserver 221.130.33.52
  nameserver 221.130.33.60
  nameserver 192.168.1.1
  然后在新建一个脚本文件ppp0:
  touch ppp0
  vi ppp0
  输入如下内容:
  #!/bin/sh
  ifconfig eth0 down
  cp /etc/resolv.conf_back
  /etc/resolv.conf/etc/ppp/pppd call wcdma&
  修改ppp0文件的执行权限:
  chmod 777 ppp0
  这里第一步是将eth0关掉,第二步将我们的DNS文件覆盖到resolv.conf上,第三步运行。然后重新开机,执行ppp0脚本,命令如下:
  /etc/ppp0
  脚本执行成功后,重新使用ping命令,结果如图:
  
  图片显示可以正常ping通百度的IP地址。至此EC20 4G模块就可以正常使用了。
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分