全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > RF/无线技术 >

BLE Controller相关介绍并答疑

时间:2022-09-29 11:40

人气:

作者:admin

标签: 多连接  BLE  controller 

导读:BLE Controller相关介绍并答疑-本系列的几篇文章主要讲述Bluetooth LE Multiple Connection。此SDK是Telink BLE多连接应用的SDK,Telink多连接SDK还提供标准的 BLE Controller,通过标准HCI与其他BLE Host配合。...

本系列的几篇文章主要讲述"Bluetooth LE Multiple Connection"。此SDK是Telink BLE多连接应用的SDK,Telink多连接SDK还提供标准的 BLE Controller,通过标准HCI与其他BLE Host配合。接下来,小编将带您详细了解BLE Controller相关介绍并答疑。

1Telink BLE 多连接 HCI

BLE Stack由Controller和Host两部分组成。BLE Stack的实现方式有两种,一种是Host和Controller实现在一个SOC上的单芯片方案,一种是Host和Controller实现在两个芯片上的多芯片方案。通常HCI出现在多芯片实现的BLE Stack中。当然在单芯片BLE Stack方案中也可能有HCI,只是此时的HCI传输介质是RAM

ed81b7b6-3eea-11ed-9e49-dac502259ad0.png

1.1 Host 和 Controller 数据交互

Host可以通过HCI下发HCI CMD和HCI ACL到Controller;Controller可以通过HCI上报HCI Event和HCI ACL。

ed9cf24c-3eea-11ed-9e49-dac502259ad0.png

下面以Host控制Controller发送adv并与Master建立connection的例子讲解HCI的使用。

初始时Host发送HCI_LE_Set_Adv_Param_Cmd设置ADV参数,Controller执行完Cmd以后上报HCI_Command_Complete_Event到Host;

Host紧接着发送HCI_LE_Set_Adv_Data_Cmd和HCI_LE_Set_Scan_Rsp_Data来配置ADV数据和Scan Rsp Data;

Host下发HCI_LE_Set_Adv_Enable_Cmd以使能ADV,controller将在37/38/39号通道上发送ADV。此时手机可以收到controller发送的ADV,并可以与之建立connection。

本地设备收到手机的Connection_Req以后,connection创建完成,controller会上报HCI_LE_Connection_Complete_Event到Host,之后可以交互数据。

edb40f0e-3eea-11ed-9e49-dac502259ad0.png

edcd11e8-3eea-11ed-9e49-dac502259ad0.png

1.2Telink BLE多连接Controller Block Diagram

下图是Telink BLE多连接 Controller软件架构。Telink BLE 多连接Controller是按照标准BLE Spec实现的,HCI是由HCI Transport和HCI Protocol处理两部分构成。

ede006cc-3eea-11ed-9e49-dac502259ad0.png

目前Telink BLE多连接Controller支持BLE 5.0全功能feature,具体细节如下表。

edff4f78-3eea-11ed-9e49-dac502259ad0.png

2Telink BLE 多连接 HCI Transport

HCI Transport是Host和Controller之间交换数据的物理接口,这种物理接口可以是UARTUSB等。

Telink BLE多连接Controller目前只支持UART接口的HCI Transport,其他接口的HCI Transport后面可以根据需要扩展。

eedc72fe-3eea-11ed-9e49-dac502259ad0.png

2.1Telink BLE 多连接 HCI Transport 软件架构

UART接口的HCI Transport有两种协议(H4和H5 )可以选择。这两种协议Telink 多连接BLE Controller都是支持的。

Telink BLE多连接 HCI Transport主要由两部分组成:HCI Transport Protocol实现层和HCI Transport 控制管理层。目前HCI Transport Protocol实现了两种协议,H4和H5,可以根据需求添加其他协议的实现。HCI Transport Control实现了对HCI Transport各种协议的管理和控制,同时也负责与HCI对接,它提供用户使用HCI Transport所需要的一切,因此,使用HCI Transport的用户只需要关注该层即可。

eef437cc-3eea-11ed-9e49-dac502259ad0.png

(1) H4 Protocol

H4协议PDU由HCI Type Indicator和Payload构成;HCI Type Indicator指明了HCI Packet Type;Payload是与HCI Type Indicator对应的HCI Protocol,如:HCI CMD、HCI ACL、HCI Event等。

H4 PDU将在UART接口上传输。

ef13e54a-3eea-11ed-9e49-dac502259ad0.png

ef2e3846-3eea-11ed-9e49-dac502259ad0.png

(2) H5 Protocol

H5又称3wire UART。H5支持软件流控和重传机制。相较H4来说,H5具有更高的可靠性,但是其传输效率没有H4高,且消耗的资源比H4大。

H5 PDU(Protocol Data Unit)在传输之前需要被编码,在解析H5 PDU之前需要解码,H5 PDU的编解码由Slip Layer完成。

Telink H5 Protocol软件架构如下图。UART用于数据的收发;Slip层实现了H5 PDU的编码器和解码器,负责H5 PDU的编码和解码;H5 Handler实现了H5 PDU的解析和处理、H5 Link的创建以及流量控制和重传控制。

ef4e011c-3eea-11ed-9e49-dac502259ad0.png

3Telink BLE 多连接 Controller 常见问答

1、单连接SDK和多连接SDK是否都支持Controller工程?

单连接Controller工程支持BLE 4.2,并且后面不再升级

多连接Controller工程支持BLE 5.0,后面将不断升级

2、是否支持BT HCI CMD?

Telink 多连接BLE Controller HCI支持spec规定的LE 相关的HCI CMD,不支持BT相关HCI CMD

如果用户需要支持BT HCI CMD,我们可以做适配处理

3、BLE Controller是否支持低功耗?

默认不支持低功耗

如果需要支持低功耗需要和Host配合开发;

Host和Controller之间需要有GPIO唤醒源

Host有数据发送时,通过GPIO首先唤醒Controller,然后通过UART发送HCI CMD和HCI ACL

如果Controller有数据需要发送给Host也通过GPIO唤醒源唤醒Host,然后发送数据

需要注意的是:我们芯片的不支持UART唤醒的,所以需要通过GPIO唤醒,并且芯片从sleep起来需要一定恢复时间, 因此Host唤醒Controller以后需要等一会才能发送数据。

ef767264-3eea-11ed-9e49-dac502259ad0.png

4、Controller丢包问题

如遇Host下发的数据包,Controller HCI有丢包现象,大概率是UART丢包了,因为正常情况Host到Controller是有流控的,不会出现丢包现象,除非Host没有对流控做处理;

如遇Controller接收到了remote数据,但是上报给host时丢包了,这个大概率是HCI Tx FIFO 不够用或者UART Baudrate太小导致,通常调大UART Baudrate和调大HCI Tx FIFO number即可。建议UART Baudrate至少1M。

5、HCI Vendor OGF

HCI Vendor OGF是HCI特意留给用户自定义使用的一个Opcode组,stack默认是空,但是可以根据用户需求添加;比如用户可能需要添加Set_Tx_Power,Read_Tx_Power,Set_Freq_Offset,Read_Freq_Offset, Set_BD_ADDR等。

这个地方无法做成通用的,因为不同用户要求的cmd格式可能不一样。

6、Controller是否支持Device Firmware Update(DFU)?

Controller目前是支持基于UART和HCI协议的DFU功能的,这个DFU功能做过大量测试,功能稳定。

这套DFU在Telink多连接BLE Controller和BT Controller相关项目中都有使用。

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信