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百度测试上网功能
在这里插入图片描述

  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
### 回答1: roc-rk3568-pc是一款基于RK3568芯片的台式电脑板,它能够提供高性能、低功耗、多媒体处理以及AI加速等特性。roc-rk3568-pc实现了PC级性能和功能,可以运行Linux和Android操作系统,同时支持多种显示接口和存储接口。 例如,roc-rk3568-pc支持双频WiFi和蓝牙,可以通过HDMI、DP、VGA等接口连接显示器,还可以使用USB3.0、SATA、NVMe等接口连接存储设备。此外,roc-rk3568-pc还配备了四个USB 2.0接口、两个USB 3.0接口、一个千兆网口、一个SPI Flash等。 对于开发者和爱好者来说,roc-rk3568-pc提供了完整的软件开发包(SDK),包括操作系统、编译器、驱动程序、应用程序等。同时,roc-rk3568-pc还有丰富的软件生态系统和社区支持,大大降低了开发门槛和开发成本。 总之,roc-rk3568-pc是一款高性能、全功能、易开发的台式电脑板,适用于各种应用场景,例如家庭娱乐、远程办公、物联网等。 ### 回答2: ROC-RK3568-PC例程是一个基于ROC-RK3568平台设计的针对PC设备的系统应用程序。该例程主要提供了一个使用ROC-RK3568平台的PC设备的示例,用户可通过该例程学习ROC-RK3568平台的基本应用,相应的硬件配置和软件编程技术。 针对ROC-RK3568-PC例程,用户需要掌握一定的嵌入式系统开发技术。首先,用户需要了解ROC-RK3568平台的基本知识,并安装相应的开发环境和编译器。在编写程序的过程中,用户需要熟悉C/C++语言和Linux操作系统,同时掌握设备驱动和应用程序的编写方法,用于实现安装、媒体播放、网络通信、GUI开发等功能。 ROC-RK3568-PC例程的主要任务是提供一个基本的嵌入式系统应用程序示例,让开发者通过学习和修改代码,快速掌握ROC-RK3568平台的开发和应用。该例程的编写需要开发者对ROC-RK3568平台熟悉到一定程度,需要有一定的软件编码能力和嵌入式系统设计经验。同时,用户还需要具备较好的沟通能力和团队协作能力,与其他成员共同完成开发任务。 总的来说,ROC-RK3568-PC例程是一个有实际应用价值的例程,对于想要深入了解嵌入式系统开发开发者,学习和掌握该例程的编写技术是非常有益的。 ### 回答3: ROC-RK3568-PC例程是指基于ROC-RK3568芯片的PC开发板的样例程序。ROC-RK3568是一款高性能的处理器芯片,可以广泛应用于智能家居、工业控制、远程监控等领域。ROC-RK3568-PC是采用该芯片设计的一款开发板,可以为开发者提供丰富的硬件接口,并支持多种操作系统,如Ubuntu、Android等。 ROC-RK3568-PC例程提供了各种各样的代码示例和应用程序,可以帮助开发者更好地理解和使用ROC-RK3568芯片,实现自己的应用程序。例如,样例程序包括了基于Qt的UI界面设计、GPIO控制、I2C读写、串口通信、网络通信、摄像头采集等功能。此外,还提供了蓝牙配对、TCP/IP通信、远程控制等应用程序,可以帮助开发者快速搭建自己的应用系统。 对于需要使用ROC-RK3568芯片进行开发开发者来说,ROC-RK3568-PC例程是一个非常有用的参考,可以加快开发进度,提高开发效率。自定义应用程序时,只需要根据自己的需求进行修改或者扩展即可。ROC-RK3568-PC例程提供了良好的参考和基础,为开发者快速实现自己所需的功能提供了便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值