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