当前文档版本为 NDK-v0.9.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

BLE HCI

1 功能概述

ble_hci 例程演示了如何通过 HCI 接口和磐启 BLE Controller 通讯。该工程适合BLE跑在多SOC的应用场景,例如BLE Host 跑在一个高性能的 SOC 上,BLE Controller 跑在磐启 MCU 上。

ble_hci 支持 HCI H4 协议

2 环境要求

  • board: pan107x evb

  • uart0: 用来显示串口log(波特率921600,选项8n1

  • 串口调试助手: 用于发送和接收 HCI 协议数据, 或者其他支持 HCI 协议的工具都可以

3 编译和烧录

例程位置:<home>\nimble\samples\bluetooth\ble_hci\keil_107x

使用keil打开项目并进行编译和烧录。

4 配置说明

ble_hci工程 使用了硬件UART1,UART1默认配置如下

 baudrate: 115200bps
 TX pin: P12
 RX pin: P24
 CTS pin: P02
 RTS pin: P11

默认情况下 UART 流控是使能的,用户可以到工程的 sdk_config.h 中配置使能或者失能 UART 流控。其他的配置如baudrate,BLE controller参数,log 等都可以到 sdk_config.h 中找到配置选项

5 演示说明

  1. 编译工程,烧录固件,设备上电,会输出log。

  2. 打开串口调试助手,连接HCI UART,以 Hex 格式发送 HCI 协议数据,我们以启动 ble scan 为例来演示 ble_hci工程的使用

    涉及到的 HCI cmd 如下(其他HCI 协议包可以参看bluetooth spec):

    (1) HCI Reset:		01 03 0c 00
    (2) HCI_LeSetScanParam:   01 0b 20 07 01 20 00 20 00 00 00
    (3) HCI_LeScanEnable(1):  01 0c 20 02 01 00
    (4) HCI_LeScanEnable(0):  01 0c 20 02 00 00
    

依次点击下图中的发送button,发送相应的HCI cmd,HCI cmd发送到 ble controller 后,ble controller 会回复相应的 HCI Event。

  • 当”HCI_LeScanEnable(1)” 命令发送以后,ble controller 将启动 ble scan,并将 scan 到的 adv 数据上报给Host(这里的host就是串口调试助手)。

  • 当”HCI_LeScanEnable(0)” 命令发送以后,ble controller将退出 ble scan, 不会有adv 数据上报。

测试效果如下:

images

HCI 数据交互

5 RAM/Flash资源使用情况

PAN107x:

RAM Size:31.99 k
Flash Size:  89.05k