上一篇文章对UFS进行了简单的介绍,本篇就基于UFS接口的电气特性进行介绍,主要介绍电源、复位、时钟几部分。
1、UFS电源
1.1、电源要求
UFS的电源包括三种VCC 1.8/3.3V、VCCQ 1.2V、VCCQ2 1.8V,其要求如下表所示:


由于VCC可以有两种电压值,因此有下表所示的组合:

针对eUFS,其外接电容有如下要求:


1.2、上下电时序要求
上电期间的时序要求如下:

下电期间的时序要求如下:

不按时序下电,可能会导致存储的数据损坏,因此必须避免不受控的掉电。
1.3、电源模式
为了减少电源功耗,UFS设备至少需要支持四种基本的电源模式:work、await、sleep、turn off,但是由于实际应用场景比较多,为了支持各种各样的应用场景,UFS可以支持16种功耗配置,上电后定义了7种电源模式:Active, Idle, Pre-Active, UFS-Sleep, Pre-Sleep, UFS-PowerDown, Pre-PowerDown.
1.3.1、Active Power Mode
UFS设备在响应任何命令或者执行后台操作的时候就工作在这种模式下。当信号处于低速模式(PWM信号模式)时M-PHY接口处于SLEEP或者PWM-BURST,当信号处于高速模式(HS-BURST)时M-PHY接口处于STALL或者HS-BURST(详细可参看《MIPI系列之“M-PHY”》)。
该模式下的最大功耗由bActiveICCLevel属性确定,有16种不同的功耗级别(从00h~0Fh),最大电流消耗与三个电源的的Power Parameters Descriptor配置有关。
wActiveICCLevelsVCC[15:0] parameter for VCC,
wActiveICCLevelsVCCQ[15:0] parameter for VCCQ,
wActiveICCLevelsVCCQ2[15:0] parameter for VCCQ2.
其中配置为level 0时功耗最小,level 15功耗最大。
1.3.2、Idle Power Mode
设备不执行任何操作时就进入到该模式,此时M-PHY接口可以处于STALL、SLEEP或者HIBERN8状态。一旦收到任何命令,设备立刻退出Idle模式,进入Active模式。Idle模式只能和Active之间进行切换。
1.3.3、Pre-Active Power Mode
该模式是Active的过渡模式,功耗不超过Active模式。设备将保持该模式,直到完成所有命令的准备工作。该模式可以从Pre-Sleep、Sleep、Pre-PowerDown或者PowerDown模式进入,但只能退出到Active模式。
在该模式下,LU的sense key设置为NOT READY,附加的sense code设置为LOGICAL UNIT IS IN PROCESS OF BECOMING READY,只能执行START STOP UNIT和REQUEST SENSE命令,其他命令都以CHECK CONDITION终止。REQUEST SENSE命令以GOOD结束,提供可轮询的sense data,sense key设置为NO SENSE,附加的sense code设置为LOGICAL UNIT TRANSITIONING TO ANOTHER POWER CONDITION。
1.3.4、UFS-Sleep Power Mode
为了降低设备功耗,Sleep模式下VCC(给memory array供电的电源)关闭,如果想切换到Active或PowerDown模式首先要给VCC上电,然后才能发命令作切换。
该模式下设备的状态和Pre-Active一样,只是LU的sense code设置值不一样。
1.3.5、Pre-Sleep Power Mode
该模式是UFS-Sleep的过渡模式,功耗不超过Active模式,从Active模式进入。一旦未完成的操作和管理事件完成了就会自动进入Sleep模式。如果SSU(START STOP UNIT)命令设置POWER CONDITION = 1h,则设备将会从Pre-Sleep进入Pre-Active模式。
该模式下设备的状态和Pre-Active一样,只是LU的sense code设置值不一样。
1.3.6、UFS-PowerDown Power Mode
最省电的一种模式,所有电源均断电,所有buffer,cache中的数据都会丢掉。该模式只能从Pre-PowerDown模式进入。
该模式下设备的状态和Pre-Active一样,只是LU的sense code设置值不一样。
1.3.7、Pre-PowerDown Power Mode
该模式是UFS-PowerDown的过渡模式,功耗不超过Active模式,从Active或者Sleep模式进入。一旦未完成的操作和管理事件完成了就会自动进入PowerDown模式。如果START STOP UNIT命令设置POWER CONDITION = 1h,则设备将会进入Pre-Active模式。
该模式下设备的状态和Pre-Active一样,只是LU的sense code设置值不一样。
1.3.8、Power Mode状态机

上图所示的状态机跳转流程如下:
当VCC上电完成,或者Hardware Reset、EndPoint Reset、Host UniPro Warm Reset完成都会使设备进入Powered On Mode;
设备上电初始化完成后就进入Active Mode,在Active模式下没有任何操作则进入Idle Mode;
设备在Idle模式下,接收到任何命令就会退出Idle模式,进入Active模式;
设备在Active模式下,初始化完成时,如果bInitPowerMode parameter设置为00h,或者收到SSU(START STOP UNIT)命令设置PC域(POWER CONDITION field)为2h,设备就进入Pre-Sleep模式;
设备在Active模式下或者UFS-Sleep模式下,如果收到SSU(START STOP UNIT)命令设置PC域(POWER CONDITION field)为3h,设备就进入Pre-PowerDown模式;
设备在Pre-Sleep模式下或者在UFS-Sleep模式下或者在Pre-PowerDown模式下或者在UFS-PowerDown模式下,如果收到SSU(START STOP UNIT)命令设置PC域(POWER CONDITION field)为1h(Pre-Sleep模式和Pre-PowerDown模式下要求IMMED位置“1”),设备就进入Pre-Active模式。
2、复位
UFS设备有5种复位方式,不同的复位方式实现的方式、产生的效果和作用不尽相同。分别如下:
Power-on Reset;
Hardware Reset;
EndPoint Reset;
Logical Unit Reset;
Host UniPro Warm Reset。
下面针对每一种复位进行详细介绍。
2.1、Power-on Reset
上电复位(Power-on Reset)。VCCQ, VCCQ2 and VCC掉电后再上电就可以触发上电复位,但需要设备有上电检测电路来保证系统上电后设备进入确定的状态。

2.2、Hardware Reset
硬件复位(Hardware Reset)。UFS设备有专用的硬件复位信号,复位信号为低电平有效,电平持续时间应该大于等于1us,当复位信号宽度小于100ns时无法检测到。
复位信号的电气特性要求如下表所示:



2.3、EndPoint Reset
端点复位(EndPoint Reset)。EndPoint Reset是在MIPI UniPro规范中定义的。通过从主机应用程序客户端到主机UniPro的函数调用实现,将DME_SAP:DME_ENDPOINTRESET.req=1。
设备管理器通过DME_SAP从设备UniPro接收EndPointReset函数调用,并执行EndPointReset函数。
UFS设备在接收到EndPointReset:UFS标志(重置UFS标志上电源除外)、UFS属性(重置UFS属性上电源除外)和UniPro属性被重置为其默认值并启动UniPro链接时,应完全重置自身。除了UFS上电复位标志和上电复位属性之外,UFS设备将其他标志和属性都恢复到默认值,并启动UniPro链接。UFS主机应该忽略从UFS设备接收到的EndPoint Reset指令。

2.4、Logical UnitReset
逻辑单元复位(Logical Unit Reset)。该功能定义在SCSI架构模型中,通过SCSI Task Management features触发。Logical Unit Reset不会将设备参数属性恢复为默认值,因此不建议用在系统启动后的复位。

2.4、Host UniPro WarmReset
Host UniPro Warm Reset。主机通过DME_LINKLOST.ind发出该命令,主机端和设备端的UniPro stack都会被复位。另外所有的活动都会被终止,任务列表清空,并根据bInitPowerMode的值进入相应的模式(Sleep mode or Active mode)。


3、时钟
MIPI M-PHY规范定义了状态机类型I的参考时钟是可选的。由于PWM信号是self-clocked的,所以数据锁存不需要参考时钟。因此,UFS设备应该能够在没有参考时钟的情况下工作在LS-MODE(LINE-CFG、SLEEP和PWM-BURST)。
参考时钟的存在是为了用于实现更低的误码率和工作在更快的HS-MODE PLL/DLL locking。因此,在HS-MODE(STALL和HS-BURST)模式下工作时,UFS设备应该实现方波单端参考时钟输入。
对于外部参考时钟输入的要求如下表所示:



Host Controller侧reference clock的要求如下:


以上就是针对UFS接口的电源、复位、时钟等电气特性进行介绍,实际使用过程中,还需要参考对应厂家的datasheet、user manual等文档进行设计。