当前位置: 首页 > news >正文

4G/5G模组----概念+驱动+调试

前言:USB 驱动程序,包括 USB 串口驱动(如 option 和 ACM)以及 USB 网络驱动(如 GobiNet、QMI_WWAN、MBIM、NCM、RNDIS 和 ECM),各自有不同的功能和用途。以下是对这些驱动程序的简要介绍:​

基础概念----USB 驱动程序

USB 串口驱动:

option 驱动:

功能: 支持通过 USB 接口与设备进行串行通信,通常用于连接调制解调器(modem)或其他串口设备。​
用途: 允许系统通过 USB 与设备交换数据,常用于嵌入式系统或需要串口通信的场景。​

ACM 驱动(Abstract Control Model):

功能: 提供 USB 串口设备的支持,使设备表现为虚拟串口。​
用途: 广泛用于调制解调器、GPS 接收器等设备,允许通过标准串口接口进行通信。​

USB 网络驱动:

GobiNet 驱动:

功能: 专为高通(Qualcomm)Gobi 技术的设备设计,支持通过 USB 接口进行网络连接。​
用途: 用于高通 Gobi 芯片组的调制解调器,提供高速数据传输功能。​

QMI_WWAN 驱动:

功能: 支持高通的 QMI(Qualcomm MSM Interface)协议,通过 USB 实现网络连接。​
用途: 用于高通基带处理器,与 GobiNet 类似,但实现方式不同。​

QMI(Qualcomm Message Interface)定义:​QMI 是高通定义的一种通信协议,主要用于高通基带与应用处理器之间的通信。​拨号方式:​通过发送 QMI 命令建立数据连接,通常使用工具如 qmicli 或 libqmi。​IP 地址类型:​通常获取公网 IP 地址。​驱动支持:​需要在 Linux 内核中启用 QMI_WWAN 驱动。适用模块:​广泛应用于高通芯片的模块,如 EC20、EC200N-CN 等。​性能特点:​支持 IP 聚合和复用,适用于高速数据传输场景。​

MBIM 驱动(Mobile Broadband Interface Model):

功能: 专为移动宽带设备设计的接口模型,通过 USB 提供网络连接。​
用途: 主要在 Windows 8 及以上版本中使用,支持各种移动宽带设备的连接。​

NCM 驱动(Network Control Model):

功能: USB 网络控制模型,提供高效的数据传输方式。​
用途: 用于需要高带宽和低延迟的网络通信场景。​

RNDIS 驱动(Remote Network Driver Interface Specification)

功能: 微软定义的协议,通过 USB 提供网络适配器功能。​
用途: 在 Windows 系统中广泛使用,使设备表现为网络接口。​

ECM 驱动(Ethernet Control Model):

功能: USB 以太网控制模型,使设备通过 USB 提供以太网连接。​
用途: 常用于需要将设备作为网络接口连接到主机的场景。​

ECM(Ethernet Control Model)
定义:​ECM 是 USB CDC(Communication Device Class)协议的一种实现,模拟以太网设备。​
拨号方式:​通过发送标准的 ECM 命令建立数据连接。​
IP 地址类型:​通常获取私网 IP 地址。​
驱动支持:​Linux 内核早期版本已原生支持,无需额外驱动。​
适用模块:​适用于支持 ECM 协议的模块,如华为 ME909。​
性能特点:​不支持 IP 聚合和复用,性能相对较低。

驱动程序的选择取决于设备类型、所需的功能以及操作系统的支持情况。​例如,如果使用的是高通 Gobi 技术的调制解调器,可能需要加载 GobiNet 或 QMI_WWAN 驱动;如果使用的是标准的以太网功能,可能需要加载 ECM 驱动。​

案例

驱动解析

USB 转串口驱动

模块加载 USB 转串口 option 驱动程序后,在/dev 目录下创建 ttyUSB0、ttyUSB1 和 ttyUSB2 等设备文件。以下章节介绍如何将 USB 转串口 option 驱动程序移植到 Linux 操作系统中。

添加 VID 和 PID

为了识别模块,需将模块的 VID 和 PID 信息添加到kernel/drivers/usb/serial/option.c 文件中,对应的 VID 和 PID 以 EC05 系列模块为例:

static const struct usb_device_id option_ids[] = {
#if 1 //Added by Quectel......{ USB_DEVICE(0x2C7C, 0x0125) },......
#endif

使用 USBNet 驱动(option驱动)

上一节配置使模块的所有 USB 接口均绑定 USB 转串口 option 驱动程序,导致 USBNet 驱动程序接口无法工作。用户可以添加以下语句来防止 USBNet 驱动程序接口绑定 USB 转串口 option 驱动程序。
在kernel/drivers/usb/serial/option.c 文件中添加以下语句:

static int option_probe(struct usb_serial *serial, const struct usb_device_id 

http://www.mrgr.cn/news/98731.html

相关文章:

  • 【八股】计算机网络
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(5):できます 完成了等 しか。。。ない 只有
  • 什么是进程?
  • 【回眸】Tessy集成测试软件使用指南(一)新手使用篇
  • 【开源项目】Excel手撕AI算法深入理解(三):时序(RNN、mamba)
  • 使用cursor进行原型图设计
  • 概念实践极速入门 - 常用的设计模式 - 简单生活例子
  • Flutter:图片在弹窗外部的UI布局
  • 一文掌握RK3568开发板Android13挂载Windows共享目录
  • vue3获取defineOptions的值;vue3获取组件实例;vue3页面获取defineOptions的name
  • 分布式热点网络
  • AI大模型学习九:‌Sealos cloud+k8s云操作系统私有化一键安装脚本部署完美教程
  • 集群搭建Weblogic服务器!
  • 《Against The Achilles’ Heel: A Survey on Red Teaming for Generative Models》全文阅读
  • 红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南
  • 前端基础之《Vue(5)—组件基础(1)》
  • Kubernetes(K8S)内部功能总结
  • 猫咪如厕检测与分类识别系统系列【六】分类模型训练+混合检测分类+未知目标自动更新
  • 【Vue】从 MVC 到 MVVM:前端架构演变与 Vue 的实践之路
  • shell 编程之正则表达式与文本处理器