蓝牙核心规范(V5.2)6.0-深入详解之Uart传输层

简介: 蓝牙核心规范(V5.2)6.0-深入详解之Uart传输层

image.png

这个HCIUART传输层的目标是使在同一PCB上的两个UART之间的串行接口上使用蓝牙HCI成为可能。HCIUART传输层假定UART通信没有线路错误。


image.png


协议

传输层可通过UART发送五种HCI包,即HCI命令包、HCI事件包、HCIACL数据包、HCI同步数据包和HCIISO数据包。HCI命令数据包只能发送到蓝牙控制器,HCI事件数据包只能从蓝牙控制器发送,HCIACL/同步/ISO数据包可以从蓝牙控制器发送到蓝牙控制器发送。


HCI不提供区分这四种HCI数据包类型的能力。因此,如果HCI包通过公共物理接口发送,则必须根据下表2.1添加HCI包指示器。


HCI包指示器应在HCI包之前立即发送。所有四种HCI数据包都有一个长度字段,用于确定HCI数据包需要多少个字节。当接收到整个HCI包时,下一个HCI包需要下一个HCI包指示器。在UART传输层上,只允许HCI包指示器,后面跟着HCI包。


RS232设置

image.png


使用RTS/CTS的流量控制用于防止临时UART缓冲区溢出。它不应该用于HCI的流控制,因为HCI有自己的针对HCI命令、HCI事件和HCI数据的流控制机制。


如果CTS为1,则允许主机/控制器发送。


如果CTS为0,则不允许主机/控制器发送。


流量关闭响应时间定义了从将RTS设置为0到字节流实际停止的最大时间。


RS232信号应以零调制解调器的方式连接,即本地TXD应连接到远程RXD,而本地RTS应连接到远程CTS,反之亦然。


错误恢复

如果主机或控制器在通过RS232的通信中失去同步,则需要重置。同步丢失意味着检测到不正确的HCI包指示器,或者HCI包中的长度字段超出了范围。


如果UART同步在主机与控制器之间的通信中丢失,则控制器应发送一个HCI_Hardware_Error事件,告诉主机有关同步错误。然后,控制器将期望接收到来自主机的HCI_Reset命令,以执行重置。控制器还将使用从主机到控制器的字节流中的HCI_Reset命令来重新同步。


如果在控制器与主机之间的通信中UART同步丢失,则主机应发送HCI_Reset命令以重置控制器。然后,主机应该通过在从控制器到主机的字节流中寻找HCI_Reset命令的HCI_Command_Complete事件来重新同步。


目录
相关文章
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
2106 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
|
2月前
【通信协议讲解】单片机基础重点通信协议解析与总结之SPI(二)
【通信协议讲解】单片机基础重点通信协议解析与总结之SPI(二)
|
2月前
【通信协议讲解】单片机基础重点通信协议解析与总结之IIC(一)
【通信协议讲解】单片机基础重点通信协议解析与总结之IIC(一)
|
2月前
【通信协议讲解】单片机基础重点通信协议解析与总结之串口通信(三)
【通信协议讲解】单片机基础重点通信协议解析与总结之串口通信(三)
|
2月前
|
网络协议 数据格式
【通信协议讲解】单片机基础重点通信协议解析与总结之ModBus(五)
【通信协议讲解】单片机基础重点通信协议解析与总结之ModBus(五)
|
2月前
|
物联网 C#
【C#】简单的蓝牙通讯功能实现
【C#】简单的蓝牙通讯功能实现
54 0
|
存储 开发框架 前端开发
单片机与HC-05蓝牙模块通信
单片机与HC-05蓝牙模块通信
169 0
|
Linux API 芯片
USB2S可编程USB转串口适配器开发原理的通讯协议
USB2S可编程USB转串口适配器基于FTDI FT2232H芯片设计,对多种通讯协议的支持,包括UART,I2C,SMBus,1-Wire,SPI,CAN和PWM等。
USB2S可编程USB转串口适配器开发原理的通讯协议
|
XML 测试技术 网络安全
开发调试工具:可编程USB转IIC/I2C/SPI/UART适配器模块开发板
发个方便测试I2C、SPI、1Wire接口的工具模块 总的思路是通过USB或者UART接口发送一些协议字符串,由模块转换成上面几种接口的硬件时序电信号,实现与这几种接口芯片、设备的快速测试。