許多數字音訊系統正被引入消費者音訊市場,包括cd,磁帶,數字聲音處理器和數碼電視聲音。在這些系統中的數字音訊訊號需要由許許多多(
very-large-scale integration)的ic組成,處理。在音訊系統中常見的ic晶元有:
由於裝置和ic製造商眾多,所以需要乙個統一的規範來管理,這樣就可以增加裝置以及系統的可移植性。為了此目的,就引入了i2s(inter-ic sound)數字匯流排協議介面。
i2s匯流排只能用來處理audio data,而別的訊號比如控制訊號,編碼訊號則交給別的模組處理。為了最小化所需引腳以及保持簡單的布局,i2s擁有三條資料訊號線。
對於系統而言,產生sck和ws的訊號端是主裝置(master)。
receive是主裝置(錄音的過程)
可以理解為該i2s需要工作的時鐘頻率,如下是sck的計算公式:
sck=2*取樣頻率*取樣位數。
ws選擇線表明使用那個通道在傳輸資料。
ws=0,使用通道1,也就是左聲道。
ws=1,使用通道2,也就是右聲道。
注意以下幾點:
1. ws可以在序列時鐘sck的上公升沿或者下降沿改變,並且ws訊號不一定需要對稱。(對稱什麼意思? 沒搞懂)
2. 在從裝置中,ws在時鐘訊號的上公升沿改變。
3. ws總是在msb傳輸前的乙個時鐘週期改變。這樣有利於
從傳送裝置提交建立下次傳輸,同時有利於
從接受裝置接受資料,為一下接受做準備工作。
用二進位制補碼的形式表示音訊資料。傳輸資料的規則:
1. 保證資料的最高位(msb)最先被傳輸。
2. 當系統的傳送端資料長度大於接受端資料長度,則接受端會將多餘的資料截斷。
3. 當系統的發生端資料長度小於接受端資料長度,則接受端會將缺少的資料補齊。
關於i2s的介面協議就簡單介紹到這裡。
Linux匯流排裝置驅動
註冊裝置使用的結構體platform device,該結構體在標頭檔案 include linux platform device.h 中,結構體成員如下 在平台檔案中 linux的arm平台 在arch arm中 定義結構體並把結構體加入到乙個platform device型別的指標陣列中,系統會...
關於linux的音訊驅動
為了實現 sep4020 上完成了 i2s的驅動,主要經驗總結如下 1.首先是要在 probe 函式裡進行一系列的初始化,這些初始化對於 i2s是很重要的,而且很多 配置操作 codec的l3 的gpio 口線 l3介面相對於乙個混音器控制介面,也就是對應在驅動中的 mixer 結構體,在這裡我們需...
關於linux的音訊驅動
1.首先是要在probe函式裡進行一系列的初始化,這些初始化對於i2s是很重要的,而且很多 配置操作codec的l3的gpio口線 l3介面相對於乙個混音器控制介面,也就是對應在驅動中的mixer結構體,在這裡我們需要利用3根gpio口線實現對l3的控制,以下是初始化 volatile unsign...