• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種I2S音頻數(shù)據(jù)處理電路的FPGA設(shè)計

      2016-12-29 06:49:07趙海亮
      關(guān)鍵詞:寄存器時鐘音頻

      趙海亮,李 琦

      (桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)

      一種I2S音頻數(shù)據(jù)處理電路的FPGA設(shè)計

      趙海亮,李 琦

      (桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)

      為滿足現(xiàn)代汽車電子系統(tǒng)成本低、靈活性高和擴(kuò)展性強的設(shè)計要求,基于FPGA,設(shè)計了一種I2S音頻數(shù)據(jù)處理電路。以I2S協(xié)議為基礎(chǔ),采用ZYNQ-7000開發(fā)平臺,為音頻解碼芯片AUDU1761與CPU完成音頻數(shù)據(jù)通信,實現(xiàn)了音頻輸入和輸出功能。為音頻解碼設(shè)計獨立時鐘,解決了傳統(tǒng)設(shè)計中占用CPU過多的問題,同時可以降低失真。仿真結(jié)果表明,電路設(shè)計合理,可實現(xiàn)對音頻數(shù)據(jù)的接收和發(fā)送功能。

      I2S;FPGA;ZYNQ;獨立時鐘

      對于現(xiàn)代汽車電子系統(tǒng),音樂播放、FM廣播等都是必備功能,因此,音頻數(shù)據(jù)的解碼芯片就必不可少。此外,現(xiàn)在相當(dāng)多的智能車載系統(tǒng)都有語音控制功能,通過語音識別,系統(tǒng)能自動識別駕駛者的命令并進(jìn)行相關(guān)操作,因此,音頻編碼芯片也必不可少?,F(xiàn)在主流的音頻編碼、解碼芯片絕大部分都支持I2S格式音頻數(shù)據(jù)的傳輸。對于一個智能車載控制系統(tǒng),I2S音頻數(shù)據(jù)處理模塊的工作效率至關(guān)重要。

      由于音頻的數(shù)據(jù)帶寬相比系統(tǒng)總線的帶寬要小得多,傳輸?shù)臄?shù)據(jù)量很小,故汽車電子設(shè)計中都將音頻數(shù)據(jù)全部交給CPU處理[1],但是音頻的實時性特點決定了CPU必須要在極為恰當(dāng)?shù)臅r刻把音頻數(shù)據(jù)接收進(jìn)來或發(fā)送出去,太早或太晚均會對音頻的還原產(chǎn)生較大的影響。而采用CPU自行計時控制并按要求的格式傳輸數(shù)據(jù)將會占用過多的CPU時間,同時失真較大。鑒于此,為車載電子控制系統(tǒng)設(shè)計一種I2S音頻數(shù)據(jù)處理電路,并增加了獨立的時鐘在恰當(dāng)?shù)臅r刻通知CPU傳輸音頻數(shù)據(jù),通過I2S協(xié)議傳到音頻解碼、編碼芯片。

      1 I2S規(guī)范

      I2S是IC間傳輸音頻信號的一種接口標(biāo)準(zhǔn),采用數(shù)字序列傳輸?shù)姆绞絺鬏?組(左右聲道)音頻數(shù)據(jù)。由于I2S傳輸協(xié)議將數(shù)據(jù)信號和時鐘信號分開傳輸,故其抖動失真很小。

      I2S使用MCK、BCK、WCK、SDA四條信號線[2]。其中:MCK為系統(tǒng)主時鐘,通常為采樣頻率的256或384倍;BCK為串行比特流數(shù)據(jù)的同步時鐘;WCK為字同步時鐘,等于采樣頻率;SDA為串行數(shù)據(jù)。

      圖1為I2S通信時序。WCK和SDA均在BCK的下降沿處變化,在BCK的上升沿處采樣。WCK在低電平表示正在傳輸?shù)氖亲舐暤?left channel)數(shù)據(jù),高電平表示正在傳輸?shù)氖怯衣暤?right channel)數(shù)據(jù)。SDA在WCK變化后的第2個BCK周期開始傳輸數(shù)據(jù),傳輸順序由最高位到最低位。當(dāng)WCK的單次脈沖寬度不足以傳輸全部的比特流數(shù)據(jù)時,低位的部分會被忽略;當(dāng)全部比特流數(shù)據(jù)傳輸完畢而WCK的單次脈沖仍未結(jié)束時,低位的部分會自動補齊。基于此特點,I2S協(xié)議使不同音頻數(shù)據(jù)長度的音頻處理單元之間的相互兼容變得更加容易[3]。

      圖1 I2S通信時序Fig.1 Communication sequence of I2S

      2 系統(tǒng)設(shè)計

      本設(shè)計采用Xilinx ZYNQ-7000全可編程SOC系列目標(biāo)板。ZYNQ-7000是首款將高性能ARM Cortex-A9硬核與可編程邏輯集成的器件,既可發(fā)揮處理器在處理復(fù)雜控制算法、運行操作系統(tǒng)等方面的優(yōu)勢,又利用FPGA在并行算法加速、可動態(tài)重配置的特點,實現(xiàn)了系統(tǒng)加速,增加了靈活性;同時給予片內(nèi)結(jié)合的方案,減少了板材面積,降低了功耗,也加快了硬件開發(fā)的速度[4]。

      ZYNQ-7000板使用AD公司的CODEC芯片ADAU1761與SOC的I2S接口相連。ADAU176是一款集成了數(shù)字音頻處理的低功耗立體聲CODEC芯片,支持48 kHz立體聲錄音和回放;采樣率為8~96 kHz,且提供了數(shù)字音量調(diào)節(jié)功能。ADAU1761具有可編程特性,通過內(nèi)部的DSP控制接口編輯該器件的控制寄存器,并且能夠編譯I2C、SPI兩種規(guī)格的接口,但傳輸?shù)囊纛l數(shù)據(jù)只支持I2S規(guī)格。該芯片內(nèi)部基本結(jié)構(gòu)和接口如圖2所示。

      圖2 ADAU1761內(nèi)部結(jié)構(gòu)及接口Fig.2 The structure of data processing module

      3 系統(tǒng)工作原理

      ADAU1761作為一款編解碼芯片,本身無法單獨工作,在工作時需要根據(jù)SPI格式的控制字進(jìn)行編解碼處理,之后進(jìn)行數(shù)據(jù)傳輸,傳輸?shù)囊纛l數(shù)據(jù)滿足I2S等格式;而ZYNQ芯片的作用是產(chǎn)生控制字并進(jìn)行音頻數(shù)據(jù)的存儲,ZYNQ包含2個SPI控制器,可在主/從模式或多主機(jī)模式下工作。SPI控制器在連接到MIO的情況下,支持高達(dá)50 MHz的外部時鐘,同時支持128 bit的讀/寫FIFO,但卻不包含I2S接口模塊,無法直接發(fā)送或者接收I2S格式的數(shù)據(jù)。因此,設(shè)計了一種音頻接口模塊,可以協(xié)調(diào)ADAU1761芯片與ZYNQ SOC芯片之間的數(shù)據(jù)交互,該模塊既能將ZYNQ SOC發(fā)出的I2S格式音頻數(shù)據(jù)傳輸?shù)酵獠吭O(shè)備(耳機(jī)),也可以將外部設(shè)備(麥克風(fēng))I2S格式音頻數(shù)據(jù)接收到SOC。

      音頻接口模塊首先完成符合SPI傳輸協(xié)議的控制字的傳輸,控制數(shù)據(jù)傳輸有4種主要的信號線:CS(數(shù)據(jù)有效片選信號)、MODE(模式選擇信號)、SDIN(控制數(shù)據(jù)輸入信號)和SCLK(控制串行時鐘信號)。在MODE有效的情況下,CS置低時,有效數(shù)據(jù)在SCLK的下降沿到來時立即開始傳輸。SPI數(shù)據(jù)位的傳輸采用大端模式的傳輸方式,先傳高8位數(shù)據(jù),后傳低8位數(shù)據(jù),連續(xù)傳輸16位??刂萍拇嫫鞯刂窞楦?位,控制數(shù)據(jù)為低8位。數(shù)據(jù)傳輸過程中,CS信號必須一直保持低位,待數(shù)據(jù)傳輸完成,立即拉高CS信號,傳輸終止[5]。音頻信號的傳輸主要是數(shù)據(jù)從ADAU1761傳入ZYNQ SOC和從ZYNQ SOC傳入ADAU1761,其中音頻信號的傳輸必須遵守I2S傳輸協(xié)議。

      4 系統(tǒng)模塊實現(xiàn)

      系統(tǒng)模塊主要由3個部分組成:1)SPI控制模塊,負(fù)責(zé)在讀/寫使能的控制下將音頻數(shù)據(jù)寫入移位寄存器。2)I2S傳輸模塊,通過4組移位寄存器完成數(shù)據(jù)的全雙工傳輸,控制數(shù)據(jù)傳輸?shù)臅r鐘由分頻器發(fā)出。3)時序接口模塊[6],完成各種數(shù)據(jù)的基本傳輸。模塊連接如圖3所示。

      調(diào)用接口AXI總線IP核,通過內(nèi)部接口以及SPI、I2S直接將SOC的SRAM與AUDU1761芯片的外部接口相連。接口信號線有:寫使能信號(WEn)、讀使能信號(REn)、存儲器片選信號(CSn)、數(shù)據(jù)信號(D0~D15)和地址選擇信號(A0~A4),另外還有數(shù)據(jù)傳輸?shù)闹鲿r鐘信號(CLK)。數(shù)據(jù)處理模塊結(jié)構(gòu)如圖4所示。

      圖3 模塊連接圖Fig.3 Module connection

      圖4 數(shù)據(jù)處理模塊結(jié)構(gòu)Fig.4 The structure of data processing module

      SPI控制模塊是在一組16位計數(shù)器的控制下完成數(shù)據(jù)的傳輸。在CPU發(fā)出寫使能信號后,16位的數(shù)據(jù)寄存器SPI_data將數(shù)據(jù)并行寫入寄存器,同時產(chǎn)生SPI使能信號,令計數(shù)器SPI_counter在主時鐘MCK的下降沿開始記數(shù),當(dāng)計數(shù)器為1時,存儲器片選信號的有效信號拉低,同時寄存器開始移位,數(shù)據(jù)開始傳輸;當(dāng)計數(shù)器超過16時,存儲器片選信號拉高,停止移位,數(shù)據(jù)傳輸終止。

      I2S傳輸模塊由4組移位寄存器實現(xiàn),每組的最底層是按址尋址寄存器。當(dāng)選中寄存器地址后,開始進(jìn)行讀寫操作,讀寫完成后,在下一時鐘節(jié)拍到來時,數(shù)據(jù)被并行寫入移位寄存器。

      I2S全雙工傳輸結(jié)構(gòu)如圖5所示。CODEC1和CODEC2內(nèi)的ADC傳輸數(shù)據(jù)完成串并轉(zhuǎn)換后存于寄存器IN_REG1和IN_REG2,同時產(chǎn)生中斷信號,通知CPU對G2C_TMP1和G2C_TMP2寫數(shù)據(jù)。IN_REG1和IN_REG2的數(shù)據(jù)分別寫入移位寄存器C2G_TMP1和C2G_TMP1,CPU依此從移位寄存器中提取數(shù)據(jù);G2C_TMP1和G2C_TMP2的數(shù)據(jù)分別寫入OUT_REG1和OUT_REG2,通過I2S格式分別寫入DAC1和DAC2,這樣就完成一次完整的全雙工傳輸[7]。

      圖5 I2S全雙工傳輸結(jié)構(gòu)Fig.5 The full-duplex transmission structure of I2S

      接口模塊只是實現(xiàn)基本的傳輸功能,將ZYNQ CPU提供的片選使能、讀寫使能以及地址信號傳輸給SPI和I2S模塊。

      5 功能仿真與測試

      5.1 模塊配置

      模塊配置仿真用來測試模塊能否被CPU正確配置完成所需功能。模塊配置仿真結(jié)果如圖6所示。從圖6可看出,CPU從100 ns開始依次向地址30h、31h、32h和33h寫入F0h、0Fh、01h和0Fh,全部中斷在110 ns時被開啟,在130 ns時模塊被設(shè)置為由模塊內(nèi)分頻器提供數(shù)據(jù)發(fā)送同步時鐘,由外部輸入數(shù)據(jù)接收同步時鐘,在150 ns時BCK0被設(shè)置為MCK0的4分頻,在170 ns時WCK被設(shè)置為BCK的64分頻,即48 kHz的采樣率。仿真結(jié)果表明,模塊能夠完成配置功能。

      圖6 模塊配置仿真結(jié)果Fig.6 The simulation of module configuration

      5.2 數(shù)據(jù)發(fā)送

      數(shù)據(jù)發(fā)送仿真用于測試模塊能否以中斷形式通知CPU裝入待發(fā)送的數(shù)據(jù),并按I2S協(xié)議格式發(fā)送數(shù)據(jù)[8]。音頻數(shù)據(jù)發(fā)送仿真如圖7所示。從圖7可看出,在10 800 ns時INT_TXRDY(數(shù)據(jù)發(fā)送就緒中斷)輸出中斷信號后,CPU向DATA0寄存器寫入待發(fā)送的音頻數(shù)據(jù)A5A5A5A5h,在10 890 ns時DATA0寄存器寫入預(yù)定數(shù)據(jù);隨后CPU向TXRDY(數(shù)據(jù)發(fā)送就緒)寄存器寫入“1”,在10 900 ns時中斷信號被清零;音頻數(shù)據(jù)在下一次WCK0變化時由SDA0輸出,其格式符合I2S協(xié)議要求。仿真結(jié)果表明,數(shù)據(jù)發(fā)送模塊能完成I2S格式音頻數(shù)據(jù)的發(fā)送。

      圖7 音頻數(shù)據(jù)發(fā)送仿真Fig.7 The simulation of audio data sending

      5.3 數(shù)據(jù)接收

      數(shù)據(jù)接收仿真用于測試模塊能否以I2S協(xié)議格式將接收的數(shù)據(jù)存入寄存器,并以中斷形式通知CPU獲取數(shù)據(jù)。音頻數(shù)據(jù)接收仿真如圖8所示。從圖8可看出,從300 ns開始,音頻數(shù)據(jù)99h開始從SDA1輸入;在18 020 ns時DATA1寄存器被裝入數(shù)據(jù)99000000h(99h的低位被自動補齊),INT_RXRDY(接收就緒中斷信號)產(chǎn)生中斷信號,CPU開始從DATA1寄存器讀出數(shù)據(jù),并存入測試用寄存器temp;在18 120 ns時temp內(nèi)數(shù)據(jù)與輸入的音頻數(shù)據(jù)一致;隨后CPU向RXRDY(接收就緒標(biāo)志)寄存器寫入“1”,中斷信號被清零,完成本次音頻數(shù)據(jù)的接收。仿真結(jié)果表明,數(shù)據(jù)接收模塊能完成對I2S格式音頻數(shù)據(jù)的接收。

      圖8 音頻數(shù)據(jù)接收仿真Fig.8 The simulation of audio data reception

      6 結(jié)束語

      基于FPGA設(shè)計了一種音頻模塊電路,實現(xiàn)了XYNQ SOC上音頻解析芯片ADAU1761與CUP及外設(shè)的通信。給音頻模塊增加一個獨立時鐘,解決了傳統(tǒng)車載電子系統(tǒng)設(shè)計中采用CPU自行計時占用過多CPU的問題,同時也降低了信號失真。仿真結(jié)果表明,CPU能夠正確完成配置,I2S格式音頻數(shù)據(jù)的發(fā)送和CPU的接收也很及時,達(dá)到了設(shè)計的要求。不足之處是單獨為車載電子系統(tǒng)增加一個音頻數(shù)據(jù)處理模塊,會增加芯片面積,不利于降低成本。

      [1] 曹紅兵.現(xiàn)代汽車電子控制技術(shù)[M].北京:機(jī)械工業(yè)出版社,2012:203-211.

      [2] 邵福杰,張國利,周勇.基于I2S總線實現(xiàn)嵌入式語音采集與回放[J].微計算機(jī)信息,2011,27(6):23-25.

      [3] 韓延義,李航,李岳.基于FPGA的音頻芯片輸出控制設(shè)計[J].實驗室研究與探索,2013,32(5):95-96.

      [4] 焦再強.基于Zynq-7000的嵌入式數(shù)字圖像處理系統(tǒng)設(shè)計與實現(xiàn)[D].太原:太原理工大學(xué),2015:7-10.

      [5] 王丹雨,孫萬蓉,成龍,等.基于FPGA實現(xiàn)的PCI-I2S接口轉(zhuǎn)換電路[J].電子科技,2015,28(5):50-56.

      [6] 關(guān)杰,王建.基于FPGA與ARM協(xié)同工作的網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)[J].桂林電子科技大學(xué)學(xué)報,2014,34(8):315-318.

      [7] 李小平.基于PCI總線結(jié)構(gòu)的數(shù)據(jù)采集系統(tǒng)設(shè)計[D].哈爾濱:哈爾濱工程大學(xué),2012:28-30.

      [8] 趙磊.基于FPGA的音頻信號處理的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2012:47-51.

      編輯:翁史振

      Design of I2S data processing circuit based on FPGA

      ZHAO Hailiang, LI Qi

      (School of Information and Communication Engineering, Guilin University of Electronic Technology, Guilin 541004, China)

      In order to meet the low-cost, flexible and extensible design demands of modern automotive electronic system, a hardware circuit which adopt the I2S agreement is designed based on FPGA. In ZYNQ-7000 development platform, the audio decoding chip AUDU1761 sets up data communication with CPU by this circuit. A clock is designed for decoding chip separately to solve the problem of high CPU usage which provides the clock by CPU, it can reduce distortion at the same time. The circuit is proved to be correct by the function simulation, the function of audio data receiving and sending can be completed greatly.

      I2S; FPGA; ZYNQ; clock

      2016-03-12

      廣西自然科學(xué)基金(2013GXNSFAA019335)

      李琦(1976-),男,內(nèi)蒙古呼和浩特人,教授,博士,研究方向為功率器件、電路與系統(tǒng)。E-mail:lqmoon@guet.edu.cn

      趙海亮,李琦.一種I2S音頻數(shù)據(jù)處理電路的FPGA設(shè)計[J].桂林電子科技大學(xué)學(xué)報,2016,36(6):461-465.

      TN492

      A

      1673-808X(2016)06-0461-05

      猜你喜歡
      寄存器時鐘音頻
      別樣的“時鐘”
      古代的時鐘
      Lite寄存器模型的設(shè)計與實現(xiàn)
      必須了解的音頻基礎(chǔ)知識 家庭影院入門攻略:音頻認(rèn)證與推薦標(biāo)準(zhǔn)篇
      基于Daubechies(dbN)的飛行器音頻特征提取
      電子制作(2018年19期)2018-11-14 02:37:08
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      音頻分析儀中低失真音頻信號的發(fā)生方法
      電子制作(2017年9期)2017-04-17 03:00:46
      有趣的時鐘
      時鐘會開“花”
      Pro Tools音頻剪輯及修正
      人間(2015年8期)2016-01-09 13:12:42
      井陉县| 和林格尔县| 威宁| 叶城县| 马尔康县| 南雄市| 泌阳县| 青州市| 施甸县| 来凤县| 太谷县| 南雄市| 叶城县| 和政县| 霸州市| 昆山市| 阿坝县| 哈巴河县| 沅江市| 犍为县| 鸡西市| 东兰县| 察哈| 肃宁县| 高邑县| 册亨县| 连南| 罗平县| 平远县| 库尔勒市| 云林县| 白玉县| 金沙县| 青海省| 神农架林区| 桂东县| 永济市| 罗田县| 龙岩市| 林周县| 那坡县|