主机控制器接口(HCI)
主机控制器接口(HCI)提供了一种访问蓝牙硬件能力的通用接口。
HCI固件通过访问基带命令、链路管理器命令、硬件状态寄存器、控制寄存器以及事件寄存器实现对蓝牙硬件的HCI命令。
HCI是通过包的方式来传送数据、命令和事件的,所有在主机和主机控制器之间的通信都以包的形式进行。包括每个命令的返回参数都通过特定的事件包来传输。HCI有数据、命令和事件三种包,其中数据包是双向的,命令包只能从主机发往主机控制器,而事件包始终是主机控制器发向主机的。主机发出的大多数命令包都会触发主机控制器产生相应的事件包作为响应。
命令包分为六种类型:
- 链路控制命令:链路控制命令允许主机控制器控制与其他设备的连接。当使用链路控制命令时,链路管理器控制如何形成和维持蓝牙微微网和散射网(Scatternet)。这些命令指示链路管理器生成和更改与远端节点的链路层的连接和查询覆盖范围内的其他蓝牙设备,以及执行其他的LMP命令。
- 链路策略命令:链路策略命令为主机提供影响链路管理器管理微微网的方式的途径。当使用链路策略命令时,LM将继续控制微微网和散射网的建立和维护,但要依赖可调节的策略参数。这些策略命令可以改变链路管理的行为,因而也将导致链路层连接的改变。
- 主机控制器和基带命令:主机控制器和基带命令提供对蓝牙硬件的各种能力的访问和控制,这些参数提供对蓝牙设备控制和对主机控制器、链路管理器和基带的能力的控制。主机设备可以使用这些命令改变本地设备的运行状态。
- 信息参数命令:信息参数由蓝牙硬件制造商给定,这些参数提供有关蓝牙设备以及主机控制器、蓝牙管理器和基带能力的信息。主机设备不能对这些参数进行任何改动。
- 状态参数命令:主机控制器改变全部的状态参数。这些状态参数提供有关主机控制器、链路管理器和基带的当前状态信息。主机不能改变任何参数,但是可以对特定指定的参数复位。
- 测试命令:测试命令用于提供测试蓝牙硬件各种功能的能力。这些命令提供准备各种测试条件的能力。
事件包分为三种类型:
- 通用事件,包括命令完成包(Command Complete)和命令状态包(Command Status);
- 测试事件;
- 出错时发生的事件,如产生丢失(Flush Occured)和数据缓冲区溢出(Data Buffer Overflow)。
摘自《蓝牙协议及其实现》
参考链接:http://blog.csdn.net/android_huber/article/details/7727512
主机控制器接口(HCI)的更多相关文章
- 蓝牙(Bluetooth) IEEE 802.15.1 协议学习
catalogue . 蓝牙概念 . 配对和连接 . 机密安全性 . 蓝牙协议分类 . 蓝牙协议栈 1. 蓝牙概念 蓝牙(Bluetooth)是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网 ...
- 【转】TI蓝牙BLE 协议栈代码学习
BLE就是低功率蓝牙.要着重了解两种设备: dual-mode双模设备:简单说就是向下兼容. single-mode单模设备:仅仅支持BLE. 关于开发主要讲的是单模设备,它可以只靠纽扣电池即可持 ...
- Bluedroid: 蓝牙协议栈源码剖析
一. 基础知识介绍 1.缩略语 BTIF: Bluetooth Interface BTU : Bluetooth Upper Layer BTM: Bluetooth Manager BTE: Bl ...
- BLE——协议层次结构
未完待续…… BLE协议 Bluetooth Application Applications GATT-Based Profiles/Services Bluetooth Core (Stack) ...
- BLE 5协议栈-主机控制接口(HCI)
文章参考自:http://www.sunyouqun.com/2017/04/page/3/ .https://www.cnblogs.com/yuqilihualuo/p/9790164.html ...
- 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)(转载)
一.主机控制接口协议 HCI 蓝牙主机-主机控模型 蓝牙软件协议栈堆的数据传输过程: 1.蓝牙控制器接口数据分组:指令分组.事件分组.数据分组(1).指令分组 如:Accpet Connection ...
- TI CC254x BLE教程 2
连接更新请求(connection update request) 如果slave不满意现有的连接参数, 比如间隔, 延迟等等, 可以向master提出自己希望的参数范围 连接终止(connectio ...
- Android蓝牙学习笔记
一 Bluetooth基本概念 蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备.计算机及其终端设备.各种数字数据系统.甚至家用电器采用无线方式联接起来.它的传输距离为10cm-10m,如果增加 ...
- 蓝牙BlueTooth技术学习理解
1.BLUETOOTH基本了解 BLUETOOTH出自丹麦 Bluetooth SIG 蓝牙技术联盟,非盈利组织.主要任务是发布蓝牙规格.管理资格认证程序.保护蓝牙商标及宣传蓝牙无线技术. 重要网站 ...
随机推荐
- Future 模式介绍
假设一个任务执行需要花费一些时间,为了省去不必要的等待时间,可以先获取一个提货单,即future,然后继续处理别的任务,知道货物到达,即任务完成得到结果,此时可以使用提货单提货,即通过future得到 ...
- 一天完成把PC网站改为自适应!原来这么简单!
http://www.webkaka.com/blog/archives/how-to-modify-a-web-page-to-be-responsive.html 一天完成把PC网站改为自适应!原 ...
- PHP IMAP收QQ邮件,SMTP存入另外QQ邮箱
作用,将qq1收到邮件,用qq2的账号.以qq0的为发件人身份放到qq2的邮箱. 什么样做这样一个功能,一个朋友要求的,她不告诉我为什么,好吧 <?php define('USER','xxx@ ...
- Jquery判断div是否显示
$("#test").is(":hidden");//是否隐藏 $("#test").is(":visible");// ...
- Exif的Orientation信息说明
EXIF Orientation 参数让你随便照像但都可以看到正确方向的照片而无需手动旋转(前提要图片浏览器支持,Windows 自带的不支持) 这个参数在佳能.尼康相机照的照片是自带的,但我的奥林巴 ...
- HDU 3336 扩展kmp
题目大意: 找到字符串中所有和前缀字符串相同的子串的个数 对于这种前缀的问题,通常通过扩展kmp来解决 其实吧这是我第一次做扩展kmp的题目,原来确实看过这个概念,今天突然做到,所以这个扩展kmp的模 ...
- SOD 精选细节--常用工具
要明白一个思想: SOD 只是帮你拼接sql语句, 用简单的方式来帮你实现. 不要理解错了.这很重要的! 查询: TB table=new TB(); table.Name="111& ...
- URL动态赋值
url动态赋值: 指的是url中包含{selector},即花括号括起来的jQuery选择器,当提交该url时,框架会自动将selector对应元素的值替换到花括号所占区域. (感觉实现了一点类似el ...
- C++学习 之const
const在C++中很常用,在编程中也建议多使用const去告诉编译器和其他程序员某个值应该保持不变. const可以用在很多地方: (1)用在classes外部修饰global或namespace作 ...
- Javascript之clipBoard操作
1.clipBoard 是网页上剪贴板,可以获取剪切板上值,可能类似物键-值对这种模式取值\赋值,如果在copy网上的某篇博客时,往往会带有“转载自xxxx地方 http://www.xxx.com/ ...