蓝牙BQB认证的过程与方式(SIG)

2023-12-17 09:32
文章标签 认证 方式 过程 sig 蓝牙 bqb

本文主要是介绍蓝牙BQB认证的过程与方式(SIG),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

蓝牙BQB认证的过程与方式(SIG)

刚刚做完了车机产品的蓝牙认证,遇到了一些问题,特此整理记录下,分享给大家。

1 项目背景

项目立项初期,整机成本压力下,选择了国内的一家偏小的蓝牙模块供应商,供应商承诺会提供蓝牙模块的相关QDID,便于我司产品的通过蓝牙BQB认证。
实际在开发后期,启动BQB认证时,确认了模块的认证相关状态如下:

  1. 模块供应商对此模块未做完整的BQB认证,即不能提供整体的DID(End product DID);
  2. 此蓝牙模块为BT5.0 EDR模块,但前期仅提供了蓝牙芯片(cypress)Component QDID(包含了部分协议栈的测试结论)。

2 BQB认证的两种方式

与BQB第三方测试机构沟通,参考蓝牙模块的BQB认证方式,分两种情况:

  • 列名方式,无需第三方机构测试;
  • 非列名方式,需要第三方机构测试。
2.1 列名方式
  1. 首先,需要到SIG官网购买一个DID(如果是SIG年费会员,要4000美金一个DID,如果是免费会员,则需要8000美金);
  2. 获得蓝牙模组供应商的授权,注意:所采用的蓝牙模组需要过BQB认证,且认证方式必须为end product,或着为Controller Subsystem、Profile Subsystem、Host Subsystem三个子系统的组合,缺一不可
  3. 将购买的DID与蓝牙模组授权进行绑定(在SIG账户中进行操作);
  4. 以后每次用该蓝牙模组生产新产品,只需在此DID下列名即可,SIG就会分配一个QDID给每个产品(End product 的DID是永久有效的,Component的DID一般是三年有效期)。
  5. 需要注意的是,一般情况下,模组在做End product时,Profile,RF性能会和模块导入到整机后的Profile,RF性能不同,故严格意义上来说,也是建议对整机中,这两部分进行重新测试。然后结合模块的End product QDID进行整机列名。
2.2 非列名方式

当蓝牙模块厂商拿到的BQB认证不是end product,也不是Controller Subsystem、Profile Subsystem、Host Subsystem三个子系统的组合,例如,为Component,那么就不能采用上面列名的方式了。
此时我们就需要以车机为单位,拿到第三方实验室进行BQB的认证测试,一般情况下的测试项目是如下这些:

  1. 补充测试Component QDID中未包含的协议栈;
  2. 测试Profile;
  3. 测试RF性能。

最终此车机会作为End Product的类型,然后我们就可以基于此车机,做其他类似车机的Listing,这样也能做到花一份钱,在SIG官网上列名多个产品的操作。
相对于上面列名的方式,此方式首先得准备硬件设备去做测试,且除了支付SIG购买DID的费用,还需要支付第三方实验室一笔检测费用,一般是几万块,实验室会根据Profile和蓝牙版本进行调整。

3 项目实际操作

在实验室的帮助下,供应商提供了Host的QDID,基于此,蓝牙模块等同于做了实验室确认了车机产品相关协议栈的是完整通过测试的。
最终以我司的车机为单位测试了Profile,RF性能,然后综合供应商提供的蓝牙模块的Controller和Host 的QDID,完成了本次的蓝牙BQB测试。
实验室测试完成后,将报告提供给SIG的BQE1审核后,就可以进行蓝牙最终DID的列名操作了。

4 其他注意点

BQB认证的官方文档要求:BQB认证,必须以品牌商的名义去申请,审查的时候会进行关注。即产品产品的Brand所属哪家公司的,就得以这家公司的名义做BQB的Listing。

参考链接:

  1. BQB listing的查询网站
  2. Bluetooth 官网

  1. BQE: Bluetooth Qualification Expert ↩︎

这篇关于蓝牙BQB认证的过程与方式(SIG)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/503886

相关文章

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

Django HTTPResponse响应体中返回openpyxl生成的文件过程

《DjangoHTTPResponse响应体中返回openpyxl生成的文件过程》Django返回文件流时需通过Content-Disposition头指定编码后的文件名,使用openpyxl的sa... 目录Django返回文件流时使用指定文件名Django HTTPResponse响应体中返回openp

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a