潍坊建网站,国外设计欣赏网站,企业网站源码免费带数据库,素马杭州网站设计介绍作者简介#xff1a; 一个平凡而乐于分享的小比特#xff0c;中南民族大学通信工程专业研究生在读#xff0c;研究方向无线联邦学习 擅长领域#xff1a;驱动开发#xff0c;嵌入式软件开发#xff0c;BSP开发 作者主页#xff1a;一个平凡而乐于分享的小比特的个人主页…作者简介 一个平凡而乐于分享的小比特中南民族大学通信工程专业研究生在读研究方向无线联邦学习 擅长领域驱动开发嵌入式软件开发BSP开发 作者主页一个平凡而乐于分享的小比特的个人主页 文章收录专栏RK3568驱动开发本专栏为rk3568驱动开发学习记录 欢迎大家点赞 收藏 ⭐ 加关注哦
1.内核修改及支持
1.1 原理图分析 1.2 内核配置
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 ports2. 应用程序测试
2.1 模块开关机
开机方式
首先操作GPIO给4G模块上电 注意开关机按键复位按键在开发板上是MPU的GPIO出来后硬件做了反向的。低电平上电 低脉冲复位 输入如下命令
gpioset 3 00
gpioset 3 10将这两个引脚拉低后模块上电如下所示
关机方式
软件方式关机
先发送ATQPOWD命令给模块再拉高引脚
microcom /dev/ttyUSB3 -s 115200
ATQPOWD按住Ctrlx,再输入如下命令
gpioset 3 11注意在发送AT命令后需要在几秒内拉高gpio引脚否则模块会再次开启
硬件方式关机
先拉低RESET大于100ms后拉低电源引脚Power_on 硬件关机时序如下图所示 当4G模块上电后可以在dev目录下看到四个ttyUSB设备
AT命令检测
我们可以使用microcom命令对串口发送AT命令
microcom /dev/ttyUSB3 -s 115200检测手机卡是否在位
ATCPIN?检查网络名字
ATCOPS?CHN-CT 表示中国电信
网络注册状态
ATCREG?第二个参数为0 表示没有注册网络为1表示网络已注册
信号强度
ATCSQ数值越大表明信号质量越好
2.2 PPP拨号方式
内核配置好后编译生成新的镜像烧录到开发板中 启动系统时会看到如下信息 接下来需要使用到pppd软件需要通过 pppd 这个软件来实现 ppp 拨号上网 。 下载网址Index of /pub/ppp (samba.org) 下载好后交叉编译在make install的时候可能会报下面这种类型的错误 strip: Unable to recognise the format of the input file ‘xxxxxxx’ 解决方法ppp-2.4.5移植(交叉编译)_ppp交叉编译-CSDN博客
编译生成好的四个可执行文件chat pppd pppdump pppstats 将这四个文件拷贝到开发板的/bin文件夹下
输入pppd -v如下pp图所示表示移植成功。 ppp拨号方式需要编写三个脚本文件存放在/etc/ppp/peers下
默认是没有这些文件夹的所以需要去创建ppp和peers文件夹创建好后在peers下创建如下三个脚本文件
rasppp.sh
#!/bin/sh
hide-passwordnoauthconnect /bin/chat -s -v -f /etc/ppp/peers/rasppp-chat-connect.shdisconnect /bin/chat -s -v -f /etc/ppp/peers/rasppp-chat-disconnect.shdebug/dev/ttyUSB3115200defaultroutenoipdefaultnovj
novjccomp
noccp
ipcp-accept-local
ipcp-accept-remote
locallock
dumpnodetach
#这里我用的是电信卡
user card
password card#如果是移动或者联通的卡将上面两行改为
#user Anyname
#password Anypasswordcrtscts
remotename 3gppp
ipparam 3gpppusepeerdns
rasppp-chat-connect.sh
TIMEOUT 15
ABORT BUSY
ABORT ERROR
ABORT NO ANSWER
ABORT NO CARRTER
ABORT NO DIALTONEAT
OK \rATZOK \rATCGDCONT1,IP,OK-AT-OK ATDT#777
CONNECT \d\crasppp-chat-disconnect.sh
ORT ERROR
ABORT NO DIALTONE
SAY \NSending break to the modem\n\kATH
SAY \nGood bye !\n添加完以上三个脚本文件后现在可以使用 ppp 尝试拨号
pppd call rasppp.sh #后台进行拨号如果拨号正常如下图所示 从程序的输出中我们可以获得以下信息
本机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百度来测试
2.3 ECM模式拨号上网
上面的ppp模式拨号较为繁琐需要大量的步骤依赖pppd软件并且ppp拨号的稳定性不强所以接下来介绍ECM模式只需要AT命令就可以拨号上网
当我们上电4G模块之后,我们发送如下AT命令切换模块的工作模式为ECM
microcom /dev/ttyUSB3 -s 115200
ATQCFGusbnet,1发送AT命令后模块会自动重启如下图所示 我们在ifconfig查看网络时候可以看到多了一个usb0网络并且自动获取IP地址 同样我们可以ping百度测试上网功能