当前位置: 首页 > 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 类似,但实现方式不同。​

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 提供以太网连接。​
用途: 常用于需要将设备作为网络接口连接到主机的场景。​

驱动程序的选择取决于设备类型、所需的功能以及操作系统的支持情况。​例如,如果使用的是高通 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 *id) {
   
	struct usb_wwan_intf_private *data;
	……
#if 1 //Added by Quectel
	if (

相关文章:

  • 《轨道力学导论》——第十章:前沿轨道理论与应用
  • Java常用连接池 (HikariCP, Tomcat Pool, Druid) 的配置和比较
  • Nginx代理Minio出现AccessDeniedAccessDenied
  • 软件生命周期模型:瀑布模型、螺旋模型、迭代模型、敏捷开发、增量模型、快速原型模型
  • JUC并发工具
  • ARM裸机开发——交叉编译器
  • IS-IS中特殊字段——OL过载
  • 大概解释一下:极值统计理论(Extreme Value Theory, EVT)
  • 【时频谱分析】小波分析
  • 07-算法打卡-链表-移除链表-leetcode(203)-第七天
  • try-with-resources 详解
  • java基础2
  • 深度探索 C 语言:指针与内存管理的精妙艺术
  • 记录一个虚拟机分配资源的问题
  • vue事假机制都有哪些
  • OceanBase企业版集群部署:oatcli命令行方式
  • C# 选择文件的路径、导出文件储存路径
  • # Shell脚本参数设计规范(DeepSeek指导)
  • leetcode 3504 回文+最长公共子数组
  • 利用阿里云企业邮箱服务实现Python群发邮件
  • 受贿2.61亿余元,陕西省政协原主席韩勇一审被判死缓
  • 新时代,新方志:2025上海地方志论坛暨理论研讨会举办
  • 菲律宾选举委员会公布中期选举结果,马科斯阵营选情未达预期
  • 河南一女子被医院强制带走治疗,官方通报:当值医生停职
  • 以军称已开始在加沙的新一轮大规模攻势
  • 张巍任中共河南省委副书记