当前位置:网站首页>HCI interface
HCI interface
2022-07-26 11:03: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.
from : https://github.com/bluekitchen/btstack/blob/master/chipset/README.md
边栏推荐
- Connection between PLC and servo motor
- During the interview, how did the interviewer evaluate the level of rust engineers?
- LE Audio规范概述
- Sword finger offer (twenty): stack containing min function
- Bash shell learning notes (6)
- c 语言中宏参数的字符串化跟宏参数的连接
- 0x00007ffd977c04a8 (qt5sqld.dll) (in a.exe): 0xc0000005: an access violation occurred when reading position 0x0000000000000010
- 企鹅龙(DRBL)无盘启动+再生龙(clonezilla)网络备份与还原系统
- Bash shell learning notes (III)
- 菜鸟看源码之LinkedBlockingQueue
猜你喜欢

QT——连接USB摄像头

Drbl diskless startup + Clonezilla network backup and restore system

看源码之LinkedList

win10 1903 笔记本开热点出现蓝屏问题

3Dunity游戏项目实战——飞机大战

344. Reverse string

0x00007ffd977c04a8 (qt5sqld.dll) (in a.exe): 0xc0000005: an access violation occurred when reading position 0x0000000000000010

PyQt5快速开发与实战 第1章 认识PyQt5

Bash shell learning notes (I)

LinkedList of source code
随机推荐
Bash shell learning notes (VII)
@NotBlank、@NotNull 、@NotEmpty 区别和使用
SCADA和三大工业控制系统PLC、DCS、FCS
Drbl diskless startup + Clonezilla network backup and restore system
Sword finger offer (twenty): stack containing min function
C#委托与匿名方法浅析
Pengge C language - minesweeping 2021-08-16
logging 学习最终版-配置的不同级别日志打印的颜色
There is an unhandled exception at 0x003b66c3 in MFC: 0xc000041d: unhandled exception encountered during user callback
面试过程中,面试官是如何考察Rust工程师的水平?
35. 搜索插入位置
Interview knowledge points
-bash: ./build. Sh: /bin/bash^m: bad interpreter: no that file or directory
Bash shell learning notes (V)
Visual conversion of nmap vulnerability scanning results
Sword finger offer (49): convert a string to an integer
菜鸟看源码之ArrayDeque
pytest pytest. Ini configuration case grouping case skipping
Multipartfil to file
20210807 1 c language program structure