CSR8670项目实战:BlueDongle 蓝牙音频测试dongle

Posted NiceBT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSR8670项目实战:BlueDongle 蓝牙音频测试dongle相关的知识,希望对你有一定的参考价值。

为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板【思度科技CSR开发板】

技术交流QQ群号:743434463
开发板会员QQ群号:725398389(凭订单号入群,赠PPT、项目源码、视频教程)
——————————正文分割线———————————–

1. 引言

蓝牙音频产品的出厂测试是产品出货前的一项重要测试内容,需要专门的测试仪器对产品的基本功能进行测试,以满足产线的整体效率。一般生产型的企业不愿意在测试领域投入资源进行研发,其更加愿意从测试仪器公司采购或租赁测试设备,快速组建产线形成生产能力。

测试仪器厂家根据其自身研发能力分为两种类型。一种是提供通用测试解决方案,可以为客户提供通用的、基础的、稳定可靠的测试服务,但方案难以根据客户的需求定制,整体部署成本也较高。另一种是根据客户需求定制测试解决方案,优点是方案可以实现较好的性价比,缺点是需要为每个客户单独开发,维护成本较高。

本项目中给出一种基于CSR8670方案的蓝牙音频测试dongle,能够在满足通用测试需求的基础上,为客户定制测试功能。

2. 主要功能

  • 支持USB音源、模拟接口音源
  • 支持USB HID控制接口(或串口)
  • 支持音乐播放和语音通话
  • 支持的控制命令列表
序号名称简述
1设备复位设备复位到初始状态
2断开连接与被测设备断开连接,清除配对信息
3音量+增大被测设备当前音量
4音量-减小被测设备当前音量
5自动搜索自动搜索附近可配对设备,列出设备信息
6自动配对自动搜索附近可配对设备,与信号最强的设备配对
7HFP模式被测设备进入HFP模式,可以进行免提通话测试
8A2DP模式被测设备后进入A2DP模式,可以进行音乐播放测试
9模拟来电铃声模拟向被测设备呼叫
10模拟接听HFP主机接听
11模拟挂断HFP主机挂断
12MAC地址配对与特定MAC地址的设备配对
13读取设备名称读取已配对设备的名称
14读取设备地址读取已配对设备的MAC地址
15读取设备音量读取已配对设备的当前音量
16读取RSSI值读取已配对设备的当前RSSI值
17读取蓝牙状态读取蓝牙连接状态
18显示按键显示被测设备按下的按键信息
19切换音源在设备的USB和AUX音源之间切换
20SPP测试与被测设备建立SPP连接,发送定制指令

系统框图如下:

3. 项目难点

项目难点主要集中在打通PC端的User GUI到CSR8670 USB HID的控制链路。由于User GUI与平台之间的通信是串口协议,不能直接调用USB HID协议与CSR8670通信,需要在两者之间进行协议转换,可以用C调用windows的API即可。

需要注意的是CSR8670原生例程的USB HID描述符不能满足传输自定义USB HID数据块的需求,推荐修改如下:

/* HID Report Descriptor - HID Control Device */
static const uint8 report_descriptor_hid_control[] = 
   
    0x06, 0xa0, 0xff,            /* USAGE_PAGE (Vendor-defined 0xFFA0) */
    0x09, 0x01,                  /* USAGE (Vendor-defined 0x0001) */
    0xa1, 0x01,                  /* COLLECTION (Application) */  
    0x85, 0x01,                  /*   REPORT_ID (1) */  
    0x09, 0x01,                  /*   USAGE (Vendor-defined 0x0001) */
    0x15, 0x00,                  /*   LOGICAL_MINIMUM (0) */
    0x26, 0xff, 0x00,            /*   LOGICAL_MAXIMUM (255) */
    0x75, 0x08,                  /*   REPORT_SIZE (8) */
    0x95, (REPORT_REQ_SIZE&0xff),  /*   REPORT_COUNT */
    0x91, 0x02,                    /*   OUTPUT (Data,Var,Abs) */
    0x85, 0x02,                  /*   REPORT_ID (2) */  
    0x09, 0x02,                  /* USAGE (Vendor-defined 0x0002) */
    0x75, 0x08,                    /*   REPORT_SIZE (8) */
    0x95, (REPORT_RSP_SIZE&0xff),  /*   REPORT_COUNT */
    0x81, 0x02,                    /*   INPUT (Data,Var,Abs) */
    0xc0                           /* END_COLLECTION */
;

其中report id 1和report id 2分别对应PC->CSR8670和CSR8670->PC这两条链路。

开发过程中客户提出需要dongle能够通过SPP协议发送特定命令给被测设备,使其进入特殊的工作模式,此时就需要dongle能够与被测设备建立SPP连接,有关SPP server和client可参考我的另一篇博文CSR867x学习笔记:SPP Server and Client。

4. 总结

蓝牙音频测试dongle的整体方案并不复杂,难点在于解决测试过程中遇到的平台兼容性问题,毕竟生产型的企业接到的订单可能涉及到各种蓝牙方案,这就需要蓝牙测试仪的开发厂商能够解决适配问题,长期积累下来的经验是这类公司的核心资产。并且此产品的需求是持续增长并有更新换代的需求,从中长期看是一个可以在细分市场持续盈利的产品。

开发此产品过程中,深刻体会到打磨产品非一日之功,同时接触到一些中国制造企业经营者的浮躁、短视,以及对研发投入的吝啬、对知识产权的不尊重。期望政府和行业能够不断规范和完善整个市场的运作,让有德的企业持续高速发展,造福整个行业。

另外也要反思一下,合作不是称兄道弟,也不应打感情牌,服务内容和验收标准,白纸黑字写在合同上,避免产生责权不清和事后扯皮。

以上是关于CSR8670项目实战:BlueDongle 蓝牙音频测试dongle的主要内容,如果未能解决你的问题,请参考以下文章

CSR8670项目实战:BluePager蓝牙寻呼机

CSR8670项目实战:BluePager蓝牙寻呼机

CSR8670项目实战:BluePager蓝牙寻呼机

CSR8670项目实战:BlueSiri轻智能蓝牙音箱

CSR8670项目实战:4人组网蓝牙对讲耳机

CSR8670项目实战:4人组网蓝牙对讲耳机