色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Linux音頻ASoC架構(gòu)驅(qū)動(dòng)解析

Linux音頻ASoC架構(gòu)驅(qū)動(dòng)解析 時(shí)間:2018-09-29      來(lái)源:未知

近來(lái)對(duì)音頻芯片興趣頗濃,想在片選系統(tǒng)上實(shí)現(xiàn)音頻驅(qū)動(dòng),仔細(xì)研究發(fā)現(xiàn),Linux內(nèi)核系統(tǒng)(3.0)可以配置兩種音頻編程接口驅(qū)動(dòng),其驅(qū)動(dòng)架構(gòu)的組成如下:

1) Linux OSS 音頻設(shè)備驅(qū)動(dòng)架構(gòu)的組成:mixer 接口、dsp 接口及用戶空間編程方法。

2) Linux ALSA 音頻設(shè)備驅(qū)動(dòng)架構(gòu)的組成:card 和組件管理、PCM 設(shè)備、control 接口、AC97 API(或者是其他音頻芯片API接口)及用戶空間編程方法。

1.ASoC的由來(lái):

由于OSS音頻驅(qū)動(dòng)架構(gòu)是一個(gè)沒(méi)有完全開放源代碼的商業(yè)產(chǎn)品,而ALSA音頻驅(qū)動(dòng)架構(gòu)恰好彌補(bǔ)了這一空白。

ASoC--ALSA System on Chip (即ALSA在片選系統(tǒng)上的應(yīng)用),是建立在標(biāo)準(zhǔn)ALSA驅(qū)動(dòng)層上,為了更好地支持嵌入式處理器和移動(dòng)設(shè)備中的音頻Codec的一套軟件體系。在ASoc出現(xiàn)之前,內(nèi)核對(duì)于SoC中的音頻已經(jīng)有部分的支持,不過(guò)會(huì)有一些局限性:

Codec驅(qū)動(dòng)與SoC CPU的底層耦合過(guò)于緊密,這種不理想會(huì)導(dǎo)致代碼的重復(fù),例如,僅是wm8731的驅(qū)動(dòng),當(dāng)時(shí)Linux中有分別針對(duì)4個(gè)平臺(tái)的驅(qū)動(dòng)代碼。

音頻事件沒(méi)有標(biāo)準(zhǔn)的方法來(lái)通知用戶,例如耳機(jī)、麥克風(fēng)的插拔和檢測(cè),這些事件在移動(dòng)設(shè)備中是非常普通的,而且通常都需要特定于機(jī)器的代碼進(jìn)行重新對(duì)音頻路勁進(jìn)行配置。

當(dāng)進(jìn)行播放或錄音時(shí),驅(qū)動(dòng)會(huì)讓整個(gè)codec處于上電狀態(tài),這對(duì)于PC沒(méi)問(wèn)題,但對(duì)于移動(dòng)設(shè)備來(lái)說(shuō),這意味著浪費(fèi)大量的電量。同時(shí)也不支持通過(guò)改變過(guò)取樣頻率和偏置電流來(lái)達(dá)到省電的目的。

ASoC正是為了解決上述種種問(wèn)題而提出的,目前已經(jīng)被整合至內(nèi)核的代碼樹中:sound/soc。ASoC不能單獨(dú)存在,他只是建立在標(biāo)準(zhǔn)ALSA驅(qū)動(dòng)上的一個(gè)它必須和標(biāo)準(zhǔn)的ALSA驅(qū)動(dòng)框架相結(jié)合才能工作。

 

2.音頻設(shè)備硬件接口

2.1 PCM 接口

      PCM也是一種4線制接口。與I2S非常相像,但支持一個(gè)更靈活的協(xié)議。它有位時(shí)鐘(BCLK)和同步時(shí)鐘(SYNC)用來(lái)在Tx和Rx在傳送和接收音頻數(shù)據(jù)是同步連接。位時(shí)鐘通常因采樣率的不同而不同,然而同步時(shí)鐘(SYNC)與采樣頻率相同。PCM同樣支持時(shí)分復(fù)用,可以幾個(gè)設(shè)備同時(shí)使用總線(這有時(shí)被稱為network模式)。

2.2 IIS 接口

     I2S是一個(gè)4線數(shù)字音頻接口,常用于HiFi,STB便攜設(shè)備。Tx  和Rx信號(hào)線用于音頻傳輸。而位時(shí)鐘和左右時(shí)鐘(LRC)用于同步鏈接。I2S具有靈活性,因?yàn)榭刂破骱徒獯a器都可以控制位時(shí)鐘和左右時(shí)鐘。位時(shí)鐘因采樣率和主系統(tǒng)時(shí)鐘而有不同。LRCLK與采樣率相同。少數(shù)設(shè)備支持獨(dú)立的ADC和DAC的LRCLK。這使在不同采樣率情況下同步捕獲和回放成為可能。

2.3 AC97 接口

       AC97是一種個(gè)人電腦聲卡上常見的五線接口。現(xiàn)在在很多便攜設(shè)備中也很流行。這個(gè)數(shù)字音頻接口有一個(gè)復(fù)位線,分時(shí)在SDATA_OUT(回放)和SDATA_IN(捕獲) 線上傳送數(shù)據(jù)。位時(shí)鐘常由解碼器驅(qū)動(dòng)(通常是12.288MHz).幀時(shí)鐘(通常48kHz)總是由控制器驅(qū)動(dòng)。每個(gè)AC97幀21uS,并分為13個(gè)時(shí)間槽。

2.4 音頻系統(tǒng)結(jié)構(gòu)

         通常,就像軟件領(lǐng)域里的抽象和重用一樣,嵌入式設(shè)備的音頻系統(tǒng)可以被劃分為板載硬件(Machine)、Soc(Platform)、Codec三大部分,如下圖所示:

3.  軟件架構(gòu)

在軟件層面,ASoC也把嵌入式設(shè)備的音頻系統(tǒng)同樣分為3大部分,Machine,Platform和Codec。

Codec驅(qū)動(dòng)  ASoC中的一個(gè)重要設(shè)計(jì)原則就是要求Codec驅(qū)動(dòng)是平臺(tái)無(wú)關(guān)的,它包含了一些音頻的控件(Controls),音頻接口,DAMP(動(dòng)態(tài)音頻電源管理)的定義和某些Codec IO功能。為了保證硬件無(wú)關(guān)性,任何特定于平臺(tái)和機(jī)器的代碼都要移到Platform和Machine驅(qū)動(dòng)中。所有的Codec驅(qū)動(dòng)都要提供以下特性:

o Codec DAI 和 PCM的配置信息;

o Codec的IO控制方式(I2C,SPI等);

o Mixer和其他的音頻控件;

o Codec的ALSA音頻操作接口;

也可以增加提供以下功能:

o DAPM描述信息;

o DAPM事件處理程序;

o DAC數(shù)字靜音控制

Platform驅(qū)動(dòng)  它包含了該SoC平臺(tái)的音頻DMA和音頻接口的配置和控制(I2S,PCM,AC97等等);它也不能包含任何與板子或機(jī)器相關(guān)的代碼。

Machine驅(qū)動(dòng)  Machine驅(qū)動(dòng)負(fù)責(zé)處理機(jī)器特有的一些控件和音頻事件(例如,當(dāng)播放音頻時(shí),需要先行打開一個(gè)放大器);單獨(dú)的Platform和Codec驅(qū)動(dòng)是不能工作的,它必須由Machine驅(qū)動(dòng)把它們結(jié)合在一起才能完成整個(gè)設(shè)備的音頻處理工作。

4.  CLASS SOC

整個(gè)ASoC是由一些列struct組成,要搞清楚ASoC的工作機(jī)理,必須要理解這一系列struct之間的關(guān)系和作用,下面的關(guān)系圖展示了ASoC中重要的數(shù)據(jù)結(jié)構(gòu)之間的關(guān)聯(lián)方式:

Kernel 3.0中的ASoC數(shù)據(jù)結(jié)構(gòu)

通過(guò)snd_soc_card結(jié)構(gòu),又引出了Machine驅(qū)動(dòng)的另外兩個(gè)個(gè)數(shù)據(jù)結(jié)構(gòu):

snd_soc_dai_link(實(shí)例:smdk_dai[] )

snd_soc_ops(實(shí)例:smdk_ops )

snd_soc_dai_link看名字就知道,很明顯它是起耦合鏈接作用的。它指定了Platform、Codec、codec_dai、cpu_dai的名字,稍后Machine驅(qū)動(dòng)將會(huì)利用這些名字去匹配已經(jīng)在系統(tǒng)中注冊(cè)的platform,codec,dai。

snd_soc_ops連接Platform和Codec的dai_link對(duì)應(yīng)的ops操作函數(shù),本例就是smdk_ops,它只實(shí)現(xiàn)了hw_params函數(shù):smdk_hw_params。

到此為止,主要的部分machine的平臺(tái)設(shè)備注冊(cè)我們完成了。

上一篇:Qt-5.4.2在FS4412上的移植

下一篇:進(jìn)程間通信之信號(hào)初體驗(yàn)

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5京公海網(wǎng)安備11010802025203號(hào)

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 欧美肥老太性生活视频| 日韩中文字幕在线| 亚洲天堂av女优| 色综合老司机第九色激情| 国产精品久久久久久av| 国产一区二区三区在线观看视频| 精品二区三区线观看| 国产精品第1页| 日日狠狠久久偷偷四色综合免费 | 亚洲第五色综合网| 欧美精品在线免费| 成人免费视频a| 免费99精品国产自在在线| 国产一区香蕉久久| 久久九九有精品国产23| 国产精品白丝av嫩草影院| 色偷偷88888欧美精品久久久 | 国产精品久在线观看| 日韩有码在线观看| 国产欧美日韩91| 精品国产成人在线| 日韩电影视频免费| 97免费在线视频| 日韩一区二区欧美| 成人妇女免费播放久久久| 欧美视频免费在线| 亚洲性av网站| 国产精品嫩草视频| 欧美性xxxxhd| 亚洲图片在线综合| 成人午夜一级二级三级| 久久久久久久影院| 这里只有精品视频| 91在线无精精品一区二区| 51午夜精品视频| 不卡毛片在线看| 亚洲欧洲日本专区| 国产中文欧美精品| 情事1991在线| 欧美激情精品在线| 久热精品视频在线观看|