转自http://blog.csdn.net/jgw2008/article/details/52704332
低功耗芯片间串行媒体总线SLIMbusTM是基带或移动终端应用处理器与外设部件间的标准接口。SLIMbus规范是MIPI联盟成员共同开发的。MIPI是一个移动工业巨头联盟组织,旨在定义移动应用处理器接口开放标准或提升其现有标准。根据这些开放标准,通过为移动应用处理器的标准硬件和软件接口建立规范,并且鼓励整个业界采用这些标准。MIPI联盟致力于为移动用户加速开发新的服务,在微处理器、外设和软件接口方面完善现有的标准体系。
开发SLIMbus总线的动力来自于移动终端和其他便携式娱乐设备对多媒体功能不断增长的需求,以及驱动高质量数字音频发展的产量增长和产品差异化。
SLIMbus的主要特点
SLIMbus典型的特点为:支持音频、数据、总线和单条总线上的设备控制器;减少引脚数以降低产品消耗;支持高质量音频多信道;单条总线上多重并发采样率;高效、不受主机控制的、对等通用数据通信;提高软件重用性和协同工作能力的标准消息集;使用普通数字音频时钟,同时也可使用已经建立的系统时钟;为降低总线功率消耗而采用动态时钟频率。
通过提供支持单总线结构上许多部件和数字音频信道的可扩展多重结构,SLIMbus总线地址局限于现有的数字音频接口,如I2S和PCM(它们都是单部件间点对点连接,只支持一个或两个数字音频信道)。
为了具有更大的灵活性和易用性,SLIMbus总线取消了控制总线,如: I2C、SPI、microWireTM、UART或数字音频部件上的GPIO引脚。另外,也减少(或消除)了其他类型的移动终端低带宽部件上这些总线结构中的控制总线。
SLIMbus总线采用如下机制实现通信:同步双向通信、灵活的TDM框架结构、总线仲裁机制和消息结构,这些机制共同建立起SLIMbus设备间灵活、稳固的数据连接。尽管SLIMbus总线对常速率媒体流的传输做了优化,但它仍可以传输各种异步数据和控制数据。
SLIMbus总线的物理层介绍
从物理意义上来说,SLIMbus总线包括两个终端以及连接多个SLIMbus总线设备的数据线(DATA)和时钟线(CLK)。
SLIMbus总线使用多支路总线的拓扑结构,所有总线信号对总线上的所有设备都是相同的。同样,总线上的所有设备必须使用相同的协议进行通信。选择使用这种总线是因为它大大减少了设备间互相连接的连线数目,同时允许将各种各样的设备连接到总线上。
多支路连接要求在任意一个给定时刻,总线上只允许一个设备向其他一台或多台接收设备发送数据。SLIMbus总线设备需通过仲裁程序访问总线。
SLIMbus总线使用时分多用(TDM)体系结构,这种结构允许多个接收设备和发射设备驻留在总线上,以允许所有设备在分配的信道和时间片内互相通信。SLIMbus总线支持设备间的点对点通信及一台设备向其他设备发起的广播式通信。
SLIMbus总线不是为提高热插拔容量而设计的,其目的是要在如移动电话等单个客户终端内完成通信。然而,根据SLIMbus总线规范中适当协议而产生的系统使用需求,SLIMbus总线设备允许动态的“掉线”和“重新接入”总线。
SLIMbus总线设备和设备类
SLIMbus总线设备是系统功能的逻辑实现。
一个设备类别目录中的设备拥有相同的特性和功能。SLIMbus总线设备被划分为许多设备类,每一设备类别的定义描述了属于它的设备的最小需求信息,如设备控制信息、设备行为、支持的数据传输协议、实现设备功能的最小数据存储需求。
所有设备类别的需求包括:设备类别代码,指定设备的类型;设备类别的版本代码;支持传输的需求,即:端口数目、需要的设备属性、定向性及这些端口所支持的传输协议。
在第一版SLIMbus总线规范中,定义了四类SLIMbus总线设备:管理类、设计类、接口类和通用类。这些设备类可以完成要设计和实现的SLIMbus总线系统而无需添加其他设备类。如果需要,设备类别集合是可以扩展的。当其他的设备类别被定义后,这些设备类别代码将会由MIPI联盟分配。
管理类设备:管理类设备负责引导SLIMbus总线,并且完成总线管理功能(部件和设备列表、总线配置动态信道分配)。
设计类设备:设计类设备在时钟线(CLK)上向所有SLIMbus总线部件传递时钟信号,为了建立总线和通信的最高水平的TDM帧结构,设计类设备也在数据线上将引导信号及帧信道(帧信息)传送到其他SLIMbus总线设备,以便于建立异步通信。也可以使用用于音频解码和数字/模拟转换的高质量时钟,使系统内不需要产生附加时钟。
接口类设备:接口类设备的每一部件提供总线管理服务,控制结构层次、接口部件实现监控消息协议,报告部件的当前状态、管理部件的初始化,以便于部件能够适当地驱动其设备。
通用类设备:通用类设备通常被认为是提高特定应用功能的设备,这些特定功能将数字音频转换为模拟音频(DAC)或者将模拟音频转换为数字音频(ADV)。
为了使用功能型SLIMbus总线设备,也需要使用SLIMbus总线接口设备、相关联的其他设备和逻辑地址(EA和LA)、信息和取值元素(IE和VE)、每个设备的端口(P),所有这些用来建立总线连接、控制状态信息流及数字音频(或其他数据)流。
设备信息和评价元素:信息元素(IE)和评价元素(VE)是用来保存设备需要的状态、配置以及其他重要信息的数据存储元素。数据存储可能是布尔型的,或有许多取值,这取决于设备的类型。这些IE和VE元素有效替换了诸如I2C或SPI传统控制接口需要的注册表。
设备地址:SLIMbus总线使用48位枚举型地址(EA)来识别设备,这些设备可以在总线上宣布它们的存在。每一设备都有一个EA地址,它包括制造序号ID、产品代码、设备索引及设备实例值。制造序号ID代码由MIPI联盟提供,唯一识别制造的设备,就像PCI总线部件使用的制造序列号一样。设备索引代码在单个部件内唯一识别多重设备,实例值代码适用于将统一型号或类别的多重设备连接到总线上的情况。
端口:端口设备提供设备之间的数据连接信道,某一特定设备最多可以有64个端口。
端口能力取决于设备,并且在部件数据表里有专门的定义。典型的端口属性包括数据的方向性,如:只输入(sink)、只输出(资源)、既可输入也可输出;端口属性还包括支持的传输协议、数据宽度等。例如,MEMS移动电话的端口属性可能是只输出、异步传输协议、16位数据宽度。
数据传输后端口的状态会发生变化。当开启电源或重新启动后,端口状态处于非连接状态,此时,端口不产生且不使用任何数据。当端口被连接到数据信道后,它变化到非配置状态,也不产生且不使用任何数据。一旦处于非配置状态,端口便会接收信道配置消息,并根据这一消息做相应的配置。
在收到所有需要的配置参数后,端口状态变化为已配置状态,此时,端口已经做好数据传输的准备。
SLIMbus总线部件
SLIMbus总线部件包括两个或多个SLIMbus总线设备。一个SLIMbus总线部件必须含有一个SLIMbus总线接口设备。此外,可以含有一个或多个其他类型的SLIMbus总线设备。
图1给出了一个复杂的SLIMbus总线。数据和控制信息由设备发出后首先使用消息协议对控制信息编码,并使用传输协议对数据编码。然后,数据和控制流根据帧层次做交叉存取,并在物理层被变换为数据线(DATA)和时钟线(CLK)上的电信号。
图1 复杂的SLIMbus 总线部件
在相反方向上,数据线和时钟线上的电信号被物理层以比特流形式传输,然后被帧层拼凑成为数据和控制流。这些数据和控制流转而被相应协议解码并送给部件中适当的设备。
SLIMbus总线系统
图2给出了一个可能的SLIMbus总线系统示例。所有的部件互不相同。需要注意,左上侧的SLIMbus总线部件含有帧设备,因此,这一部件的CLK信号是双向的。
图2 SLIMbus 总线系统的一个示例
左上侧的SLIMbus总线部件也含有管理设备,但不需要管理设备和帧设备在同一个SLIMbus总线部件中。
左上侧的SLIMbus总线部件中所含的元素也可以被组合成基带或/和应用处理器,用来建立移动终端。
SLIMbus总线模式和操作介绍
SLIMbus总线系统模式包括使用共享数据线和共同时钟信号互相通信的一系列SLIMbus总线设备。SLIMbus总线数据线上的信息被分配成控制空间信道和数据空间信道。
控制空间信道传输总线配置信息和同步信息,也传输设备间的通信消息。控制空间信道允许动态地自动调整其占用的SLIMbus总线带宽,甚至有时会达到100%。
数据空间信道有时会用于传输应用相关的特定信息,如同步、接近同步和异步数据流。
根据传输协议,SLIMbus总线组成设备之间使用控制和数据信道传送控制和数据信息,以便实现需要的系统操作。消息用来控制功能的实现,传输协议处理控制数据流和应用数据流的类型。
信道:信道可以在一对设备(设备间通信)之间建立,或者在一个设备和多个设备之间建立(广播式通信)。
(1)控制信道:控制空间信道(或控制信道)实际上有三种不同类型的信道:组帧信道、引导信道、消息信道。每一种都有不同的目的。
组帧信道在特定帧的两个时隙中传输帧同步符号和帧信息,这些特定帧传送总线配置参数,以便于所有部件能够被同步到正被使用的总线参数。组帧信道不能进行流控制,信道的宽度是固定的。
引导信道在超帧的第一个和第二个子帧的一个时隙中传输,为部件获取和改变消息信道中消息的同步提供必要信息。其不能进行流控制,信道的宽度是固定的。
消息信道传输多种类型的信息,包括总线配置信息、设备控制和设备状态信息等。其通过已知符号实现流控制,信道宽度可以通过编程调整。
(2)数据信道:没有分配给控制空间的任何SLIMbus总线带宽可以分配给数据空间(数据信道)。数据空间由一个或多个数据信道组成,这些数据信道由处于激活状态的管理设备根据应用动态建立,数据信道的数目取决于数据空间和信道传输的数据流的类型。数据空间最多可以含有256个数据信道。
数据信道是按固定时间间隔重复的由一个或多个数据时隙构成的连续时隙流,这组连续时隙流被称为片段。因为这些片段以固定、已知的时间间隔重复,间隔的大小与超帧长度有关,数据信道可以视为拥有自己已经获得和可能获得的带宽的虚拟总线。
处于激活状态的管理设备初始化一个数据信道后,将相关内容参数传送到所有使用该数据信道的设备。
数据信道还可由参数来定义。
图3显示了SLIMbus总线系统的概念结构。
图3 SLIMbus 总线参考模式
数据信道、传输协议和流控制:数据信道根据应用要求传输信息,多种数据格式可以共存。
SLIMbus总线并非直接支持各种数据格式,而是采用一组常用传输协议(包括用户定义的传输协议)传输各种格式的数据,用其定义数据流类型、流控制机制及传输附加特定应用信息的侧信道(如果存在的话)。
端口之间的数据流遵循某一种传输协议。使用通道连接和信道断开报文将SLIMbus设备端口与信道关联起来。
传输协议分单点传输和多点传输协议。表1总结了SLIMbus总线所定义的传输协议类型。
数据信道一次只允许有一个数据源,但是,根据信道所用的传输协议可以有一个或多个数据汇(数据接收器)。
信道中如需使用流控制,则应考虑设备及相关数据的类型。标志位用来运载流控制信息。
如果时钟线频率刚好是数据流速率的整数倍,则不需流控制。因此,可以采用同步传输协议。如果需使用流控制,则需从两种流控制样式中选一种:单端或双端。
单端数据流由共享算法(对加锁协议而言)或存在位调控(对拉式或推式协议而言)。设计的协议能最理想地运载恒速媒体流(例如线性脉码调制(LPCM)音频),但数据流的实际控制方法取决于总线的基础频率,也取决于数据流特点。
当采用推式协议运载速率等于或小于信道码率的数据时,源设备驱动数据流,数据字段中的标志位则指明数据的可用性。采用推式协议的数据信道可以连接到多倍数据汇(多点传送),因为没有来自数据汇的反馈。
采用拉式传输协议时,如果需要,数据接收设备就向源设备请求或从源设备拉数据,数据字段中的标志位指明数据的可用性。
双端队列握手时,与数据传输相关的两台设备中的任意一台可用数据片段的标志字段中的两个或多个控制位来停止或启动数据传送。四种异步传输协议全部采用这种流控制类型。设计的这些传输协议能最佳地支持异步数据流。
SLIMbus的帧结构
SLIMbus采用同步双线式总线在设备间传载信息。按时分复用方式(TDM)组织SLIMbus的比特流。总线上的信息组织结构被称为帧结构。
用信道传输SLIMbus的控制空间和数据空间信息,每条信道代表一个特定信息流。可调配控制空间和数据空间所占带宽,这样该总线几乎可适应各种用途。
帧结构含5种结构单元:信元、时隙、帧、子帧和超帧。
信元:即SLIMbus数据流的最小结构单元,也是时钟线两条连续正边沿所限制的数据信号区。每个信元能保持一个位的信息。
时隙:时隙是SLIMbus上的带宽单位,为4个毗邻的信元(4个位),分别用C0、C1、C2和C3表示,按从最高有效位到最低有效位的顺序传送。从4位~32位或更多位,可很容易地组合成时隙。
帧:一帧等于192个连续时隙,分别用S0、S1……S191表示,并按顺序传送。
每帧的第一个时隙(S0)为控制空间时隙,它包含4位帧同步标志符。每帧的S96时隙也是控制空间时隙,它包含4位成帧信息。
组件采用帧同步数据和32位成帧信息与总线同步。所以,为了收到全部32位成帧信息,必须按8个连续帧为一组(即超帧)来读取数据。
子帧:子帧是对帧结构的细分,控制空间和数据空间在子帧处交织。子帧第一个时隙总分派给控制空间。帧结构如图4所示,由此可以看出,子帧没有固定长度,子帧长度可配置为6、8、24或32个连续时隙(24、32、96或128个信元)。所以,每帧可能的子帧数分别为32、24、8或6。子帧配置可动态改变,取决于当时数据流要求。
超帧:8个连续帧(1 536个时隙)组成一个超帧,分别用Frame 0、Frame 1、……Frame 7表示。超帧中,每帧第0时隙包含帧同步标志符,第1帧(Frame 0)的第96时隙包含32位成帧信息的前4位。第1到第7帧的第96时隙也包含4位成帧信息,第7帧运载最后4位成帧信息。按超帧同步模式,超帧头部5个连续帧每次传送一位。
组件采用一整套成帧信息(8帧32位,每帧4位)和超帧同步标志符获得超帧同步。
导频信道(用于报文同步)由两个时隙组成,一个在超帧中的第一帧,另一个在超帧中的第二帧。
用时隙数(或信元数)而非时间来表示超帧持续时间。通过改变SLIMbus的基础频率或/和时钟档位可动态改变SLIMbus的超帧速率,以匹配特定用途。
SLIMbus的时钟频率和档位
SLIMbus规格不规定具体的时钟频率,而是给出三个定义:基础频率、固有频率和主频率。
基础频率:基础频率为时钟线频率的2(10-G)倍,其中G为当前时钟档位,G=10时,时钟频率就是基础频率。基础频率可以是固有或主频率,但不对此作强制要求。基础频率可以是28MHz 或以下的任何频率。
可在总线工作时改变基础频率而不改变帧结构,即根据实际应用情况调节功率消耗。
固有频率:固有频率指允许不采用流控制而支持同步数据流的时钟频率,以简化串行低功率互联上的信道分配。例如,支持11.025kHz和44.1kHz数字音频采样率的固有频率,包括5.6448MHz、11.2896MHz和 22.5792MHz。类似地,支持8kHz和48kHz数字音频采样率的固有频率包括6.144MHz、12.288MHz和24.576MHz。
主频率:音频应用时,一组重要采样率完全由4kHz的倍数频率组成,即8、12、16、24、32、48和96kHz等。另一组采样率完全由11.025kHz的倍数频率组成,即11.025、 22.05、44.1和88.2kHz等。
有时需采用非整数倍的频率同步支持数字音频数据流或数据流族,如8kHz和44.1kHz的采样率。这些情形下,时钟线频率不能设置为固有频率。
时钟线频率24.576MHz、12.288MHz、6.144MHz等意义尤为重大,因为它们能相当高效地同步载运4kHz流族和载运11.025kHz流族(采用推或拉数据技术)。基于这种原因,称这些时钟频率为主频率。
时钟档位:时钟档位有10档(1~10档),最低档与最高档之间的频率相差512倍。时钟档位能使正在工作的SLIMbus的时钟频率按2n级数变化。如果将时钟档位升高一档而不改变基础频率,则SLIMbus的时钟频率扩大一倍;反之,如果将时钟档位降低一档而不改变基础频率,则SLIMbus的时钟频率缩小一半。
SLIMbus发送报文
SLIMbus为总线管理、设备控制和数据传送提供一套稳健的报文。SLIMbus的核心报文包括:设备管理报文、数据信道管理报文、信息管理报文、重置报文、值管理报文。SLIMbus的其他报文有:目标设备的类属报文、目标设备的用户报文、源设备的类属报文、源用户报文、转义报文。
报文信道:总线所连设备之间依赖报文信道发送报文。为发送或接收报文,组件应首先取得报文同步。发送报文前,采用优先权仲裁机制以进入报文信道。
报文信道大小:控制空间的报文信道运载报文。
图4中SLIMbus可能采用四种子帧模式。每帧至少用一个时隙作控制空间。每帧中成帧信道占2个时隙,或每超帧中占16个时隙。各种总线配置的导频信道(用于报文同步)每超帧中占2个时隙。所以,每超帧中,可用控制空间中共有18个时隙分配给特定用途。
图4 帧结构
成帧信道或导频信道没采用的控制空间时隙可用于报文信道,或由报文信道和数据信道混合使用。所以报文信道宽度随总线配置而变化。
六子帧/帧模式时,用于报文信道的时隙数最少。每帧控制空间时隙数最少,仅有6个,每超帧则有48个控制空间时隙。因为18个时隙已分派给总线,所以还剩下30(48-18 =30)个控制空间时隙可用于报文信道。用于报文信道的最大时隙数等于超帧中总时隙数减去预分的18个时隙,即1536-18=1518。
总线启动和总线过程
根据组件定义总线启动过程,用术语“时钟源组件”和“时钟接收者组件”区分含处于激活状态的帧的组件和其他组件。
时钟源组件有其自己的启动过程,但时钟接收者组件的启动过程需另外定义。当每种组件从未定义状态转变为操作状态时,就会运行启动程序。
总线上所有组件都处于相同状态的情况只会发生于所有组件都同时处于各自操作状态时。组件按其适当的启动过程加入总线。
为对系统功率消耗有更多的控制权,SLIMbus协议允许在SLIMbus活动时停止组件加入总线,稍晚时再加入。
相关规则允许那些由于某种原因失去同步的组件滑入到下一更低状态或重启状态,并尝试重新启动过程。
结 语
SLIMbus是一种可灵活配置的多支路式总线结构,可同时支持许多组件。此外,其功能强大的发送报文结构可在总线的组件之间建立和管理数据流。SLIMbus总线也可以在运行时刻重新配置总线操作特性,以便适应运行时特定的系统应用需求。
SLIMbus不同于传统的数字音频总线结构,它能同时高效运载各种采样率和位长迥异的多倍数字音频数据流。
如果使用现有数字音频接口(PCM,I2S,SSI,AC-97),而且不增加总线结构,则很难为非声音通讯、非简单立体声音乐移动终端添加功能和数字音频信道。因为这些接口首先用有限的信道容量实现点对点(对等)连接。此外,任何新增设备都需自带接口。
现有数字音频接口系统可通过复制接口结构来升级,但这种方法限制了设计灵活性,从针数、软件包大小、PCB布局和功率消耗角度看,代价昂贵。
SLIMbus为移动终端行业和其他小型波形产品制造商提供了一种标准的、健全的、可升级的、低功耗、高速、双线制多支路接口,支持很多数字音频和控制方案,因此能有效替代传统数字音频接口,如PCM、I2S和 SSI。
通过灵活地、动态地为数字音频控制、非数字音频控制及数据功能分派带宽,SLIMbus有时也能替代移动终端或移动产品的许多数字控制式总线,如I2C、SPI、UART和GPIO。
执行SLIMbus标准极大地提高了设计灵活性,以在生产线内快速生产多路产品。
SLIMbus缩短了新产品投放市场时间。此外,通过简化不同制造商的不同产品之间的互连,降低了移动终端和其他移动设备的设计成本。