自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 嵌入式模组拨号成功后,与其连接的上位机的网卡获取了IP地址,然后上位机可以通过这个网卡上网,ping百度,做数据业务。如果此时上位机的网卡ping不通百度,需要看什么日志呢?

1、先检查模组是否拨号成功?若拨号成功继续下一步,若拨号失败检查拨号日志。2、检查PDP上下文是否激活?网络注册是否成功?拨号成功不代表数据业务激活比如AT+CGACT?检查PDP上下文是否激活比如AT+CGREG?检查网络注册状态比如AT+CSQ检查信号强度,信号太差也会导致连接不稳定比如AT+COPS?检查当前注册的运营商网络比如AT+CGPADDR获取模组从运营商网络层分配到的公网IP地址。如果没有获取到IP,说明核心网没给分配数据通道,需要换卡测试。

2025-12-16 15:51:54 147

原创 模组日志抓取双缓冲机制详细技术方案

当其中一个缓冲区在后台被写入文件时,另一个缓冲区可以在前台无缝地继续接收数据,从而从根本上避免因I/O等待而导致的数据丢失,保证日志捕获的完整性。#define HIGH_WATER_MARK (CP_LOG_BUF_SIZE - 4576) // 高水位线,安全裕量。#define CP_LOG_BUF_SIZE (2 * 1024 * 1024) // 缓冲区大小:2MB。// 延迟清理条件:新缓冲区已用超半,且写入线程已发出可清理信号。

2025-11-26 17:48:23 621

原创 上位机内存不足时,模组日志如何存储

的架构中(常见于路由器、工业网关、车载设备等),嵌入式模组(如4G/5G/Cat.1通信模组)通过USB或PCIe接口与上位机(一个运行Linux的嵌入式主机)直接连接。:上位机内存和Flash存储通常很小(几十到百兆字节),而模组在长时间挂测(耐久性测试)中产生的AP日志(应用日志)和CP日志(基带信令日志)数据量巨大,极易写满存储空间,导致系统崩溃、业务中断。本方案通过在第三方PC上建立TFTP服务器,将上位机上的日志抓取工具作为TFTP客户端,实现日志的实时远程存储。

2025-11-26 17:24:18 618

原创 Linux环境下,如何枚举模组的USB端口

上位机识别到USB插入,此时执行“lsusb”,可以看到模组唯一的PID/VID,对于不同平台不同型号的模组,当前的拨号模式(ECM/NCM/RNDIS/PPP等拨号方式)不同,其支持是端口个数与类型也是有差异的,一般情况下有AT端口、diag端口、log端口、NMEA端口等。如下代码示例:当pid/vid满足if判断时,假设当前模式下第2个到第5个之间的几个端口为当前模组的AT端口、diag端口、log端口、nmea端口等,则过滤第2个~第5个之间的端口,其他端口不显示。

2025-11-26 17:05:26 590

原创 如何通过USB端口抓取模组日志

场景推荐方法输出内容查看AT命令交互、应用层日志方法一:通用串口工具 (Putty, Tera Term)明文文本深度调试网络问题、分析信令方法二:厂商专用工具 (QXDM/QCAT, 移远Tools)解析后的二进制信令在Linux环境下开发方法三screenminicomcat明文文本关键检查点:驱动:确保电脑已安装正确的USB驱动。端口:准确识别哪个是诊断/日志端口。波特率:设置正确的波特率,否则会看到乱码。流控:如果数据量大,尝试开启流控(XON/XOFF或RTS/CTS)。权限。

2025-11-26 16:35:43 458

原创 模组拨号成功后 Ping 包失败需要什么日志

检查基带层面是否真的成功建立了数据承载?是否有来自网络的异常信令导致承载被异常释放?:分析崩溃时的调用栈,定位导致内核恐慌 (Kernel Panic) 的根本原因,可能是某个驱动有致命Bug。(查看APN配置) 等命令的响应,确认数据承载是否真正成功建立。是否有防火墙规则丢弃了数据包?如果根本看不到ICMP包发出,或者DNS查询失败,说明问题在。:检查USB模组是否有频繁的断开重连?:检查AP是否给CP下达了正确的数据通道激活命令。:当串口日志显示正常,但问题依旧时,深入调查。) 是否有错误计数?

2025-11-26 15:40:58 130

原创 嵌入式模组日志分类

ap log、cp log、模组串口日志、上位机内核日志(dmesg log)、模组拨号成功后ping包过程中的tcpdump日志、模组dump日志等。

2025-11-26 15:37:50 286

原创 嵌入式语音模组的Tone音

Tone 音,在通信领域,特指为了向用户传递某种状态或信息,而由设备主动生成并播放给用户听筒的、具有特定频率和节奏的音频信号。简单来说,它就是打电话时听到的各种“提示音”。类别产生者目的例子拨号音本地设备通知主叫用户可以拨号“嘟——”进程音网络交换机通知主叫呼叫状态回铃音(“嘟…嘟…”),忙音(“嘟嘟嘟”)DTMF音用户话机向网络发送号码信息按“1”键发出的声音提示音网络/设备特殊通知或告警空号音、催挂音。

2025-10-23 16:21:34 753

原创 嵌入式模组的语音功能

SLIC的全称是,即用户线路接口电路。简单来说,它是一个专门用于连接传统模拟电话线路的芯片或功能模块。独立的 SLIC 芯片:需要与外部的编解码器芯片配套使用。集成在通信模组内部的功能:尤其是在LTE Cat.1或4G LTE等蜂窝通信模组中,它将数字语音信号处理功能(包括 SLIC、编解码器)集成在模组内部。核心作用:充当数字语音系统(如 VoIP、4G语音)与模拟电话设备(如普通电话机、传真机)之间的“翻译官”和“适配器”。

2025-10-23 15:45:51 732

原创 NV备份还原

在通信模组或嵌入式设备的设计中,NV备份还原功能通过专门的服务进程(即 nv_manager 进程)实现。nv_manager 作为一个关键进程,承担着多项核心任务,确保设备在各种操作场景中的数据完整性和稳定性。具体来说,其功能涵盖了实时校验、数据更新、备份和还原,并且在设备系统升级(如OTA与线刷升级)过程中起到不可替代的作用。以下是 nv_manager 各个功能的具体描述:1. 实时校验分区完整性nv_manager 实现了对NV分区进行实时校验的机制。

2025-10-22 16:44:46 827

原创 嵌入式模组fastboot升级

Fastboot通信链路可以使用usb或者pcie作为传输数据的通道,系统进入fastboot前从nv中获取fastboot_mode的模式,如果为自动模式usb优先,20秒内检测到usb连接后使用usb作为fastboot作为传输通道,否则选用pcie作为传输通道。fastboot_mode等于其他非自动模式时,使用usb作为传输通道。①USB传输,上位机upgrade_tool通过PID、VID打开USB枚举出的usb设备,进行fastboot通信刷写分区,完成升级;

2025-10-20 16:15:38 168

原创 嵌入式模组FOAT升级

FOAT:通过AT命令将升级包传到模组内部,再触发升级流程。swupdate工具进行分区刷写。

2025-10-20 16:09:07 177

原创 嵌入式模组FOTA升级

FOTA指的是,即通过无线网络(如4G/5G, NB-IoT, Wi-Fi)对嵌入式设备的整个固件或特定分区进行升级。安全第一签名和校验是必须的,绝不能省略。可靠性是核心:必须设计回滚机制(如A/B分区),防止升级失败变砖。用户体验:考虑差分升级以节省流量,特别是对于NB-IoT等低功耗网络。测试至关重要:在实验室进行各种极端情况测试(如弱网、断电、无效包等)。对于新产品,强烈建议采用MCU主导 + A/B分区 + 签名校验 + 差分升级的组合方案,这能在安全性、可靠性和成本之间取得最佳平衡。

2025-10-20 15:57:15 816

原创 路由决策的含义

路由决策是指:当一个设备(如你的嵌入式模组或电脑)需要发送一个网络数据包时,它根据目标IP地址和自身的网络配置,决定将这个数据包从哪个网络接口发送出去,以及发送给哪个“下一跳”设备的过程。核心目的:回答“数据包下一步该送往哪里?”这个问题。路由决策就是一个网络设备的“交通指挥系统”目标IP地址、本机IP地址、子网掩码、路由表。判断目标是否在“本地街道”(同一子网)。在本地?直接送货(ARP + 直接传输)。不在本地?交给邮局(发送到默认网关)。

2025-10-20 11:55:06 650

原创 嵌入式模组+host拨号时,子网掩码起什么作用?

如何获取:在PPP拨号场景下,子网掩码通常不是手动设置的,而是由运营商的网络侧(如P-GW网关)在IPCP协商阶段,随同IP地址一起自动分配给模组的。起什么作用:子网掩码的核心作用是定义模组所在本地网络的边界,用于判断一个目标IP地址是在本地局域网内,还是需要发送到外部网络(网关)。方面嵌入式模组拨号场景下的要点获取方式自动获取。由运营商网络在PPP/IPCP协商过程中随IP地址、网关一同分配。查询命令使用AT+CGPADDR等AT指令查询。核心作用进行路由决策。

2025-10-20 11:38:38 674

原创 嵌入式模组拨号获取IP地址时,设置的ippass是什么原理,起到什么作用?

ippass参数值原理作用与结果适用场景0请求0.0.0.0,表示“任意地址”网络分配一个地址,通常是私网IP仅需出站连接的应用(如传感器数据上报)1请求上一次成功获取的IP地址尝试获取相同IP,成功率取决于运营商对IP稳定性有一般要求的场景2请求一个无效的IP地址,强制网络返回一个有效地址作为替代极大概率获取到公网IP需要入站连接的应用(如服务器、监控、P2P)核心要点ippass是一个在PPP/IPCP协商阶段使用的策略参数,它通过改变模组“请求IP”的行为,来影响。

2025-10-20 10:12:03 931 1

原创 基于路由器,不同域的网络A和网络B之间如何通信?

假如存在网络A和网络B。网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。有路由器存在时,如何让网络A和B进行通信?

2025-10-17 16:51:16 993

原创 网关的作用

在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)与主机的IP 地址作 “&” 运算的结果不同判定两个网络中的主机处在不同的网络里。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。而要实现这两个网络之间的通信,则必须通过网关。假如存在网络A和网络B。

2025-10-17 15:19:29 228

原创 嵌入式模组与host连接框图

2025-10-17 15:12:32 73

原创 Linux ECM子网掩码常见问题排查

ECM (Ethernet Networking Control Model 以太网控制模型) 用于在设备和主机之间传输以太网数据包。在操作系统看来,CDC ECM设备就是一个虚拟以太网卡,包含标准网卡需要的MAC地址和IP地址。CDC ECM设备通常是一个以太网卡,用于连接LAN或者是WLAN。当客户主机发起ECM拨号的请求时,模块相当于一个路由器,模块内部会调用相应的服务实现WWAN拨号。在拨号成功后,模块内部会启动DHCP server等功能。

2025-03-14 17:22:16 1102

原创 CMUX使用指导以及问题排查

首先安装VSPD工具解压后点击vspd.exe安装,一直下一步就可以,安装完成后把Cracked文件夹内的文件覆盖安装目录,免注册激活。安装注册完成之后,打开VSPD,在红框内添加配对的虚拟串口,点击添加端口,一对虚拟串口就添加完成了。打开设备管理器,能看到添加的虚拟串口,那么虚拟串口就已经添加成功了。

2025-03-14 16:24:33 1200

原创 USB Hub 驱动和 Gadget 驱动的联系与区别

Gadget 驱动是 USB 设备(Peripheral)端的软件框架,用于将设备(如手机、开发板)配置为 USB 从机,模拟特定的 USB 功能(如 U 盘、网卡、串口等)。在 USB 系统中扮演完全不同的角色,它们分别属于 USB 主机(Host)和设备(Peripheral)两端的驱动模型。处理低速(Low-Speed)、全速(Full-Speed)、高速(High-Speed)等不同速度设备的兼容性。所有支持 USB 主机功能的设备(如 PC、笔记本电脑、嵌入式主机控制器)都需要 Hub 驱动。

2025-03-13 17:44:10 913

原创 USB、DWC3与Gadget关系解析

USB是通信协议标准。DWC3是实现 USB 协议的硬件控制器。Gadget是基于 Linux 的软件框架,通过驱动 DWC3 等硬件控制器,实现设备模式的 USB 功能。三者关系可概括为:Gadget 框架(软件)→ 控制 →DWC3 控制器(硬件)→ 遵循 →USB 协议(标准)。

2025-03-13 17:18:04 1462

原创 USB分析仪抓取数据包分析

一次事务的三个阶段批量传输设计建立事务三阶段数据包级别事务级别拆分事务传输级别。

2025-03-13 15:41:07 531

原创 USB设备的检测与枚举

在这里对速度的检测是双向的,比如高速的hub需要检测所挂上来的设备是高速、全速还是低速,高速的设备需要检测所连上的hub是USB2.0的还是1.x的,如果是前者,就进行一系列动作切到高速模式工作,如果是后者,就以全速模式工作。在hub端,虽然下达了复位信号,并一直驱动着SE0,但USB2.0的高速接收器一直在检测Chirp K信号,如果没有Chirp K信号看到,就继续复位操作,直到复位结束,之后就在全速模式下操作。这里的KJ序列是连续的,中间不能间断,而且每个K或J的持续时间在40us~60us之间。

2025-03-13 15:23:08 1380

原创 USB的演进迭代

USB3.1Gen1就是原来USB3.0的马甲,换一个名称而已,推出USB3.1的主要更新就是增加USB3.1 Gen2,可以实现10Gbps的带宽。USB系统是属于分层的星状拓扑结构,主机控制器中心。USB随着传输速率提高,逐步向Type-C接口统一,而Type-C也逐渐演进出独立的标准,包括传输,显示,PD供电规范,Type-C接口也给设备供电带来了更多的可能性…简单来说,USB总线的工作模式类似于一个轮训系统,一切通信都由主控制器控制,在主控制器与USB功能器件之间进行,USB功能器件之间不能通信。

2025-03-13 14:58:41 900

原创 USB3.0接入检测与分析

数据只需要朝一个方向传输就可以了,简化了等待引起的时间消耗,电路连接上作为Host的TX与Device的RX连接,Host的RX与Device的TX相连。在将USB设备插入USB3.0的Hub,主机通过TX端发起RX Detect,在没有设备接入时,主机发射端检测到的负载和有设备接入时的负载是不一样的,这样在有无设备接入时的RC时间常数就会不同,发送端通过改变TXP/TXN的共模电压,然后检测线路上共模电压充电时的信号上升时间(充电速率)就可以判别是否存在终端设备。

2025-03-13 14:51:41 1953

原创 USB2.0插入检测原理

这样设计的目的让USB设备接入USB端口时,USB的电源和地先于数据信号连接,从而避免在动态插入时由电源的不稳定,电流对数据线、信号线的影响。当USB设备检测到来自Hub的三对KJ后,它在500us内切换到高速模式,使能内部D+和D-对GND的45ohm电阻,断开设备侧D+的1.5K上拉电阻。与低速模式一样,在全速模式下,数据传输采用电压传输模式。• 数据信号是通过改变电压来传输的,具体来说,逻辑0可能是低电压(通常接近0V),而逻辑1可能是高电压(通常接近USB规定的电压值)。

2025-03-13 14:41:55 2413 1

原创 USB驱动配置调试

说明:USB OTG标准在完全兼容USB2.0标准(EHCI)的基础上,增添了电源管理(节省功耗)功能,它允许设备即可作为主机,也可作为外设操作(两用OTG)。USB设备本身与USB总线通过usb_driver连接,而USB设备本身的驱动(读写、控制)则需要通过其USB设备本身所属类设备驱动来完成。当设备检测到USB_ID信号为高时,表示该设备作为Slave(外设,device,也称B设备)当设备检测到USB_ID信号为低时,表示该设备应作为Host(主机,也称A设备)。

2025-03-13 12:26:19 794

原创 Android USB驱动源码说明

比如包括主控制器(PC、服务器等等上的),外围控制器(在带有Linux固件的设备中,像打印机或手机),以及像以太网适配器这样的硬件外围设备。USB是一个主/从协议,作为host(比如PC)可以控制多达127个从设备,USB硬件是非对称,这便于设置,不能将连接到“host端”的连接器连接到设备端。USB host的核心代码,包括usbfs(USB文件系统)文件和HUB类驱动(hub_wq)。由usb目录下Makefile中CONFIG_USB_SUPPORT选项指定,此选项添加了对USB的核心支持。

2025-03-13 12:04:50 628

原创 USB基础---设备、配置、接口、端点和字符串描述符

在USB系统中每一个端点都有唯一的地址,这是由设备地址和端点号给出的。一个USB端点只能在一个方向上承载数据,从主机到设备(输出端点)或者从设备到主机(输入端点),因此端点可以看作是一个单向的管道,端点0通常为控制端点,用于设备初始化参数等。USB描述符信息存储在USB设备中,在枚举过程中,USB主机会向USB设备发送GetDescriptor请求,USB设备在收到这个请求之后,会将USB描述符信息返回给USB主机,USB主机分析返回来的数据,判断出该设备是哪一种USB设备,建立相应的数据链路通道。

2025-03-13 11:46:33 1036

原创 GobiNet 驱动移植调试

执行 sudo modprobe option,使用 lsusb 和 ls /dev/ttyUSB*命令,查看是否加载成功。一般会加载出/dev/ttyUSB0、/dev/ttyUSB1、/dev/ttyUSB2、/dev/ttyUSB3之类的端口,端口顺序与章节2的顺序相同。Gobinet驱动一般是基于平台提供的源码基础上修改而来的,一般包含makefile、GobiUSBnet.c、QMI.c、QMI.h、QMIDevice.c、QMIDevice.h以及Structs.h文件。

2025-03-13 09:49:01 1279

原创 高通SDX55:拨号问题和网卡配置问题排查

在拨号的时候,要确保所装的驱动是否正确,特别是Android系统下的拨号,假如使用的是Gobinet驱动,需要重新编译驱动。在Windows下安装驱动,一般需要适配对应的VID/PID,对应的GTUSBMODE模式,然后输出对应的Windows驱动。如果拨号异常,抓取的log可以直观的看到PDU是否发起,APN携带的信息是否正确,PDU是否被拒,以及是否被主动释放等信息。驻网成功之后,需根据当前的GTUSBMODE模式确认拨号方式,例如ECM拨号、Rndis拨号、Rmnet拨号等等。3.1 选择拨号方式。

2025-03-12 17:54:40 413

原创 USB分析仪log抓取和分析方法简介

本文主要讲解USB分析仪的使用方式

2025-03-12 17:22:02 885

转载 STL

C++ STL详解 转载自:http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html 一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R ...

2019-05-17 19:44:28 336

原创 BinarySearchTree

二叉搜索树的性质:1、每一个节点都有一个作为搜索依据的关键码(key),所有节点的关键码都不同。2、左子树上所有关键码(key)都小于根节点的关键码(key)。3、右子树上所有关键码(key)都大于根节点的关键码(key)。4、左右子树都是二叉搜索树。查找高度次,LogN构造函数拷贝构造赋值运算符重载析构函数插入(bool):树为空,直接插到根节点;树不为空,定义一个parent记录cur的父亲,...

2018-04-19 11:57:12 653

原创 RBTree

红黑树保证最长路径不超过最短路径的2倍,因而近似平衡1、每个节点,不是红色就是黑色2、根节点是黑色3、如果一个节点是红色的,则他的两个子节点是黑色的(没有连续的红节点)4、每条路径上黑色节点数量相等5、每个叶子节点都是黑的(这里的叶子节点指的是空节点)当新插入节点是红色的,其父亲也是红色的,那么就知道了祖父是黑色的,所以叔叔的颜色比较重要第一种:cur为红,p为红,g为黑,u存在且为红,则将p,u...

2018-04-18 10:26:39 1089

原创 AVLTree

左单旋:思路:1、创建节点subR和subRL2、parent的右指向subRL3、判断subRL是否存在      若存在,subRL的父亲就是parent      若不存在,也不影响4、subR的左指向parent      那么subR的父亲就是parent的父亲了5、给parent的父亲创建一个节点ppNode      parent的父亲也就是ppNode,也就是subR6、如果ppN...

2018-04-12 14:53:48 1592

原创 resize和reserve的区别

1、resize(n):调整容器的长度大小,使其能容纳n个元素。如果n小于容器当前的size,则删除多出来的元素,否则,添加采用值初始化的元素。reserve(n,t):多一个参数t,将所有新添加的元素初始化为t。2、reserve(n):预分配n个元素的存储空间。      capacity:容量(容器当前拥有的元素个数)      size:长度(容器在必须分配新存储空间之前可以存储的元素总数...

2018-03-26 20:48:48 3156

原创 一个数组实现两个栈

看到题目,首先要考虑什么是数组,什么是栈,两者的特性都是怎样的,其次再考虑如何实现题目要求。通常会想到:方法一:栈1从数组的开头开始,栈2从数组的末尾开始,这样比较节省空间,当栈1和栈2的栈顶相遇时,我们就进行扩容。方法二:既然方法一可以从两边开始,那么我们也可以从中间开始向两边延伸,但这样有可能就会造成空间浪费,比如某一个栈分配了大量的空间,可是实际其只有一两个数据。方法三:在讨论中,有的同学建...

2018-03-07 11:18:19 494

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除