新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 音頻系統芯片選擇多項性能參數詳解

        音頻系統芯片選擇多項性能參數詳解

        作者: 時間:2012-06-22 來源:網絡 收藏

          產品最終贏在細節,嘗試了種種帶硬傷的產品之后,我們最后不得不放棄了國產了國外A廠家的產品。從A廠家的硬件看,可以得出的結果就是其硬件細節做得相當好。我們測試其發現,其一致性很高,同時余量設計得很好。標稱375MHz的,在非最高核心電壓情況下基本都可以穩定超頻到572MHz,高出標稱頻率的50%,同時DDR2時鐘超頻60%,不俗。從寄存器設計來說,不少都是根據Linux的數據結構設計的,因此只要熟悉軟件就很容易熟悉其硬件。

          在大規模數據吞吐的部分,A廠家使用了鏈接DMA,這個細節完美保證輸出數據流的連續,最大限度保證了最重要的I2S數據輸出不會丟幀。我們測試的時候一邊解碼一邊通過SD卡進行本地數據解壓,在CPU滿負荷的情況下都沒有出現丟幀,可見A廠家硬件的功力之強。

          在此我們分析一下,為什么會丟幀。其實大部分系統都是完成數據流的一個傳輸,解碼的數據流向就是從SD卡等媒體讀出原始碼流,然后經CPU解碼之后送I2S輸出,這個過程有涉及到重要數據傳輸的就是媒體到RAM,再從RAM到I2S的過程,這些數據流都是DMA完成的,而瓶頸就在DMA切換的過程。Linux的文件系統由系統進行緩存,對時序的要求不高,而I2S要求連續的數據,就和I2S的FIFO有密切的關系,如果不是系統自動切換緩沖區的話,就要求CPU介入切換,而CPU的中斷響應時間就會嚴重影響數據的連續性。比如I2S的FIFO是32個數據,如果I2S的LRCK是192kHz,那么能夠給CPU的中斷時間最長就是32/2/192kHz=83µs,而且根據中斷機制,一般是FIFO剩下一半的時候申請中斷,那么時間就只有不到50µs,這個速度在普通Linux系統基本無法滿足需求,因此丟幀就是必然。IC廠家設計的時候指標都是按96kHz的硬件指標來設計,當然無法滿足高端系統的要求了。A廠家的自動DMA鏈不需要CPU進行數據的切換,而通過軟件劃分2塊或以上的數據(Ping pong buffer)讓DMA自動切換,如此就完美保證了輸出數據的連續性。對音響系統而言,只要I2S出現丟幀馬上就會被察覺,更無法通過儀器的檢測,所以這個細節如果做不到位是無法走向市場的。

          另外A廠家的硬件包含了SATA接口以及兼容性和速度都無可挑剔的USB 2.0 host/SD卡支持,更出色的地方是,小小一個ARM9芯片還帶了EMAC,同時帶了兩個小單片機,每個的速度是系統時鐘速度的一半,這個小單片機可以實現的功能遠比普通MCU的功能多。如果嫌CPU速度不夠,還可以引腳兼容的帶浮點DSP的片子,這個DSP的運算能力相當于同等ARM9在2G以上的運算速度,這對數據后端處理有著至關重要的提升。A廠家的片子還提供TF卡啟動功能,這樣的話可以完美地避開NAND發展所帶來的問題,同時解決Linux在NAND建立的文件系統的啟動速度問題。

          這里再說說時鐘電路。由于需要支持32K~192K采樣率,因此必須能夠生成對應的時鐘,同時要求jitter低于50ps(處理器內置PLL時鐘一般在200ps以上)。而對于DAC,很多國產芯片都因為集成的成本低而將DAC集成到CPU里面,但這樣做使得無法提高,比如THD+N最高只能到90dB左右,而目前世界頂級的DAC其THD+N達到驚人的-120dB,同時提供135dB的動態范圍。這樣高的性能對整個系統設計都有極其嚴格的要求,因此國外同類產品售價都不低于4,000美元。另外硬件系統設計最后的一個關鍵點就是PCB走線。

          在軟件方面,系統需要覆蓋數十種優化過的解碼器,解碼輸出數字信號要經過DSP后處理,另外還涉及到FPGA Verilog軟件編程、網絡UPNP協議控制、文件共享、遠程播放/控制等多種協議,涵蓋范圍相當廣泛,目前國內基本上還沒有供應商能進行相關的設計和制作。

          小結

          系統屬于典型的低頻模擬信號和高頻數字信號結合的系統,因此能做好的廠家國際上都是屈指可數,國內更是罕見。經過我們三年多的研發,系統終于達到了國際中上游水平,產品聽感和國際一線品牌Linn Akurate DS相當,由于系統設計合理得當,在嚴格的聽音環境通過監聽音箱和與市場價格在12,000元左右某知名歐洲品牌的DAC A/B對比,聽感更勝一籌。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 庐江县| 静海县| 松江区| 色达县| 余干县| 乐亭县| 恩平市| 安达市| 六盘水市| 舟山市| 阜新市| 日照市| 甘谷县| 临江市| 安福县| 商河县| 社旗县| 石门县| 阿克苏市| 和顺县| 浮山县| 二手房| 关岭| 大埔区| 和硕县| 南和县| 沙河市| 大新县| 泰安市| 台安县| 边坝县| 蕲春县| 沙河市| 汕尾市| 西丰县| 嘉禾县| 墨江| 乌拉特前旗| 湖北省| 固原市| 明溪县|