當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]IIS(集成音頻接口)于上個(gè)世紀(jì)80年代首先被Philips公司用于消費(fèi)產(chǎn)品的音頻設(shè)備。被廣泛運(yùn)用于CD、數(shù)字音頻磁帶、數(shù)字音頻處理器和數(shù)字TV音頻。IIS的組成一般來說包括4個(gè)管腳:串行數(shù)據(jù)輸入(IISDI)、串行數(shù)據(jù)輸出(

IIS(集成音頻接口)于上個(gè)世紀(jì)80年代首先被Philips公司用于消費(fèi)產(chǎn)品的音頻設(shè)備。被廣泛運(yùn)用于CD、數(shù)字音頻磁帶、數(shù)字音頻處理器和數(shù)字TV音頻。

IIS的組成一般來說包括4個(gè)管腳:串行數(shù)據(jù)輸入(IISDI)、串行數(shù)據(jù)輸出(IISDO)、左/右通道選擇(IISLRCK)、串行位時(shí)鐘(IISCLK);產(chǎn)生IISLRCK和IISCLK的是主控器。在S3C2440上和IIS相關(guān)的接口還有一個(gè)用于提供CODEC時(shí)鐘的管腳。就時(shí)序信號(hào)工作來說,當(dāng)IISSCLK提供不間斷的時(shí)鐘信號(hào)的時(shí)候IISLRCK會(huì)以“數(shù)據(jù)位+1”的寬度方式產(chǎn)生周期信號(hào)。低電平時(shí)期表示左聲道,高電平時(shí)期表示右聲道。然后IISDI或者IISDO就按照一定的格式不斷的發(fā)送/接收數(shù)據(jù)。

至于這種數(shù)據(jù)的格式,根據(jù)S3C2440的芯片資料的說明可以知道這樣以MSB為首位可以讓傳輸器和接收器不用知道對(duì)方的字長。數(shù)據(jù)還是按照各自的字長進(jìn)行截取,如果不能匹配就會(huì)造成截?cái)嗷蛘咛?(意思是如果系統(tǒng)字長為32位而傳輸器的字長為16位那么傳輸?shù)臅r(shí)候32位的系統(tǒng)數(shù)據(jù)就會(huì)被折成16位的)反正就是數(shù)據(jù)位從高到低的傳輸。至于MSB對(duì)齊格式,和上面的時(shí)序區(qū)別在于MSB總是被首先的傳輸在左右聲道切換的時(shí)候。

芯片手冊(cè)


語音芯片UDA1341TS

/*-----------------------------------------------------------------------------------

*地址模式時(shí)序,掌握幾個(gè)要點(diǎn)

*數(shù)據(jù)傳輸?shù)臅r(shí)候保證L3MODE為低

*數(shù)據(jù)傳輸開始的信號(hào)是保證L3MODE為低L3CLOCK為高

*數(shù)據(jù)傳輸結(jié)束的信號(hào)是保證L3MODE為高L3CLOCK為高

*數(shù)據(jù)傳輸過程中一個(gè)L3CLOCK的周期傳一個(gè)數(shù)據(jù)位

*數(shù)據(jù)模式時(shí)序,掌握幾個(gè)要點(diǎn)

*數(shù)據(jù)傳輸?shù)臅r(shí)候保證L3MODE為低

*數(shù)據(jù)傳輸開始的信號(hào)是保證L3MODE為高L3CLOCK為高

*數(shù)據(jù)傳輸結(jié)束的信號(hào)是保證L3MODE為高L3CLOCK為高

*數(shù)據(jù)傳輸過程中一個(gè)L3CLOCK的周期傳一個(gè)數(shù)據(jù)位

*------------------------------------------------------------------------------------*/

2.mini2440電路圖

3.S3C2440寄存器

s3C2440A的IIS總線接口用于實(shí)現(xiàn)一個(gè)CODEC接口來擴(kuò)展8/16位立體聲CODEC芯片到便攜式應(yīng)用。IIS總線接口支持IIS總線數(shù)據(jù)格式和MSB對(duì)齊數(shù)據(jù)格式。接口提供DMA傳輸模式用于FIFO訪問代替一個(gè)中斷。它能同步的傳輸和接收數(shù)據(jù)如同選擇單獨(dú)傳輸或者接收數(shù)據(jù)一樣好。

時(shí)序的速率和音頻數(shù)據(jù)的采樣速率相關(guān),因?yàn)镮IS傳輸?shù)氖菙?shù)字采樣信號(hào)。所以數(shù)據(jù)的傳輸必須要達(dá)到采樣速率。這里以一個(gè)wav文件作為例子(采樣頻率44.1KHz、聲道數(shù)2、數(shù)據(jù)位數(shù)16)。該文件的聲音要得到還原,那么數(shù)據(jù)必須以44.1KHz的速率傳輸。但是數(shù)據(jù)是串行傳輸?shù)模瑸榱嗽谥付〞r(shí)間傳輸?shù)綌?shù)據(jù),所以傳輸速率必須要乘以16才能一個(gè)數(shù)據(jù)以44.1KHz的速率傳輸,然后由于聲道數(shù)位2,所以有兩個(gè)通道要同時(shí)傳輸數(shù)據(jù)。但是傳輸通道只有一個(gè),所以為了保證同時(shí),還要在此基礎(chǔ)上乘以2。根據(jù)上面的時(shí)序可以知道是SCLK在控制整個(gè)時(shí)序,所以得出IISSCLK=采樣頻率×采樣位數(shù)×通道數(shù)。這里為了簡(jiǎn)便起見,采樣頻率記為fs。于是IISSCLK為32fs。知道一個(gè)管腳的時(shí)序,其他時(shí)序也就好確定了。

在S3C2440下,IIS的配置都是通過寄存器來完成的。下面總結(jié)一些S3C2440使用IIS接口需要做的一些配置工作。

IIS相關(guān)的寄存器:

IISCON寄存器

功能名稱

說明

LR_CH_INDEX

[8]

左/右聲道索引

0——左

1——右

TRANS_FIFO_RFLAG

[7]

傳輸FIFO準(zhǔn)備標(biāo)識(shí)

0——空

1——非空

RECV_FIFO_RFLAG

[6]

接收FIFO準(zhǔn)備標(biāo)識(shí)

0——滿

1——非滿

TRANS_DMA_EN

[5]

傳輸DMA服務(wù)請(qǐng)求

0——關(guān)閉

1——使能

RECV_DMA_EN

[4]

接收DMA服務(wù)請(qǐng)求

0——關(guān)閉

1——使能

TRANS_CH_IDLE_CMD

[3]

在Idle狀態(tài)IISLRCK是非活動(dòng)的(暫停Tx)

0——Notidle

1——Idle

RECV_CH_IDLE_CMD

[2]

在Idle狀態(tài)IISLRCK是非活動(dòng)的(暫停Rx)

0——Notidle

1——Idle

IIS_PRESCALER

[1]

IIS預(yù)分頻

0——關(guān)閉

1——開啟

IIS_EN

[0]

IIS接口使能

0——關(guān)閉

1——開啟

IISMOD寄存器

功能名稱

說明

MA_CLK_SELECT

[9]

主時(shí)鐘選擇

0——PCLK

1——MPLLin

MA_SL_MODE

[8]

主/從模式選擇

0——主模式(IISLRCK和IISCLK是輸出模式)

1——從模式(IISLRCK和IISCLK是輸入模式)

TX_RX_MODE

[7:6]

傳輸/接收模式選擇

00——無傳輸

01——接收模式

10——傳輸模式

11——傳輸和接收模式

LR_CH_EN

[5]

左右聲道使能

0——右聲道

1——左聲道

SER_FORMAT

[4]

串行接口格式

0——IIS兼容格式

1——MSB對(duì)齊格式(最高位左對(duì)齊)

SER_DATA_BIT

[3]

串行數(shù)據(jù)位數(shù)

0——8位

1——16位

MA_CLK_FS

[2]

主時(shí)鐘頻率選擇

0——256fs

1——384fs

(fs:采樣頻率)

SCLK

[1:0]

串行時(shí)鐘頻率選擇

00——16fs

01——32fs

10——48fs

11——保留

IISPSR寄存器

功能名稱

說明

PRE_A

[9:5]

預(yù)分頻器A的值

PRE_B

[4:0]

預(yù)分頻器B的值

注意:選擇IIS的時(shí)鐘源(PCLK或者M(jìn)PLLin)后,經(jīng)過兩個(gè)預(yù)分頻器處理后會(huì)分別得到IISSCLK、IISLRCK和CDCLK(預(yù)分頻器A得到IISSCLK、IISLRCK;預(yù)分頻器B得到CDCLK)。一般來說,這兩個(gè)預(yù)分頻器的值N相等。這里通過CDCLK來計(jì)算預(yù)分頻器B的N值來推知預(yù)分頻器A的N值,計(jì)算公式為CDCLK=時(shí)鐘源/(N+1)。

IISFCON寄存器

功能名稱

說明

TX_FIFO_MODE

[15]

傳輸FIFO訪問模式選擇

0——普通

1——DMA

RX_FIFO_MODE

[14]

接收FIFO訪問模式選擇

0——普通

1——DMA

TX_FIFO_EN

[13]

傳輸FIFO使能位

0——關(guān)閉

1——使能

RX_FIFO_EN

[12]

接收FIFO使能位

0——關(guān)閉

1——使能

傳輸FIFO數(shù)據(jù)計(jì)數(shù)

[11:6]

數(shù)據(jù)計(jì)數(shù)值0~32

接收FIFO數(shù)據(jù)計(jì)數(shù)

[5:0]

數(shù)據(jù)計(jì)數(shù)值0~32

IISFIFO寄存器

功能名稱

說明

FENTRY

[15:0]

IISFIFO寄存器保存?zhèn)鬏敾蛘呓邮盏囊纛l數(shù)據(jù)值

3.1.DMA

S3C2440支持4通道位于系統(tǒng)總線和外圍設(shè)備總線之間的DMA控制器。每個(gè)DMA控制器通道能執(zhí)行數(shù)據(jù)搬運(yùn)在系統(tǒng)總線設(shè)備和/或外圍總線設(shè)備之間而沒有限制。換句話說,每個(gè)通道能處理下面4種情形:

1.源和目地都在系統(tǒng)總線里

2.源在系統(tǒng)總線目地在外圍總線

3.源在外圍總線目地在系統(tǒng)總線

4.源和目地都在外圍總線

DMA的優(yōu)勢(shì)是它在傳輸數(shù)據(jù)的時(shí)候不需要CPU的干預(yù)。DMA操作能被軟件初始化,或者響應(yīng)來自內(nèi)部外圍總線或者擴(kuò)展請(qǐng)求管腳。

DMA請(qǐng)求資源

各個(gè)DMA控制器的通道能選擇其中一個(gè)DMA請(qǐng)求資源,如果H/WDMA請(qǐng)求模式被DCON寄存器選擇(注意如果S/W請(qǐng)求模式被選擇,這個(gè)DMA請(qǐng)求資源無任何意義)。表8-1展示了4個(gè)DMA資源于各個(gè)通道。


DMA操作

空閑時(shí):DMA_ACK=0;INT_REQ=0;

單服務(wù):知道CURR_TC計(jì)數(shù)變?yōu)?;

全服務(wù):完成一次原子操作;

完成后:DMA_ACK=1;INT_REQ=1;

傳輸大小

單元(unit)和突發(fā)(Burst)

iis.h


/*******************************************************************

*Copyright(C),2011-2012,XXX.

*FileName:iis.h

*Author:HuangYinqing

*Version:1.0

*Date::2012-08-12

*Description:iis音頻驅(qū)動(dòng).

*FunctionList:

*History:

******************************************************************/

/*IIS調(diào)試等級(jí)*/

#defineDBG_IIS_LEVEL1

/*采樣頻率選擇*/

#defineFRQ_SELECT4

/*使用DMA傳輸數(shù)據(jù)*/

//#defineIIS_USE_DMA

/*引腳定義*/

#defineL3C(1<<4)//GPB4=L3CLOCK

#defineL3D(1<<3)//GPB3=L3DATA

#defineL3M(1<<2)//GPB2=L3MODE

#defineMIN_VOLUME0x01

#defineMID_VOLUME0x20

#defineMAX_VOLUME0x3e//==音量最大值

/*緩沖區(qū)產(chǎn)度*/

#defineSOUND_DATA_LEN243552

/*函數(shù)原型*/

/***************************************************************

**函數(shù)名稱:voidSoundRecord(unsignedchar*pucRecBuf,unsignedlongulSize)

**函數(shù)功能:錄音

**入口參數(shù):pucPlayBuf:放音緩沖區(qū);ulSize:緩沖區(qū)大小

**出口參數(shù):無

**返回:無

***************************************************************/

voidSoundRecord(unsignedchar*pucRecBuf,unsignedlongulSize);

/***************************************************************

**函數(shù)名稱:voidSoundPlay(unsignedchar*pucPlayBuf,unsignedlongulSize)

**函數(shù)功能:放音

**入口參數(shù):pucPlayBuf:放音緩沖區(qū);ulSize:緩沖區(qū)大小

**出口參數(shù):無

**返回值:無

*************

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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