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