《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 音頻編解碼芯片接口的FPGA應(yīng)用
音頻編解碼芯片接口的FPGA應(yīng)用
摘要: 本文設(shè)計(jì)了一種基于FPGA的驅(qū)動(dòng)模塊,,將WM8731的控制接口與數(shù)字音頻接口轉(zhuǎn)換為控制器通用的總線(xiàn)接口,,使控制器可以像讀寫(xiě)外部寄存器一樣對(duì)WM8731芯片進(jìn)行控制使用,。
Abstract:
Key words :
 

  1 概述

  WM873l是一款功能強(qiáng)大的低功耗立體聲24位音頻編解碼芯片,,其高性能耳機(jī)驅(qū)動(dòng)器、低功耗設(shè)計(jì),、可控采樣頻率,、可選擇的濾波器使得WM8731芯片廣泛使用于便攜式MP3,CD,,PDA的場(chǎng)合,。其結(jié)構(gòu)框圖如圖1所示。

WM873l結(jié)構(gòu)框圖

  WM8731包含2個(gè)線(xiàn)路輸入和1路麥克風(fēng)輸入并可以進(jìn)行音量調(diào)節(jié);內(nèi)置片上ADC(模擬數(shù)字轉(zhuǎn)換器)及可選擇的高通數(shù)字濾波器;采用高品質(zhì)過(guò)采樣率結(jié)構(gòu)的DAC(數(shù)字模擬轉(zhuǎn)換器);線(xiàn)路輸出和耳機(jī)輸出;內(nèi)置晶體振蕩器以及可配置的數(shù)字音頻接口和2或3線(xiàn)可選的微處理器控制接口等,??刂破骺赏ㄟ^(guò)控制接口(Control Interface)對(duì)WM8731進(jìn)行配置,然后通過(guò)數(shù)字音頻接口(Digtal Audio Interface)讀寫(xiě)數(shù)據(jù)音頻信號(hào),。本文設(shè)計(jì)了一種基于FPGA的驅(qū)動(dòng)模塊,,將WM8731的控制接口與數(shù)字音頻接口轉(zhuǎn)換為控制器通用的總線(xiàn)接口,使控制器可以像讀寫(xiě)外部寄存器一樣對(duì)WM8731芯片進(jìn)行控制使用,。

  2 WM8731芯片接口時(shí)序介紹

  2.1 控制接口時(shí)序

  WM8731的控制接口有4根引腳,,分別為:MODE(控制接口選擇線(xiàn))、CSB(片選或地址選擇線(xiàn)),、SDIN(數(shù)據(jù)輸入線(xiàn))和SCLK(時(shí)鐘輸入線(xiàn))。它具有2線(xiàn)和3線(xiàn)兩種模式。2線(xiàn)為MPU接口,,3線(xiàn)為兼容SPI接口,。對(duì)控制接口的配置選擇可通過(guò)設(shè)置MODE腳的狀態(tài)完成。選擇MODE為0時(shí)為2線(xiàn)模式,,1時(shí)為3線(xiàn)模式,。本文采用2線(xiàn)模式對(duì)WM8731進(jìn)行控制。其時(shí)序圖如圖2所示,。

  2.2 數(shù)字音頻接口時(shí)序

  WM8731的數(shù)字音頻接口有5根引腳,,分別為:BCLK(數(shù)字音頻位時(shí)鐘)、DACDAT(DAC數(shù)字音頻數(shù)據(jù)輸入),、DACIRC(DAC采樣左/右聲道信號(hào)),、ADC-DAT(ADC數(shù)字音頻信號(hào)輸出)、ADCLRC(ADC采樣左/右聲道信號(hào)),。

  數(shù)字音頻接口可以工作在主模式和從模式下,。地址為0000111的寄存器的第6位設(shè)置數(shù)據(jù)的主/從模式:“1”為主模式,“0”為從模式,。ADCDAT,、/DACDAI和ADCLRC/DACLRC與位時(shí)鐘BCIK同步,在每個(gè)BCLK的下降沿進(jìn)行一次傳輸,。BCLK和ADCLRC/DACLRC在主模式時(shí)為輸出信號(hào),,從模式下為輸入信號(hào)。DAC-DAT始終為輸入信號(hào),,ADCDAT始終為輸出信號(hào),。

  數(shù)字輸出支持4種音頻數(shù)據(jù)模式:右對(duì)齊、左對(duì)齊,、I2S和DSP模式,。通過(guò)對(duì)寄存器的不同配置,可以設(shè)置傳輸?shù)臄?shù)據(jù)格式,。寄存器配置值如下:

  寄存器地址0000111的1~0位設(shè)置音頻格式:“11”時(shí)為DSF’格式,,“10”為I2S格式,“01”為左對(duì)齊格式,,“00”為右對(duì)齊格式,。

  3~2位設(shè)置字長(zhǎng):“11”時(shí)為32位,“10”為24位,,“01”為20位,,“00’’為16位。

  這四種音頻格式都是高位(MSB)在前,,16~32位,。但32位數(shù)據(jù)不支持右對(duì)齊模式,。

  本文采用主模式的左對(duì)齊數(shù)據(jù)格式,左對(duì)齊數(shù)據(jù)格式傳輸如圖3:左對(duì)齊格式時(shí),,MSB在BCLK的第一個(gè)上升沿有效,,緊接著是一個(gè)ADCLRC或DACLRC傳輸。

  3 WM8731芯片驅(qū)動(dòng)的FPGA設(shè)計(jì)

  3.1 驅(qū)動(dòng)器的總體設(shè)計(jì)方案

  本文設(shè)計(jì)驅(qū)動(dòng)器在使用時(shí)的框圖如圖4所示,。雙口RAM和驅(qū)動(dòng)器一同連接在控制器的數(shù)據(jù)總線(xiàn)和地址總線(xiàn)上,,控制器只需提供少量的控制線(xiàn)即可完成對(duì)音頻編解碼芯片wM8731的控制及數(shù)據(jù)交換功能。

  驅(qū)動(dòng)器內(nèi)部結(jié)構(gòu)框圖如圖5所示,??刂撇糠痔峁?qū)動(dòng)器與控制器之間的接口(包含有數(shù)據(jù)總線(xiàn)信號(hào)、地址總線(xiàn)信號(hào)和控制信號(hào)),,同時(shí)產(chǎn)生控制字轉(zhuǎn)換單元和數(shù)字音頻接口單元的控制信號(hào);內(nèi)部寄存器緩存控制字和狀態(tài)字;控制字轉(zhuǎn)化單元負(fù)責(zé)將控制字串行發(fā)送給WM8731,,同時(shí)效驗(yàn)傳送信號(hào);數(shù)據(jù)音頻接口單元完成WM8731與外部雙口RAM的串并轉(zhuǎn)換,實(shí)現(xiàn)對(duì)數(shù)字音頻信號(hào)的發(fā)送和接收功能,。

驅(qū)動(dòng)器內(nèi)部結(jié)構(gòu)框圖

  驅(qū)

  表l 狀態(tài)寄存器控制字的對(duì)應(yīng)定義

  3.2.2 控制字轉(zhuǎn)換單元

  當(dāng)START控制位置‘1’時(shí),,將控制字寄存器中的數(shù)據(jù)串行發(fā)送給WM8731,當(dāng)傳輸出現(xiàn)錯(cuò)誤時(shí),,將狀態(tài)寄存器中的ACK位置1,。如圖6所示。

  3.2.3 數(shù)字音頻接口單元

  當(dāng)讀入數(shù)字音頻標(biāo)志位C1為‘1’,,接收WM873l芯片傳來(lái)的數(shù)字音頻數(shù)據(jù)并將其存入外部雙口RAM中,,當(dāng)輸出數(shù)字音頻數(shù)據(jù)標(biāo)志位C2為‘1’時(shí),將雙口RAM中的音頻數(shù)據(jù)發(fā)送給wM8731,。如圖7所示,。

  3.3 系統(tǒng)仿真

  下面給出控制器通過(guò)該驅(qū)動(dòng)模塊對(duì)WM8731寫(xiě)控制字的時(shí)序仿真如圖8所示。圖中各引腳定義如表2所示,。

 

  4 結(jié) 語(yǔ)

  利用FPGA對(duì)音頻編解碼芯片WM8731進(jìn)行接口電路的設(shè)計(jì),,實(shí)現(xiàn)了控制接口與數(shù)字音頻接口的統(tǒng)一控制,簡(jiǎn)化了對(duì)音頻編解碼芯片WM8731的使用步驟,,具有擴(kuò)展性好,、使用簡(jiǎn)單方便、易于升級(jí)等優(yōu)點(diǎn),,對(duì)其他芯片的接口設(shè)計(jì)也有一定的參考意義,。



 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。