TWS和TWS+模式有什么不同?
- Qualcomm TrueWirelessStereo(TWS)---- 与A2DP源兼容、听筒通过主连接将立体声音频发送到连接的耳塞、手机只能看到1个蓝牙“耳机”
- Qualcomm TrueWirelessStereo Plus(TWS +)----- 与未来基于Qualcomm的移动手机兼容、手机连接到两个耳塞、左右音频分开发送
什么是TWS?
是True Wireless Stereo的缩写,表示真正无线立体声
TWS运用什么技术实现?
TWS技术的实现是基于芯片技术的发展,从技术上来说是指手机通过连接主音箱,再由主音箱通过蓝牙无线方式连接从音箱,实现真正的蓝牙左右声道无线分离使用。不连接从音箱时,主音箱回到单声道音质。
TWS模式如何区分左右耳塞?
- 如果蓝牙地址的最低有效位是偶数(even)为右耳机,例如00025B00FF0C
- 如果蓝牙地址的最低有效位是奇数(odd)为左耳机,例如00025B00FF0D
区分左右耳塞有什么作用?
来确定TWS模式下立体声流从哪个音频通道输出(与主从没关系吗?),在与设备配对时,设备对左右耳塞(与主从相关吧)处理方式不同。
左右耳塞之间如何配对?
- 左耳塞上电或收到用户的配对请求后进入查询扫描模式,以便被查询到
- 右耳塞上电或收到用户的配对请求后进入查询模式,会查询到已经进入查询扫描模式的左耳塞
- 左右耳塞进行配对,并保存配对密匙
左右耳塞之间如何进行连接?
- 左耳塞上电后进入寻呼扫描模式,以便被寻呼到
- 右耳塞上电后进入寻呼模式,会向已经进入寻呼扫描模式的左耳塞发起连接请求
- 左耳塞响应连接请求,完成连接
左右耳塞的上电的先后顺序对他们之间的配对和连接有什么影响?
左右耳塞的上电顺序对配对和连接没有太大的影响,但是左耳塞作为从设备,先上电会节约配对和连接的时间,防止超时造成配对和连接操作失败
TWS模式下,耳塞如何完成与手机配对连接?
- 左右耳塞配对连接完成后,右耳塞进入查询扫描状态,以便被查询到
- 用户启动手机,使其进入查询状态,查询处于查询扫描状态的右耳塞
- 手机主动完成与右耳塞的配对,右耳塞保存配对密匙
- 手机主动完成与右耳塞的连接
- 右耳塞向左耳塞发送手机的蓝牙地址
- 左耳塞根据手机蓝牙地址向手机发送配对请求
- 用户接受配对请求
TWS+模式下,耳塞如何完成与手机配对连接?
- 左右耳塞配对连接完成后,右耳塞进入查询扫描状态,以便被查询到
- 用户启动手机,使其进入查询状态,查询处于查询扫描状态的右耳塞
- 手机主动完成与右耳塞的配对,右耳塞保存配对密匙
- 手机自动完成与右耳塞的连接,计算并保存EBL配对密匙,同时将数据发送到左耳塞
- 左耳塞接收并保存EBL配对密匙
- 左耳塞主动完成与手机的连接
TWS模式与TWS+模式下,耳塞与手机配对连接有什么不同?
- TWS模式下,在右耳塞为主设备的情况下,只需要右耳塞与手机连接就可以。左耳塞根据右耳塞发送来的手机蓝牙地址,向手机发送配对请求,用户响应配对请求就可以
- TWS+模式下,左右耳塞都需要与手机连接,左耳塞接收并保存右耳塞发送来EBL配对密匙后,自动完成与手机的连接
如何区分主从耳塞?
预设的机制(怎样的机制?),一般分配后就会固定下来哪个耳机是主,哪个耳机是次。在TWS模式下,主耳塞先与手机进行连接和配对。
有哪些耳塞应用模块,是什么含义?
- 连接管理器---管理ACL级别连接
- 设备管理---管理当前状态的信息,包括配对/连接的设备。
- 扫描管理器---管理寻呼和查询扫描
- 初始化---管理应用程序中所有模块和任务的初始化
- 链接策略---根据预定义放入电量配置表,管理设备何时进入蓝牙呼吸/活动模式
- 测试---提供可用于使用pydbg控制设备的测试API集合
- 配对---管理对等设备和手机配对状态
- 应用程序状态机--根据事件和其他任务的指示管理整个设备状态机,是规则引擎的接口。
- 连接规则---根据设备的当前状态和收到的新事件确定要采取的操作
- Kymera /音频链---管理xml链描述中定义的音频链,负责加载DSP音频链和配置运营商。
- UI 按钮--管理来自xml定义按钮配置的用户输入, 管理LED任务并播放音调。
- 发光二极管---根据应用程序状态机的请求管理设备的LED状态
- 物理状态--根据充电器,接近传感器和加速度计的输入管理设备当前的物理状态
- 加速度计---管理支持的加速度计的接口,以检测设备是否处于运动状态。
- 距离传感器---将接口管理到支持的接近传感器,以检测设备是否在耳中。
- HFP---管理与手机的HFP配置文件连接, 注册HFP库
- AV / A2DP / AVRCP---管理与远程设备的AVRCP和A2DP配置文件连接,为每个设备创建单独的任务以处理A2DP和AVRCP连接
- 手机信号---通过AVRCP或HFP管理发送到连接手机的任何信令。
- 对等信号---管理连接对等设备的供应商AVRCP命令的任何信令
- 充电器---管理片上充电器
- 升级---管理OTA升级功能
- GAIA---管理GAIA连接,在升级过程使用。
如何定义几种物理状态机?
- IN_CASE/OUT_CASE----用充电器检测,如果连接充电器则是 IN_CASE,否则是OUT_CASE。
- IN_EAR/OUT_OF_EAR---用距离传感器检测,如果放在耳朵里是IN_EARE,否则是OUT_OF_EAR,如果没有距离传感器可用,当不是IN_CASE时,就认为是IN_EAR。
- OUT_OF_EAR/OUT_OF_EAR_AT_REST--- 用加速度传感器于检测,如果在移动中是OUT_OF_EAR,否则是OUT_OF_EAR_AT_REST, 如果没有可用的加速度计,当不是IN_CASE或IN_EAR时,则视为OUT_OF_EAR。
几种物理状态机之间如何转换?
耳塞在不同状态下具有什么特性?
- IN_CASE---所有按钮输入被禁用,断开连接到手机所有链路。
- OUT_CASE---如果耳塞之前配对过,则尝试连接到最近一次配对的手机,如果之前没有配对,则进入配对模式
- IN_EAR---用作麦克风或扬声器,LED已禁用
- OUT_OF_EAR---A2DP在2秒后自动暂停,SCO在2秒后自动转移,定时器在5分钟后启用休眠模式。
rule(规则)包含哪几个要素?
- 事件event
- 评估规则的函数funcation
- 评估的结果为RUN则发送消息message,
- 消息传递会触发规则相关联的动作action
Rules engine(规则引擎)如何进行工作?
- 接收到rule_event事件后,先判断事件评估函数是否完成,
- 如果已经完成,则将事件标记为完成,并清除事件,
- 如果没完成,执行评估函数
- 如果评估结果标记为RULE_ACTION_COMPLETE表示已完成,则执行步骤2
- 如果评估结果标记为RULE_ACTION_IGNORE表示忽略与当前状态无关的规则,则执行步骤2
- 如果评估结果标记为RULE_ACTION_RUN表示运行所需的规则操作,则执行步骤8
- 如果评估结果标记为RULE_ACTION_DEFER表示未完成对等设备同步,暂时忽略该规则, 在对等设备同步完成时运行,然后,执行步骤8
- 传递消息
左右耳塞对等设备如何进行消息同步?
- 使用“对等同步”消息共享信息
- 使用AVRCP 在耳塞之间交换消息。
对等同步消息包有哪些部分组成?
- BATTERY---耳塞的电池电量
- ADDR_TYPE---一个字节表示所遵循地址类型的一个字节
- LAP,UAP,NAP---与耳塞配对的手机地址
- TWS_VERSION---TWS版本
- STATE---耳塞状态(in case,out of case,a2dp_streaming,RulesInProgress ......)
- PAIRING---表示是否与手机完成配对或是否正在进行配对的位掩码。
- TX_SEQ---数据包的TX序列号
- RX_SEQ---数据包的RX序列号
对等同步消息有哪些状态?
- RECEIVED(位掩码0x01)---收到了对等同步信息
- TRANSMITTED(位掩码0x02)---已将信息传输给对等方
- COMPLETE(位掩码0x03)----收到对等方响应的信息,运行Rules engine并执行延迟规则。
耳机如何控制选择哪个麦克风?
使用芯片厂商提供的AT指令集来控制role\state\microphone eligibility\battery level等信息
使用HFP标准AT + VGM命令如何实现麦克风切换?
- AT + VGM> 0将被发送到选定的耳塞
- AT + VGM = 0将被发送到未选择的耳塞