文獻識別碼: 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以及串/并,、并/串數(shù)據(jù)格式轉(zhuǎn)換接口實現(xiàn),。
2 SPI控制器
2.1 SPI工作原理
SPI串行通信接口是一種常用的標準接口,由于其使用簡單方便且節(jié)省系統(tǒng)資源,,很多芯片都支持該接口,,應(yīng)用相當廣泛[3]。標準SPI是高速,、全雙工,、異步通信總線[4],具有傳輸速率高,、易于應(yīng)用和管腳少的優(yōu)點,。
SPI接口有4根信號線:設(shè)備選擇(CS),、時鐘(SCLK)、串行主出從入數(shù)據(jù)線(MOSI),、串行主入從出數(shù)據(jù)線(MISO),。設(shè)備選擇線CS用于選擇并激活從設(shè)備,由工作在主模式下的SPI控制器驅(qū)動輸出,。當CS為低電平時,,對應(yīng)從設(shè)備的SPI接口才處于工作狀態(tài)。串行同步時鐘SCLK用來同步主從設(shè)備的數(shù)據(jù)傳輸,,由Master輸出,,Slave設(shè)備按SCLK的步調(diào)接收或發(fā)送數(shù)據(jù)。另外2條串行數(shù)據(jù)線分別承擔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);當傳輸使能位有效之后,,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ā)送模塊,、標志控制模塊和數(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.