化繁為簡更出眾:基於FPGA實現的音頻接口轉換電路
發布時間:2015-12-17 來源:EDN電子技術設計 責任編輯:wenwei
【導讀】隨著數字通信技術的發展,由於FPGA的靈活性與其較短的開發周期,在接口電路設計中的應用已經越來越廣泛。本文提出一種使用FPGA實現PIC—I2S 的接口轉換電路,不僅可以避免使用協議轉換芯片,節省電路板上的空間,而且還大幅加強了係統的靈活性,方便維護升級。
I2S總(zong)線(xian)是(shi)一(yi)種(zhong)用(yong)於(yu)音(yin)頻(pin)設(she)備(bei)間(jian)傳(chuan)輸(shu)數(shu)據(ju)的(de)串(chuan)行(xing)總(zong)線(xian)標(biao)準(zhun),該(gai)總(zong)線(xian)采(cai)用(yong)獨(du)立(li)的(de)時(shi)鍾(zhong)線(xian)與(yu)數(shu)據(ju)線(xian),避(bi)免(mian)了(le)時(shi)差(cha)誘(you)發(fa)的(de)失(shi)真(zhen)。隨(sui)著(zhe)多(duo)媒(mei)體(ti)的(de)廣(guang)泛(fan)應(ying)用(yong),該(gai)總(zong)線(xian)已(yi)被(bei)應(ying)用(yong)於(yu)越(yue)來(lai)越(yue)多(duo)的(de)數(shu)字(zi)係(xi)統(tong)中(zhong)。
PCI總線是一種高性能的32/64位局部總線,理論最大傳輸速率可達132 Mbit/s,可支持多組外設,已經被各類主流處理器做為總線標注,是目前應用最廣泛的外圍總線。如今大部分處理器並沒有集成I2S接口,但在嵌入式係統中CPU經常使用PCI總線與外圍設備進行交互,故需設計一種PCI—I2S接口轉換電路,從而實現CPU與外圍音頻設備進行通信。目前實現此種接口轉換電路主要通過PCI接口芯片與音頻接口芯片等專用集成電路芯片在板級電路進行組合從而實現基於PCI的音頻播放設備。此種電路雖然成熟可靠,但電路設計複雜、靈活性小而且需要占用大量的電路板空間。
1 係統的硬件設計
音頻播放係統主要由立體聲音頻編解碼器TLN320AIC23B,FPGA器件XC6SLX75以及處理器PowerPC8270組成。係統框圖如圖1所示,CPU將原始音頻數據通過PCI總線傳至FPGA後以每組數據16 bit的格式串行傳輸至音頻芯片TLV320AIC23B,並由音頻芯片將數字量轉換為模擬音頻信號輸出。FPGA實現PCI接口功能和對音頻編解碼芯片的配置與數據傳輸功能,其內部主要由PCI協議接口,I2S協議接口,I2S配置寄存器,I2C協議接口以及FIFO存儲器等組成。

TLV320AIC23B在係統中實現數字音頻信息到音頻模擬量的轉換,在係統上電工作時,首先需要通過I2C接口配置它的多個控製寄存器,此後芯片將根據位傳輸時鍾(Bclk)與左右聲道控製時鍾(LRCIN),按控製寄存器中配置的方式采集由FPGA發送來的音頻數據。接收到的數據將傳至芯片內部進行數模轉換、濾波等處理。
FPGA根據I2S協議規範與芯片要求,由主時鍾(MCLK)分頻產生位傳輸時鍾(Bclk)與左右聲道控製時鍾(LRCIN),與音頻數據同步發送至 TLV320AIC23B。其中左右聲道控製時鍾(LRCIN)應與音頻數據的原始采樣級別頻率相同,根據I2S的協議規範及芯片資料,其位傳輸時鍾 (Bclk)與芯片的主時鍾(MCLK)如下:
BCLK=Sampling Size×Sampling Rate (1)
MCLK=Sampling Size×Sampling Rate×384 (2)
式中,Sampling Rate為原始采樣級別頻率;SamplingSize為采樣大小。
係統中,TLV320AIC23B芯片采用左對齊的接口模式,其時序如圖2所示,其中LRCIN為高電平時音頻的左聲道選通,為低時音頻的右聲道選通。在 LRCIN的一個周期內,左右聲道上傳輸同一組數據。由於PCI總線的傳輸速度遠高於I2S總線的傳輸速度,為不使CPU過高頻率的響應中斷,所以在 FPGA中生成一個FIFO,可使得PCI總線可以連續傳入大量數據。此外,由於不同的音頻文件有著不同的采樣級別頻率,而通常音頻文件的采樣頻率為16 kHz或32 kHz,故在FPGA中生成I2S_config寄存器,可以通過PCI總線設置此寄存器以調用FPGA中不同的數字時鍾管理(DCM),從而為 TLV320AIC23B芯片提供不同的時鍾。

2 PCI接口設計
PCI協議比較複雜,它不僅有嚴格的同步時序要求,而且需要許多的配置寄存器,因此實現電路也比較複雜。通常情況下,在FPGA中實現PCI接口通常有3 種方式:(1)用FPGA自行設計PCI接口,該方法可根據需要有選擇地實現PCI接口功能,更貼近係統需要,而且可以降低係統成本,但需要開發者對 PCI協議有著深刻的了解,且在外部環境惡劣時,不容易滿足係統的穩定性要求,開發難度較大。(2)利用PCI硬核來對係統進行開發,PCI硬核即是嵌入在FPCA內部的固化電路,類似於專用的PCI接口芯片,設計者隻需完成信號鏈接與驗證即可,但此方法中,PCI硬核已經固化在FPGA中,影響了係統的靈活性。(3)利用PCI軟核進行開發,PCI軟核可以根據用戶自身的需要進行配置,更為靈活,貼近用戶係統,且其已經過設計廠商的驗證,可靠性高。本文采用Mentor公司提供的開源軟核MPCI32用於FPGA上PCI接口的開發。
Mentor公司的PCI核完全符合PCI2.2的標準,支持33/66 MHz、32位數據的傳輸,PCI核的結構如圖3所示,該PCI核的功能是將入口測複雜的PCI接口信號轉為出口側較為操作的用戶信號。PCI核內用戶側設置有主控製接口和從控製接口以及配置寄存器等模塊,其中從控製接口分為寄存器接口與FIFO接口。因為本文中僅使用了從控製接口,所以圖中僅對從控製接口的信號展示。可以看出,IP核左側的信號為PCI的標準信號,在使用時與前端PCI總線連接,右側信號為本地數據信號,可以看出IP核將PCI上原本複用的地址線與數據線處理後分別接出為32位的地址線與32位數據線,並且原本總線上雙向的數據線被區分為單向讀信號線與寫信號線。此外還有後端邏輯對寄存器的讀寫地址信號線與PCI訪問邏輯的讀寫地址信號線,後端對寄存器使用時的請求信號線,寄存器被占用的標誌信號線等。配置寄存器包含所有PCI配置空間的信息,其中包括表明設備信息的Device ID與Ven dor ID寄存器,以及命令寄存器,Base Address Register等主設備初始化時需要訪問的信息,這些信息在PCI核生成時已經被設定,無需改動。

在設計PCI接口時,用戶通過發起寄存器讀寫請求tarO_req,去訪問後端寄存器,從寄存器交換數據,在CPU檢測到都算邏輯未使用寄存器時,可發起占用請求並占用寄存器(tarO_gnt被置位),此時,PCI讀寫此寄存器中的數據。
3 音頻接口設計
在驅動後端的音頻芯片時首先需要通過I2C接口配置音頻芯片的控製寄存器,此後根據音頻數據不同的采樣級別頻率控製FPGA產生的時鍾,最終音頻數據從FPGA內部的FIFO中通過FPGA產生的時鍾依據I2S協議標準向音頻芯片傳輸。在FPGA中設計的音頻接口包括I2C時序協議接口模塊,I2S時鍾控製接口模塊和I2S時序協議接口模塊。
3.1 I2C接口模塊的設計
I2C總線是由飛利浦公司開發的串行總線,總線由兩根信號線構成,其中SCLK為時鍾信號線,SDA為雙向數據線。I2C總線上的所有設備均可做為主設備,每個設備在總線上都有唯一的地址。
立體聲音頻編解碼器TLV320AIC23B中,共有11個寄存器需要配置,所有寄存器為隻寫寄存器。這些寄存器分別控製芯片輸出音頻的左右耳機音量、左右功放音量、芯片電源、采樣率等參數。在芯片的配置參數傳輸時,以I2C的數據線(SDA)在時鍾線(SCLK)為高時下降沿條件作為數據的起始位,此後每當FPGA向TLV320AIC23B傳輸8位數據時,TLV320 AIC23B在第9個時鍾時通過SDA向FPGA返回一個ACK信號。如果FPGA確認收到ACK信號則繼續傳輸下一組數據,否則將重複傳輸此組數據。實際中示波器測量的傳輸波形如圖4所示。

3.2 I2S時鍾控製接口模塊的設計
由於不同的音頻數據有著不同的采樣級別頻率,所以在傳輸不同音頻文件時,FPGA提供給TLV320AIC23B的時鍾頻率不同,為使不同采樣頻率的聲音文件都能在本係統上正常播放,故在FPGA內部使用其DCM由主時鍾12.288 MHz生成16 kHz和32 kHz兩種采樣時鍾頻率,接入緩衝器BUFGMUX中,並且通過在PCI的配置空間中開辟一個寄存器,寄存器的值接至BUFGMUX的選擇端,這樣通過配置PCI總線配置此寄存器即可根據播放音頻的情況選擇時鍾頻率。
3.3 I2S時序協議接口模塊的設計
I2S時序接口模塊的主時鍾由FPGA內部提供,模塊內通過對主時鍾進行分頻產生BCLK與LRCin,模塊在每個LRCin的上升沿由緩存FIFO中讀取一個16 bit的數據放入臨時寄存器,此後在BCLK的每個上升沿依次由高至低讀取寄存器中的每一位並賦值給數據線SDIN,並且在LRCIN的下降延時重複傳輸此數據,從而完成音頻數據的I2S協議傳輸。
4 係統測試及結果
通過在上位機中向CPU內部Flash燒錄一段音頻數據,此後通過訪問FPGA的配置寄存器將此段數據傳入至FPGA內64 kB的FIFO中,後端音頻模塊檢測到FIFO非空即開始工作。首選通過邏輯仿真軟件對係統進行仿真,結果如圖5所示,信號線SDIN、 LRclk,BCLK輸出結果符合I2S協(xie)議(yi)規(gui)範(fan)中(zhong)左(zuo)對(dui)齊(qi)模(mo)式(shi)。此(ci)後(hou)可(ke)以(yi)在(zai)音(yin)頻(pin)芯(xin)片(pian)模(mo)擬(ni)輸(shu)出(chu)端(duan)接(jie)入(ru)耳(er)機(ji)或(huo)功(gong)放(fang)等(deng)音(yin)頻(pin)播(bo)放(fang)設(she)備(bei),用(yong)示(shi)波(bo)器(qi)測(ce)量(liang)其(qi)模(mo)擬(ni)輸(shu)出(chu)。結(jie)果(guo)證(zheng)明(ming)此(ci)係(xi)統(tong)工(gong)作(zuo)正(zheng)常(chang),可(ke)以(yi)按(an)照(zhao)要(yao)求(qiu)播(bo)放(fang)16 kbit/s與32kbit/s WAV音頻文件。通過示波器測量的模擬輸出如圖6所示,可以看出明顯的包絡信號。通過以上結論可以看出,係統可以充分利用FPGA 片內資源,從而減少對板內麵積占用並減低係統功耗,也易於移植入同類的嵌入式係統中。

在本文的基礎上,可以進一步發揮FPGA的靈活性,比如在開發FPGA上支持PCI從設備DMA模式,以進一步加強PCI總線的讀寫效率、I2S總線的右對齊和DSP模式等,並且可以開發語音芯片上的語音采集功能,使係統實現語音采集、轉換、傳輸等功能。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 從技術研發到規模量產:恩智浦第三代成像雷達平台,賦能下一代自動駕駛!
- 從機械執行到智能互動:移遠Q-Robotbox助力具身智能加速落地
- 品英Pickering將亮相2026航空電子國際論壇,展示航電與電池測試前沿方案
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
按鈕開關
白色家電
保護器件
保險絲管
北鬥定位
北高智
貝能科技
背板連接器
背光器件
編碼器型號
便攜產品
便攜醫療
變容二極管
變壓器
檳城電子
並網
撥動開關
玻璃釉電容
剝線機
薄膜電容
薄膜電阻
薄膜開關
捕魚器
步進電機
測力傳感器
測試測量
測試設備
拆解
場效應管
超霸科技



