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