HCI接口定义
主机(计算机或单片机)和主机控制器(实际的蓝牙芯片组)之间的通信遵循主机控制器接口(HCI),参见 在下面 .HCI定义了命令、事件、异步和同步数据包的交换方式。异步数据包用于数据传输,而同步数据包用于带耳机和免提配置文件的语音。
HCI-H2
桌面级计算机包括。笔记本电脑、USB主要用作HCI传输层.对于USB蓝牙芯片组,几乎没有变化:目前市场上的大多数USB联用器都含有一个宽带公司的bcm20702或一个csr851x芯片组。它也叫H2。
在嵌入式系统上,使用UART连接,虽然USB也可以使用。
对于UART连接,存在不同的传输层变体。
HCI-H4
最常见的是官方的"UART运输",也称为H4。它需要通过CTS/RTS线路进行硬件流控制,并假定UART线路上没有错误。
HCI-H5
"三线UART传输",也叫H5,利用滑移协议来传输数据包,并可以通过再传输来处理数据包丢失和错误。虽然使用H5实际上是可能的,没有硬件握手"三线",我们建议使用一个完整的UART与硬件握手。如果您的设计缺少硬件握手,那么H5是您唯一的选择。
BcSP
H5的前身。与H5的主要区别是BCSP使用的是均等。若要使用BCSP与BT栈,您可以使用H5传输,并可以调用 hci_transport_h5_enable_bcsp_mode
eHCILL
最后,德克萨斯的仪器扩展了H4,创建了"Ehcil运输"层,允许双方进入睡眠模式而不放松同步。虽然它比H5更容易实现,但它仅由钛芯片组支持,不能处理包丢失或包错误。
H4 over SPI
来自对话半导体和emmmarin的芯片允许通过SPI发送H4格式化的HCI数据包。SPI对于主机控制器和主机来说都有更简单的实现的好处,因为它不需要精确的时钟。这里是主机,它提供SPI时钟,而SPI奴隶(主机控制器)只需在时钟行发生变化时读取和更新它的数据行即可。EM9304支持一个高达8兆赫的SPI时钟。然而,需要有一个附加协议,以便让主机控制器知道什么时候它拥有HCI包。通常,一个额外的GIPO是用来表示这一点的。
HCI缺陷
不幸的是,hti标准遗漏了一些相关的细节:
对于基于UART的连接,初始波特率没有定义,但大多数蓝牙芯片集使用115,200波特。为了更好的吞吐量,需要更高的波特率,但是没有标准的HCI命令来更改它。取而代之的是,每个供应商都必须提出自己的特定供应商命令集。有时,还有其他步骤,例如。做一个热重置,是必要的,以激活波特率变化以及。
一些蓝牙芯片组没有一个唯一的Mac地址。开始时,需要设置Mac地址,但没有标准的HCI命令来设置它。
语音的SCO数据可以通过HCI接口传输,也可以通过芯片组上的显式PCM/I2S接口传输。大多数芯片组默认的PCM/I2S接口。若要通过USB或宽带语音在免提配置文件中使用,需要将数据传送到主机单片机。更新的蓝牙标准定义了一个HCI命令来配置该组织的路由,但是它还没有在我们已经测试过的芯片组中实现。相反,这也是以特定供应商的方式配置的。此外,大多数供应商允许在运行时通过向芯片集发送自定义命令来补丁或配置芯片集。显然,这也是供应商所依赖的。
总结
HCI的基础知识了解也是为了更好的完成产品的需求,如想了解更多,可以联系飞易通团队!深圳市飞易通科技有限公司是一家专注于物联网无线互联的高新技术企业。公司拥有核心的软硬件研发团队。经过多年的技术积累和沉淀,飞易通已拥有自主的无线协议栈及软件知识产权,在短距离无线通信和组网领域构筑了端到端的方案优势。