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

关于蓝牙SPP配置的详细过程,之前的有所缺少细节

注意:SPP(Serial Port Profile)是建立在RFCOMM之上的,而RFCOMM又依赖于L2CAP和ACL链路。同时,服务发现(SDP)用于获取RFCOMM的服务器通道号。

完整步骤:

  1. ACL链路建立(物理连接)

  2. L2CAP信令通道建立(CID 0x0001)

  3. SDP服务发现(使用UUID 0x1101查找SPP服务,获取RFCOMM服务器通道号)

  4. 为RFCOMM建立L2CAP通道(使用PSM 0x0003,并分配一个动态CID)

  5. L2CAP通道配置协商(包括MTU、刷新超时等参数)

  6. RFCOMM多路复用器建立(使用DLCI 0,即RFCOMM控制通道)

  7. RFCOMM参数协商(通过DLCI 0交换参数,包括优先级、最大帧大小、信用值等)

  8. 目标RFCOMM数据通道建立(使用DLCI = 2 * 服务器通道号,并可能进行参数协商)

  9. SPP数据通信开始

整体时序图

客户端 (Initiator)                   服务端 (SPP Server)|                                      || --- HCI_Create_Connection --------> |   // 1. ACL物理连接| <--- HCI_Connection_Complete ------ |   // Handle分配|                                      || --- L2CAP_Connection_Request(信令) > |   // 2. L2CAP信令通道| <--- L2CAP_Connection_Response ---- |   // CID 0x0001建立|                                      || --- SDP_ServiceSearchRequest ------> |   // 3. SDP服务发现| <--- SDP_ServiceSearchResponse ---- |   // UUID=0x1101| --- SDP_ServiceAttributeRequest ---> |   // 获取服务属性| <--- SDP_ServiceAttributeResponse - |   // RFCOMM通道号|                                      || --- L2CAP_Connection_Request(PSM=3)> |   // 4. RFCOMM L2CAP通道| <--- L2CAP_Connection_Response ---- |   // 动态CID分配|                                      || --- L2CAP_Configure_Request ------> |   // 5. L2CAP参数协商| <--- L2CAP_Configure_Response ----- |   // MTU, Flush Timeout| --- L2CAP_Configure_Request ------> |   // 可能双向配置| <--- L2CAP_Configure_Response ----- |   |                                      || --- RFCOMM_SABM(DLCI=0) ----------> |   // 6. RFCOMM多路复用器| <--- RFCOMM_UA(DLCI=0) ------------ |   // 控制通道建立|                                      || --- RFCOMM_PN_CMD(DLCI=0) --------> |   // 7. 多路复用器参数协商| <--- RFCOMM_PN_RSP(DLCI=0) -------- |   // 流控参数|                                      || --- RFCOMM_PN_CMD(目标DLCI) ------> |   // 8. 数据通道参数协商| <--- RFCOMM_PN_RSP(目标DLCI) ------ |   // 串口参数|                                      || --- RFCOMM_SABM(目标DLCI) --------> |   // 9. 目标数据通道建立| <--- RFCOMM_UA(目标DLCI) ---------- |   // 数据通道确认|                                      || === SPP数据通信开始 ===============> |   // 10. 应用数据传输

关键标识符总结

协议层标识符类型值/范围说明
HCIConnection Handle0x0400-0x0EFF物理连接标识
L2CAP信令CID0x0001固定信令通道
L2CAP数据CID0x0040-0xFFFF动态分配逻辑通道
L2CAPPSM0x0003RFCOMM固定协议ID
SDPUUID0x1101SPP服务标识
SDPServer Channel1-30RFCOMM服务通道号
RFCOMM多路复用器DLCI0控制通道
RFCOMM数据DLCI2×Server Channel数据通道计算

http://www.dtcms.com/a/525362.html

相关文章:

  • 湛江专业网站建设深圳专业建站多少钱
  • 2026计算机毕业设计课题推荐
  • 好网站在哪里上海知名网站建设公司
  • 【Unity】实现UI Spine动态换皮肤(SkeletonGraphic)
  • 从数据仓库到数据中台再到数据飞轮:我的数据技术成长之路
  • MIT:塑造未来的技术引擎
  • 查错控制方法-上(奇偶校验与循环冗余校验)
  • NVIDIA cuLitho 重新定义计算光刻的GPU加速
  • 水位雨量监测站:数据实时辅助防汛指挥
  • 网站总体设计方案网站首页不见怎么做
  • 德语网站建设注意事项天津做网站推广的公司
  • 本溪做网站的怎么看出网站有没有做404页面
  • 数据库技术指南(一):从基础概念到 MySQL 核心实践
  • 安徽义信建设网站莱芜新闻视频回放今天
  • 江西建设厅网站官网安卓开发软件手机版
  • 光伏系统中,高压电弧是怎么产生的?什么是AFCI
  • 简单了解一下环境变量(Linux)
  • 计算机端口
  • 外贸网站建设有哪些要求网站seo培训
  • 怎么增加网站的收录量成都网站优化多少钱
  • 继续网站建设南宁网页制作招聘
  • 01)PB(PowerBuilder9)学习 设置语法提示、 新建工作空间、应用、window窗体、设置应用启动open event
  • UVa 1336 Fixing the Great Wall
  • 网站开发浏览器关键词优化提升排名
  • 湖北省荆门市城乡建设网站seo代码优化有哪些方法
  • [Python快速入门]基础语法以及使用
  • el-table选中行颜色
  • Flask入门教程——李辉 第5章: 数据库 关键知识梳理
  • 嘉峪关市建设局建管科资质网站网站制作教程
  • 如何免费建设网站列表页面设计模板