嵌入式系統中I2S總線數據通信的軟件模擬
引言
本文引用地址:http://www.j9360.com/article/151467.htmI2S(InterIC Sound Bus)是飛利浦公司針對數字音頻設備之間的音頻數據傳輸而制定的一種總線標準,采用沿獨立的導線傳輸時鐘與數據信號的設計,通過分離數據和時鐘信號,避免了時差誘發的失真。I2S總線簡單有效,可以有效提升輸出數據的質量,在各種嵌入式音頻系統中有廣泛應用。但是在嵌入式音頻系統設計中,并不是所有的MCU都支持I2S總線格式,再加上I2S還沒有統一的接口標準,不同的廠家生產的設備接口也是五花八門,采用軟件模擬實現I2S總線可有效解決在不支持其的MCU和設備之間通過I2S總線實現數據傳輸時出現的問題。
本文通過在以太網數字語音廣播系統中軟件模擬I2S總線實現語音數據傳輸,給出了軟件模擬實現I2S總線的方法。
1 I2S總線規范
I2S為三線總線,3個信號分別為:
① 串行時鐘SCK,也叫位時鐘(BCK)。即每發送1位數字音頻數據,SCK上都有1個脈沖。SCK的頻率=2×采樣頻率×采樣位數。在數據傳輸過程中,I2S總線的發送器和接收器都可以作為系統的主機來提供系統的時鐘頻率。
② 幀時鐘WS,即命令(聲道)選擇,用于切換左右聲道的數據。WS的頻率等于采樣頻率,由系統主機提供。WS為“0”表示傳輸的是左聲道的數據,WS為“1”表示傳輸的是右聲道的數據。
③ 串行數據信號SD,用于傳輸二進制補碼表示的音頻數據。
I2S格式的信號無論有多少位有效數據,數據位的最高位(MSB)總是被最先傳輸,1次能夠發送的數據決定于I2S格式的有效位數。
1個典型的I2S信號時序如圖1所示
圖1 I2S總線典型時序圖
隨著技術的發展,在統一的I2S接口下出現了多種不同的數據格式。根據SD信號相對于SCK和WS位置的不同,分為左對齊和右對齊2種格式,如圖2和圖3所示。
圖2 16位有效位數的左對齊格式
圖3 16位有效位數的右對齊格式
評論