新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA實(shí)現(xiàn)的PCI-I2S接口轉(zhuǎn)換電路

基于FPGA實(shí)現(xiàn)的PCI-I2S接口轉(zhuǎn)換電路

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò) 收藏

在設(shè)計(jì)PCI接口時(shí),用戶(hù)通過(guò)發(fā)起寄存器讀寫(xiě)請(qǐng)求tarO_req,去訪(fǎng)問(wèn)后端寄存器,從寄存器交換數(shù)據(jù),在CPU檢測(cè)到都算邏輯未使用寄存器時(shí),可發(fā)起占用請(qǐng)求并占用寄存器(tarO_gnt被置位),此時(shí),PCI讀寫(xiě)此寄存器中的數(shù)據(jù)。

本文引用地址:http://2s4d.com/article/201609/303568.htm

3 接口設(shè)計(jì)

在驅(qū)動(dòng)后端的芯片時(shí)首先需要通過(guò)I2C接口配置芯片的控制寄存器,此后根據(jù)音頻數(shù)據(jù)不同的采樣級(jí)別頻率控制產(chǎn)生的時(shí)鐘,最終音頻數(shù)據(jù)從內(nèi)部的FIFO中通過(guò)產(chǎn)生的時(shí)鐘依據(jù)協(xié)議標(biāo)準(zhǔn)向音頻芯片傳輸。在FPGA中設(shè)計(jì)的音頻接口包括I2C時(shí)序協(xié)議接口模塊,時(shí)鐘控制接口模塊和時(shí)序協(xié)議接口模塊。

3.1 I2C接口模塊的設(shè)計(jì)

I2C總線(xiàn)是由飛利浦公司開(kāi)發(fā)的串行總線(xiàn),總線(xiàn)由兩根信號(hào)線(xiàn)構(gòu)成,其中SCLK為時(shí)鐘信號(hào)線(xiàn),SDA為雙向數(shù)據(jù)線(xiàn)。I2C總線(xiàn)上的所有設(shè)備均可做為主設(shè)備,每個(gè)設(shè)備在總線(xiàn)上都有唯一的地址。

立體聲音頻編解碼器TLV320AIC23B中,共有11個(gè)寄存器需要配置,所有寄存器為只寫(xiě)寄存器。這些寄存器分別控制芯片輸出音頻的左右耳機(jī)音量、左右功放音量、芯片電源、采樣率等參數(shù)。在芯片的配置參數(shù)傳輸時(shí),以I2C的數(shù)據(jù)線(xiàn)(SDA)在時(shí)鐘線(xiàn)(SCLK)為高時(shí)下降沿條件作為數(shù)據(jù)的起始位,此后每當(dāng)FPGA向TLV320AIC23B傳輸8位數(shù)據(jù)時(shí),TLV320 AIC23B在第9個(gè)時(shí)鐘時(shí)通過(guò)SDA向FPGA返回一個(gè)ACK信號(hào)。如果FPGA確認(rèn)收到ACK信號(hào)則繼續(xù)傳輸下一組數(shù)據(jù),否則將重復(fù)傳輸此組數(shù)據(jù)。實(shí)際中示波器測(cè)量的傳輸波形如圖4所示。

d.jpg

3.2 I2S時(shí)鐘控制接口模塊的設(shè)計(jì)

由于不同的音頻數(shù)據(jù)有著不同的采樣級(jí)別頻率,所以在傳輸不同音頻文件時(shí),F(xiàn)PGA提供給TLV320AIC23B的時(shí)鐘頻率不同,為使不同采樣頻率的聲音文件都能在本系統(tǒng)上正常播放,故在FPGA內(nèi)部使用其DCM由主時(shí)鐘12.288 MHz生成16 kHz和32 kHz兩種采樣時(shí)鐘頻率,接入緩沖器BUFGMUX中,并且通過(guò)在PCI的配置空間中開(kāi)辟一個(gè)寄存器,寄存器的值接至BUFGMUX的選擇端,這樣通過(guò)配置配置此寄存器即可根據(jù)播放音頻的情況選擇時(shí)鐘頻率。

3.3 I2S時(shí)序協(xié)議接口模塊的設(shè)計(jì)

I2S時(shí)序接口模塊的主時(shí)鐘由FPGA內(nèi)部提供,模塊內(nèi)通過(guò)對(duì)主時(shí)鐘進(jìn)行分頻產(chǎn)生BCLK與LRCin,模塊在每個(gè)LRCin的上升沿由緩存FIFO中讀取一個(gè)16 bit的數(shù)據(jù)放入臨時(shí)寄存器,此后在BCLK的每個(gè)上升沿依次由高至低讀取寄存器中的每一位并賦值給數(shù)據(jù)線(xiàn)SDIN,并且在LRCIN的下降延時(shí)重復(fù)傳輸此數(shù)據(jù),從而完成音頻數(shù)據(jù)的I2S協(xié)議傳輸。

4 系統(tǒng)測(cè)試及結(jié)果

通過(guò)在上位機(jī)中向CPU內(nèi)部Flash燒錄一段音頻數(shù)據(jù),此后通過(guò)訪(fǎng)問(wèn)FPGA的配置寄存器將此段數(shù)據(jù)傳入至FPGA內(nèi)64 kB的FIFO中,后端音頻模塊檢測(cè)到FIFO非空即開(kāi)始工作。首選通過(guò)邏輯仿真軟件對(duì)系統(tǒng)進(jìn)行仿真,結(jié)果如圖5所示,信號(hào)線(xiàn)SDIN、 LRclk,BCLK輸出結(jié)果符合I2S協(xié)議規(guī)范中左對(duì)齊模式。此后可以在音頻芯片模擬輸出端接入耳機(jī)或功放等音頻播放設(shè)備,用示波器測(cè)量其模擬輸出。結(jié)果證明此系統(tǒng)工作正常,可以按照要求播放16 kbit·s-1與32kbit·s-1WAV音頻文件。通過(guò)示波器測(cè)量的模擬輸出如圖6所示,可以看出明顯的包絡(luò)信號(hào)。通過(guò)以上結(jié)論可以看出,系統(tǒng)可以充分利用FPGA片內(nèi)資源,從而減少對(duì)板內(nèi)面積占用并減低系統(tǒng)功耗,也易于移植入同類(lèi)的嵌入式系統(tǒng)中。

e.jpg

f.jpg

在本文的基礎(chǔ)上,可以進(jìn)一步發(fā)揮FPGA的靈活性,比如在開(kāi)發(fā)FPGA上支持PCI從設(shè)備DMA模式,以進(jìn)一步加強(qiáng)的讀寫(xiě)效率、I2S總線(xiàn)的右對(duì)齊和DSP模式等,并且可以開(kāi)發(fā)語(yǔ)音芯片上的語(yǔ)音采集功能,使系統(tǒng)實(shí)現(xiàn)語(yǔ)音采集、轉(zhuǎn)換、傳輸?shù)裙δ堋?/p>


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: PCI總線(xiàn) FPGA I2S 音頻

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉