蓝牙模块测试那些事之从机测试

目录

一、测试目的

二、测试工具

三、测试项目

1、协议功能

2、波特率支持

3、发送间隔

4、丢包率

5、通信距离

6、通信回连测试

7、通信稳定性

8、兼容性测试

四、总结


        摘要:本文主要目的是在拿到一个蓝牙模块后,将其作为从机来对一些基本的软件功能进行测试,用以快速验证是否满足基本的使用需求和功能指标。针对测试的方法和测试的项目进行总结,作为对蓝牙模块从设备模式下的功能的一个初步评估。

一、测试目的

        1、快速验证蓝牙模块从机模式下的基本功能。

        2、初步评估蓝牙模块从机模式下通信参数指标是否满足软件功能需求。

        3、掌握蓝牙调试助手的使用方法。

        4、熟悉蓝牙模块从机相关测试方法。

        5、熟悉蓝牙模块相关设置命令和含义。


二、测试工具

硬件:

        1、蓝牙模块一个,后续需要根据蓝牙模块是单模还是双模进行针对性的协议测试。

        2、USB转串口线,用于连接蓝牙模块和PC端通信,设置命令和数据收发,当然蓝牙模块还有别的类型的接口,这里仅对串口蓝牙模块进行测试。

        3、手机一个或多个,用于连接上蓝牙模块后收发数据,可以使用多个品牌的手机,进行不同手机系统兼容性测试。

软件:

       1、PC端串口调试工具软件,用于收发从蓝牙模块串口的数据,如sscom,xcom,Secure CRT等。

        2、手机端蓝牙调试助手,用于和蓝牙模块连接后,通过手机蓝牙收发蓝牙模块的空中数据。根据用的蓝牙模块是单模还是双模选择,如BLE调试助手,SPP调试助手,调试全能王等。

关于蓝牙调试助手:

        1、针对不同协议进行测试时使用的蓝牙助手工具也不同,分别使用SPP蓝牙助手和BLE蓝牙助手。

        2、打开蓝牙调试助手,搜索蓝牙设备,找到需要测试的蓝牙模块进行连接。

        3、蓝牙服务相关

        连上之后,就会看到几个蓝牙服务,实时日志里也会看到连接状态的提示;使用蓝牙对外提供服务的设备,需要有对应的服务功能。蓝牙服务分为服务、特性、属性三个部分:

(1)、服务(Service)

        每一个具体的蓝牙应用是由多个服务(Service)组成的,而每一个服务(Service)又是由多个特性(Characteristic)组成的。服务(Service) 可以理解为一个房间,当这个房间为空的时候他什么也不是,不能提供任何的服务功能,所以,房间里面至少需要有一个或多个家俱,不同的家俱有不同的功能,这就是特性(Characteristic)。不同的服务(Service)应该有不同的编号(UUID),用以区分不同的服务(Service)。

        比如蓝牙连上之后,可以看到这几个蓝牙服务,Generic Access、Generic Attribute、Device Information以及Unknown Service。

(2)、特性(Characteristic)

        特性(Characteristic) 是依附于某个服务(Service)的,就像前面说到房间里每样家俱可以提供与之相关的不同功能。同样,我们需要给每样家俱分配一个编号,这就是特性(Characteristic)的UUID。我们知道,每种家俱会有一个或多个不同的子功能,这个子功能就是特性(Characteristic)所包含的属性(Property) 。例如床单可以更换、床的高低可以调整。

        比如服务Generic Access的含义是“通用访问”,下面有特性:

        DeviceName,设备名。

        Appearance,说明自己是个什么设备(比如蓝牙鼠标)。

        Peripheral Preferred Connection Parameters,外设首选连接参数。

        服务Generic Attribute的含义是“通用属性”,下面有特性:

        ServiceChanged,服务改变。

(3)、属性(Property)

        通常的数据交互的属性有如下几个:

        Read:读属性,具有这个属性的特性是可读的,也就是说这个属性允许手机来读取一些信息。手机可以发送指令来读取某个具有读属性UUID的信息。

        Notify:通知属性, 具有这个属性的特性是可以发送通知的,也就是说具有这个属性的特性(Characteristic),蓝牙模块可以主动发送信息给手机。Notify是一直读取,Read是想读取的时候读取。

        Write:写属性, 具有这个属性的特性是可以接收写入数据的。通常手机发送数据给蓝牙模块就是通过这个属性完成的。这个属性在Write 完成后,会发送写入完成结果的反馈给手机,然后手机再可以写入下一包或处理后续业务,这个属性在写入一包数据后,需要等待应用层返回写入结果,速度比较慢。

        WriteWithout Response:写属性,从字面意思上看,只是写,不需要返回写的结果,这个属性的特点是不需要应用层返回,完全依靠协议层完成,速度快,但是写入速度超过协议处理速度的时候,会丢包。

        Indication:在手机收到蓝牙模块数据后会主动回一个应答,有确认机制,蓝牙模块收到应答后才继续发送下一个数据,保证数据正确到达,也起到了流控的作用。Notify无确认机制,不会保证数据发送是否到达。

(4)、UUID

        通用唯一标识符。是蓝牙组织联盟定义的用于区分蓝牙服务和特性的的标识符,总长度为128 Bit。UUID 用于标识蓝牙服务以及通讯特征访问属性,不同的蓝牙服务和属性使用不同的访问方法,就像人们语言交流一样,语言相同才能正常交流(找到正确的UUID,才能使用正确的功能)。

        简单理解UUID就是编号,对应不同服务的一个唯一的编号,用于区分不同的服务及服务特性的个体。服务和特性都有各自的UUID。他很像网络应用中的端口号,例如80是HTTP协议的端口,他提供的是HTTP服务。

        为了明确标准的蓝牙服务,蓝牙技术联盟SIG定义UUID共用了一个基本的UUID。总共128Bit,据蓝牙官网Assigned Numbers | Bluetooth® Technology Website里的文档Service Discovery,可以看到基本的UUID为:

        128Bit的UUID占用16个字节,在变成个传输的时候都很不方便,所以蓝牙联盟定义了一个UUID的基地址,允许在此基础上使用16Bit的UUID,进一步简化基本UUID:

        0x0000xxxx-0000-1000-8000-00805F9B34FB

        每一个蓝牙技术联盟定义的属性有一个唯一的16BitUUID,以代替上面的基本UUID的‘x’部分。使用16Bit的UUID便于记忆和操作,如SIG定义了“Device Information”的16BitUUID为0x180A。

        也就是说,不管是什么样的蓝牙设备,只要你提供设备信息(Device Information) 的服务功能,就必须使用”0x180A“的UUID号。这样,当应用程序需要读取这蓝牙设备的设备信息时,只需要找到对应UUID号为0x180A的服务,就可以获取到。

        技术联盟已定义好较多的标准服务UUID。根据蓝牙官网的16bit UUID文档,可以看到:

        同时,也允许厂商定义自己的UUID,以满足已定义服务外的功能实现。很多厂家的蓝牙串口模块(及某些服务)并没真正使用规定的标准UUID编号,而使用自己定义的UUID。


三、测试项目

1、协议功能

        蓝牙模块按照对蓝牙协议栈支持的数量可以分为单模模块(经典蓝牙或低功耗蓝牙)和双模模块(经典蓝牙和低功耗蓝牙),如经典蓝牙的数据传输基于SPP协议,低功耗蓝牙的数据传输基于BLE协议。同样针对不同协议进行测试时使用的蓝牙助手工具也不同,分别使用SPP蓝牙助手和BLE蓝牙助手,后续的测试项目中针对蓝牙模块支持的协议的不同,要使用对应的蓝牙助手进行连接以应对不同协议的测试。

2、波特率支持

        主要是选用蓝牙模块规格书中支持的蓝牙串口波特率来进行和手机通信测试,一般蓝牙模块都有对应的命令对蓝牙模块的波特率进行修改。根据项目的蓝牙模块串口通信要求,为蓝牙模块设置对应的波特率,从而满足单位时间内数据带宽的要求,这里的波特率指的是蓝牙模块上硬件串口的数据吞吐量,实际要看透传理论最大空中速度(如一定距离内,数据从模块发送至手机的空中速度为10KB/s),只要串口的输入速度小于等于数据在空中的发送速度,模块就没有字节限制。实际速度会根据软硬件差异、环境、距离等的不同而有所差异。

        为蓝牙模块设置好固定的波特率后,需要在PC端串口调试工具上设置好对应的波特率进行数据收发。

3、发送间隔

        在对应的蓝牙协议模式下,分别在手机蓝牙助手上设置数据自动发送的间隔和PC端串口工具的自动发送间隔,设置好后,可以测试手机给蓝牙模块发送或者蓝牙模块给手机发送,以及手机和蓝牙模块同时互相发送这种全双工通信的情况,主要是为了模拟在软件程序开发中实际通信时的每包数据的发送间隔,验证在设置的数据包时间间隔下的通信效率。当然,测试时需要设置好相互发送的每包数据长度。

        分别在PC端串口调试工具和蓝牙调试助手上设置好每包数据循环发送的时间间隔,观察互发互收的情况。

4、丢包率

        指测试中所丢失数据包数量占所发送数据的比率。手机蓝牙助手和PC端的串口工具都可以检测到数据包发送的数量和接收的数量,因此可以为蓝牙模块设定好固定的波特率,以及分别在蓝牙助手和PC端串口工具上设置需要发送的数据包长度,在一定通信距离和时间内测试手机给蓝牙模块发送或者蓝牙模块给手机发送,以及手机和蓝牙模块同时互相发送这种全双工通信的情况,观察双方收发数据包的个数是否有丢失。

        可以分别在PC端串口调试工具和蓝牙调试助手上观察相互收发的数据字节长度,来确认是否有数据丢包的情况。

5、通信距离

        测量通信距离是使用用手机离蓝牙模块一段距离后通信的数据是否正常,当然,这个和具体蓝牙模块设计的射频发射功率,接收灵敏度,收发环境,空中速率,无线电压以及天线的类型和位置有关系,同样可以选定不同的场景测试,如直线或非直线距离,是否穿墙及穿墙的层数等。一般可以先通过命令修改好蓝牙模块的射频功率,同时配置好数据发送间隔和包长等参数后,进行一个初步模拟实际使用时的通信距离测试。

        可以在蓝牙调试助手上看到扫描到的模块信号的强度,dbm 中文是分贝毫瓦,是一个表示无线功率的绝对值。它的数值是以1mw功率为基准的一个比值。计算公式如下:dbm=10log(p/1mw)

        为什么常见的信号强度都是负数的值呢?因为1mw = 0 dbm, 而随着信号在空间内传播,又受到障碍物的干扰,能量会衰减,所以常见的接收端显示的信号强度都为负值,表示比1mw弱。由此也可以得知,信号强度这个值越大,表示信号越好。比如-30dbm比-90dbm好。

        尝试分别在近距离和远距离测试蓝牙模块,可以在蓝牙调试助手上观察到信号强度的变化。

  

    

6、通信回连测试

        如果一个蓝牙设备已经与蓝牙中心设备连接上,那么当该蓝牙设备的断电重启,其依然会和配对过的中心主设备连接上,而不需要重新走配对的流程,这个过程叫做回连。

        当设备重启之后,蓝牙协议栈以及所有的上层的profile都要重新进行初始化,之前的配对信息是保存在文件bt_config.conf中,蓝牙起来之后,会去加载这个文件,去解析曾经配对过的设备,对于已经配对过的设备,并且配对信息保持完整,那么就会对该设备发起回连。手机连接蓝牙模块后,蓝牙模块断电再上电,在蓝牙调试助手上观察蓝牙模块回连状态。

7、通信稳定性

        需要说明的是这里的通信稳定性仅仅是在正常的环境下,对蓝牙模块进行一个基本综合测试。主要是进行一个长时间的手机和蓝牙模块通信数据收发测试,选定好波特率、包长、通信包发送时间间隔、通信距离等参数后,进行例如1h或更长时间的数据收发测试后,检查是否有丢包,误码,断连等异常情况发生。

8、兼容性测试

        安卓手机版本众多,各大安卓品牌都深度定制,略有差异。所以为了达到好的效果,需要使用不同品牌和型号的手机来测试蓝牙模块的数据传输,这也是有必要的。


四、总结

        最后用一张思维导图作为蓝牙模块从机的测试总结。


↓↓↓更多技术内容和书籍资料获取敬请关注“明解嵌入式”↓↓↓

  • 5
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: jdy31蓝牙模块测试app及其串口工具是一种为了方便用户测试和使用jdy31蓝牙模块而开发的应用程序。蓝牙模块是一种无线通信模块,可以与移动设备或其他蓝牙设备进行通信。 这款测试app具有简单易用的界面和功能,用户可以通过该应用程序与jdy31蓝牙模块进行连接和通信。通过连接到蓝牙模块,用户可以发送和接收数据,监测连接状态以及配置一些基本参数。测试app可以提供一些基本的蓝牙操作,如搜索附近的蓝牙设备、连接指定的设备和断开连接等。 而串口工具是该应用程序中的一个附加功能,它可以让用户通过串口与jdy31蓝牙模块进行通信。串口是一种用于数据传输的通信接口,可以实现数据的双向传输。通过串口工具,用户可以直接发送指令或者接收来自蓝牙模块的数据。串口工具具有一些常用的功能,如配置串口通信速率、发送和接收数据等。 这个测试app和串口工具可以帮助用户更好地了解和使用jdy31蓝牙模块。用户可以通过测试app快速连接到蓝牙模块,进行数据的交互和传输。而串口工具则提供了一种更底层的通信方式,使用户能够直接与蓝牙模块进行通信和调试。 总之,jdy31蓝牙模块测试app及其串口工具是一种为了方便用户测试和使用蓝牙模块而开发的应用软件,通过这些工具,用户可以更加轻松地进行蓝牙通信的测试和调试。 ### 回答2: jdy31是一款蓝牙模块,用于无线通信。为了方便测试和使用该模块,开发者们设计了一款名为“jdy31蓝牙模块测试app”的应用程序。这个app可以用于测试jdy31蓝牙模块的各种功能和性能。 首先,该测试app提供了连接和断开蓝牙设备的功能。用户可以通过蓝牙模块测试app搜索并连接jdy31蓝牙模块,实现与其他蓝牙设备的通信。当用户测试完毕后,可以断开与蓝牙模块的连接。 其次,该测试app还提供了蓝牙通信的功能。用户可以通过该app发送和接收数据,了解蓝牙模块与其他设备之间的数据传输情况。比如,用户可以在app的界面上输入一些文本信息,然后点击发送按钮将数据发送给蓝牙模块蓝牙模块再将数据传输给其他蓝牙设备。同时,用户也可以接收来自蓝牙设备的数据,显示在app的界面上。 此外,为了方便测试和调试,开发者们还设计了一款名为“串口工具”的软件。这款工具可以连接到jdy31蓝牙模块,并通过串口的形式进行数据的发送和接收。用户可以使用串口工具模拟其他设备与jdy31蓝牙模块之间的通信,便于测试和调试蓝牙模块的各种功能。 总之,jdy31蓝牙模块测试app及其串口工具是为了帮助用户测试和使用jdy31蓝牙模块而开发的应用软件。通过这些工具,用户可以方便地测试蓝牙模块的各种功能和性能,并实现与其他蓝牙设备的通信。 ### 回答3: jdy31蓝牙模块测试app及其串口工具是用于测试和配置jdy31蓝牙模块的软件工具。jdy31蓝牙模块是一种低功耗蓝牙模块,通常用于物联网设备中。该测试app和串口工具可以帮助用户方便地进行模块的调试和设置。 首先,该测试app提供了一个用户界面,可以通过蓝牙连接到jdy31蓝牙模块。用户可以通过测试app向模块发送指令,以测试模块的各项功能是否正常工作。例如,用户可以测试模块的数据传输速率、信号强度、连接稳定性等。测试app还可以显示模块的状态和收到的数据,方便用户进行调试和分析。 其次,串口工具是通过串口连接到jdy31蓝牙模块的一个应用程序。用户可以通过串口工具向模块发送AT指令来配置和控制模块的各种参数。例如,用户可以设置蓝牙模块的名称、UUID、传输速率等。串口工具还可以显示模块返回的响应消息,方便用户进行调试和设置。 总的来说,jdy31蓝牙模块测试app及其串口工具是一套可以帮助用户测试和配置jdy31蓝牙模块的软件工具。它们提供了方便的用户界面和功能,可以帮助用户进行模块的调试和设置,确保模块的正常工作和稳定性。无论是普通用户还是开发者,都可以通过这些工具轻松地操作和管理jdy31蓝牙模块

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sharemaker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值