TI_BLE软件开发者指导5-HCI

Texas Instruments CC2540/41
Bluetooth® Low Energy
Software Developer’s Guide
v1.3.2
Document Number:SWRU271F

《低功耗蓝牙开发权威指南》
Robin Heydon著,陈灿峰、刘嘉 译
机械工业出版社
2014.6

TI_BLE软件开发笔记5-HCI

标签:读书笔记 BLE

1 介绍

HCI是主机和控制器之间的接口,主要完成两个任务:

  • 发送命令给控制器和接收来自控制器的事件
  • 发送和接收来自对端设备的数据

一般来说,主机接口是两个设备之间的物理接口和逻辑接口。逻辑接口定义了命令、事件和数据的封包格式。物理接口定义了主机和控制器之间如何传输这些数据包。

2 物理接口

蓝牙规范中定义了四种物理接口:

  • UART提供了最简单的传输方式
  • 3线UART提供可靠的UART的传输方式
  • USB为电脑和类似设备提供高速、通用的传输服务
  • 安全数字输入输出(SDIO)为消费电子设备提供中等速度的传输方式

3 逻辑接口

所谓的逻辑接口是指在单芯片设备上,并不需要在组件之间真正实现这样的信息传输接口;如果系统中的控制器和主机分别位于两个芯片上,HCI逻辑接口就体现为在两者之间传输数据的物理接口。
HCI逻辑接口的三个概念:

  • 信道
  • 数据包格式
  • 流控

3.1 HCI信道

一旦控制器与其他设备建立了连接,控制器底层HCI接口就创建一个HCI信道,HCI信道被连接句柄(connection handle)标识。连接句柄既可以标志主机交给控制器并准备发给对端的数据,也可以标志控制器从对端收到的准备交给主机的数据。
无论何时,只要主机尝试创建一个连接,控制器就为主机提供一个连接句柄。直到连接结束连接句柄才会失效。连接结束的原因可能是本地的链路层终止规程,也可能是链路监控超时导致。

3.2 命令数据包

主机通过向控制器发送命令数据包来执行命令。这些命令通常用于配置控制器的状态,或者请求控制器完成操作。
HCI命令包格式由三部分组成:用来确认发送命令的操作码(2字节)、参数长度(1字节)以及命令参数。每个命令都有自己一套独特的参数。
BLE中有三种基本命令类型,分别实现如下功能:

  • 配置控制器状态
  • 请求执行特定的操作
  • 管理连接

3.3 事件数据包

控制器发往主机的事件数据包主要用于发送信息和反馈之前输入的命令。
HCI事件数据包由事件类型编码(1字节)、参数长度(1字节)以及命令参数。每个时间都有自己一套独特的参数。
BLE有三种基本事件类型:

  • 通用命令完成事件:和无线传输无关的任务
  • 通用命令状态事件
  • 特定命令完成事件

3.4 数据包

数据包是指主机和控制器之间传输的应用数据。控制器接收来自主机的数据包,将其传给对端设备。对端设备收到数据之后,将其从控制器发往主机。
HCI数据包格式包含句柄/标记(2字节)、数据长度(1字节)以及数据。HCI数据包有两种标记:数据包边界标记和广播标记。数据包边界标记用来确认上层协议L2CAP的信息是一个开始数据包还是一个延续包。类似于链路层数据信道PDU中的LLID。
从主机发送到控制器的数据包,标记00标识开始包,01标识延续包;
从控制器发送到主机的数据包,标记10标识开始包&

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值