基于OHCI的USB主机总体架构划分如下:
业务应用层
文件操作API层
文件系统层
U盘操作命令接口层
UFI命令层
USB设备管理层
OHCI软件接口层
寄存器读写接口层
物理层
层层相扣,层与层之间都是用接口实现的,上层的应用依赖于下层。
每层具体负责哪些任务简单介绍如下:
物理层:
这是USB该系统架构的最底层,是完成USB协议处理的硬件相关的部分。
寄存器读写接口层:
该层对指针和数据交换分区的访问进行了封装,对外屏蔽了寄存器的读写细节。
OCHI软件接口层:
根据OHCI标准,USB数据的传输都是通过端点描述符(ED)和传输描述符(TD)这两个数据结构体来完成的,在传输之前需要对ED和TD做相应的设置,保证数据传输的正确性,本层正是对ED、TD数据结构的封装,并提供基于OHCI的传输接口。
USB设备管理层 :
根据USB标准,USB设备都需要提供相应的设备描述符,配置描述符,接口描述符和端点描述符等信息,本层代码主要提供取得各种描述符的命令,并将各种描述符的命令组合起来,完成了USB设备的枚举和检测。
UFI命令层:
提供扇区读写命令给上层。
U盘操作命令接口层:
一方面封装UFI命令层,提供以扇区为单位的读写命令,如:diskread(), diskwrite()等;
另一方面调用UFI命令层完成U盘的枚举和检测,确定逻辑0扇区的编号,为构建文件系统打基础。
文件系统层:
完成文件系统的初始化,得到相关参数,提供目录查找,簇操作等接口给上层应用。
文件操作API层:
提供像C标准库一样的API函数库,包括文件的打开、读写、关闭、定位等。
业务应用层:
该层为业务逻辑层,根据相应的信息调用相应的文件操作库函数。
层次化的划分让我们更清楚的认识基于OCHI的USB的结构。
阅读(2173) | 评论(0) | 转发(0) |