人C交ZO ZOⅩ全过_香蕉66精品久久久_欧美国产激情二区三区_娇小12-13╳YⅩ╳毛片高清

公司新聞
行業新聞
炬芯ATB1103L 藍牙語音遙控器方案

行業新聞|2021-05-21|YIPPEE


時下智能語音交互市場火熱,越來越多的設備都開始支持遠場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

> 連接狀態,斷開連接,如無操作主動斷開連接,然后進入idle

2.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.6、BLE數據傳送

? 將audioin 驅動發送上來的數據進行編碼壓縮。

? 然后將編碼后的壓縮數據切成幾個20byte 的數據包

? 后通過hid profile notify 接口發送給BLE 協議棧

2.7、應用軟件Timer管理模塊

2.8、LED管理模塊

遙控器定義了幾種LED 指示燈,用于指示遙控器的一些狀態,如下表所示

通常遙控器只有一個物理的LED 燈用于各種場景的指示,這就需要軟件上讓其分時復用,如果同時需要顯示兩種狀態,狀態需要定義優先級,優先級高的狀態先指示。如在配對模式下,處于閃燈狀態下,這時候按下按鍵,那么燈還是處于快閃狀態。

2.9、O