当前位置:网站首页>HCI 接口
HCI 接口
2022-07-26 10:50:00 【deparks】
HCI Interface
The communication between a Host (a computer or an MCU) and a Host Controller (the actual Bluetooth chipset) follows the Host Controller Interface (HCI), see {@fig:HostChipsetConnection}. HCI defines how commands, events, asynchronous and synchronous data packets are exchanged. Asynchronous packets (ACL) are used for data transfer, while synchronous packets (SCO) are used for Voice with the Headset and the Hands-Free Profiles.
HCI H2
On desktop-class computers incl. laptops, USB is mainly used as HCI transport layer. For USB Bluetooth chipsets, there is little variation: most USB dongles on the market currently contain a Broadcom BCM20702 or a CSR 851x chipset. It is also called H2.
On embedded systems, UART connections are used instead, although USB could be used as well.
For UART connections, different transport layer variants exist.
HCI H4
The most common one is the official "UART Transport", also called H4. It requires hardware flow control via the CTS/RTS lines and assumes no errors on the UART lines.
HCI H5
The "Three-Wire UART Transport", also called H5, makes use of the SLIP protocol to transmit a packet and can deal with packet loss and bit-errors by retransmission. While it is possible to use H5 really with "three wires" without hardware handshake, we recommend to use a full UART with hardware handshake. If your design lacks the hardware handshake, H5 is your only option.
BCSP
The predecessor of H5. The main difference to H5 is that Even Parity is used for BCSP. To use BCSP with BTstack, you use the H5 transport and can call hci_transport_h5_enable_bcsp_mode
eHCILL
Finally, Texas Instruments extended H4 to create the "eHCILL transport" layer that allows both sides to enter sleep mode without loosing synchronisation. While it is easier to implement than H5, it it is only supported by TI chipsets and cannot handle packet loss or bit-errors.
H4 over SPI
Chipsets from Dialog Semiconductor and EM Marin allow to send H4 formatted HCI packets via SPI. SPI has the benefit of a simpler implementation for both Host Controller and Host as it does not require an exact clock. The SPI Master, here the Host, provides the SPI Clock and the SPI Slave (Host Controller) only has to read and update it's data lines when the clock line changes. The EM9304 supports an SPI clock of up to 8 Mhz. However, an additional protocol is needed to let the Host know when the Host Controller has HCI packet for it. Often, an additional GPIO is used to signal this.
转自: https://github.com/bluekitchen/btstack/blob/master/chipset/README.md
边栏推荐
- 菜鸟看源码之HashTable
- RT thread learning notes (VIII) -- start the elmfat file system based on SPI flash (Part 2)
- Why do I need automated testing? Software testers take you to evaluate different software testing tools
- 0x00007FFD977C04A8 (Qt5Sqld.dll)处(位于 a.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000010 时发生访问冲突
- RT thread learning notes (VII) -- open the elmfat file system based on SPI flash (middle)
- Many people don't know whether they are looking for Kanban software or Kanban software
- Flutter TextField设置高度并且自动换行,圆角边框去除下划线
- logging 高级使用
- pytest 执行规则_基本用法_常用插件_常用断言_常用参数
- Koin
猜你喜欢

Why do I need automated testing? Software testers take you to evaluate different software testing tools

RT thread learning notes (III) -- building a compilation environment with scons

软件测试综述之软件测试的背景、实质、软件开发的过程

mysql20210906

flutter 背景变灰效果,如何透明度,灰色蒙板遮罩

Esxi6.5 patch update

pytest pytest.ini配置 用例分组 用例跳过

pytest 用例执行顺序

Bash shell学习笔记(六)

Tutorial of putty
随机推荐
WIRESHARK基础教程以太帧的分析。
软件测试综述之软件测试的背景、实质、软件开发的过程
使用定位实现左中右布局,中间内容自适应
RT thread learning notes (I) -- configure RT thread development environment
智能合约dapp系统开发流程技术
@The real difference and usage between validated and @valid
@JsonFormat和@DateTimeFormat的区别和使用
ThreadPoolExecutor是怎样执行任务的
Halcon模板匹配之Shape
Sql Server之查询总结
Flutter报错 Incorrect use of ParentDataWidget When the exception was thrown, this was the stack:
对面向抽象编程的理解
微信公众号开发 获取openid时报错40029 invalid code 问题的解决
Wechat official account development obtains openid times error 40029 invalid code solution
ESXi6.5补丁更新
使用float实现左中右布局,中间内容自适应
344.反转字符串
Successfully transplanted stemwin v5.22 on Shenzhou IV development board
看源码之LinkedList
Implementing queues with two stacks