BLE_HCI_UART

Host Controller Interface(Transport Layer)

UART Transport Layer

GENERAL

HCI UART传输层的目标,是让同一个PCB上的两个UART的接口可以使用蓝牙的HCI。HCI UART传输层设定UART通信不受线错误影响。
在这里插入图片描述

PROTOCOL(协议)

有四种HCI数据包可以通过UART传输层发送:HCI Command packet、HCI Event packet、HCI ACL Data packet和HCI Synchronous Data packet。HCI Command packets仅用于发送个BLE Controller,HCI Event packets仅用于发送给BLE Host、HCI ACL和Synchronous Data packet可以双向发送。

HCI 不能提供区分四种HCI数据包类型的能力。因此,如果HCI数据包通过一个通用的物理接口发送,那么一个HCI数据包类型标志按下表所示:在这里插入图片描述

HCI数据包类型标志应该在HCI数据包之前立即发送。所有的四种HCI数据包都有一个长度域,用来确定数据包的长度。当一个完整的HCI数据包收到时,下一个数据包的类型标志是表示下一个数据包的。通过UART传输层,HCI数据包必须跟在HCI数据包类型标志之后。

RS232 SETTINGS

HCI UART传输层,RS232设置如下:
在这里插入图片描述

RTS/CTS流控制用于防止UART缓存被覆盖。因为HCI有自己的流控制机制,所以RTS/CTS流控制不适用于HCI的流控制。

如果CTS为1,那么HOST/Controller允许发送。

如果CTS为0,那么HOST/Controller不允许发送。

流关断响应时间定义了,从RTS设置为0开始的最大时间,直到数据流真正停止。

RS232信号连接没有任何常见调制解调,也就是说TXD与RXD直接链接。

ERROR RECOVERY

如果Host或者Controller在通信中失去了同步,那么需要重启。同步的丢失,意味着一个错误的HCI数据包类型标志检测到了,或者长度域超出了HCI数据包的范围。

如果UART同步在从Host到Controller的通信中丢失,那么Controller应该发送HCI_Hardware_Error事件,告诉Host相关的错误。Controller会希望收到来自Host的HCI_Reset命令,以进行重启。Controller将在从Host到Controller的重新同步的数据流中,使用HCI_Reset命令。

如果UART同步在从Controller到Host的通信中丢失,那么Host应该发送HCI_RSET命令,目的是重启Controller。在从Controller到Host的数据流中,Host应该通过查找HCI_Command_Complete事件进行重新同步。

中,Host应该通过查找HCI_Command_Complete事件进行重新同步。

参考文献

《Core_v5.1》BLE5.1 spec.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值