BLE控制器之HCI接口层

HCI 是主要是主机提供了与控制器通信的标准接口,这种结构的设计源自于传统的蓝牙,它允许主机将命令和数据发送到控制器,同时允许控制器降事件和数据发送到数据。

主机/控制器接口实际上由两个独立的部分组成:逻辑接口和物理接口。

逻辑接口定义了命令和事件以及相关的行为。

而物理接口则是具体的通过硬件实现具体传输的接口。物理接口定义了命令、事件、和数据如何通过不同的连接技术来传输。常见的物理接口包括USB/SDIO/UART ,但是对于低功耗而言,由于usb需要大量硬件,而且不属于低功耗的接口,所以一般ble不用usb

要注意的是,主机控制器接口不仅仅存在于控制器之内,位于主机里面也有。所以位于控制器中的部分通常成为主机控制器接口下层部分,位于主机中的部分通常成为主机控制器接口的上层部分。

时间: 2024-10-30 10:33:36

BLE控制器之HCI接口层的相关文章

BLE控制器之链路层

BLE 协议之链路层介绍 链路层是低功耗蓝牙体系里面最复杂的部分,它负责广播.扫描.建立和维护连接.以及确保数据包按照正确的方式组织.正确的计算校验值以及加密序列等. 链路层包含三个基本概念:信道.报文.过程 首先来说信道,信道包含广播信道和数据信道. 未建立连接的设备使用广播信道发送数据,如外设通过广播信道进行广播,通告自身为可连接或可发现的,并且执行扫描或者发起连接. 连接后的设备则通过数据信道来进行数据传输. 在这两个信道上的数据发送均为小数据包,封装了发送者给接受者的少量数据,无论是广播

《TCP/IP详解卷2:实现》笔记--接口层

提示:该实验所在的平台是在RedHat 6下 该实验成功的前提有三个: (1):windows能ping通linux系统 (2):关闭linux的防火墙 :执行指令 /etc/init.d/iptables  stop (3):让SeLinux关闭  :执行指令:  setenforce permissive 补充: SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统.SELinux 是一个

QT开发(四十九)——数据库用户接口层

QT开发(四十九)--数据库用户接口层 用户接口层主要包括Qt SQL模块中的QSqlQueryModel.QSqlTableModel.QSqlRelationalTableModel.用户接口层的类实现了将数据库中的数据链接到窗口部件上,是使用模型/视图框架实现的,是更高层次的抽象,即便不熟悉SQL也可以操作数据库.需要注意的是,在使用用户接口层的类之前必须先实例化QCoreApplication对象. QT中使用了自己的机制来避免使用SQL语句,提供了更简单的数据库操作及数据显示模型,分别

《TCP/IP具体解释卷2:实现》笔记--接口层

接口层包含在本地网上发送和接收分组的硬件与软件. 我们用设备驱动程序来表示与硬件及网络接口通信的软件,网络接口是指在一个特定网络上硬件与设备驱动器之间的接口. Net/3接口层试图在网络协议和连接到一个系统的网络设备的驱动器间提供一个与硬件无关的编程接口.这个接口层为全部的 设备提供下面支持. 1.一套精心定义的接口函数. 2.一套标准的统计与控制标志. 3.一个与设备无关的存储协议地址的方法. 4.一个标准的输出分组的排队方法. 这个不要求接口层提供可靠地分组传输,仅须要提供最大努力的服务.

Linux网络之设备接口层:发送数据包流程dev_queue_xmit

转自:http://blog.csdn.net/wdscq1234/article/details/51926808 写在前面 本文主要是分析kernel-3.8的源代码,主要集中在Network的netdevice层面,来贯穿interface传输数据包的流程,kernel 博大精深,这也仅仅是一点个人愚见,作为一个笔记形式的文章,如有错误或者表述不当之处,还请大家留言批评指正,非常感谢! 主要涉及的file:kernel-3.18/net/core/dev.c kernel-3.18/net

Linux SPI总线和设备驱动架构之二:SPI通用接口层

通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备.SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构.另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作.本章的我们就通过这些数据结构和API的讨论来对整个通用接口层进行深入的了解. /**********

QT开发(四十八)——数据库SQL接口层

QT开发(四十八)--数据库SQL接口层 SQL接口层提供了对数据库的访问,主要类包括Qt SQL模块中的QSqlDatabase.QSqlQuery.QSqlError.QSqlField.QSqlIndex和QSqlRecord.QSqlDatabase类用于创建数据库连接,QSqlQuery用于使用SQL语句实现与数据库交互. 一.QSqlDatabase 1.QSqlDatabase简介 QSqlDatabase类提供了通过连接访问数据库的接口,QSqlDatabase对象本身代表一个连

整合微信小程序的Web API接口层的架构设计

在我前面有很多篇随笔介绍了Web API 接口层的架构设计,以及对微信公众号.企业号.小程序等模块的分类划分.例如在<C#开发微信门户及应用(43)--微信各个项目模块的定义和相互关系>介绍了相关模块的划分,在<基于微信小程序的系统开发准备工作>介绍了Web API的架构设计思路.本篇随笔对之前介绍的架构内容进行统一的调整更新,以便更加方便实际项目的应用开发,以期达到统一.重用.清晰的目的. 1.公众号.企业号.小程序模块的划分 我们知道,目前微信企业应用,分为公众号.企业号(企业

接口层报文输出

每个CPU有一个单独的softnet_data实例,用来存储与网络中断处理相关的报文输出和输出队列.在输出过程中会用到softnet_data中的output_queue和completion_queue队列. /* * Incoming packets are placed on per-cpu queues so that * no locking is needed. */ struct softnet_data { struct Qdisc *output_queue; struct s