李柯南 張北南 北方工業(yè)大學(xué)
I2C接口音頻Codec音樂播放器
李柯南 張北南 北方工業(yè)大學(xué)
I2C接口音頻Codec音樂播放器的作用是使用加載SOPC的VHDL芯片作為核心實現(xiàn)音樂播放功能。本系統(tǒng)可以通過Nios II加載音樂文件和播放程序來自由的控制播放的長度和播放內(nèi)容,最后通過TLV320AIC23的解碼來實現(xiàn)音樂的輸出。
音樂播放;I2C;SOPC;FPGA;Nios II
此系統(tǒng)為基于SOPC的VHDL音樂播放設(shè)備,通過加載音樂文件(wav格式)于線性FLASH芯片中,經(jīng)過VHDL控制,通過I2C接口技術(shù)傳輸給TLV320音頻解碼芯片來實現(xiàn)音樂播放。具體關(guān)系圖如圖1。
圖1
系統(tǒng)的核心為 Altera公司的CycloneII VHDL芯片,其為Cyclone的下一代產(chǎn)品,2005年開始推出,90nm工藝,1.2v內(nèi)核供電,屬于低成本FPGA,性能和Cyclone相當(dāng),提供了硬件乘法器單元。芯片內(nèi)控制單元使用VHDL語言編寫。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),即涉及實體的內(nèi)部功能和算法完成部分。
本系統(tǒng)的VHDL部分主要由SOPC部分構(gòu)成,其他還包括I2C編碼部分,分頻器部分等。
圖2
系統(tǒng)中使用I2C音頻傳輸協(xié)議來對TLV320音頻編解碼芯片的控制端進(jìn)行控制。I2C即Inter-Integrated Circuit總線是一種兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線最主要的優(yōu)點是其簡單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。I2C總線的另一個優(yōu)點是,它支持多主控(multimastering), 其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個主控能夠控制信號的傳輸和時鐘頻率。當(dāng)然,在任何時間點上只能有一個主控。
本系統(tǒng)中使用SOPC(System-ona-Programmable-Chip),即可編程片上系統(tǒng)。SOPC它是用可編程邏輯技術(shù)把整個系統(tǒng)放到一塊硅片上,來用于嵌入式系統(tǒng)的研究和電子信息處理。SOPC是一種特殊的嵌入式系統(tǒng),它是片上系統(tǒng)(SOC),即由單個芯片完成整個系統(tǒng)的主要邏輯功能,但它不是簡單的SOC,它也是可編程系統(tǒng),具有靈活的設(shè)計方式,可裁減、可擴(kuò)充、可升級,并具備軟硬件在系統(tǒng)可編程的功能。
此SOPC為泛用型版本,其中包括CPU部分、Jtag接口部分、SDram部分、Timer部分、Bus部分、Flash部分、鍵盤響應(yīng)部分、單通道音頻輸出部分、RS232接口部分、I2C編碼解碼部分、Lcd顯示部分等。(圖3)
圖3
本系統(tǒng)的程序和加載部分使用Altera公司的Nios II IDE。Nios II IDE提供了完整的C/C++軟件開發(fā)套件,包括編輯器、項目管理器和構(gòu)建工具、調(diào)試器和兼容CFI(Common Flash Interface)的Flash編程器。調(diào)試器連接多種目標(biāo)系統(tǒng),包括FPGA硬件(通過JTAG電纜)、Nios II指令集仿真器和ModelSim-Altera軟件,因而能夠提供最靈活的調(diào)試方案。支持Nios II片內(nèi)設(shè)備核的強大功能。
本系統(tǒng)中使用Nios II IDE加載音樂文件到板上的閃存當(dāng)中,并且加載音樂播放程序來對SOPC進(jìn)行音樂播放控制
本系統(tǒng)中使用TLV320AIC23作為解碼芯片。TLV320 AIC23是TI公司的一款高性能立體聲音頻A/D,D/A放大電路。AIC23的模數(shù)轉(zhuǎn)換和數(shù)模轉(zhuǎn)換部件高度集成在芯片內(nèi)部,采用了先進(jìn)的過采樣技術(shù)。AIC23的外部硬件接口分為模擬口和數(shù)字口。模擬口是用來輸入輸出音頻信號的,支持線路輸入和麥克風(fēng)輸入;
圖4
串行控制總線采用I2C協(xié)議,而串行音頻數(shù)據(jù)總線在多種模式下為可編程,其中包括I2S、左/右對齊、DSP或TDM模式。該器件還提供高度可編程的PLL,以實現(xiàn)高靈活性的時鐘生成,并支持各種可用MCLK的所有標(biāo)準(zhǔn)音頻速率,頻率范圍為512kHz至50MHz,其中要特別注意的是最常見的12MHz、13MHz、16MHz、19.2MHz與19.68MHz系統(tǒng)時鐘。
TLV320DAC32芯片的設(shè)計部分:系統(tǒng)時鐘使用12M的晶振,功放輸出口接入由LM386組成的放大電路后接揚聲器,耳機輸出口接到3.5MM耳機接口。
音樂文件(wav格式)通過Nios II IDE加載到板上的線性FLASH上,然后通過Nios II IDE加載C++程序與SOPC即VHDL芯片上來實現(xiàn)音樂文件的播放。
程序中對音頻文件大小進(jìn)行了限制,總共為416275*4bit??梢愿鶕?jù)實際音樂的長度大小進(jìn)行變換。
左側(cè)為VHDL芯片的核心板,右側(cè)為TLV320DAC32的相關(guān)電路部分。
10.3969/j.issn.1001-8972.2010.21.054