文獻識別碼: A
文章編號: 0258-7998(2013)06-0031-03
在語音信號處理系統(tǒng)中,DSP要完成信號的采集和運算處理任務(wù),必須有前端語音信號A/D、D/A轉(zhuǎn)換接口電路的配合[1]。由于兩者之間存在數(shù)據(jù)格式與速度不匹配的問題,所以接口設(shè)計成為通信實現(xiàn)的關(guān)鍵。針對這一問題,本文提出了一種基于SPI總線的DSP與音頻編解碼芯片接口設(shè)計方法,介紹了接口的關(guān)鍵組成部分,即控制模塊和數(shù)據(jù)通信模塊??刂颇K由SPI總線實現(xiàn)DSP對音頻編解碼芯片的配置與控制;數(shù)據(jù)通信模塊采用串/并、并/串轉(zhuǎn)換和共享FIFO的結(jié)構(gòu)解決數(shù)據(jù)格式與速度不匹配的問題。此方法在FPGA上得以實現(xiàn),并已成功應(yīng)用在基于SuperV DSP處理器的音頻處理系統(tǒng)中。
1 總體結(jié)構(gòu)
TLV320AIC23(簡稱AIC23)是TI公司專為音頻處理應(yīng)用定做的單片接口電路。該器件中A/D和D/A變換器采用具有集成過取樣數(shù)字內(nèi)插濾波器的多位Σ-△技術(shù),數(shù)字傳輸字長可為16 bit、20 bit、24 bit和32 bit,采樣率為8 kHz~96 kHz[2],出色的性能使該芯片廣泛應(yīng)用于音頻處理系統(tǒng)中。本文以此芯片為例作闡述。接口電路的功能框圖如圖1所示。
音頻輸入、輸出為模擬信號,通過AIC23芯片轉(zhuǎn)換為數(shù)字信號。FPGA中的SPI控制模塊接收DSP寫入的對AIC23的配置信息并通過配置接口編程AIC23芯片,以使之正常工作。AIC23芯片與DSP之間的數(shù)據(jù)通信則通過讀寫FIFO以及串/并、并/串?dāng)?shù)據(jù)格式轉(zhuǎn)換接口實現(xiàn)。
2 SPI控制器
2.1 SPI工作原理
SPI串行通信接口是一種常用的標(biāo)準(zhǔn)接口,由于其使用簡單方便且節(jié)省系統(tǒng)資源,很多芯片都支持該接口,應(yīng)用相當(dāng)廣泛[3]。標(biāo)準(zhǔn)SPI是高速、全雙工、異步通信總線[4],具有傳輸速率高、易于應(yīng)用和管腳少的優(yōu)點。
SPI接口有4根信號線:設(shè)備選擇(CS)、時鐘(SCLK)、串行主出從入數(shù)據(jù)線(MOSI)、串行主入從出數(shù)據(jù)線(MISO)。設(shè)備選擇線CS用于選擇并激活從設(shè)備,由工作在主模式下的SPI控制器驅(qū)動輸出。當(dāng)CS為低電平時,對應(yīng)從設(shè)備的SPI接口才處于工作狀態(tài)。串行同步時鐘SCLK用來同步主從設(shè)備的數(shù)據(jù)傳輸,由Master輸出,Slave設(shè)備按SCLK的步調(diào)接收或發(fā)送數(shù)據(jù)。另外2條串行數(shù)據(jù)線分別承擔(dān)Master到Slave、Slave到Master的數(shù)據(jù)傳輸。
此外,根據(jù)輸出串行同步時鐘(SCLK)極性(CPOL)和相位(CPHA)的不同,SPI總線有4種工作方式。為了與外設(shè)進行數(shù)據(jù)交換,需根據(jù)外設(shè)工作要求對輸出串行同步時鐘極性和相位進行配置。配置信息及不同模式下的時序如圖2所示。
時鐘控制模塊與SPI控制模塊一起產(chǎn)生SCLK,作為數(shù)據(jù)傳輸?shù)臅r鐘;SPI控制模塊是最重要的部分,其產(chǎn)生的控制信號用來控制數(shù)據(jù)的發(fā)送、接收等;SPI控制寄存器實現(xiàn)DSP對一些寄存器的配置,進而啟動或者控制一些傳輸模式(主從模式、傳輸模式選擇等),實現(xiàn)主從SPI之間的數(shù)據(jù)傳輸;從設(shè)備選擇寄存器在主SPI連接多個從SPI時啟用,主SPI根據(jù)需求分別產(chǎn)生各從設(shè)備的CS信號;SPI狀態(tài)寄存器用于存儲模塊在工作過程中的一些狀態(tài),DSP可以通過查看這些狀態(tài)進行下一步的操作;移位控制邏輯模塊根據(jù)SPI控制模塊產(chǎn)生移位控制信號,數(shù)據(jù)的發(fā)送和接收都是通過移位寄存器一位一位地進行傳輸?shù)?,移位過程在數(shù)據(jù)移位寄存器中進行。
2.3 控制模塊
控制模塊的主要功能是控制SCLK時鐘、CS選擇信號以及產(chǎn)生有關(guān)收發(fā)的一系列狀態(tài)信號。在發(fā)送或者接收數(shù)據(jù)之前,須配置SPI控制模塊的控制寄存器。在控制寄存器中,需要設(shè)定SPI的工作模式、一次傳輸數(shù)據(jù)的長度、數(shù)據(jù)傳輸?shù)姆较蛞约笆鼓軘?shù)據(jù)傳輸。在控制寄存器的傳輸使能位有效之前,SPI控制器一直處于IDLE狀態(tài);當(dāng)傳輸使能位有效之后,SPI控制器等待SCLK的上升沿或下降沿出現(xiàn) (具體情況根據(jù)工作模式而定),之后才會開始傳輸指定長度與位寬的數(shù)據(jù)。
2.4 數(shù)據(jù)移位模塊
圖4是主SPI向從SPI發(fā)送數(shù)據(jù)時的內(nèi)部線路圖。圖中主從SPI連接,實線為主發(fā)送從接收數(shù)據(jù)通路,虛線為從發(fā)送主接收數(shù)據(jù)通路。主SPI中的8 bit移位寄存器通過MOSI和MISO引腳與從SPI中的8 bit移位寄存器相連接。連接后,主從SPI的移位寄存器共同組成了一個16 bit的移位寄存器。SPI傳送過程中,在時鐘SCLK的控制下,主SPI中發(fā)送數(shù)據(jù)寄存器中的數(shù)據(jù)一位一位地移進從SPI中的接收數(shù)據(jù)寄存器。
AIC23在幀同步信號下降沿到來時開始傳輸數(shù)據(jù);在時鐘信號BCLK下降沿時,DIN和DOUT同時變化,雙向傳輸數(shù)據(jù),先傳輸左聲道信號,后傳輸右聲道信號。
3.2 數(shù)據(jù)通信接口設(shè)計
通信接口由同步信號檢測及控制信號生成模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)發(fā)送模塊、標(biāo)志控制模塊和數(shù)據(jù)緩存模塊5部分組成,這些模塊完成數(shù)據(jù)的接收和發(fā)送。此外,格式轉(zhuǎn)換模塊用于DSP和CODEC的數(shù)據(jù)格式和速度的匹配。其功能框圖如圖6所示。
讀寫FIFO是DSP與音頻CODEC的共享存儲,按照“先進去的數(shù)據(jù)先被讀出”的原則讀寫。兩者可獨立對FIFO進行操作,因此讀寫速度不一致也不會造成影響。
4 功能驗證
本接口設(shè)計方法應(yīng)用于SuperV DSP與AIC23的通信中,使設(shè)計得到了功能驗證。驗證過程中,DSP首先對AIC23進行初始化配置,配置信息表如表1所示。DSP通過SPI總線將控制字寫入對應(yīng)的寄存器,確定AIC23的工作方式;之后兩者進行數(shù)據(jù)通信,AIC23采集音頻信號并轉(zhuǎn)換為數(shù)字信號通過接口傳給DSP,DSP對數(shù)字語音信號進行識別、增強等處理后,將信號重新回傳給AIC23播放。經(jīng)驗證,該設(shè)計方法可以實現(xiàn)兩者之間的有效通信。
本文提出了一種基于SPI總線的DSP與音頻編解碼芯片的接口設(shè)計方法,介紹了接口的關(guān)鍵組成單元,并將此設(shè)計實現(xiàn)并應(yīng)用于語音信號處理系統(tǒng)里SuperV DSP處理器與AIC23的通信中。經(jīng)驗證,此設(shè)計可實現(xiàn)兩者之間的通信并且具有一定程度的通用性,可方便音頻處理系統(tǒng)中DSP與音頻采樣芯片的通信。
參考文獻
[1] 王嘉,歐建平.利用I2C總線實現(xiàn)DSP與音頻采樣芯片TLV320AIC23的接口控制[J].微處理機,2003(4):10-12.
[2] Texas Instruments.TLV320AIC23,stereo audio CODEC,8- to 96-kHz,with integrated headphone amplifier[R].Houston:Texas Instruments,2001.
[3] 華卓立,姚若河.一種通用SPI總線接口的FPGA設(shè)計與實現(xiàn)[J].微計算機信息,2008,24(6):212-213.
[4] OUDJIDA A K,BERRANDJIA M L,LIACHA A,et al. Design and test of general-purpose SPI Master/Slave IPs on OPB bus[C].International Multi-Conference on Systems Signals and Devices(SSD),Amman,Jordan,2010:27-30.