星期日, 20 12月 2020 12:05

炬芯(Actions) ATB1103的蓝牙语音遥控器方案

时下智能语音交互市场火热,越来越多的设备都开始支持远场AI语音交互。
例如:智能音箱,智能电视等等。但这类产品的识别率和误唤醒率还需再不断的优化提升,以至于日常生活中人们还是离不开各式各样的遥控器。而蓝牙语音遥控器这一产品,作为远场语音交互的一个近场配件,也搭上了这趟语音交互的快速列车,成长速度令人惊讶。基于Actions炬芯的ATB1103芯片的语音遥控器,打造了一个AIoT时代的高性价比精品。
一、遥控器应用总体架构遥控器总体架构分四层,从上到下依次为应用层、应用框架层、硬件抽象层、底层驱动层1.1、应用层• 应用状态机– 事件触发让遥控器应用处理不同的状态• 应用定时器– 定时触发不同的事件,驱动遥控器正常运行• 应用输入处理– 处理底层来的不同按键消息• 应用音频输入处理– 将底层的音频处理消息,进行编码,然后通过蓝牙发送给对端设备• BLE profile   – HID profile,提供按键输入输出接口服务   – BAS service,提供电池服务   – DIS service,提供读取设备基本信息的接口服务   – ota profile,提供OTA 升级服务1.2、应用框架层• 输入管理– 按键映射处理、按键过滤机制• 消息管理– 消息分配和释放、 消息发送和接收• 内存管理– 动态内存管理• 闪灯管理– 灯资源分配和释放• 电池管理– 电量读取、电量管理策略1.3、硬件抽象层将应用层和驱动层剥离开的中间件层1.4、底层驱动层底层硬件操作接口二、遥控器模块流程概述2.1、系统启动系统相关初始化、板级相关外设初始化、蓝牙协议栈相关初始化、HidApp 应用初始化,并进入Main 主循环,等待消息处理2.2、遥控器状态机遥控器在运行过程中,主要靠如下3 种状态维持他的正常运行。2.2.1. 触发遥控器进去空闲状态的事件:> 广播状态,没有连接成功,出现超时事件,进入idle> 连接状态,断开连接,如无操作主动断开连接,然后进入idle2.2.2. 触发遥控器进入激活状态的事件:> 空闲状态,有按键、首次上电,进入激活状态> 连接状态,出现异常断开,需要回连,进入激活状态2.2.3. 触发遥控器进入工作状态的事件:> 激活状态下,配对成功或者回连成功,进入工作状态。2.3、按键处理由于遥控器的键值较多,通常用矩阵键盘方式以节省pin 的使用。当使能Key 模块后,Key 控制器就会处于矩阵扫描状态,当检测到外部按键有值时,就会产生中断,中断就将按键信息上报给应用。2.4、红外处理• 在非连接状态下,按下按键,就会发射红外码,进而通过红外操作对端设备,如使用红外进行配对.• IRC 协议上,最短的红外码重发时间为108 ms,而按键的重复上报时间,可能小于108ms,也可能大于108ms,因此按键输入和红外发送模块时间上存在三种可能:2.4.1. 慢速点按慢速点按动作特征是在大于Trpc 时间后有多次的按键输入。在Ta 时刻,发出初次按键值,在Tb 时刻,不做任何响应,在Tc 时刻,继续发送检测到的按键值,不会发送重复码.2.4.2. 快速点按快速点按的动作特征是用户在Trpc 时间内有两次或者以上的按键按下弹起的动作. 在Ta 时刻,将发送出初次按键,而Tb 时刻并不发送按键值,在Tc 时刻,如果按键仍然是按下状态,将发出按键值,否则将丢掉按键值.2.4.3. 长按


长按的动作特征是按键按下后,一直不放开。此时CPU 检测到按键的持续按下,则在Ta 时刻发送出初次按键,发送出此时按键对应的红外键码,而在Trpc 时间内没有检测到按键的松开,则在Tb 时间输出重复码,直至检测到按键弹起为止.2.5、语音采集• 当启动Voice Key 后,ADC 开始采集• 采集的数据通过DMA 搬运到应用的循环buffer 中,同时发送消息给Main 线程,让其处理语音数据。• 如果Main 线程处理速度不够快,audioin 驱动就会因为分不到buffer,而将采集的语音数据丢弃。2....

继续阅读完整内容

请查看下方广告以解锁文章剩余内容

广告加载中...
查看 11426
 
Please support our site by viewing this advertisement.

Please support our site by viewing this advertisement

Free Content