https://www.jianshu.com/u/6c4295637232
一、slimbus簡紹
簡介
SLIMBUS,全稱 Serial Low-power Inter-chip Media Bus,是MIPI聯盟指定的一種音頻接口,用於連接基帶/應用處理器和音頻芯片,總線協議保證既能發控制信息,又能發數據信息,這樣就可以替換傳統的數據和控制兩種接口如I2S和I2C。
特徵
-
異步2線接口,DATA和CLK。
-
使用可配置的時分複用幀來實現。
-
支持運行時重新配置總線。
-
支持掛載多個不同數據格式的音頻芯片。
-
支持動態地斷開重連設備。
協議簡介
設備和設備類
- 管理設備
一般在處理器中,用來配置管理總線。
- 幀設備
用於產生CLK信號,並且在DATA線上傳送幀同步和組幀信息。
- 接口設備
用來在協議物理層上,監控報告音頻芯片的工作狀態。
- 普通設備
提供特定應用功能,如數模、模擬轉換。
SLIMbus組件
-
由一個接口設備和一到多個功能設備組成。
-
接口設備和功能設備之間用一到多個端口連接。
-
端口可以是隻輸入、只輸出或者雙向。
下圖是兩個示例的SLIMbus組件:1.png
2.png
DATA和CLK
-
包含幀設備的組件的CLK是雙向,其他都只輸入。
-
所有組件的DATA都是雙向,收發用NRZI編碼。
-
CLK正跳變寫DATA,負跳變讀DATA。
SLIMbus時鐘頻率和調整因子G
-
CLK最大28MHZ。
-
CLK=時鐘源頻率 * 2的(10-G)次方
-
支持動態停止和重啓。
-
支持所有的採樣頻率。
SLIMbus系統
一個示例的SLIMbus系統,
SLIMbus系統.png
其中左上角包含幀設備,CLK是雙向的,其他都是單向。
在一個移動終端內,幀設備和管理設備可以合併到基帶處理器或者應用處理器內,如圖
終端SLIMbus.png
二、SLIMbus協議2-幀結構
本節是上一小節--《音頻SLIMBUS協議1-簡介》的續集,是關於幀結構的定義。
幀結構
由Cells, Slots, 幀, 子幀和超幀組成。
- Cell
是兩個CLK正跳變的間隔,包含一次bit讀和寫,如圖中紅線間隔。
Cell.png
- Slot
由4個Cell組成,表示從高位到低位傳4個bit。
- 幀
1. 由192個Slot組成,分別傳Slot0-Slot191。
2. Slot0包含4個幀同步bit,Slot96包含4個組幀bit。
- 子幀
1. 是幀的劃分。
2. 由多個控制slot和0到多個數據slot組成。
3. 長度可配置成6、8、24、32個slot。
控制slot中有4個被保留,用於傳4bit幀同步、4bit組幀、8bit引導字節。
- 超幀
由8個幀組成,是一個完整的數據單元。
三、SLIMbus協議3-通道
本節是上節--《音頻SLIMbus協議2-幀結構》的續集,是關於SLIMbus通道的定義。
通道
用於在設備之間建立單播、廣播、共享通信,分爲控制通道和數據通道。
控制通道
由控制slot組成,用於傳遞總線配置信息。分爲:
- 組幀通道
佔據每個幀的slot0和slot96,包含幀同步和組幀bit
- 引導通道
由超幀內頭兩個非組幀的控制slot組成,通常是全0。
- 消息通道
由所有剩下的slot組成,傳遞設備控制和狀態信息。
數據通道
1. 由數據slot組成,用於傳遞數據流。
2. 由管理設備根據應用的數據空間大小創建。
3. 使用段結構體描述,包含數據速率、類型、長度、傳輸協議等,如圖
segment.png
其中,TAG包含流控信息,AUX包含一些次要信息,數據payload不一定填滿所有slot。
數據通道傳輸協議和流控。
按照不同協議,一個數據通道可能有一個數據源,1個或多個數據目標。
設備端口通過通道連接和斷開消息與數據通道關聯在一起,SLIMbus支持多種協議來描述通道所屬端口的數據流,協議規定了數據流類型,流控機制、應用特定信息等,如圖:
protocol.png