1、背景介绍:

依据蓝牙技术规范core_v5.2,Classic Bluetooth(BR/EDR)经典蓝牙测试模式为Test Mode,是信令测试模式,Bluetooth Low Energy(BLE)低功耗蓝牙测试模式为Direct Test Mode(DTM),为非信令测试模式。DTM测试有两种方式实现,一是通过HCI,二是通过2-wire uart接口,在core_v5.2 Vol6 Part F有DTM这两种测试方式的介绍,如下图。

无论是通过HCI来进行DTM测试还是两线的方式,本质上都是通过上位机发一些指令来控制待测BLE芯片进行相关设置,比如设置信道、跳频模式、发射功率、调制方式以及数据包类型等等。

使用HCI的方式进行DTM测试时,用于连接上位机和BLE DUT之间的接口可以为UART、SPI、I2C等,常用的是UART,上位机一般为PC,在PC端通过上位机软件或者串口终端发送HCI命令来控制BLE DUT,比如 NXP test tool 12软件。但该软件测试命令有限,并不能完全满足某些测试项,比如HCI_LE_Transmitter_Test只有[v1]没有[V2],比如HCI_VENDOR_CONFIG_TX_POWER命令参数是错误的,需要修改相关的xml文件,所以完全依赖test tool 12软件进行HCI DTM测试是不现实的,但是当客户自己根据BLE协议写HCI命令时,test tool 12是一个很好的参考。另外有时候客户为了测试的效率与成本会使用MCU作为上位机,通过MCU 发送HCI命令来控制BLE DTU,进而完成相关DTM测试。

在BLUETOOTH CORE SPECIFICATION Version 5.2规范里翻来覆去查找相关HCI命令是非常繁琐的事情,本文主要介绍用HCI的方式来实现BLE DTM测试时常用的一些HCI测试命令以及这些命令的用法,不至于每次涉及做DTM HCI测试时都需要去查阅BLE相关规范。

2、常用HCI命令:

首先看一下HCI命令包格式,在BLUETOOTH CORE SPECIFICATION Version 5.2 Vol 4 Part E 5.4里HCI包格式如下定义:

关于具体OGF和OCF是如何确定的可以参考BLE 5.2规范,在各命令介绍章节的前部分有说明,在此直接参考NXP Test Tool 12里面已经设置好的就可以了,以下会结合NXP test tool 12对HCI命令包进行分析。

2.1、HCI_Reset命令

关于HCI_Reset命令BLUETOOTH CORE SPECIFICATION Version 5.2规范描述如下:

NXP Test Tool 12里该命令实例如下图:

该命令raw data为:01 03 0C 00,既直接通过串口发送16进制数01 03 0C 00也可以对HCI的控制,实现HCI reset,具体参数含义如上图。

2.2、HCI_LE_Transmitter_Test命令

在BLUETOOTH CORE SPECIFICATION Version 5.2里HCI_LE_Transmitter_Test命令有4个版本,支持的BLE版本各不相同,注意各版本是向下兼容的,如下图:

该命令各版本的参数说明在规范里也有描述,注意OCF的差异,如下:

NXP KW38支持的BLE最高版本为5.0,我们可以使用HCI_LE_Transmitter_Test[V2],但是NXP Test Tool 12里面默认是使用V1版本的,我们有客户要求使用V2版本,所以我们重点关注V2版本各参数如何设置。V1和V2最大区别在于V2版本可以设置phy,关于各参数说明如下:

在NXP Test Tool 12里该命令V1版使用方式如下图:

该V1版本命令raw data为:01 1E 20 03 13 ff 00 ,各命令参数说明如上图,我们需要修改该命令以满足V2,首先修改OCF 0x1E为0x34,然后需要修改Length为0x04,因为V2比V1多了一个phy这个参数,最后添加phy的值在此为04(实际为0x00--0x04之间的某个值都可)。最后该命令raw data实例如下:

01 34 20 04 13 ff 00 04

2.3、HCI_LE_Receiver_Test命令

在BLUETOOTH CORE SPECIFICATION Version 5.2里HCI_LE_Receiver_Test命令有3个版本,如下图:

各版本参数以及OCF如下图:

关于V2版本,我们主要关心的参数如下:

返回参数如下:

NXP Test Tool 12默认使用的V1版本,raw data为01 1D 20 01 03如下图:

若要修改为V2版本,则需要修改OCF 0x1D为0x33,修改Length为0x03,然后再加上PHY和Modulation_Index参数值。

实例如:

01 33 20 03 03 00

2.4、HCI_LE_Test_End命令

在BLUETOOTH CORE SPECIFICATION Version 5.2里HCI_LE_Test_End命令简介如下图:

OCF及参数描述如下图:

NXP Test Tool 12软件里HCI_LE_Test_End命令实例如下图:

Raw data为:01 1F 20 00

2.5、HCI_VENDOR_CONFIG_TX_POWER命令

该命令是NXP提供的,在BLE 5.2规范里没有,该命令主要目的是设置BLE RF发射功率。

HCI_VENDOR_CONFIG_TX_POWER举例:01 2D FD 04 XX XX XX XX

参数说明

(1)Tx_power(Frist byte XX):发射功率值,单位为dbm,最大为0x14。

(2)Channel(second byte XX):

(0x0)广播通道

(0x1)连接通道

(3)NotUsed(last two byte XXXX):未使用

返回参数:

status:0x00, Config TX power Command succeeded

0x01-0xFF, Config TX power command failed. See “Error Codes”defined in Bluetooth Specification (Volume 2, Part D)

可以更具NXP Test Tool 12软件里相关用法来使用,值得注意的是该命令配置参数是错误的,需要修改BLE HCI 5.0 1.6.1.xml文件。

BLE HCI 5.0 1.6.1.xml文件修改为如下配置:

<Vendor_Commands>

<GroupDesc>Vendor_Commands</GroupDesc>

<Cmd>

<CmdName>HCI_VENDOR_CONFIG_TX_POWER</CmdName>

<CmdDesc>HCI_VENDOR_CONFIG_TX_POWER Desc. OgB: FD OcB: 2D </CmdDesc>

<CmdSync>01</CmdSync>

<CmdHeader>3F 012D</CmdHeader>

<CmdParms>

<Parm>

<ParmName>tx_power</ParmName>

<ParmDesc>tx_power Desc</ParmDesc>

<ParmSize>1</ParmSize>

<ParmType>tInt</ParmType>

<ParmLastValue>00</ParmLastValue>

<ParmDefaultValue>00</ParmDefaultValue>

</Parm>

<Parm>

<ParmName>Channel</ParmName>

<ParmDesc>type Desc</ParmDesc>

<ParmSize>1</ParmSize>

<ParmType>tInt</ParmType>

<ParmLastValue>00</ParmLastValue>

<ParmDefaultValue>00</ParmDefaultValue>

</Parm>

<Parm>

<ParmName>NotUsed</ParmName>

<ParmDesc>Not Used</ParmDesc>

<ParmSize>2</ParmSize>

<ParmType>tInt</ParmType>

<ParmLastValue>00</ParmLastValue>

<ParmDefaultValue>00</ParmDefaultValue>

</Parm>

</CmdParms>

</Cmd>

</Vendor_Commands>

修改后,在NXP Test Tool 12使用如下图:

Raw data为:01 2D FD 04 14 01 ff ff

BLE DTM by HCI相关推荐

  1. 三 蓝牙低功耗(BLE)协议栈 之 HCI层

    一 HCI介绍 HCI (Host Controller interface), 为Host访问Controller提供一组标准的接口. 主要完成3个任务: Host通过HCI发送命令给Control ...

  2. 蓝牙解析(part5):BLE的广播通信

    转自Wowo大神的http://www.wowotech.net/bluetooth/ble_broadcast.html 1. 前言 大家都知道,相比传统蓝牙,蓝牙低功耗(BLE)最大的突破就是加大 ...

  3. 蓝牙协议栈(六、芯片组)

    在本章中,我们首先解释蓝牙芯片组如何物理连接,然后提供有关流行的蓝牙芯片组及其与BTstack一起使用的信息. HCI接口 主机(计算机或MCU)与主机控制器(实际蓝牙芯片组)之间的通信遵循主机控制器 ...

  4. Direct Test Mode

    一 Direct Test Mode 直接测试模式. DTM应用程序启用蓝牙规范5.0 vol 6, part F 中描述的DTM测试功能. DTM的目的是在物理层上测试射频的运行情况,例如: Tra ...

  5. 蓝牙协议分析_BLE广播通信相关的技术分析

    1. 前言 大家都知道,相比传统蓝牙,蓝牙低功耗(BLE)最大的突破就是加大了对广播通信(Advertising)的支持和利用.关于广播通信,通过"玩转BLE(1)_Eddystone be ...

  6. 蓝牙协议分析(5)_BLE广播通信相关的技术分析

    蓝牙协议分析(5)_BLE广播通信相关的技术分析 作者:wowo 发布于:2016-5-27 16:15 分类:蓝牙 1. 前言 大家都知道,相比传统蓝牙,蓝牙低功耗(BLE)最大的突破就是加大了对广 ...

  7. 【nordic】nordic connect SDK (NCS)开发实例

    文章目录 commit TBD 前言 环境 1.新SDK的简介 1.1 官网介绍 1.2 git仓库 1.3 文档中心 2.下载并安装开发环境 创建一个demo并编译烧录(Quick Start) 常 ...

  8. BLE主机控制器接口层(HCI)数据结构

    HCI上传输的5种数据: HCI Command packet : Host层发送给Controller的命令,只能由Host发出. HCI ACL Data packet: Controller上报 ...

  9. ble zephyr lbs样例,一上电进入广播状态,发送的HCI命令

    bt_send的函数. BT_HCI_OP_RESET                0x03 0x0c 00       BT_HCI_OP_READ_LOCAL_FEATURES          ...

  10. android ble不配对接收广播数据_蓝牙低功耗(BLE)学习笔记_0

    BLE的体系结构主要由三部分组成,分别是控制器(controller),主机(Host)和应用程序(Application),如下图所示: BLE体系结构 Application layer顾名思义主 ...

最新文章

  1. 核酸序列特征信息分析
  2. java计算机全部代码_(Java)谁有计算器的完整代码?
  3. mysql 应用程序优化
  4. import android.view.window;,尝试在空对象引用上调用虚拟方法‘android.view.Window$回调...
  5. 使用PDF.js实现前端和手机端网页预览PDF文件(可定制,支持本地文件、Base64编码和远程URL跨域方式)
  6. 每天定时打开某个网页_纯技术分享,不借助任何工具下载网页中的视频、音乐等~...
  7. 【毕业设计】JAVA医药管理系统设计(论文+源代码)
  8. 支持向量机的基本思想_支持向量机理论详细推导
  9. JQueryDOM之属性操作
  10. VALSE学习(十六): Visual Question Generation and Answering-视觉问题生成和视觉问题
  11. 突然想起今天的博客汇报没写
  12. 纪念工作一周年,也纪念我的blog开张。
  13. 屏幕取色器设计思路及源码
  14. CRMPM如何帮助企业创造最优销售绩效
  15. 老服务器上安装windows server 2016
  16. win10开机显示无网络连接服务器,Win10开机无法连接网络
  17. python 一张图画多条线_Python画多条线在一个图里
  18. 数据可视化分析教学课件——FineBI实验册节选====门店分析
  19. 扎拉赞恩 服务器 微信群,魔兽世界怀旧服回音群岛扎拉赞恩任务怎么做?WOW怀旧服扎拉赞恩在哪里?...
  20. 学计算机女生网名,女生网名大全好听唯美的

热门文章

  1. 侏罗纪开发实施工作管理平台
  2. 如何将mov转换成mp4?详细的步骤分享
  3. Matplotlib绘图工具
  4. 医药、药品、医疗器械类网站备案需要什么材料?
  5. mysql删除某天前的数据
  6. 时序逻辑领域的开拓者
  7. 画出属于你的最漂亮的数字时序图—WaveDrom
  8. 基于html的项目的选题报告,团队项目-选题报告
  9. 怎样修改一篇简历 简历怎么写
  10. 苹果系统版本依次顺序_苹果手机机型排行顺序