物联网已经存在了一段时间,但目前人们感兴趣的爆炸是由于传感器价格的大幅下降以及几乎无处不在的连接。根据 IDC 的报告,到 2022 年,全球物联网技术支出将达到 1.2 万亿美元,在 2017-2022 年预测期内的复合年增长率为 13.6%。蓝牙技术广泛用于物联网的各种智能应用中,使用未经许可的工业、科学和医疗 (ISM) 频段的短波长无线电传输进行短距离连接 (长达 100m), 从 2400.0 到 2483.5 MHz.
蓝牙设备以多种模式从一台设备通信到另一台设备:
单播:源向多个目标发送和接收消息,建立一对一的设备通信
广播:源将消息发送到多个目标,建立一对多设备通信
组播(网状):多个源和目标建立多对多设备通信
BLE由蓝牙特别兴趣小组(SIG)销售。蓝牙 SIG 管理认证过程,任何使用蓝牙无线技术的产品都需要遵循该流程。所有这些产品都必须符合蓝牙 SIG 认证,并满足蓝牙许可协议和规范的要求。SIG拥有如下所示的徽标和“蓝牙”一词:
有关认证蓝牙产品的进一步流程,请访问蓝牙网站上的以下链接:
蓝牙协议和测试
BLE的集成级测试涉及广告数据的验证,握手过程(启动通信和协商传输参数),连接过程,绑定过程,分组数据格式。这可以通过两种方式实现:
与充当主设备的任何BLE设备连接以验证服务和数据交换
使用嗅探器应用程序进行通信之间的“间谍”
每个蓝牙设备都有一个唯一的 MAC 地址和时钟。主控控制时钟和跳频。
不同层的源和目标扮演着不同的角色,需要彻底验证本博客中讨论的UUT(被测单元 - 一个蓝牙设备充当扫描仪,另一个充当广告商)。以下是每个层中用于源和目标的同义词的术语:
源 | 目的地 | |
---|---|---|
链路层 | 主人 | 奴隶 |
差距 | 中央 | 外设 |
关贸总协定 | 客户 | 服务器 |
链路层
链路层是物理层和L2CAP层之间的层。它主要扮演广告,建立连接和发现服务的作用。下面的状态图描述了链路层的工作流:
待机:默认状态
广告:该设备定期在3个广告通道中发送广告事件(其余37个是数据通道),如下图所示。
扫描
有两种不同的扫描模式:
被动扫描 – 控制器仅支持数据接收,不支持传输。
主动扫描 – 传输扫描请求。扫描程序发出SCAN_REQ数据包,广告客户会SCAN_RSP数据包进行响应。
启动
扫描仪根据广告数据选择合适的广告商。如果广告客户发出连接机会信号,则扫描程序可以向广告客户发送连接请求。发送CONNECT_REQ数据包后,扫描程序将成为发起方。
连接
成功建立连接后,两个设备都处于“连接”状态。发起者成为主控者,广告商成为从属者。它们定期交换数据包,称为连接事件(此连接是握手,只有在握手成功后才会进行数据交换)。BLE连接维护一个Piconet网络结构,其中单个主设备与称为pico的从属设备协调连接事件。应用程序的数据传输速率从 200 到 2,100 kbps 不等。
BLE数据包构成了链路层的基本构建块。BLE分组数据格式可大致分为以下几类:
BLE有两种类型的数据包:
广告包 – 查找并连接到附近的设备
数据包 – 两个连接设备之间的数据传输
以下是根据协议数据单元 (PDU) 的不同广告数据包类型:
广告 | PDU |
---|---|
一般广告 – 扫描请求和连接请求 | ADV_IND |
直接广告 – 仅限连接请求 | ADV_DIRECT_IND |
可发现的广告 - 仅限扫描请求 | ADV_SCAN_IND |
不可连接 – 广播 | ADV_NONCONN_IND |
按照以下链接中的步骤设置北欧BLE嗅探器和Wireshark设置以进行数据包捕获:nRF_Sniffer_UserGuide_v2.2
以下是可以使用Wireshark数据包分析器验证的测试用例:
验证外围设备是否以明文形式播发<必需数据>
验证外围设备在播发且未连接时的广告算法。(广告算法包括广告事件的数量和它们之间的持续时间)
在握手期间验证外围设备的播发算法
验证 UUT 配对并绑定后的广告事件
通用访问配置文件 (GAP)
GAP定义了设备角色,广告模式和绑定程序。安全管理器,GAP的一部分可以根据系统的安全需求进行设计。“配对”和“粘合”过程通过GAP控制:
配对: 中央和外围设备交换经过身份验证和接受以建立连接的加密密钥。
粘 接: 来自配对过程的信息存储在设备上,以便不会重复配对过程,并且只要设备在附近,就会建立重新连接。
三种主要的配对方法是:
正常工作 – 加密密钥在中央和外围设备之间共享
密钥显示 – 随机密钥在一台设备上生成,其他设备需要输入相同
带外 – 这支持另一个用于共享密钥的 BLE 无线电
使用与上述相同的设置,以下是可以使用Wireshark数据包捕获进行验证的测试用例:
在数据包级别验证密钥交换配对过程
验证播发跃点序列
通用属性配置文件 (关贸总协定)
蓝牙设备充当 GATT 服务器或客户端。GATT 标识层次结构以组织服务、特征等属性。属性是分组数据,UUID(通用唯一标识符)是分配给每个属性的 16 字节。
服务包括收集满足特定功能所需的数据。特征包含用户数据。下面的流程显示了客户端和服务器之间的数据包通信:
按照以下链接安装 nRF 连接模拟器应用程序:nrFconnect应用程序
以下是可以使用 nRF Connect 应用程序验证的测试用例:
验证建立连接后可用于发现的服务
验证可用的服务,如设备信息服务 (UUID 0x180a),以获取制造商详细信息、硬件、固件和软件字符串数据、通用访问配置文件 (UUID 0x01800)、通用属性配置文件 (UUID 0x1801)
验证可用的自定义服务(未知服务,如下面的屏幕截图所示)
验证服务的特征以及为这些特征(如读取、写入等)启用的属性
使用数据读写功能验证发送和接收的定义数据
结论:
随着蓝牙低功耗的出现 (博美) 从版本 4.0, 现在它被广泛用于消费市场,因为消费市场的低能耗和低功耗需求(BLE是由蓝牙SIG发明和正式化的).为了帮助确保在这些新的低功耗设计中成功实施低功耗蓝牙,测试解决方案必须能够快速、经济高效地根据蓝牙标准进行必要的测试。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !