<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yyyang88的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yyyang88</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yyyang88]]></copyright><item><title><![CDATA[蓝牙 Host 与 Controller：职责划分与协作机制]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169823656</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169823656</guid><author>yyyang88</author><pubDate>Mon, 02 Nov 2026 10:01:29 +0800</pubDate><description><![CDATA[本文系统解析蓝牙架构中Host与Controller的划分逻辑及其协作机制。通过分层设计，Host负责连接管理、服务组织与安全策略，Controller专注无线链路与物理层传输，二者通过HCI接口协同。文章详解各层职责、协议组成及数据流动路径，并以扫描连接为例说明工作流程，强调功能分离带来的可移植性与复用优势，帮助开发者理解蓝牙通信的底层原理与实践应用。]]></description><category></category></item><item><title><![CDATA[蓝牙协议栈整体结构详解]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169822700</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169822700</guid><author>yyyang88</author><pubDate>Mon, 02 Nov 2026 09:56:56 +0800</pubDate><description><![CDATA[本文系统介绍蓝牙协议栈的核心概念与架构，阐述其分层设计的必要性与优势。通过对比经典蓝牙与BLE差异，解析从应用层到物理层的完整通信流程，重点说明Host与Controller协同机制及HCI接口作用，帮助开发者理解蓝牙通信底层原理，为蓝牙开发与协议分析奠定基础。]]></description><category></category></item><item><title><![CDATA[蓝牙系统整体架构详解]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169821781</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169821781</guid><author>yyyang88</author><pubDate>Mon, 02 Nov 2026 09:44:39 +0800</pubDate><description><![CDATA[本文系统解析蓝牙技术架构，厘清Host（上层协议与设备管理）、Controller（底层链路控制）、RF（射频收发）及HCI接口的分工与协作关系。通过典型应用案例，阐明各模块在广播、连接、数据传输中的角色，揭示蓝牙作为软硬协同系统的本质。文章强调理解分层架构对开发与调试的关键意义，并介绍单芯片集成与分离部署两种实现方式，助力开发者把握蓝牙核心技术脉络。]]></description><category></category></item><item><title><![CDATA[蓝牙设备类型与典型应用场景]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169746598</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169746598</guid><author>yyyang88</author><pubDate>Sun, 01 Nov 2026 19:46:49 +0800</pubDate><description><![CDATA[本文系统梳理蓝牙技术学习的核心视角，强调从设备角色与应用场景理解蓝牙。通过分析手机、耳机、键盘、传感器及可穿戴设备等典型应用，揭示不同设备在通信模式、数据特征、功耗需求和角色分工上的差异。重点解析经典蓝牙与BLE的适用场景，阐释中心设备（Central）与外围设备（Peripheral）的实际交互逻辑，并以GATT服务、HID协议、广播机制等为例，展示蓝牙在物联网与人机交互中的实践路径，为开发者提供清晰的技术认知框架。]]></description><category></category></item><item><title><![CDATA[蓝牙技术中的常见术语与基本概念]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169746557</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169746557</guid><author>yyyang88</author><pubDate>Sun, 01 Nov 2026 19:43:03 +0800</pubDate><description><![CDATA[本文系统梳理蓝牙核心术语，厘清Central/Peripheral、Master/Slave等角色概念，阐明广播、扫描、连接与配对的本质区别。强调设备角色与功能无关，连接不等于配对，安全机制需独立设计。通过流程图与对比表，帮助开发者准确理解蓝牙通信流程，避免常见概念混淆，为实际开发提供清晰指引。]]></description><category></category></item><item><title><![CDATA[蓝牙技术的工作频段与基本通信原理]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169653367</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169653367</guid><author>yyyang88</author><pubDate>Sun, 01 Nov 2026 18:08:00 +0800</pubDate><description><![CDATA[ISM 是 Industrial、Scientific and Medical的缩写，即工业、科学和医疗频段。ISM频段最初主要用于工业设备、科学实验和医疗设备等射频应用。随着无线通信技术的发展，一些ISM 频段逐渐成为短距离无线通信技术的重要工作频段。其中，2.4 GHz ISM 频段应用非常广泛。蓝牙、Wi-Fi、Zigbee 等无线通信技术，都可以使用这一频段。蓝牙使用的 2.4 GHz ISM。]]></description><category></category></item><item><title><![CDATA[经典蓝牙与低功耗蓝牙：BR/EDR 和 BLE 的区别]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169638121</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169638121</guid><author>yyyang88</author><pubDate>Sat, 31 Oct 2026 22:46:17 +0800</pubDate><description><![CDATA[本文系统对比了经典蓝牙（BR/EDR）与低功耗蓝牙（BLE）的技术特点，涵盖设计目标、通信方式及功耗差异。经典蓝牙适用于持续高速数据传输，如音频设备；而BLE专为低功耗、间歇性通信优化，广泛用于物联网设备。两者分工明确：前者强调连接稳定性与吞吐量，后者通过广播机制和灵活连接间隔实现节能。文章还解析了两种技术在拓扑结构、通信模式与应用场景上的核心区别，帮助开发者根据需求选择合适方案。]]></description><category></category></item><item><title><![CDATA[蓝牙技术的发展历程与版本演进]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169630489</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169630489</guid><author>yyyang88</author><pubDate>Sat, 31 Oct 2026 10:28:53 +0800</pubDate><description><![CDATA[本文系统梳理蓝牙技术从1994年诞生至今的演进历程，涵盖蓝牙SIG成立背景、命名由来及核心发展目标。重点解析经典蓝牙（1.0–3.0）在互操作性、抗干扰与传输速率方面的迭代，以及蓝牙4.0引入低功耗蓝牙（BLE）带来的革命性变革。随后介绍5.x版本在传输距离、速率与广播能力上的提升，及6.x对精准测距等新特性的支持。文章总结了各版本间的技术关系与兼容性，并揭示蓝牙向低功耗、广连接、高智能方向发展的整体趋势，为开发者选型与应用提供参考。]]></description><category></category></item><item><title><![CDATA[蓝牙技术概述：从发展历史到技术架构]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169556889</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169556889</guid><author>yyyang88</author><pubDate>Fri, 30 Oct 2026 15:24:23 +0800</pubDate><description><![CDATA[蓝牙技术是一种工作于2.4GHz ISM频段的短距离无线通信标准，由Bluetooth SIG维护。它从替代有线连接起步，历经Bluetooth Classic与BLE（低功耗蓝牙）演进，现广泛应用于消费电子、智能穿戴、物联网及室内定位等领域。其核心特点包括跳频抗干扰、低功耗、高兼容性与灵活协议栈。随着LE Audio、Mesh网络和方向识别等新技术发展，蓝牙正向多功能、智能化方向迈进，成为构建无线互联生态的关键技术。]]></description><category></category></item><item><title><![CDATA[《蓝牙技术学习与实践》系列博客总导航]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/169550421</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/169550421</guid><author>yyyang88</author><pubDate>Fri, 30 Oct 2026 12:29:41 +0800</pubDate><description><![CDATA[蓝牙（Bluetooth）是一种广泛应用于智能设备、物联网、消费电子及嵌入式系统中的短距离无线通信技术。为了系统学习蓝牙技术，逐步建立从基础理论到协议理解，再到实际开发与问题分析的完整知识体系，特开设《蓝牙技术学习与实践》系列博客。本系列以蓝牙技术为核心，采用理论知识讲解 + 实验实践验证的方式展开，既注重技术原理的理解，也注重实际开发能力的培养。希望通过持续学习和实践，逐步掌握蓝牙技术的核心知识，并具备一定的蓝牙应用开发、调试和问题分析能力。具体文章还在写作中，会持续更新…]]></description><category></category></item><item><title><![CDATA[Android 实战：将 Nordic nRF Connect Device Manager 集成到自己的 App]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/147168730</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/147168730</guid><author>yyyang88</author><pubDate>Thu, 29 Oct 2026 14:45:46 +0800</pubDate><description><![CDATA[Nordic 的 Android-nRF-Connect-Device-Manager 为 Android App 提供了现成的 MCU Manager 协议实现和 BLE 传输能力。选择匹配的库版本。正确配置 Android BLE 权限。完成设备扫描与连接。创建。使用相应的 Manager 执行设备管理操作。通过集成固件升级。处理异步状态、断连、重试和错误恢复。只要设备端已经实现兼容的 SMP 服务，Android 端就可以在现有库的基础上快速构建设备管理功能。]]></description><category></category></item><item><title><![CDATA[第8讲：复合设备——一个设备身兼数职]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168966964</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168966964</guid><author>yyyang88</author><pubDate>Wed, 28 Oct 2026 15:54:10 +0800</pubDate><description><![CDATA[因此，在抓包和设备管理器中判断设备结构时，不能只看功能数量，还需要查看设备描述符、配置描述符和接口描述符之间的关系。其关键不在于把多个 USB 设备电气上简单并联，而在于通过描述符定义多个接口，并让 Host 分别识别这些接口。复合设备的关键是通过一个 USB 设备的描述符体系暴露多个接口功能，再由 Host 分别识别和处理。不同操作系统的具体驱动绑定和设备呈现方式可能不同，但基本思想都是通过接口和相应的类规范识别功能。理解一个 USB 设备如何通过多个接口提供不同功能，并认识复合设备的描述符组织方式。]]></description><category></category></item><item><title><![CDATA[第7讲：HID 设备——做一个键盘或鼠标]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168966933</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168966933</guid><author>yyyang88</author><pubDate>Wed, 28 Oct 2026 12:24:41 +0800</pubDate><description><![CDATA[HID 规范不仅定义了接口类别，还定义了设备如何描述自己的报告格式，以及如何通过 Input、Output 和 Feature Report 等机制交换数据。理解 HID 为什么通常可以使用系统通用驱动，认识 Report Descriptor，并了解键盘和鼠标的基本报告格式。例如，按下字母 A 时，设备上报的是对应的 HID Usage，而不是直接发送 ASCII 字符。绝对坐标的报告格式和逻辑范围必须通过描述符定义清楚。所以，在编写 HID 固件时，不能只关心报告长度，还必须确认每个字段的语义。]]></description><category></category></item><item><title><![CDATA[第6讲：CDC 虚拟串口——第一个完整实验]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168966897</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168966897</guid><author>yyyang88</author><pubDate>Tue, 27 Oct 2026 11:38:03 +0800</pubDate><description><![CDATA[电脑端虽然可能显示 COM 端口，但 USB 线上传输的仍然是 USB 数据，并没有因此变成 UART 电平信号。CDC ACM 让电脑端能够使用熟悉的串口 API，但底层依然遵循 USB 的 Host 调度、端点和传输规则。理解 CDC 虚拟串口与真正 UART 的区别，了解通用实现步骤，并掌握收发过程中的常见问题。所以，如果 MCU 直接实现 USB CDC，通常不需要额外的 USB 转 UART 芯片。先验证设备能否正常枚举，再测试电脑向设备发送固定字符串，然后测试设备返回固定字符串。]]></description><category></category></item><item><title><![CDATA[第5讲：USB 类（Class）是什么，为什么要关心]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168966864</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168966864</guid><author>yyyang88</author><pubDate>Mon, 26 Oct 2026 09:05:04 +0800</pubDate><description><![CDATA[假设有十家厂商生产 USB 键盘，每家都使用完全不同的数据格式。那么操作系统就可能需要针对每一家厂商开发一套驱动，用户使用和维护起来都会非常麻烦。USB 类规范就是为了解决这类问题而设计的。它通过统一设备的行为、请求和数据格式，让操作系统可以使用通用驱动支持符合规范的设备。因此，USB Class 不只是一个编号，而是一套通信约定。标准类的优势是兼容性。只要设备遵守相应类规范，并且目标操作系统具有合适的驱动支持，通常就可以利用系统提供的通用驱动。厂商自定义类则不同。当接口类代码声明为FFh。]]></description><category></category></item><item><title><![CDATA[第4讲：端点、管道与四种传输类型]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168966842</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168966842</guid><author>yyyang88</author><pubDate>Sun, 25 Oct 2026 12:32:34 +0800</pubDate><description><![CDATA[设备刚连接到电脑时，Host 还不知道设备的具体功能，但需要先读取描述符、分配地址和选择配置。控制传输负责管理，中断传输适合周期性的小数据，批量传输适合可靠的大量数据，等时传输适合对时序要求较高的实时数据。用于描述相应端点的服务间隔，但它的解释与总线速度、传输类型以及 USB 规范的规定有关。例如，播放实时音频时，数据晚到可能比丢失少量数据更糟糕，因为过期的数据已经错过播放时间。理解端点和管道的区别，掌握控制、中断、批量、等时四种传输类型分别解决什么问题。每个端点具有自己的编号、方向和传输属性。]]></description><category></category></item><item><title><![CDATA[第3讲：描述符——USB设备的身份证体系]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168966736</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168966736</guid><author>yyyang88</author><pubDate>Sat, 24 Oct 2026 12:23:13 +0800</pubDate><description><![CDATA[但这里有个问题：一个设备可能有多个功能，例如一个 USB 设备既是键盘，又是鼠标，还提供一个虚拟串口。但它们并不是 USB 设备功能的全部描述。学完这一讲，你应该能够理解 USB 描述符为什么分成多个层级，知道每一层描述符负责什么，并且能够拿到一段设备描述符后，尝试逐个字段解释它的含义。所以，如果你在抓包中发现电脑先读取一小段配置描述符，随后又读取更长的一段，这通常是正常的枚举过程，不一定是设备发生了异常。配置描述符后面还可能包含接口描述符、端点描述符和类专用描述符，因此整个配置集合的长度并不是固定的。]]></description><category></category></item><item><title><![CDATA[第2讲：USB不是串口——通信机制的本质区别]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168767204</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168767204</guid><author>yyyang88</author><pubDate>Fri, 23 Oct 2026 08:49:49 +0800</pubDate><description><![CDATA[看看设备描述符、配置描述符、接口描述符和端点描述符分别告诉了电脑什么信息。]]></description><category></category></item><item><title><![CDATA[第1讲：插上USB，电脑怎么知道你插了什么]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168652124</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168652124</guid><author>yyyang88</author><pubDate>Thu, 22 Oct 2026 11:46:48 +0800</pubDate><description><![CDATA[Host根据收集到的信息，决定给这个设备加载哪个驱动，然后发送，指定一个非零的配置值。设备接受后进入Configured 状态，从这一刻起，它才可以正式在接口和端点上进行数据传输。如果设备是复合设备（比如一个带音频的摄像头），Host还会在配置内为各个接口分别绑定驱动。整个枚举结束，U盘出现在“此电脑”里，键盘开始响应按键——而这些“功能”的起点，仅仅是一连串Host发起的。如果一个设备的接口类代码是FFh（厂商特定）]]></description><category></category></item><item><title><![CDATA[USB 教程合集 · 总目录]]></title><link>https://blog.youkuaiyun.com/yyyang88/article/details/168647847</link><guid>https://blog.youkuaiyun.com/yyyang88/article/details/168647847</guid><author>yyyang88</author><pubDate>Wed, 21 Oct 2026 14:14:30 +0800</pubDate><description><![CDATA[Vendor Specific类的描述符怎么写Device端发送/接收数据的完整流程Host端用什么工具/库来通信（libusb / PyUSB）一个简单的Host端程序示例本讲是"毕业项目"，证明你真正理解了USB。]]></description><category></category></item></channel></rss>