Linux 4G 通信实验

一、 4G 网络连接简介

4G 模块原理图
在这里插入图片描述
实物图
在这里插入图片描述

二、ME3630 4G 模块驱动修改

1、添加 USB 设备信息
打开 Linux 源码的 drivers/usb/serial/option.c 文件,找到 option_ids 数组,然后在里面添加 ME3630 的 PID 和 VID, 要添加的内容如下:
在这里插入图片描述

2、添加 ECM 支持程序
ME3630 支持 ECM 接口,可以通过 ECM 接口轻松联网,修改 drivers/usb/serial/option.c 文件里面的 option_probe 函数。找到此函数,然后在里面输入如下内容:
在这里插入图片描述
3、配置 Linux 内核

我们需要配置 Linux 内核,首先使能 USBNET 功能,路径如下:

-> Device Drivers 
	-> -*- Network device support 
		-> USB Network Adapters 
			-> -*- Multi-purpose USB Networking Framework

在这里插入图片描述
接下来我们还需要使能 USB 串口 GSM、CDMA 驱动,配置路径如下:

-> Device Drivers 
	-> [*] USB support 
		-> <*> USB Serial Converter support 
			-> <*> USB driver for GSM and CDMA modems

在这里插入图片描述
继续配置 Linux 内核,使能 USB 的 CDC ACM 模式,配置路径如下:

-> Device Drivers 
	-> [*] USB support 
		-> <*> Support for Host-side USB
			-> <*> USB Modem (CDC ACM) support

在这里插入图片描述
关于 Linux 内核的配置就到此为止,编译一下 Linux 内核,然后使用新的 zImage 启动开发板。如果 ME3630 已经插上的话,系统启动以后就会输出如图 所示的信息:
在这里插入图片描述

三、 ME3630 4G 模块 ppp 联网测试

1、使能 Linux 内核 ppp 功能

ME3630 支持通过 ppp 拨号上网,也是支持使用 ECM 接口上网,我们先来学习一下如何通过 ppp 拨号上网。首先我们需要配置 Linux 内核,打开 Linux 内核的 ppp 功能,配置路径如下:

-> 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、移植 pppd 软件

在移植之前先删除掉/usr/sbin/chat 这个软件!
我们使用Busybox制作根文件系统的时候会生成/usr/sbin/chat这个软件,我们一会移植pppd的时候也会编译出 chat 软件。因此需要将根文件系统中原来的/usr/sbin/chat 软件删除掉,否则的话我们移植的 chat 软件工作将会出问题!

进入到 ppp-2.4.7 目录中,然后编译 pppd 源码,命令如下:

cd ppp-2.4.7/
./configure //配置
make CC=arm-linux-gnueabihf-gcc //编译

如果编译失败,提示 bison 和 flex 这两个“not found”的话就安装这两个库,命令如下:

sudo apt-get install bison
sudo apt-get install flex

编译完成以后就会在当前目录下生成 chat/chat、pppd/pppd、pppdump/pppdump 和pppstats/pppstats 这四个文件,将这个四个文件拷贝到开发板根文件系统中的/usr/bin 目录下,命令如下:

sudo cp chat/chat /home/zuozhongkai/linux/nfs/rootfs/usr/bin/ -f
sudo cp pppd/pppd /home/zuozhongkai/linux/nfs/rootfs/usr/bin/ -f
sudo cp pppdump/pppdump /home/zuozhongkai/linux/nfs/rootfs/usr/bin/ -f
sudo cp pppstats/pppstats /home/zuozhongkai/linux/nfs/rootfs/usr/bin/ -f

完成以后输入“pppd -v”查看一下 pppd 的版本号,如果 pppd 版本号显示正常的话就说明pppd 移植成功
在这里插入图片描述
3、ppp 上网测试

在使用 pppd 进行拨号上网之前需要先创建 4 个文件,这个 4 个文件必须放到同一个目录下。在开发板根文件系统下创建/etc/gosuncn 目录,进入到刚刚创建的/etc/gosuncn 目录下,然后新建一个名为“ppp-on”的 shell 脚本文件,在 ppp-on 文件里面输入如下所示内容:

#!/bin/sh
clear
OPTION_FILE="gosuncn_options"
DIALER_SCRIPT=$(pwd)/gosuncn_ppp_dialer
exec pppd file $OPTION_FILE connect "chat -v -f ${DIALER_SCRIPT}"

再新建一个名为“gosuncn_options”的文件,在文件里面输入如下所示内容:

/dev/ttyUSB2    //是联通或移动的卡就是用 ttyUSB2,如果是电信的卡就是用 ttyUSB0
115200	
crtscts
modem
persist
lock
noauth
noipdefault
debug
nodetach
user Anyname
password Anypassword
ipcp-accept-local
ipcp-accept-remote
defaultroute
usepeerdns
noccp
nobsdcomp
novj
dump

第 11~12 行,这两行内容和所使用的卡有关,如果是联通或者移动的卡就按照上面的写,如果是电信的卡,要改为如下所示内容:

user card
password card

再新建一个名为“gosuncn_ppp_dialer”的文件,输入如下所示内容:

ABORT 		"NO CARRIER"
ABORT 		"ERROR"
TIMEOUT 	120
"" 			ATE
SAY 		"ATE"
ECHO 		ON
OK 			ATH
OK 			ATP
OK 			AT+CGDCONT=1,\"IP\",\"3GNET\"
OK 			ATD*99#
CONNECT

第 9 行,后面的 3GNET 是网络的 APN 码,这个要根据自己所使用的手机卡来确定,联通卡的 APN 为 3GNET,移动卡的 APN 为 CMNET。因为我使用的是联通卡进行测试的,所有这里设置 APN 为 3GNET,如果使用的移动卡,那么要将 APN 设置为 CMNET。如果是电信的卡,那么第 9 行要改为:

 OK "AT+ZCAPN=card,card"

第 10 行,如果是联通或移动的卡,那么第 10 行就不变。如果是电信的卡,那么第 10 行要改为:

OK ATD#777

最后新建一个名为“disconnect”的 shell 脚本,输入如下所示内容:

#!/bin/sh
killall pppd

这四个文件编写完成以后要给予 ppp-on 和 disconnect 这两个文件可执行权限,命令如下:

chmod 777 ppp-on disconnect

完成以后输入如下命令连接 4G 网络:

./ppp-on &

在 ME3630 连接 4G 网络的过程中,可能会出现如图所示的错误提示:
在这里插入图片描述
如果没有的话就手动创建这两个文件夹,命令如下:

mkdir /var/run //创建/var/run 文件夹
mkdir /var/lock //创建/var/lock 文件夹

完成以后重新输入“./pppd-on &”命令连接 4G 网络

4G 网络测试需要关闭其他网卡,否则的话网络测试可能有问题,但是我们现在是通过网络启动的系统,并且通过 NFS 挂载的根文件系统,因此我们没法关闭其他的网卡,比如 eth0。为了解决这个问题,我们只能将 uboot、Linux kernel、.dtb 设备树和根文件系统都烧写到板子的
EMMC 或 NAND 上,然后直接启动 EMMC 或 NAND 上的系统即可,这样就不需要其他网卡工作了。

4、ME3630 4G 模块 ECM 联网测试

对于支持 ECM 接口的模块可以直接通过 ECM 上网,ME3630 模块支持 ECM 接口,重启开发板,输入“ifconfig -a”命令可以看到有一个名为“usb0”的网卡。
在这里插入图片描述
我们需要使用 minicom 输入一些 AT 指令,所以要先用 minicom 打开 ttyUSB1,ttyUSB1 就是 ME3630 的 AT 指令串口,波特率设置为
115200。打开以后依次输入如下指令:

①、输入 AT 指令:

AT+ZSWITCH=L

然后重启开发板。如果模块已经设置为 ECM 模式的话此步骤就不需要了。

②、使用 AT 指令+CGDCONT 来设置数据参数。联通卡的 APN 为 3gnet,电信卡的 APN为 ctnet,移动卡的 APN 为 cmnet。比如我现在用的联通卡,所以设置 APN 为 3gnet,命令如下:

AT+CGDCONT=1,”IP”,”CMNET”

③、发送连接 AT 命令:

AT+ZECMCALL=1

等待连接成功,连接成功以后会输出如下图所示信息:
在这里插入图片描述

连接成功以后打开 usb0 网卡,命令如下:

ifconfig usb0 up //打开 usb0 网卡

usb0 网卡打开以后输入如下命令获取 IP 地址:

udhcpc -i usb0

IP 地址获取过程如下图所示:
在这里插入图片描述
从上图可以看出,usb0 网卡获取到的 IP 地址为 10.164.232.36,然后 ping 一下百度官网,如果能 ping 通就说明 ME3630 的 ECM 接口联网成功。如果提示“bad address ‘www.baidu.com’”,那么请检查一下 DNS 服务器地址设置是否正确,打开/etc/resolv.conf 文件,然后加入“nameserver 114.114.114.114”即可。

<think>好的,我现在需要帮用户寻找适合4G网络开发的硬件开发板推荐。首先,我得看看用户提供的引用内容,里面提到了几个具体的开发板,比如4G GPRS DTU开发板和Air780EP开发板。用户可能希望得到这些产品的详细信息以及其他的推荐选项。 首先,用户引用的[^1]和[^2]都提到了4G GPRS DTU开发板,强调它有全套硬件图纸和软件代码,支持多种协议,适用于物联网应用。而引用[^3]提到的Air780EP开发板则注重低功耗和集成RC522模块,可能适合需要低功耗和RFID功能的应用场景。我需要确保推荐中包含这两个开发板,并详细说明它们的特点和适用场景。 接下来,我应该考虑用户可能的需求。他们可能需要开发板具备稳定的4G通信、低功耗、易于二次开发、支持多种协议(如MQTT、TCP/IP),以及是否有现成的软件支持和社区资源。此外,成本、模块的兼容性(如SIM卡、天线设计)以及是否支持其他无线技术(如Wi-Fi、蓝牙)可能也是用户关心的点。 然后,我需要回忆市场上常见的4G开发板,比如华为的LTE Cat模组、移远的EC系列、广和通的L610等。这些模组通常有对应的开发板,适合不同的应用需求。例如,移远EC25开发板支持全球频段,适合需要国际部署的项目;广和通L610则符合电信法规,适合国内市场。此外,像树莓派搭配4G HAT扩展板可能适合喜欢开源生态的开发者,而Arduino MKR GSM 1400则适合入门级和小型项目。 在推荐时,需要分点说明每个开发板的优势、适用场景和特色功能,帮助用户根据具体需求选择。例如,如果用户需要低功耗和集成RFID,Air780EP是更好的选择;如果项目需要高稳定性和多协议支持,4G GPRS DTU开发板更合适。 同时,要注意引用用户提供的参考资料,将推荐与这些资料中的开发板关联起来,确保回答的相关性。例如,在推荐4G GPRS DTU开发板时,引用和[^2]的信息,说明其提供的软硬件资源。在提到Air780EP时,引用中的低功耗和实例应用。 最后,生成的相关问题需要围绕用户可能的后续疑问,比如如何选择开发板、开发环境搭建、成本对比和故障排除等,这样可以引导用户深入了解更多细节,解决他们潜在的问题。</think>### 推荐适用于4G网络开发的硬件开发板 根据您的需求,以下是几款适合4G网络开发的硬件开发板推荐,结合了稳定性、功能扩展性和开发支持: --- #### 1. **4G GPRS DTU开发板** - **核心优势**: - 支持多种协议(如TCP/IP、MQTT、HTTP),集成完整的AT指令集,便于二次开发[^1]。 - 提供全套硬件图纸(原理图、PCB设计)和软件代码,降低开发门槛[^2]。 - 适用于工业物联网(IIoT)、远程监控等场景,支持SIM卡插槽和外部天线接口。 - **适用场景**: - 需要高稳定性通信的物联网终端设备(如环境监测、智能电表)。 --- #### 2. **低功耗4G模组Air780EP开发板** - **核心优势**: - 专为低功耗设计,支持PSM(省电模式),适合电池供电的长期运行设备。 - 集成RC522 RFID模块,可直接实现射频识别功能(如智能门禁、物流追踪)。 - 提供详细开发文档和实例代码(如MQTT连接、传感器数据上传)。 - **适用场景**: - 移动便携设备、资产追踪、低功耗传感器网络。 --- #### 3. **移远EC25开发板(基于LTE Cat 4模组)** - **核心优势**: - 支持全球4G频段,兼容2G/3G网络,适应复杂网络环境。 - 提供Python/C SDK开发框架,支持Linux/Windows平台。 - 内置GNSS定位功能,适合车载或移动定位终端。 - **适用场景**: - 车载导航、共享设备、远程安防系统。 --- #### 4. **广和通L610开发板(国内合规版)** - **核心优势**: - 符合中国电信入网标准,支持NB-IoT和LTE Cat 1双模通信。 - 内置MQTT/CoAP协议栈,可直接对接阿里云/华为云等平台。 - 提供AT指令和OpenCPU两种开发模式,灵活适配不同需求。 - **适用场景**: - 智慧农业、城市基础设施监控(如井盖、路灯)。 --- #### 5. **树莓派 + 4G HAT扩展板** - **核心优势**: - 基于树莓派生态,兼容Python/Node.js等语言,开发资源丰富。 - 支持SIM7600系列模组,实现4G通信与GPS定位一体化。 - 适合快速原型验证和小批量部署。 - **适用场景**: - 教育实验、智能家居网关、边缘计算节点。 --- ### 选择建议 - **入门开发者**:优先选择树莓派+4G HAT或Arduino MKR系列,生态友好。 - **工业级应用**:推荐4G GPRS DTU开发板或移远EC25,稳定性高且协议支持全面。 - **低功耗需求**:Air780EP或广和通L610更适合长周期电池供电场景。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式学习者。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值