當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀] 引言  I2S(InterIC Sound Bus)是飛利浦公司針對數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),采用沿獨立的導(dǎo)線傳輸時鐘與數(shù)據(jù)信號的設(shè)計,通過分離數(shù)據(jù)和時鐘信號,避免了時差誘發(fā)的失真。I2S總線簡單

  引言

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

  本文通過在以太網(wǎng)數(shù)字語音廣播系統(tǒng)中軟件模擬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)的時鐘頻率。

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

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

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

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


圖1  I2S總線典型時序圖

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


 

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


圖3  16位有效位數(shù)的右對齊格式[!--empirenews.page--]

  在上面2種數(shù)據(jù)傳輸格式中,當(dāng)WS為“1”時傳輸?shù)氖亲舐暤赖臄?shù)據(jù),當(dāng)WS為“0”時傳輸?shù)氖怯衣暤赖臄?shù)據(jù)。為了保證數(shù)字音頻信號的正確傳輸,發(fā)送端和接收端必須采用相同的數(shù)據(jù)格式。

  2  軟件模擬I2S

  以太網(wǎng)數(shù)字語音廣播系統(tǒng)主要是指以以太網(wǎng)為傳播介質(zhì)提供音頻服務(wù)的廣播系統(tǒng),將語音信號以標(biāo)準(zhǔn)IP包的形式在以太網(wǎng)上進(jìn)行傳送,以實現(xiàn)語音廣播功能。該系統(tǒng)在PC機端通過麥克風(fēng)采集語音數(shù)據(jù),然后將采集到的語音數(shù)據(jù)通過以太網(wǎng)發(fā)送給嵌入式終端,嵌入式終端將接收到的語音數(shù)據(jù)進(jìn)行數(shù)/模轉(zhuǎn)換后進(jìn)行播放。系統(tǒng)實現(xiàn)框圖如圖4所示[5]。

 


 

圖4  以太網(wǎng)數(shù)字語音廣播系統(tǒng)框圖


圖5  LM3S8962與MS6336的連接圖

  廣播系統(tǒng)終端的MCU LM3S8962將接收到的語音數(shù)據(jù)通過I2S總線發(fā)送給語音解碼芯片MS6336進(jìn)行數(shù)/模轉(zhuǎn)換并播放,

  LM3S8962和MS6336的連接如圖5所示。為了完整還原出語音信號,需要保證軟件模擬I2S信號時序嚴(yán)格精確,高低電平的轉(zhuǎn)換采用延時程序?qū)崿F(xiàn)。MS6336為16位D/A芯片,其I2S時序如圖6所示。


圖6  MS6336的典型I2S時序圖

  該系統(tǒng)中的語音數(shù)據(jù)雙聲道,16位采樣,1個采樣點的數(shù)據(jù)為4字節(jié),1個采樣點數(shù)據(jù)通過MCU發(fā)送給MS6336,數(shù)據(jù)發(fā)送流程如圖7所示。


圖7  1個采樣點數(shù)據(jù)發(fā)送流程

  軟件模擬I2S引腳的定義如下:

  #define I2S_WS GPIO_PIN_5//模擬I2S聲道選擇時鐘控制位

  #define I2S_BCK GPIO_PIN_6//模擬I2S位時鐘控制位

  #define I2S_DATA GPIO_PIN_7//模擬I2S數(shù)據(jù)傳送位[!--empirenews.page--]

  根據(jù)MS6336的I2S總線格式以及數(shù)據(jù)發(fā)送流程,軟件模擬I2S總線的步驟如下:

 ?、?根據(jù)語音數(shù)據(jù)采樣率及采樣位數(shù)計算得到SCK的值和WS的值(WS的值等于采樣頻率)。

  系統(tǒng)采樣率為44.1 kHz,則SCK=2×44.1 kHz×103×16=1 411 200 Hz,WS=44 100 Hz。1個SCK時鐘周期T=1/SCK=0?7 μs。采用延時程序模擬SCK時鐘周期需要應(yīng)用示波器來精確延時時間。本系統(tǒng)中一個SCK周期的延時為delayI2S(2)。

 ?、?將WS、BCK和DATA均置為高電平。

 ?、?選擇左右聲道。首先發(fā)送左聲道數(shù)據(jù),將WS置低(若發(fā)送右聲道數(shù)據(jù)則將WS置高)。

  for(ChannelCnt=0;ChannelCnt<2;ChannelCnt++){//雙聲道選擇播放

  if(ChannelCnt==0){//左聲道選擇信號為低電平

  HWREG(GPIO_PORTA_BASE + (GPIO_O_DATA + (I2S_WS << 2))) = ~I(xiàn)2S_WS;

  }

  else{//右聲道選擇信號為高電平

  HWREG(GPIO_PORTA_BASE + (GPIO_O_DATA + (I2S_WS << 2))) = I2S_WS;

  }

  ……

  }

 ?、?選擇高低字節(jié)。將左聲道數(shù)據(jù)以高低字節(jié)的順序發(fā)送,在發(fā)送高字節(jié)第1位數(shù)據(jù)之前先發(fā)送1個周期的串行時鐘。

  for(HorLCnt=0;HorLCnt<2;HorLCnt++){//聲道數(shù)據(jù)高低字節(jié)選擇

  if(ChannelCnt==0){//左聲道

  if(HorLCnt==0){//高字節(jié)

  c=*(SampleData+1);//SampleData指向音頻數(shù)據(jù)緩沖區(qū)首地址,即左聲道低字節(jié)

  delayI2S(2);//發(fā)送第一個數(shù)據(jù)位之前需要延遲一個位時鐘周期

  }

  else{//低字節(jié)

  c=*SampleData;

  }

  }

  ……

  }

  ⑤ 開始傳輸音頻數(shù)據(jù)(音頻數(shù)據(jù)的傳輸在SCK下降沿準(zhǔn)備數(shù)據(jù),在SCK的上升沿發(fā)

  送給數(shù)據(jù)接收端)。將采樣點左聲道數(shù)據(jù)的高字節(jié)最高位送給SD,設(shè)置SCK為低電平,此時為SCK的下降沿,數(shù)據(jù)準(zhǔn)備好。延時半個SCK周期以后將SCK置為高電平,此時SD線上的數(shù)據(jù)發(fā)送給數(shù)據(jù)接收端,延時半個SCK周期。依次將左聲道剩余位數(shù)據(jù)按照最高位的方式發(fā)送出去。

  for(BitCnt=0;BitCnt<8;BitCnt++){//1次傳送的數(shù)據(jù)長度為8位,先傳送高字節(jié)再傳送低字節(jié)置時鐘線SCK為低,開始準(zhǔn)備數(shù)據(jù)位

  HWREG(GPIO_PORTA_BASE + (GPIO_O_DATA + (I2S_BCK << 2))) = ~I(xiàn)2S_BCK;

  if((c<<BitCnt)&0x80) {

  HWREG(GPIO_PORTA_BASE + (GPIO_O_DATA + (I2S_DATA << 2))) = I2S_DATA;

  }

  else{

  HWREG(GPIO_PORTA_BASE + (GPIO_O_DATA + (I2S_DATA << 2))) = ~I(xiàn)2S_DATA;

  }

  delayI2S(1); //延時半個SCK時鐘周期置時鐘線為高,開始傳輸數(shù)據(jù)位

  HWREG(GPIO_PORTA_BASE + (GPIO_O_DATA + (I2S_BCK << 2))) = I2S_BCK;

  delayI2S(1);//延時半個時鐘周期

  }

 ?、?當(dāng)將1個采樣點的左聲道的數(shù)據(jù)發(fā)送完以后,延時2個SCK周期,然后發(fā)送右聲道的數(shù)據(jù)(同左聲道數(shù)據(jù)的發(fā)送過程)。

  根據(jù)以上的過程對每個采樣點的數(shù)據(jù)進(jìn)行處理,就可以實現(xiàn)通過軟件模擬I2S總線傳輸音頻數(shù)據(jù)了。以上實現(xiàn)的是典型I2S時序模擬,而左對齊和右對齊2種格式只是時序稍有差異,模擬實現(xiàn)過程同典型I2S總線模擬實現(xiàn)過程基本相同。

  結(jié)語

  在以太網(wǎng)數(shù)字語音廣播系統(tǒng)中應(yīng)用軟件模擬實現(xiàn)I2S總線時序,能夠成功地實現(xiàn)語音信號的數(shù)據(jù)傳輸,實現(xiàn)語音信號的實時廣播,表明了軟件模擬實現(xiàn)I2S總線的可行性,為解決不支持I2S總線的MCU和各種I2S總線設(shè)備間的通信提供了一種可行的方法。但是,在應(yīng)用軟件模擬實現(xiàn)I2S的以太網(wǎng)數(shù)字語音廣播系統(tǒng)實時播放語音信號時,存在一些噪聲,表明在采用軟件模擬實現(xiàn)I2S的時序精確性上存在一些欠缺。


 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉