低功耗通用語音處理平臺的設計實現
HR/W:HPI讀寫信號線。標識著MCU與DSP的通信方向。該信號線為高,表示MCU從DSP的存儲空間中讀取數據;為低,表示MCU將數據寫入DSP的存儲空間。
HDS1/2:HPI數據控制信號。可以適應不同類型的MCU的數據控制信號。要將HCNTL2置高,本例中的接法是HCNTL1通過MSP430F149的P2.1來控制。
HRDY:HPI準備好信號。DSP通過該信號通知MCU當前主機接口是否可以訪問。為低,DSP的主機接口忙,MCU不能通過它訪問;為高,可以訪問。
HCNTL0/1:HPI訪問控制信號。在復用模式中,通過這2個信號決定本次MCU訪問的是DSP的HPI接口的內部寄存器。
HAS:HPI地址控制信號。在復用模式中,直接置高。
HMODE:HPI模式選擇信號。置高,HPI工作在非復用模式下;置低,HPI工作在復用模式下。
HINT:主機中斷信號。當DSP將該信號線置低時,表示DSP請求主機中斷。因此這根信號線應加上拉電阻。
HBE0/1:HPI字節使能信號。TMS320VC5510A中置低,忽略該信號。
MSP430F149通過向DSP主機接口內部的3個寄存器寫入相應的數據來控制相應的通信方式。在復用方式下,這3個寄存器分別是 HPIC(控制寄存器)、HPIA(地址寄存器)、HPID(數據寄存器)。為了提高在復用方式下的訪問速度,DSP的HPI接口還提供了另外一個數據寄存器。當MCU訪問連續地址時,可以通過HCNTL0/1選擇利用這個數據寄存器進行連續訪問DSP內部存儲器,相應的地址寄存器會在每次訪問這個數據寄存器之后自動增加。
MCU和DSP的通信通過中斷完成。其中MSP430F149通過訪問HPIC寄存器,將其中的DSPINT位置1來觸發DSP的中斷,而DSP則通過將HINT信號線置低來觸發MCU的中斷。
當前的硬件平臺中,通過置I/O口線的方式實現了MCU對DSP主機接口的讀寫操作,可以選擇通過主機啟動DSP的方式[4]。啟動過程的框圖如圖6所示。
HPI 啟動方式流程圖

圖6 HPI 啟動方式流程圖
3 系統軟件優化降低功耗
上面已提到,在硬件平臺的設計中采用了低功耗的器件,屬于低功耗設計中的靜態技術。在系統軟件的具體實現中,可以根據執行算法的情況進行動態調整,從而達到降低系統功耗的目的。由于DSP采用內部可編程鎖相環(PLL)產生時鐘,可以使處理器根據對于計算能力的即時需求動態改變運行速度。雖然系統提供了幾種低功耗模式,但是相應的喚醒時間各不相同,實際中要根據具體情況對功耗和喚醒時間綜合考慮。
由于MCU具有較強的事件響應能力以及DSP具有較強的數據處理能力,因此可以通過MCU針對不同算法動態地改變系統的工作頻率及DSP的工作狀態,從而降低系統功耗。例如在該平臺運行清華大學自主研制的600、1 200、2 400bps語音算法,需要針對不同算法要求不同的數據運算量進行動態配置。DSP采用MCU提供的8.192MHz的時鐘、通過片內集成的DPLL進行倍頻得到所需要的主時鐘。由于系統的部分代碼是處于54兼容模式下,所以在系統軟件的主函數中,當不需要進行編解碼操作時,系統可以處于正常狀態,即IDLE1或IDLE2狀態。更具體的管理可以使用c55x系列的IDLE domain(IDLE域)機制進行管理[6]。3種狀態具體描述如下:
NO IDLE:定時器、通用串口和內核均處于正常工作模式。
IDLE 1:定時器和通用串口正常工作模式,內核處于IDLE狀態,由中斷喚醒。
IDLE 2:定時器、通用串口和內核都處于IDLE狀態,由中斷喚醒。
針對不同的算法,由于要求的數據運算量不同,能夠保證算法工作的最低系統頻率也不同。通過對不同的數據運算要求動態調整系統的工作狀態,可以最大限度地實現降低功耗的目的,從而實現針對不同運算量的功耗控制。實際使用中,當DSP:運行600SELP算法時,系統工作在32.768MHz;運行1 200SELP算法時,系統工作在40.960MHz;運行2 400SELP算法時,系統工作在24.576MHz。與單一的運行在81.92MHz情況下相比,系統功耗分別降低了41%、36%、48%,大大減少了系統功耗。
該硬件平臺已經成功運行了G.723.1、G.729A/B和CVSD等算法,并且獲得了良好的效果,具有廣闊的應用前景。本文引用地址:http://www.104case.com/article/179973.htm
評論