UFS 3.1协议分析(第五章) -- UFS协议栈_ufs的unipro-程序员宅基地

技术标签: 存储协议分析  ufs  嵌入式  

UFS顶层架构

    UFS基于SCSI SAM架构模型定义了一个完整的协议栈,从上到下依次为应用层、传输层、数据链路层、物理层。UFS使用MIPI联盟的UniPro作为数据链路层和MIPI的M-PHY作为物理层,两者合起来称之为互连层(UFS InterConnect Layer)
ufs架构

应用层

    应用层包括UFS命令集、设备管理器(Device Manager)和任务管理器(Task Manager)。应用层处于整个协议栈的最高层,所有的命令或者请求都来源于该层。
    UCS负责命令的生成,目前UFS没有定义自己的命令(没有UFS Native Command Set),使用的命令是简化的SCSI命令(基于SBC和SPC),由INCITS T10组织定义。
    任务管理器用于处理命令队列控制的命令。设备管理器将提供设备级别的控制,如查询请求和较低级别的链路层控制。

UFS命令集

    目前ufs没有定义自己的命令,使用的是简化的SCSI命令,主要包括SPC(SCSI Primary Commands)命令和SBC(SCSI Block Commands)命令

命令类型 命令名
SPC INQUIRY
SPC MODE SELECT(10)
SPC MODE SENSE(10)
SPC REPORT LUNS
SPC READ BUFFER
SPC TEST UNIT READY
SPC WRITE BUFFER
SPC SECURITY PROTOCOL IN
SPC SECURITY PROTOCOL OUT
SBC FORMAT UNIT
SBC PRE-FETCH(10)/(16)
SBC READ(6)/(10)/(16)
SBC WRITE(6)/(10)/(16)
SBC READ CAPACITY(10)/(16)
SBC REQUEST SENSE
SBC SEND DIAGNOSTIC
SBC UNMAP
SBC START STOP UNIT
SBC SYNCHRONIZE CACHE(10)/(16)
SBC VERIFY(10)
UFS 设备管理器

    设备管理器主要完成以下两种任务:

  • 处理设备级别的操作:管理设备功耗、设置数据传输相关参数、后台操作使能/禁止和其它设备相关操作
  • 管理设备级别的配置:维护和存储一组描述符,处理查询请求修改或获取设备的配置信息
        从UFS架构模型来看,下层为UFS设备管理器提供了服务访问节点:
  • UDM_SAP:访问传输层,查询请求,查询响应等操作
  • UIO_SAP:管理和控制互联层,主要是通过一系列原语操作,主要包括重启设备、重启互联层、让物理层进入和退出休眠模式等
        因此设备管理器既可以通过正常流程(由UTP传输层传递UPIU数据包),快速访问模式(以原语的形式发送UIC命令)管理和操作设备 。
UFS任务管理器

    任务管理器主要处理命令队列中的命令,比如当某个命令超时时,任务管理器可以通过发送Abort命令将这个命令终止掉;也可以使用Clear命令清空命令队列中的所有命令,具体定义如下:
任务管理功能

传输层

    UTP使用SAM作为通用架构模型,是一种请求-响应架构模型。
    UTP层使用UPIU(UFS Protocol Information Unit)用作传递host与ufs设备之间的基本数据单元,不同种类的UPIU都包含有一个通用的头结构。当host端传输层接收到来自应用层的命令或者请求后,会产生相应的UPIU,然后交由下层传导接收端的传输层。 无论UTP 下发何种命令协议,UFS 设备都应统一采用 SCSI CDB、状态和任务管理功能。

互连层

    UFS互联层由MIPI UniPro和M-PHY构成,为上层(UTP)提供基本的传输能力。数据链路层负责主机和设备的链接,物理层负责传输物理电气信号。
    系统模型
UFS系统模型
    UFS 信号

Name 描述
RST_n UFS设备硬件复位信号
REF_CLK 链路上每个UFS设备低速参考时钟
DOUT_t 由UFS设备输出的差分信号
DOUT_c 由UFS设备输出的差分信号
DIN_t 输入UFS设备的差分信号
DIN_c 输入UFS设备的差分信号
UniPro

    UniPro除了是一个数据链路层,它也是一个完整的协议栈,
UniPro

  • 传输层(L4)支持多设备之间的双向连接,但是UFS只支持CPort0;
  • 网络层(L3)支持通过设备ID寻址多达128个设备,但是由于UFS是点对点的传输,所以不需要使用网络层;
  • 数据链路层(L2)支持流控、CRC生成和校验,重传机制等,UFS利用了UniPro的数据链路层为主机和设备之间通讯提供可靠的连接;
  • 物理层(M-PHY)使用8/10编码,差分信号进行串行数据传输。数据传输分为高低速模式,每种模式下又有集中不同的速度档位;
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Frank_sample/article/details/120333714

智能推荐

linux如何排查进程内存持续增大,Linux 内存使用过高排查-程序员宅基地

文章浏览阅读4.2k次。Linux释放内存的命令:syncecho 1 > /proc/sys/vm/drop_cachesdrop_caches的值可以是0-3之间的数字,代表不同的含义:0:不释放(系统默认值)1:释放页缓存2:释放dentries和inodes3:释放所有缓存释放完内存后改回去让系统重新自动分配内存。echo 0 >/proc/sys/vm/drop_cachesfree -m #看内存..._进程内存一直增加

嵌入式系统的发展特点及架构分析_嵌入式开发的三种程序架构,各有哪些特点?-程序员宅基地

文章浏览阅读1.2k次。嵌入式系统的发展特点及架构分析 转自 嵌入式在线 嵌入式系统已经广泛地应用到当今各个领域,与我们的生活息息相关,小到掌上的数字产品,大到汽车、航天飞机。 提到嵌入式系统我们很快会联想到单片机,不错,MCU是最基础和常用的嵌入式系统,但是目前像FPGA、ARM、DSP、MIPS等其他嵌入式系统应用越来越广泛。嵌入式系统与模拟电路或其他功能电路组成的SoC(Sys_嵌入式开发的三种程序架构,各有哪些特点?

广东省梅州市谷歌卫星地图下载_如何下载梅州地图-程序员宅基地

文章浏览阅读1.2k次。一、概述  梅州,广东省辖地级市,位于广东省东北部,地处闽粤赣三省交界处,东部与福建省龙岩市和漳州市接壤,南部与潮州市、揭阳市、汕尾市毗邻,西部与河源市接壤,北部与江西省赣州市相连。  梅州市行政区谷歌卫星地图,如下图所示。  先秦时期梅州属百越之地。公元前214年秦军占领岭南,随即秦始皇将所夺取的岭南地区,设“桂林、象、南海”3个郡,梅州属南海郡。  古代属海_如何下载梅州地图

模拟串口收发数据Configure Virtual Serial Port Driver(VSPD)-程序员宅基地

文章浏览阅读1.4w次,点赞13次,收藏74次。准备需要两个工具分别是 Configure Virtual Serial Port Driver(VSPD)和串口调试助手。下面简单介绍一下如何结合这两个小工具进行串口程序调试。1.首先下载Configure Virtual Serial Port Driver(VSPD)软件下载地址vspdhttps://download.csdn.net/download/qq_39569480/331538372.下载串口调试助手下载地址串口调试助手https://download.csdn.net/do_configure virtual serial port driver

用Autohotkey实现分屏_autohotkey 分屏-程序员宅基地

文章浏览阅读2.6k次。用Autohotkey实现分屏by Homeway_autohotkey 分屏

学习笔记(01):21天通关Python(仅视频课)-数据类型-程序员宅基地

文章浏览阅读93次。本页面购买不发书!!!仅为视频课购买!!! 请务必到https://edu.csdn.net/bundled/detail/49下单购买课+书。 本页面,仅为观看视频页面,如需一并购买图书,请务必到https://edu.csdn.net/bundled/detail/49下单购买课程+图书!!! 疯狂Python精讲课程覆盖《疯狂Py...

随便推点

提高app启动速度+冷热启动_冷热启动速度-程序员宅基地

文章浏览阅读2.4k次。一、应用的启动启动方式通常来说,在安卓中应用的启动方式分为两种:冷启动和热启动。1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。2、热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种_冷热启动速度

[opencv相关]系列1:opencv支持的图像文件类型及cvLoadImage函数读取/载入图像文件出错原因分析_r2v读取图像文件出错-程序员宅基地

文章浏览阅读3.6k次。1、opencv支持的图像文件类型可以从opencv路径下"highgui\src\"下的"grfmt_xxxx.cpp"系列文件名称中看出,包括bmp、jpg/jpeg、jp2(jpeg2000)、png、tiff、exr、pxm等,这些格式以外的文件不支持,所以不要用opencv自带的cvLoadImage()函数尝试读取/载入。 2、特别说明,由于专利保护的原因,opencv不支持g_r2v读取图像文件出错

CentOS7详细安装教程--图文介绍超详细_服务器centos7安装详细图解-程序员宅基地

文章浏览阅读10w+次,点赞490次,收藏1.9k次。本文超详细的将CentOS 7的安装过程做了详细的记录,从下载镜像文件到安装CentOS再到最后的配置,手把手教学,保证能够顺利的将CentOS安装好、配置好。_服务器centos7安装详细图解

滴滴在招聘,以及司乘防疫口罩识别技术的系统框架、原理和方法展-程序员宅基地

文章浏览阅读830次。“数据猿年度重磅活动预告:2020年度金猿策划活动(金猿榜单发布+金猿奖杯颁发)即将推出,尽情咨询期待!大数据产业创新服务媒体——聚焦数据 · 改变商业桔妹导读:2020年新春伊始,新冠..._支持口罩识别的框架

计算机辅助设计与图形学——Bresenham直线算法的实现_直线斜率小于0的breasnham算法-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏2次。给出了Brensenham的直线生成代码。_直线斜率小于0的breasnham算法

中小企业数字化,平安涉足政企的切口_中小企业数字化,平安涉足政企的切口-程序员宅基地

文章浏览阅读680次。【深几度·中小企业数字化】撰稿|燕玉涵编辑|吴俊宇审阅|梁欣婷「摘要:中小企业需要全方位的转型,不仅仅是政策、营商环境等大环境的打造,还包括人才培养、企业发展等企业紧密相关的业务,甚至连企业医疗、知识产权保护这样的“后勤”业务也会涉及到,而这些恰恰会成为推动产业数字化重要一环。」深圳是国内智慧城市建设的标杆,也是民营经济和中小企业最活跃的城市之一。智慧城市建设对广东省地方政府而言事实上有几个层面的意义:通过智慧城市这一新概念进行管理体制改革,帮助地方招商引资;借助头部企业的技术推动政府信.._中小企业数字化,平安涉足政企的切口