UFS基础概述

内容纲要

一、UFS设备硬件框架
UFS设备和控制器之间,如下图所示:
RST_N 复位:就是恢复设备初始上电状态;
时钟:用来做数据传输的参考时钟,目前时钟的速率是一定的,19.2MHz、26MHz、38.4MHz,这个时钟速率就只有这几类,不能变化。
DIN_TC:就是设备输入数据,就是Host给到UFS的数据,这个是差分线传输,就是需要两根线传输。
DOUT_TC:就是设备输出数据,也就是UFS给到Host的数据,这个也是差分线传输。
目前来看一般是DIN_TC 和DOUT_TC都是各有两组,我们其实可以称之为2lane(如同mipi dsi)。
file
完整描述如下:
file
二、UFS协议架构图
协议主要分四个部分,分别为协议栈、UFS寄存器、UFS电气特性以及UFS功能特性
协议栈:
类似于网络协议栈,要了解UFS的应用层、传输层、链路层、物理层之间的关系及作用,了解UPIUSCSI命令帧格式。
UFS寄存器:
通过控制这些寄存器,来控制UFS部分功能和属性。 学习过程中要注意这些寄存器的属性(即是否可读可写等),大概了解 器的功能即可。
UFS电气特性:
比较UFS是颗芯片,是存在现实中的一个硬件设备。 那么就应该要了解UFS样片供电应该是多少伏? CLK是多少? 几路信 据传输? 等各种物理特性。
功能特性:
UFS的一些重要功能/机制,包含读、写、任务队列,以及优先级等方式;

UFS只有传输层是JEDEC自己定义的,其他三层都是是别人的,命令层是T10的,数据链路层和物理层是MIPI的。详细版本如下所示:
file

UFS思维导图如下:
file

三、UFS 顶层协议框架
UFS主要可分为应用层、传输层、交互层。传输层(UTP)主要将上层的协议封装成合适的框架传输给下层;交互层(UIC)用于处理UFS host与device之间的连接。
file

UFS命令采用简化的SCSI命令,主要包含SCSI Primary Commands命令和SCSI Block Commands命令详细见下表:
file

1.设备管理器则是应用层中的设备管理器则负责管理UFS的一系列的任务(包含设备功耗管理、设置数据传输等),主要有以下两种操作方式:

1)处理设备级操作:
包括管理设备功耗、设置数据传输相关参数、使能/禁止设备后台操作(Background Operation)以及其它设备相关操作,如下图所示:
file

2)管理设备级配置:
通过维护和存储一系列描述符进行请求或修改设备配置,如下图所示:
file

2.任务管理器则是用于管理命令队列中的命令。任务管理器可以发Abort命令,终止之前发下去的命令;也可以清空命令队列中的所有命令。任务管理器命令如下:
file

3.UFS传输层为它上面的应用层服务。当传输层收到应用层命令或者请求后,它会产生UPIU(UFS Protocol Information Unit),把命令块或者请求封装成固定格式的数据结构,然后交由下层传到接收端的传输层和命令相关的数据、状态,也有相应的UPIU数据包。UPIU是主机和设备进行信息交换的基本数据单元。一个命令或请求的执行包含以下三个阶段:
1)命令阶段:主机发起命令或请求给设备;
2)数据阶段:传输跟命令相关的数据,非必须有数据;
3)状态阶段:设备执行完命令,必须给主机返回命令执行状态信息。
file

每个UPIU都有一个12Bytes的Header,再加上跟每个UPIU对应相关的域。一个UPIU(包括Header)最小为32字节,最大为65600字节。
file
UPIU主要分为:
1)命令或请求UPIU;
2)数据传输UPIU;
3)状态UPIU;
4)其他UPIU。

UFS 逻辑单元LU:
UFS最多可拥有32个普通LU和4个Well Known LU,普通LU的逻辑块大小至少是4KB,但RPMB LU逻辑块大小为256B。
BOOT Well Known LU:就是用来存储启动代码的LU;
REPORT Well Known LU:用来代表设备向主机汇报设备LU清单;
DEVIDE Well Known LU:用于针对整个UFS发命令时,该LU就成为命令的接收对象;
file

四、UFS初始化启动
1.UFS初始化与启动包含三阶段: 局部初始化、加载启动代码(可选)、初始化完成。
上电后,硬件复位或EndPointReset,在该阶段结束后,UniPro(M-PHY)启动顺序将会完成,UTP层可以访问设备描述符; 通过访问设备描述符去判断启动代码是否在UFS设备上,以及在哪个LU中,查到后即可读取该LU获得启动代码。前两阶段完成后,主机将fDeviceInit标志设置为01h,以完成其初始化。当初始化完成后,设备将会重置fDeviceInit标志,主机轮询fDeviceInit标志以检查进程是否完成,当fDeviceInit被重置时,设备就完成初始化了。
file
file

2.UFS RPMB LU(Replay Protected Memory Block)
RPMB用于为存储区域提供需要认证的读写保护,并在此基础上,提供了重放保护——防止了恶意者利用过期消息对该区域进行重写。其RPMB已知逻辑单元的大小最小为128Kb,最大为16M。每个RPMB都有自己的密匙、写计数器、结果寄存器、逻辑地址从0开始。
file

3.UFS电源管理
UFS支持多种电源模式,通过START STOP UNIT命令和一些设备属性控制电源模式,UFS的电源模式是独立于总线状态的,UFS可支持多达16种不同Active配置(Active模式下能源消耗级别,16级),UFS设备电源工作模式可分为五种基本的和四种过渡模式,以降低能源损耗。
file

4.UFS 命令任务队列
执行命令的逻辑单元支持两种优先级:
High priority—具有更高优先级请求的逻辑单元;命令发送到该LU中,则相对发往非优先级的LU具有更高优先级;
No priority—使用于所有的常规的不属于High priority的逻辑单元。

5.任务内部优先级可以分为以下几种:
Simple:Simple命令在head of queue和之前的ordered命令处理之前不会被处理;
Order:顺序执行,ordered在head of queue和之前的命令处理之前不被处理;
Head of Queue:命令排到队列头部。
ACA:Not Used。
file

版权声明

版权声明

内容来源及使用限制

欢迎访问 TomgZHE研习社(网址:https://blog.tomgzhe.com)。本网站部分文章内容源自网络,仅作学习交流与参考分享;若您发现有内容涉嫌侵权,请立即联系 tomgzhe@qq.com,我们将在接到通知后的 48 小时内核实并删除相关侵权内容。

软件资源相关规定

本网站为个人非盈利性质的站点,所有软件资源均来自网络。这些资源仅用于个人学习、研究和参考,严禁用于任何商业用途。您下载和使用本网站软件资源即表示您同意仅将其用于学习目的,若因违反此规定导致任何法律纠纷或损失,责任由您自行承担。

原创版权

本网站上的原创内容,包括但不限于文字作品、自行设计的图片、独家制作的音频视频等,其版权均归本网站所有。未经本网站书面授权,任何组织或个人不得擅自复制、转载、摘编、传播或以其他任何方式使用这些原创内容。如需使用,请提前与我们联系并获得书面许可,同时需在显著位置注明出处及作者信息。

转载与引用规范

若您需转载本网站文章,务必注明文章来源为 “[],原文链接:[]”;对于有明确作者署名的文章,还需完整保留作者姓名。在引用本网站内容时,请确保内容准确无误,并遵循学术及行业的引用规范。

Like (0)
Donate 微信扫一扫打赏 微信扫一扫打赏 支付宝扫一扫打赏 支付宝扫一扫打赏
tomgzhe的头像tomgzhe
Previous 2024年3月18日 22:28
Next 2024年5月8日 14:42

相关推荐

发表回复

Please Login to Comment
联系我们

联系我们

400-800-6666

在线咨询: QQ交谈 邮件:tomgzhe@qq.com 工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
SHARE
TOP
蛇年新气象!从2025年2月起,本博客将在保留科技板块基础上,新增生活美学、个人成长等多元内容,希望能为大家带来更丰富的阅读体验,敬请期待!