




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——LinuxALSA聲卡驅(qū)動之五移動設(shè)備中的ALSA(ASoC)
ArticlesfromLinkSprite學(xué)習(xí)中心LinuxALSA聲卡驅(qū)動之五:移動設(shè)備中的ALSA(ASoC)2023-03-0817:03:52zou,baozhu
1.ASoC的由來ASoC–ALSASystemonChip,是建立在標(biāo)準(zhǔn)ALSA驅(qū)動層上,為了更好地支持嵌入式處理器和移動設(shè)備中的音頻Codec的一套軟件體系。在ASoc出現(xiàn)之前,內(nèi)核對于SoC中的音頻已經(jīng)有部分的支持,不過會有一些局限性:Codec驅(qū)動與SoCCPU的底層耦合過于緊湊,這種不理想會導(dǎo)致代碼的重復(fù),例如,僅是wm8731的驅(qū)動,當(dāng)時Linux中有分別針對4個平臺的驅(qū)動代碼。音頻事件沒有標(biāo)準(zhǔn)的方法來通知用戶,例如耳機(jī)、麥克風(fēng)的插拔和檢測,這些事件在移動設(shè)備中是十分普通的,而且尋常都需要特定于機(jī)器的代碼進(jìn)行重新對音頻路勁進(jìn)行配置。當(dāng)進(jìn)行播放或錄音時,驅(qū)動會讓整個codec處于上電狀態(tài),這對于PC沒問題,但對于移動設(shè)備來說,這意味著浪費(fèi)大量的電量。同時也不支持通過改變過取樣頻率和偏置電流來達(dá)到省電的目的。ASoC正是為了解決上述種種問題而提出的,目前已經(jīng)被整合至內(nèi)核的代碼樹中:sound/soc。ASoC不能單獨(dú)存在,他只是建立在標(biāo)準(zhǔn)ALSA驅(qū)動上的一個它必需和標(biāo)準(zhǔn)的ALSA驅(qū)動框架相結(jié)合才能工作。
2.硬件架構(gòu)尋常,就像軟件領(lǐng)域里的抽象和重用一樣,嵌入式設(shè)備的音頻系統(tǒng)可以被劃分為板載硬件(Machine)、Soc(Platform)、Codec三大部分,如下圖所示:
圖2.1音頻系統(tǒng)結(jié)構(gòu)Machine是指某一款機(jī)器,可以是某款設(shè)備,某款開發(fā)板,又或者是某款智能手機(jī),由此可以看出Machine幾乎是不可重用的,每個Machine上的硬件實(shí)現(xiàn)可能都不一樣,CPU不一樣,Codec不一樣,音頻的輸入、輸出設(shè)備也不一樣,Machine為CPU、Codec、輸入輸出設(shè)備提供了一個載體。Platform一般是指某一個SoC平臺,譬如pxaxxx,s3cxxxx,omapxxx等等,與音頻相關(guān)的尋常包含該SoC中的時鐘、DMA、I2S、PCM等等,只要指定了SoC,那么我們可以認(rèn)為它會有一個對應(yīng)的Platform,它只與SoC相關(guān),與Machine無關(guān),這樣我們就可以把Platform抽象出來,使得同一款SoC不用做任何的改動,就可以用在不同的Machine中。實(shí)際上,把Platform認(rèn)為是某個SoC更好理解。Codec字面上的意思就是編解碼器,Codec里面包含了I2S接口、D/A、A/D、Mixer、PA(功放),尋常包含多種輸入(Mic、Line-in、I2S、PCM)和多個輸出(耳機(jī)、喇叭、聽筒,Line-out),Codec和Platform一樣,是可重用的部件,同一個Codec可以被不同的Machine使用。嵌入式Codec尋常通過I2C對內(nèi)部的寄放器進(jìn)行控制。
3.軟件架構(gòu)在軟件層面,ASoC也把嵌入式設(shè)備的音頻系統(tǒng)同樣分為3大部分,Machine,Platform和Codec。
Codec驅(qū)動ASoC中的一個重要設(shè)計(jì)原則就是要求Codec驅(qū)動是平臺無關(guān)的,它包含了一些音頻的控件(Controls),音頻接口,DAMP(動態(tài)音頻電源管理)的定義和某些CodecIO功能。為了保證硬件無關(guān)性,任何特定于平臺和機(jī)器的代碼都要移到Platform和Machine驅(qū)動中。所有的Codec驅(qū)動都要提供以下特性:CodecDAI和PCM的配置信息;
Codec的IO控制方式(I2C,SPI等);Mixer和其他的音頻控件;Codec的ALSA音頻操作接口;必要時,也可以提供以下功能:DAPM描述信息;DAPM事件處理程序;DAC數(shù)字靜音控制Platform驅(qū)動它包含了該SoC平臺的音頻DMA和音頻接口的配置和控制(I2S,PCM,AC97等等);它也不能包含任何與板子或機(jī)器相關(guān)的代碼。Machine驅(qū)動Machine驅(qū)動負(fù)責(zé)處理機(jī)器特有的一些控件和音頻事件(例如,當(dāng)播放音頻時,需要先行開啟一個放大器);單獨(dú)的Platform和Codec驅(qū)動是不能工作的,它必需由Machine驅(qū)動把它們結(jié)合在一起才能完成整個設(shè)備的音頻處理工作。
4.數(shù)據(jù)結(jié)構(gòu)整個ASoC是由一些列數(shù)據(jù)結(jié)構(gòu)組成,要搞明白ASoC的工作機(jī)理,必需要理解這一系列數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系和作用,下面的關(guān)系圖展示了ASoC中重要的數(shù)據(jù)結(jié)構(gòu)之間的關(guān)聯(lián)方式:
圖4.1Kernel-2.6.35-ASoC中各個結(jié)構(gòu)的靜態(tài)關(guān)系A(chǔ)SoC把聲卡實(shí)現(xiàn)為一個PlatformDevice,然后利用Platform_device結(jié)構(gòu)中的dev字段:dev.drvdata,它實(shí)際上指向一個snd_soc_device結(jié)構(gòu)??梢哉J(rèn)為snd_soc_device是整個ASoC數(shù)據(jù)結(jié)構(gòu)的根本,由他開始,引出一系列的數(shù)據(jù)結(jié)構(gòu)用于表述音頻的各種特性和功能。snd_soc_device結(jié)構(gòu)引出了snd_soc_card和soc_codec_device兩個結(jié)構(gòu),然后snd_soc_card又引出了snd_soc_platform、snd_soc_dai_link和snd_soc_codec結(jié)構(gòu)。如上所述,ASoC被劃分為
Machine、Platform和Codec三大部分,假使從這些數(shù)據(jù)結(jié)構(gòu)看來,snd_codec_device和snd_soc_card代表著Machine驅(qū)動,snd_soc_platform則代表著Platform驅(qū)動,snd_soc_codec和soc_codec_device則代表了Codec驅(qū)動,而snd_soc_dai_link則負(fù)責(zé)連接Platform和Codec。
5.3.0版內(nèi)核對ASoC的改進(jìn)
本來寫這篇文章的時候參考的內(nèi)核版本是2.6.35,不過有CSDN的朋友提出在內(nèi)核版本3.0版本中,ASoC做了較大的變化。故特意下載了3.0
的代碼,發(fā)現(xiàn)確實(shí)有所變化,下面先貼出數(shù)據(jù)結(jié)構(gòu)的靜態(tài)關(guān)系圖:圖5.1Kernel3.0中的ASoC數(shù)據(jù)結(jié)構(gòu)
由上圖我們可以看出,3.0中的數(shù)據(jù)結(jié)構(gòu)更為合理和明了,取消了snd_soc_device結(jié)構(gòu),直接用snd_soc_card取代了它,并且加強(qiáng)了snd_soc_pcm_runtime的作用,同時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)師執(zhí)業(yè)資格考試試題及答案
- 2025年企業(yè)管理人員考試題及答案
- 2025年生物醫(yī)學(xué)工程職業(yè)資格考試卷及答案
- 知識產(chǎn)權(quán)授權(quán)及教育培訓(xùn)課程開發(fā)合同
- 高效商標(biāo)續(xù)展代理服務(wù)合同模板
- 萌寵生活館寵物訓(xùn)練學(xué)校加盟授權(quán)合同
- 抖音平臺用戶數(shù)據(jù)刪除與個人信息保護(hù)協(xié)議
- 高端制造業(yè)全球供應(yīng)鏈股權(quán)投資合作備忘錄
- 網(wǎng)絡(luò)游戲角色動作捕捉與動作庫建設(shè)合作協(xié)議
- 留學(xué)咨詢機(jī)構(gòu)文書保密及授權(quán)使用合同
- 檔案信息化服務(wù)試題及答案2024
- 2025年中國電子簽章系統(tǒng)數(shù)據(jù)監(jiān)測報(bào)告
- 豬場電工工作總結(jié)
- 穴位埋線治療
- 加快推進(jìn)高?!拔逵诤稀斌w系建設(shè)
- 七年級數(shù)學(xué)下冊 第4章 單元綜合測試卷(北師陜西版 2025年春)
- 2025年人教版中考英語一輪復(fù)習(xí):七、八、九年級各單元重點(diǎn)短語匯編
- DB11-T 695-2017 建筑工程資料管理規(guī)程
- 2025年甘肅蘭州市事業(yè)單位公開招聘考試筆試高頻重點(diǎn)提升(共500題)附帶答案詳解
- 炎癥介導(dǎo)的氣道重塑研究-洞察分析
- 2025年南網(wǎng)國際公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論