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

news/2024/7/6 1:26:15 标签: 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-password

noauth

connect '/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/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

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

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.niftyadmin.cn/n/5478642.html

相关文章

第九章 动态规划part10

121. 买卖股票的最佳时机 class Solution:def maxProfit(self, prices: List[int]) -> int:dp [[0]*2 for _ in range(len(prices))]dp[0][0] -prices[0]for i in range(1,len(prices)):dp[i][0] max(dp[i-1][0],-prices[i])dp[i][1] max(dp[i-1][1],dp[i-1][0]prices[…

Spring Cloud微服务入门(五)

Sentinel的安装与使用 安装部署Sentinel 下载Sentinel&#xff1a; https://github.com/alibaba/Sentinel/releases Sentinel控制台 https://localhost:8080 用户和密码为sentinel 使用Sentinel 加依赖&#xff1a; 写配置&#xff1a; 输入&#xff1a; java -Dserver.po…

leetcode/2024.4.8/双指针简单题(1)

给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出: […

遵循这些MySQL设计规范,再也没被组长喷过

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 故事 会议室里&#xff0c;小猫挠着头&#xff0c;心里暗暗叫苦着“哎&#xff0c;这代码都撸完了呀&#xff0c;改起来成本也太大了。” 原来就在刚才&#xff0c;组长找到了小猫&#xff0c;说代码rev…

pta L1-011 A-B

L1-011 A-B 分数 20 全屏浏览 切换布局 作者 陈越 单位 浙江大学 本题要求你计算A−B。不过麻烦的是&#xff0c;A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉&#xff0c;剩下的字符组成的就是字符串A−B。 输入格式&#xff1a; 输入在2行中先后给出…

vue3 pure-admin框架的一个问题

这个bug是打开一个没有内容的页面再返回之前有内容的页面之后&#xff0c;有内容的页面的内容都消失不见 原因&#xff1a;居然是没有用<div></div>标签包裹导致的&#xff0c;不知道其他是不是这样&#xff0c;也许只是pure-admin框架会这样。 解决&#xff1a;…

12.java openCV4.x 入门-HighGui之图像窗口显示

专栏简介 &#x1f492;个人主页 &#x1f4f0;专栏目录 点击上方查看更多内容 &#x1f4d6;心灵鸡汤&#x1f4d6;我们唯一拥有的就是今天&#xff0c;唯一能把握的也是今天建议把本文当作笔记来看&#xff0c;据说专栏目录里面有相应视频&#x1f92b; &#x1f9ed;文…

2. TypeScript 安装与环境配置指南

TypeScript 是 JavaScript 的一个超集&#xff0c;它为 JavaScript 增加了类型系统和对 ES6 的支持。TypeScript 不仅能够帮助开发者捕获代码中的错误&#xff0c;还能提供更好的编辑器支持&#xff0c;包括代码补全、接口提示等。本文将详细介绍如何在您的开发环境中安装和配置…