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