| | |
| | | |
| | | 原理图 |
| | | |
| | |  |
| | |  |
| | | |
| | | DTS文件修改(如果有) |
| | | |
| | |
| | | |
| | | 原理图及分析 |
| | | |
| | |  |
| | |  |
| | | |
| | | |
| | | |
| | |
| | | |
| | | 原理图及分析 |
| | | |
| | |  |
| | | |
| | | |
| | | DTS文件修改(如果有) |
| | | 内核配置 |
| | | |
| | | ``` |
| | | TBD |
| | | 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 |
| | | ``` |
| | | |
| | | |
| | | |
| | | 内核make menuconfig配置(如果有) |
| | | |
| | | ``` |
| | | xxxx -> |
| | | xxxx -> |
| | | xxxx -> |
| | | ``` |
| | | |
| | | |
| | | |
| | | ### 3.10.2 应用程序测试 |
| | | |
| | | #### 模块开关机 |
| | | |
| | | **开机方式** |
| | | |
| | | 首先操作GPIO,给4G模块上电 |
| | | |
| | | **(注意:开关机按键,复位按键,在开发板上是MPU的GPIO出来后,硬件做了反向的。低电平,上电 低脉冲,复位)** |
| | | |
| | | 输入如下命令 |
| | | |
| | | ``` |
| | | gpioset 3 0=0 |
| | | gpioset 3 1=0 |
| | | ``` |
| | | |
| | | 将这两个引脚拉低后,模块上电如下所示 |
| | | |
| | |  |
| | | |
| | | **关机方式** |
| | | |
| | | 1. 软件方式关机 |
| | | |
| | | 先发送AT+QPOWD命令给模块,再拉高引脚 |
| | | |
| | | |
| | | TBD |
| | | |
| | | ``` |
| | | microcom /dev/ttyUSB3 -s 115200 |
| | | AT+QPOWD |
| | | |
| | | gpioset 3 1=1 |
| | | ``` |
| | | |
| | | **(注意:在发送AT命令后需要在几秒内拉高gpio引脚,否则模块会再次开启)** |
| | | |
| | |  |
| | | |
| | | 2. 硬件方式关机 |
| | | |
| | | 先拉低RESET大于100ms后,拉低电源引脚Power_on |
| | | 硬件关机时序如下图所示: |
| | | |
| | |  |
| | | |
| | | 当4G模块上电后,可以在dev目录下看到四个ttyUSB设备 |
| | | |
| | |  |
| | | |
| | | 我们可以使用microcom命令对串口发送AT命令 |
| | | |
| | | ```c |
| | | microcom /dev/ttyUSB3 -s 115200 |
| | | ``` |
| | | |
| | |  |
| | | |
| | | 检测手机卡是否在位 |
| | | |
| | | AT+CPIN? |
| | | |
| | |  |
| | | |
| | | 网络运行商名称 |
| | | |
| | | AT+COPS? |
| | | |
| | |  |
| | | |
| | | CHN-CT 表示中国电信 |
| | | |
| | | 网络注册状态 |
| | | |
| | | AT+CREG? |
| | | |
| | |  |
| | | |
| | | 第二个参数为0 表示没有注册网络,为1表示网络已注册 |
| | | |
| | | |
| | | |
| | | 信号强度 |
| | | |
| | | AT+CSQ |
| | | |
| | |  |
| | | |
| | | 数值越大表明信号质量越好; |
| | | |
| | | |
| | | |
| | | #### PPP拨号方式 |
| | | |
| | | 内核配置好后,编译生成新的镜像烧录到开发板中 |
| | | |
| | | 启动系统时,会看到如下信息 |
| | | |
| | |  |
| | | |
| | | 接下来需要使用到pppd软件,需要通过 pppd 这个软件来实现 ppp 拨号上网 。 |
| | | |
| | | 下载网址:[Index of /pub/ppp (samba.org)](https://download.samba.org/pub/ppp/) |
| | | |
| | | 下载好后交叉编译,在make install的时候可能会报下面这种类型的错误 |
| | | |
| | | ``` |
| | | strip: Unable to recognise the format of the input file 'xxxxxxx' |
| | | ``` |
| | | |
| | | 解决方法:[ppp-2.4.5移植(交叉编译)_ppp交叉编译-CSDN博客](https://blog.csdn.net/y7u8t6/article/details/101376011) |
| | | |
| | | |
| | | |
| | | 编译生成好的四个可执行文件:chat pppd pppdump pppstats 将这四个文件拷贝到开发板的/bin文件夹下 |
| | | |
| | | 输入`pppd -v`如下图所示,表示移植成功。 |
| | | |
| | |  |
| | | |
| | | ppp拨号方式需要编写三个脚本文件存放在/etc/ppp/peer下 |
| | | |
| | | 默认是没有这些文件夹的,所以需要去创建ppp和peer文件夹,创建好后在peer下创建如下三个脚本文件 |
| | | |
| | | **rasppp.sh** |
| | | |
| | | ```shell |
| | | #!/bin/sh |
| | | hide-password |
| | | |
| | | noauth |
| | | |
| | | connect '/bin/chat -s -v -f /etc/ppp/peers/rasppp-chat-connect' |
| | | |
| | | disconnect '/bin/chat -s -v -f /etc/ppp/peers/rasppp-chat-disconnect' |
| | | |
| | | debug |
| | | |
| | | /dev/ttyUSB3 |
| | | |
| | | 115200 |
| | | |
| | | defaultroute |
| | | |
| | | noipdefault |
| | | |
| | | novj |
| | | novjccomp |
| | | noccp |
| | | ipcp-accept-local |
| | | ipcp-accept-remote |
| | | local |
| | | |
| | | lock |
| | | dump |
| | | |
| | | nodetach |
| | | #这里我用的是电信卡 |
| | | user card |
| | | password card |
| | | |
| | | #如果是移动或者联通的卡将上面两行改为 |
| | | #user Anyname |
| | | #password Anypassword |
| | | |
| | | crtscts |
| | | remotename 3gppp |
| | | ipparam 3gppp |
| | | |
| | | usepeerdns |
| | | |
| | | ``` |
| | | |
| | | |
| | | |
| | | **rasppp-chat-connect.sh** |
| | | |
| | | ```shell |
| | | TIMEOUT 15 |
| | | ABORT "BUSY" |
| | | ABORT "ERROR" |
| | | ABORT "NO ANSWER" |
| | | ABORT "NO CARRTER" |
| | | ABORT "NO DIALTONE" |
| | | |
| | | ""AT |
| | | OK \rATZ |
| | | |
| | | OK \rAT+CGDCONT=1,"IP","" |
| | | |
| | | OK-AT-OK ATDT#777 |
| | | CONNECT \d\c |
| | | ``` |
| | | |
| | | |
| | | |
| | | **rasppp-chat-disconnect.sh** |
| | | |
| | | ```shell |
| | | ABORT "ERROR" |
| | | ABORT "NO DIALTONE" |
| | | SAY "\NSending break to the modem\n" |
| | | |
| | | ""\k" |
| | | |
| | | ""+++ATH" |
| | | SAY "\nGood bye !\n" |
| | | ``` |
| | | |
| | | |
| | | |
| | | 添加完以上三个脚本文件后,现在可以使用 `ppp` 尝试拨号 |
| | | |
| | | ``` |
| | | pppd call rasppp & #后台进行拨号 |
| | | ``` |
| | | |
| | | 如果拨号正常如下图所示 |
| | | |
| | |  |
| | | |
| | | 从程序的输出中我们可以获得以下信息: |
| | | |
| | | 本机IP 10.86.31.158 |
| | | 主要 DNS 服务器:202.103.24.68 |
| | | 次要 DNS 服务器: 202.103.44.150 |
| | | |
| | | |
| | | |
| | | 当我们使用`ifconfig`查看网络信息会发现一个ppp0的网络 |
| | | |
| | |  |
| | | |
| | | 此时我们需要通过上面获得的网络信息来配置这个ppp0网络 |
| | | |
| | | ``` |
| | | sudo ip route add default via 10.86.31.158 |
| | | echo "nameserver 202.103.24.68" | tee -a /etc/resolv.conf |
| | | echo "nameserver 202.103.44.150" | tee -a /etc/resolv.conf |
| | | ``` |
| | | |
| | | 配置好之后我们就可以上网了,可以ping百度来测试 |
| | | |
| | |  |
| | | |
| | | #### ECM模式拨号上网 |
| | | |
| | | 上面的ppp模式拨号较为繁琐,需要大量的步骤依赖pppd软件,并且ppp拨号的稳定性不强,所以接下来介绍ECM模式,只需要AT命令就可以拨号上网 |
| | | |
| | | 当我们上电4G模块之后,我们发送如下AT命令切换模块的工作模式为ECM |
| | | |
| | | ``` |
| | | microcom /dev/ttyUSB3 -s 115200 |
| | | AT+QCFG="usbnet",1 |
| | | ``` |
| | | |
| | | 发送AT命令后,模块会自动重启,如下图所示 |
| | | |
| | |  |
| | | |
| | | 我们在`ifconfig`查看网络时候,可以看到多了一个usb0网络,并且自动获取IP地址 |
| | | |
| | |  |
| | | |
| | | 同样,我们可以ping百度测试上网功能 |
| | | |
| | |  |