鐘志峰


本文提出一種基于低功耗藍牙( BLE)技術的智能遙控器設計方案。整個系統(tǒng)包含藍牙soc芯片、加速度計、陀螺儀、音頻編解碼器等,利用這些器件實現(xiàn)的智能遙控器,能給智能電視提供如按鍵、體感數(shù)據(jù)、語音識別等服務。該遙控器相比傳統(tǒng)紅外遙控器有著響應速度快、無方向性、功能豐富等特點。
隨著科技的日新月異,電視正朝著越來越智能化的方向發(fā)展,各種搭載智能操作系統(tǒng)的電視也逐漸進入尋常百姓家。然而傳統(tǒng)紅外遙控器響應速度慢、具有方向性、無法穿越障礙物等缺點,卻限制著智能電視用戶體驗的提升。因此,如何尋找一種新型的遙控方式成了電視生產(chǎn)廠商的一大難題。低功耗藍牙技術的出現(xiàn)正好給這個難題提供了一種解決方法。
此款智能遙控器采用的核心器件為高通公司的CS R1011藍牙芯片,它是一款基于BLE的sOc芯片,集成有藍牙協(xié)議棧和微控制器,遙控器以此為核心,使用矩陣鍵盤獲取按鍵控制指令,通過BMI160和MAX9860分別采集體感數(shù)據(jù)和語音數(shù)據(jù),并通過藍牙將這些數(shù)據(jù)傳送給智能電視,實現(xiàn)對智能電視的控制。
一、硬件電路設計
整個硬件框圖如圖1所示,主要由藍牙核心器件CSR1011、存儲器件AT24C512.六軸(加速度和陀螺儀)傳感器BMI160、音頻編解碼芯片MAX9860和鍵盤矩陣組成。藍牙核心器件CSR1011為系統(tǒng)控制核心,負責與智能電視進行藍牙數(shù)據(jù)通信以及控制周邊外設;AT24C512用于存放應用程序以及程序運行過程中需要保存的數(shù)據(jù);BMI160負責體感數(shù)據(jù)的采集,并通過IIC接口將數(shù)據(jù)傳送給CSR1011;MAX9860負責語音數(shù)據(jù)的采集,通過IIS接口將數(shù)據(jù)傳送給CSR1011;鍵盤矩陣由CS R1011的數(shù)字10口搭建,CSR1010通過對I0口的不斷掃描直接獲取按鍵數(shù)據(jù)。
(一)藍牙主控模塊。主控由藍牙SOC CSR1011搭配兩顆晶振和一顆存儲芯片構成,兩顆晶振的頻率分別為32kHz和16MHz,其中32kHz主要在低功耗時使用,16MHz是全速運行時使用。存儲芯片AT24C512的作用是存放CSR1011的應用程序和程序運行中的一些數(shù)據(jù)。為了保證穩(wěn)定性,它通過一組獨立的IIC與CSR1011相連,并使用PI02給其供電。
(二)音頻編解碼芯片。MAX9860是一款16位單聲道音頻編解碼芯片,在此遙控器中,其作用是采集用戶的語音數(shù)據(jù),然后通過IIS將數(shù)據(jù)傳送給藍牙芯片。硬件上,需要CS R1011的七個I0口分別與MAX9860的IRO、SCL、SDA、MCLK、SDOUT、BCLK、LRCLK相連。其中,IRO為中斷引腳,需要上拉10k歐姆電阻到Vbat;SCL和SDA為IIC通信引腳,主要用于對MAX9860進行配置,需要上拉4.7k歐姆電阻到Vbat;MCLK、SDOUT、BCLK和LRCLK為IIS引腳,用于傳送音頻數(shù)據(jù)。
(三)六軸傳感器。BMI160是一顆集成了加速度計和陀螺儀的六軸傳感器,通過IIC與CS R1011相連,設計上可以將SCL和SDA與MAX9860使用同一組IIC總線。除此之外還需要額外兩個I0口來連接BMI160的INT1和INT3,用于中斷信號輸出。
(四)鍵盤矩陣。鍵盤掃描可以由CSR1011的數(shù)字I0口完成,由于此遙控器有12個按鍵,因此我們可以選擇4*3的鍵盤矩陣,只需要將對應I0口接到鍵盤中,剩下的工作就交給軟件來完成。
二、軟件設計
軟件設計的主要工作是將音頻數(shù)據(jù)、六軸傳感器數(shù)據(jù)和按鍵信息采集到藍牙芯片,然后藍牙芯片通過BLE將這些數(shù)據(jù)傳送給智能電視端,以達到遙控智能電視的目的。
(一)音頻數(shù)據(jù)處理。MAX9860的音頻數(shù)據(jù)是通過IIS輸出到外部芯片的,而CSR1011沒有專門的IIS接口,我們可以利用CSR1011的51核來模擬IIS。用于語音識別的音頻為16位16kHz采樣率的數(shù)據(jù),因此每秒的原始數(shù)據(jù)量為:
然后對原始數(shù)據(jù)做1/4的PCM編碼,得到1秒鐘的數(shù)據(jù)量為8000Bytes。根據(jù)BLE connection Interval的設置,每秒可以與電視通信100次,而BLE中定義數(shù)據(jù)包的長度為20字節(jié),因此,得到每次通信需要發(fā)送的數(shù)據(jù)包為:
所以,在軟件上,可以設置為在語音輸入時,每次與主機通信需要發(fā)4個20字節(jié)長度的語音數(shù)據(jù)包。
(二)六軸傳感器處理。六軸傳感器與藍牙芯片之間通過IIC相連,在正常讀取體感數(shù)據(jù)情況下,可以設置一個定時器每IOms去讀一次加速度計和陀螺儀數(shù)據(jù),每次讀到的數(shù)據(jù)量為6字節(jié)加速度計數(shù)據(jù)、6字節(jié)陀螺儀數(shù)據(jù)和2字節(jié)溫度數(shù)據(jù),總共14字節(jié),完全可以在一個數(shù)據(jù)包內(nèi)將其傳送到電視端。
(三)鍵盤矩陣掃描。由于鍵盤矩陣掃描是時時刻刻進行的,因此我們需要借助低功耗的51核上實現(xiàn)鍵盤的掃描,相關掃描代碼需要與IIS處理代碼進行整合。主要工作方式是:平時進行鍵盤掃描,當掃描到按鍵后,判斷是不是音頻按鍵,如果是則切換至IIS以處理音頻數(shù)據(jù),同時一直檢測音頻按鍵是否松開,一旦松開則切換回鍵盤掃描。
采用低功耗藍牙設計的智能遙控器,不光在響應速度上有很大提升,同時還能實現(xiàn)傳統(tǒng)紅外遙控器不能實現(xiàn)的功能,比如語音輸入、空中鼠標等。由于BLE在大多數(shù)情況下處于休眠狀態(tài),因此在功耗表現(xiàn)方面也十分出色,經(jīng)實際測試,在日常使用情況下,兩節(jié)五號電池能持續(xù)使用半年以上。因此,基于低功耗藍牙的智能遙控器一定會被越來越多的人接受,它的使用也一定會越來越廣泛。