<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式系統(tǒng)中I2S總線數(shù)據(jù)通信的軟件模擬

          嵌入式系統(tǒng)中I2S總線數(shù)據(jù)通信的軟件模擬

          作者: 時間:2010-09-29 來源:網(wǎng)絡 收藏

          引言

          本文引用地址:http://www.ex-cimer.com/article/151467.htm

            (InterIC Sound Bus)是飛利浦公司針對數(shù)字音頻設備之間的音頻數(shù)據(jù)傳輸而制定的一種標準,采用沿獨立的導線傳輸時鐘與數(shù)據(jù)信號的設計,通過分離數(shù)據(jù)和時鐘信號,避免了時差誘發(fā)的失真。簡單有效,可以有效提升輸出數(shù)據(jù)的質(zhì)量,在各種音頻中有廣泛應用。但是在音頻設計中,并不是所有的MCU都支持格式,再加上I2S還沒有統(tǒng)一的接口標準,不同的廠家生產(chǎn)的設備接口也是五花八門,采用實現(xiàn)I2S總線可有效解決在不支持其的MCU和設備之間通過I2S總線實現(xiàn)數(shù)據(jù)傳輸時出現(xiàn)的問題。

            本文通過在以太網(wǎng)數(shù)字語音廣播I2S總線實現(xiàn)語音數(shù)據(jù)傳輸,給出了實現(xiàn)I2S總線的方法。

            1 I2S總線規(guī)范

            I2S為三線總線,3個信號分別為:

           ?、?串行時鐘SCK,也叫位時鐘(BCK)。即每發(fā)送1位數(shù)字音頻數(shù)據(jù),SCK上都有1個脈沖。SCK的頻率=2×采樣頻率×采樣位數(shù)。在數(shù)據(jù)傳輸過程中,I2S總線的發(fā)送器和接收器都可以作為系統(tǒng)的主機來提供系統(tǒng)的時鐘頻率。

           ?、?幀時鐘WS,即命令(聲道)選擇,用于切換左右聲道的數(shù)據(jù)。WS的頻率等于采樣頻率,由系統(tǒng)主機提供。WS為“0”表示傳輸?shù)氖亲舐暤赖臄?shù)據(jù),WS為“1”表示傳輸?shù)氖怯衣暤赖臄?shù)據(jù)。

           ?、?串行數(shù)據(jù)信號SD,用于傳輸二進制補碼表示的音頻數(shù)據(jù)。

            I2S格式的信號無論有多少位有效數(shù)據(jù),數(shù)據(jù)位的最高位(MSB)總是被最先傳輸,1次能夠發(fā)送的數(shù)據(jù)決定于I2S格式的有效位數(shù)。

            1個典型的I2S信號時序如圖1所示


          圖1 I2S總線典型時序圖

            隨著技術的發(fā)展,在統(tǒng)一的I2S接口下出現(xiàn)了多種不同的數(shù)據(jù)格式。根據(jù)SD信號相對于SCK和WS位置的不同,分為左對齊和右對齊2種格式,如圖2和圖3所示。


          圖2 16位有效位數(shù)的左對齊格式


          圖3 16位有效位數(shù)的右對齊格式

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();