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