RK3568---4G模块驱动实验

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习
擅长领域:驱动开发,嵌入式软件开发,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 ports

2. 应用程序测试

2.1 模块开关机

开机方式

首先操作GPIO,给4G模块上电
(注意:开关机按键,复位按键,在开发板上是MPU的GPIO出来后,硬件做了反向的。低电平,上电 低脉冲,复位)
输入如下命令

gpioset 3 0=0
gpioset 3 1=0

将这两个引脚拉低后,模块上电如下所示
在这里插入图片描述

关机方式

软件方式关机

先发送AT+QPOWD命令给模块,再拉高引脚

microcom /dev/ttyUSB3 -s 115200
AT+QPOWD

按住Ctrl+x,再输入如下命令

gpioset 3 1=1

(注意:在发送AT命令后需要在几秒内拉高gpio引脚,否则模块会再次开启)
在这里插入图片描述

硬件方式关机

先拉低RESET大于100ms后,拉低电源引脚Power_on
硬件关机时序如下图所示:
在这里插入图片描述
当4G模块上电后,可以在dev目录下看到四个ttyUSB设备
在这里插入图片描述

AT命令检测

我们可以使用microcom命令对串口发送AT命令

microcom /dev/ttyUSB3 -s 115200

在这里插入图片描述

检测手机卡是否在位
AT+CPIN?

在这里插入图片描述

检查网络名字
AT+COPS?

在这里插入图片描述
CHN-CT 表示中国电信

网络注册状态
AT+CREG?

在这里插入图片描述
第二个参数为0 表示没有注册网络,为1表示网络已注册

信号强度
AT+CSQ

在这里插入图片描述
数值越大表明信号质量越好;

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.sh'disconnect '/bin/chat -s -v -f /etc/ppp/peers/rasppp-chat-disconnect.sh'debug/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 DIALTONE"""AT
OK \rATZOK \rAT+CGDCONT=1,"IP",""OK-AT-OK ATDT#777
CONNECT \d\c

rasppp-chat-disconnect.sh

ORT "ERROR"
ABORT "NO DIALTONE"
SAY "\NSending break to the modem\n"""\k"""+++ATH"
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
AT+QCFG="usbnet",1

发送AT命令后,模块会自动重启,如下图所示
在这里插入图片描述
我们在ifconfig查看网络时候,可以看到多了一个usb0网络,并且自动获取IP地址
在这里插入图片描述
同样,我们可以ping百度测试上网功能
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/604056.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记-Building Apps with the ABAP RESTful Application Programming Model-Week3

Week3 Unit 1: The Enhanced Business Scenario 本节介绍了将要练习的demo的业务场景,在前两周成果的基础上,也就是只读列表,也可以说是报表APP基础上启用了事务能力,也就是CURD以及自定义业务功能的能力,从创建基本的behavior definition,然后behavior definition proj…

25.11 MySQL 视图

1. 常见的数据库对象 对象描述表(TABLE)存储数据的逻辑单元, 以行和列的形式存在, 列就是字段, 行就是记录.数据字典系统表, 存放数据库相关信息的表. 数据通常由数据库系统维护, 程序员通常不可修改, 只可查看.约束(CONSTRAINT)执行数据校验的规则, 用于保证数据完整性的规则…

基于SSM+Jsp+Mysql的高校毕业设计管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

嵌入式学习51-单片机4

知识零碎&#xff1a; nop空指令 CRC校验 为了保证51单片与温度传感18b20 之间的高电平 采用一个上拉电阻改变电平的高低 温度寄存器原理

Unity自己实现的中英文的切换(简单好抄)

关键技术&#xff08;读取文件的方法&#xff0c;Split()分割字符串&#xff09; 1.搭建一个这样的场景&#xff0c;场景中有3个文本&#xff08;用新版的&#xff09;&#xff0c;一个空对象&#xff0c;一个按钮 2.编写翻译文本&#xff08;编写一个txt文本&#xff0c;在文…

代码随想录第35天 | 860.柠檬水找零 、 406.根据身高重建队列 、 452. 用最少数量的箭引爆气球

一、前言 参考文献&#xff1a;代码随想录 今天还是贪心&#xff0c;所以继续贪吧&#xff01; 二、柠檬水找零 1、思路&#xff1a; 一开始我是没有什么正确思路的&#xff0c;但是我一问GPT教授时&#xff0c;看到两个变量&#xff0c;我就明白了。。 int five 0; int…

【每日刷题】Day8

【每日刷题】Day8 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 459. 重复的子字符串 - 力扣&#xff08;LeetCode&#xff09; 2. 58. 最后一个单词的长度 - 力扣&a…

联想电脑VMware虚拟机VT开启虚拟化

以联想电脑为例。 关机重启&#xff0c; 有的电脑是按F2&#xff0c; 有的是按fnF2 进入BIOS&#xff0c;左右键&#xff0c;选择Configuration&#xff0c; 再上下键选择 Intel Virtual Technology 按回车键&#xff0c;再按上下键选择 Enable &#xff0c;回车确认。 按fn…

访问网站时你的电脑都做了什么

电脑在访问百度时 首先在本地hosts文件里面查看本地有无域名对应的IP地址&#xff0c;若有就直接返回。若无&#xff0c;则本地DNS服务器当DNS的客户&#xff0c;向其它根域服务器发送报文查询IP地址&#xff0c;简单来说就是帮助主机查找IP&#xff0c;所以递归查询就在客户端…

Yalmip使用教程(7)-求解器的参数设置

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译&#xff1a;https://yalmip.github.io/tutorials/ 这篇博客将详细介绍yalmip工具箱中常用的求解器设置选项。 1.求解器的基本设置 使用sdpsettings函数可以对求解的相关参数进行设置。最常用的设置…

ChatGPT/GPT4科研应用与绘图技术及论文写作

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…