文獻(xiàn)識別碼: A
文章編號: 0258-7998(2013)06-0031-03
在語音信號處理系統(tǒng)中,,DSP要完成信號的采集和運(yùn)算處理任務(wù),必須有前端語音信號A/D,、D/A轉(zhuǎn)換接口電路的配合[1],。由于兩者之間存在數(shù)據(jù)格式與速度不匹配的問題,所以接口設(shè)計成為通信實現(xiàn)的關(guān)鍵,。針對這一問題,,本文提出了一種基于SPI總線的DSP與音頻編解碼芯片接口設(shè)計方法,介紹了接口的關(guān)鍵組成部分,,即控制模塊和數(shù)據(jù)通信模塊,。控制模塊由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)點(diǎn),。
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è)進(jìn)行數(shù)據(jù)交換,,需根據(jù)外設(shè)工作要求對輸出串行同步時鐘極性和相位進(jìn)行配置,。配置信息及不同模式下的時序如圖2所示。
時鐘控制模塊與SPI控制模塊一起產(chǎn)生SCLK,,作為數(shù)據(jù)傳輸?shù)臅r鐘,;SPI控制模塊是最重要的部分,,其產(chǎn)生的控制信號用來控制數(shù)據(jù)的發(fā)送、接收等,;SPI控制寄存器實現(xiàn)DSP對一些寄存器的配置,,進(jìn)而啟動或者控制一些傳輸模式(主從模式、傳輸模式選擇等),,實現(xiàn)主從SPI之間的數(shù)據(jù)傳輸,;從設(shè)備選擇寄存器在主SPI連接多個從SPI時啟用,主SPI根據(jù)需求分別產(chǎn)生各從設(shè)備的CS信號,;SPI狀態(tài)寄存器用于存儲模塊在工作過程中的一些狀態(tài),,DSP可以通過查看這些狀態(tài)進(jìn)行下一步的操作;移位控制邏輯模塊根據(jù)SPI控制模塊產(chǎn)生移位控制信號,,數(shù)據(jù)的發(fā)送和接收都是通過移位寄存器一位一位地進(jìn)行傳輸?shù)模莆贿^程在數(shù)據(jù)移位寄存器中進(jìn)行,。
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ù)一位一位地移進(jìn)從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的共享存儲,,按照“先進(jìn)去的數(shù)據(jù)先被讀出”的原則讀寫,。兩者可獨(dú)立對FIFO進(jìn)行操作,因此讀寫速度不一致也不會造成影響,。
4 功能驗證
本接口設(shè)計方法應(yīng)用于SuperV DSP與AIC23的通信中,,使設(shè)計得到了功能驗證。驗證過程中,,DSP首先對AIC23進(jìn)行初始化配置,,配置信息表如表1所示。DSP通過SPI總線將控制字寫入對應(yīng)的寄存器,,確定AIC23的工作方式,;之后兩者進(jìn)行數(shù)據(jù)通信,AIC23采集音頻信號并轉(zhuǎn)換為數(shù)字信號通過接口傳給DSP,,DSP對數(shù)字語音信號進(jìn)行識別,、增強(qiáng)等處理后,將信號重新回傳給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與音頻采樣芯片的通信。
參考文獻(xiàn)
[1] 王嘉,,歐建平.利用I2C總線實現(xiàn)DSP與音頻采樣芯片TLV320AIC23的接口控制[J].微處理機(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].微計算機(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.