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

鼓楼做网站公司哪家好企业网络规划与设计

鼓楼做网站公司哪家好,企业网络规划与设计,百度搜索一下,赣州网络推广行业本文介绍蓝牙协议从物理层到应用层的完整通信流程,并详解了 Linux 下主流蓝牙调试工具的使用方法,适用于嵌入式蓝牙驱动开发、BLE调试、通信协议分析等场景。 🔧 1. 蓝牙架构概览 ✅ 芯片架构 单模芯片:仅支持 BLE 或 Classic 蓝…

本文介绍蓝牙协议从物理层到应用层的完整通信流程,并详解了 Linux 下主流蓝牙调试工具的使用方法,适用于嵌入式蓝牙驱动开发、BLE调试、通信协议分析等场景。


🔧 1. 蓝牙架构概览

✅ 芯片架构

  • 单模芯片:仅支持 BLE 或 Classic 蓝牙中的一种。
  • 双模芯片:同时支持 BLE 和 Classic 蓝牙协议栈。

✅ 协议架构(三级分层)

Host层        ←→ 高层协议栈(L2CAP、ATT/GATT、SM)
Transport层   ←→ 传输协议(HCI over UART/USB/SDIO)
Controller层  ←→ 硬件控制器(Link Layer、PHY)

📶 2. 蓝牙物理层(PHY)

  • BLE 总共有 40 个频道

    • 3 个广播通道(37、38、39)
    • 37 个数据通道(0~36)

🔗 3. 链路层(Link Layer)

📌 状态机定义

状态描述
Standby待机状态,不发不收
Advertising广播状态,监听/发送广播包
Scanning扫描广播包
Initiating发起连接请求
Connection建立连接后的通信状态

📌 角色定义

  • Master:由 Initiating State 进入连接状态的设备
  • Slave:由 Advertising State 进入连接状态的设备

📦 空中数据包结构(Air Packet)

Preamble + Access Address + PDU + CRC

🧩 4. HCI 传输层

✅ HCI 接口介绍

  • Host 与 Controller 间的通信通过 HCI(Host Controller Interface)
  • 可运行于 UART、USB、SDIO 等物理通道

📦 HCI 包类型

包类型描述
HCI Command PacketHost → Controller,发送命令
HCI Event PacketController → Host,事件响应
HCI ACL Data Packet双向数据包(异步)
HCI Sync Data Packet双向数据包(同步)

🛠️ HCI Command Packet 结构

OpCode = OGF(6bit) + OCF(10bit)
Parameter Total Length
Parameters(每个命令不同)

📨 5. L2CAP 层

  • 复用机制:支持多个高层协议区分传输
  • 分段重组:控制 PDU 长度,利于数据管理
  • 流控与差错控制:对每个逻辑信道流量进行控制,并具备差错处理机制

一条 ACL 链路上可以存在多个 L2CAP 信道,便于多协议并存。


🔁 6. 蓝牙通信流程(BLE)

🌟 初始化控制器

  • HCI_Reset
  • HCI_Read_Local_Supported_Features
  • HCI_Set_Event_Mask
  • HCI_Read_Buffer_Size
  • HCI_Read_BDADDR

📣 广播状态设置

  • LE_Set_Advertising_Parameters
  • LE_Set_Advertising_Data
  • LE_Set_Scan_Response_Data
  • LE_Set_Advertising_Enable

🔍 扫描状态设置

  • LE_Set_Scan_Parameters
  • LE_Set_Scan_Enable
  • LE Advertising Report(扫描结果)

🔗 发起连接

  • LE_Create_Connection
  • LE_Connection_Complete

📤 数据交互

  • 建立连接后即可通过 L2CAP 层传输数据

❌ 断开连接

  • HCI_Disconnect
  • Disconnection Complete

🛠️ 7. 蓝牙调试工具

🔧 hciconfig - HCI设备配置工具

hciconfig hci0 up         # 启动设备
hciconfig hci0 down       # 关闭设备
hciconfig hci0 reset      # 重置蓝牙设备
hciconfig hci0 name NAME  # 设置蓝牙名称
hciconfig hci0 leadv      # 开启广播

🔧 hcitool - HCI命令工具

hcitool dev               # 查看HCI设备
hcitool inq               # 发现设备
hcitool name <MAC>        # 获取设备名称
hcitool lescan            # BLE扫描
hcitool lecc <MAC>        # 连接BLE设备
hcitool ledc <MAC>        # 断开BLE设备

🔍 hcidump - 蓝牙包嗅探工具

hcidump -i hci0 -Xt -w bt_debug.cfa &
  • -X: ASCII + 十六进制
  • -t: 显示时间戳
  • -w: 输出到文件

⚙️ hciattach - 绑定串口蓝牙模块到 HCI

hciattach -n -s 115200 ttyS0 rtk_h5 &
  • -s: 波特率
  • -n: 不脱离控制台
  • ttyS0: 串口名称

📡 btmon - 蓝牙日志抓取工具

btmon -i hci0 -w btmon_debug.log &
btmon -r btmon_debug.log        # 回放日志
  • -i: 指定 HCI 设备
  • -w: 写入文件
  • -r: 读取文件回放

🔌 bluetoothd - BlueZ 后台服务

bluetoothd -C -d -n &
  • -d: DEBUG 模式
  • -C: 支持 legacy 命令
  • -n: 前台运行,方便调试日志查看

🧭 bluetoothctl - 蓝牙交互工具

bluetoothctl
> list                  # 查看控制器
> show                  # 详细信息
> power on              # 打开设备
> scan on               # 开始扫描
> pairable on           # 设置可配对
> discoverable on       # 可发现
> pair <MAC>            # 配对设备
> connect <MAC>         # 连接设备
> exit                  # 退出

✅ 结语

本文系统地梳理了蓝牙 BLE 协议从底层到上层的通信机制,涵盖 HCI 结构、通信流程,并结合 Linux 下 BlueZ 提供的调试工具,提供了命令级的使用方式。

如果你觉得有帮助,欢迎点赞、收藏、转发!🚀


http://www.dtcms.com/wzjs/15567.html

相关文章:

  • html网页设计作业成品免费关键词排名优化工具有用吗
  • wordpress重装后404长沙网站优化价格
  • 门户网站团队建设竞价推广什么意思
  • 淘宝网店页面设计seo好seo
  • 互联网装修公司叫什么百度关键词seo外包
  • 怎样网站优化公司seo软件视频教程
  • 一千个长尾关键词用一千个网站做晚上国网app
  • 做网站还是微信小程序北京学校线上教学
  • 保定网站seo服务夸克浏览器网页版入口
  • 如何找企业联系做网站软文是什么
  • 手机点了钓鱼网站怎么办宣传推广网络推广
  • 汕头澄海网站建设网站流量数据分析
  • 网站备案到期了怎么办搜索引擎营销sem包括
  • 郑州网站建设到诺然推广网站大全
  • 个人网址是什么优化关键词的作用
  • 做网站什么意思全搜网
  • 网络推广策划培训班青岛建站seo公司
  • 移动网站建设价格便宜网站seo检测
  • 平面设计兼职免费的seo网站
  • iis网站怎么做全站伪静态什么叫做网络营销
  • 哪些网站可以做养殖的广告农产品营销方案
  • wordpress用户名无效网站优化网站优化
  • 新手建网站推荐克州seo整站排名
  • 缙云建设局网上协同办公oa网站百度游戏app下载
  • 测试网站兼容性营业推广方案
  • 常用网站代码精准营销案例
  • 贵阳网站建设-中国互联百度开放云平台
  • 网络事件营销佛山seo
  • 网站做子站点有什么用济宁百度竞价推广
  • 怎么评判一个网站做的好与坏怎么做自己的网站