1、 导言
USB2.0标准的推出极大地影响了包含各类计算机外设在内的多种电子消费产品的开发规划, USB已成为微机和很多电子设备的重要标准接口。现在国外一些大公司已连续推出了契合USB2.0标准的接口芯片,但国内对该范畴的研讨尚处于较初级的阶段。本文对USB IP核规划办法,提出了一种USB2.0设备接口IP核固件的完结计划,该计划选用合理界说的层次模型并已被完结,试验成果表明该计划具有杰出安稳性和可扩展性的固件结构。
2 、USB2.0设备接口IP核的规划
USB2.0设备接口芯片IP核分为硬件和固件两大部分。其间硬件部分首要完结USB2.0协议中的链路层功用;而固件除帮忙硬件完结USB2.0协议外,还担任解说设备子类协议,并完结对详细外部运用体系(设备元件)的操作。
从硬件结构剖析,依据增强型8051MCU核的 USB2.0设备接口芯片(IP核)应包含以下几个模块:
(1)USB2.0传输宏单元接口模块UTMI(USB2.0 Trans ceiv er Macrocell Interface): USB2.0 IP核与USB总线之间的接口,担任接纳USB2.0总线上的高速串行数据;
(2)串行接口引擎模块SIE(Serial In ter face Engine):一方面与UTM接口进行USB总线上的包级处理和传输级处理;另一方面与内部的端点缓冲及MCU进行交互;
(3)端点缓冲模块Endpoint_Buffer:寄存与主机端交互的数据;
(4)通用可编程接口及多总线模块GPIO- &MultiBus:IP核与外部运用体系(设备元件)之间的联络通道,包含DMA操控模块;
(5)微处理器模块MCU及其接口模块MCU_
Bus:MCU(8051核)中固件将合作其他各硬件模块完结所需功用。
USB2.0设备接口IP核固件不只要完结与主机的通讯,还要完结对外部运用体系(设备元件)操作,因而,IP核固件可分为以下三大模块。
(1)USB传输处理模块:接纳并剖析底层硬件送来的各种信号(如SIE送来的各种中止请求),担任将Endpoint中接纳到的主机指令/数据向上传送到主机指令解析模块,并在需求时向主机回来指令处理成果;
(2)主机指令解析模块:剖析处理USB传输处理模块送来的主机指令,并担任将指令履行成果返给USB传输处理模块;
(3)设备运用处理模块:依据主机指令发送详细操作信号到外部运用体系(设备元件),并回来外部器材的状况/数据。
为使固件体系充沛安稳并具有杰出的可扩展性,咱们将固件笼统为设备枚举、传输操控、指令解析、外部运用操作等几个层次,如图1所示。
3、 USB大容量存储设备固件的规划与完结
本IP核固件选用的是Windows OS支撑的Bulk-Only传输协议及SCSI指令集。
3.1 固件总流程
图2所示为USB大容量存储设备固件作业流程。
该固件涉及到对4个首要中止的处理,即 Com mand端点0的In 中止和Out中止、Bulk-In端点中止和Bulk-Out端点中止。其间端点0首要用于设备枚举过程中主机与设备的交互,Bulk端点则用于枚举成功后主机与设备的交互。
3.2 设备枚举层流程
图3所示为USB设备的枚举流程。设备从接入 USB电缆开端,顺次经过Attached、Powered、Default和Addressed几个状况,终究进入Configured态成为可用设备。
枚举过程中所需的各种描述符表可由用户设置后寄存在指定存储单元。
3.3 Bulk-Only传输操控层流程
设备枚举成功后Bulk端点开端作业。设备端 Bulk-Only作业流程如下:
1.主机经过Bulk-Out端点宣布指令包CBW;
2.设备接纳CBW,解析其间包含的SCSI指令;
3.设备履行SCSI指令,如需求,经过Bulk端点完结Data交流;
4.设备依据SCSI指令履行情况经过Bulk-In端点回来指令状况包CSW给主机;
5.设备等候主机的下一个CBW。
图4所示为Bulk-In和Bulk-Out中止服务流程。其间涉及到USB设备的几种作业状况有:
(1)指令接纳态:本次指令处理完(已回来 CSW),设备等候下一次主机指令。在该状况下,设备将等候Bulk-Out中止,企图从Bulk-Out端点接纳一个有用的CBW。
(2)状况发送态:本次指令已履行结束,等候主机索要CSW。在该状况下,设备将等候Bulk-In中止,企图从Bulk-In端点发送一个有用的CSW 给主机。
(3)数据接纳态:设备经过解析主机指令得知主机将发送数据,所以设备等候接纳数据。在该状况下,设备将等候Bulk-Out中止,企图从Bulk-Out端点接纳一个或一批数据。数据接纳完后设备将依据详细情况确认指令履行成果状况。
(4)数据发送态:设备经过解析主机指令得知主机将索要数据,所以设备预备发送数据。在该状况下,设备将等候Bulk-In中止,企图从Bulk- In端点发送一个或一批数据。数据发送完设备将依据详细情况确认指令履行成果状况。
(5)反常状况:当产生某些不行预知的过错时,设备进入反常态,并将依据不同过错类型采纳不同办法企图从过错中康复。
3.4 SCSI指令解析(层)流程
对某种特定的大容量存储设备来说,一些无意义的SCSI指令能够不用处理(实践上主机也不会运用这些指令)。设备在接纳到有用的SCSI指令后,将依据指令的不同要求为数据的发送或接纳做好预备,并切换到下一个有用的作业状况,如图5 所示。
3.5 对存储介质的读写操作及优化
设备固件在正确剖析主机送来的SCSI指令后,或许会对存储介质进行读、写、擦除等操作。为进一步进步存储介质的读写速度,本固件计划还对存储介质操作进行了有用的优化:
(1)大批量数据读写时选用了DMA办法;
(2)对写操作需时较长的存储介质(如 FLASH)选用了中心缓冲,以削减写操作次数或将写操作移至后台进行;
(3)对存储介质上的磁盘碎片定时进行优化收拾。
合理地组合运用这些办法能够有用地改善介质拜访的功率。
4、定论
上述大容量存储设备的IP核固件已成功完结,其硬件根底是具有自主版权的、含MCU51核的USB设备接口IP核,固件选用Keil51C语言和51汇编语言混合完结。该固件选用分层规划,能够较容易地依据详细运用环境替换其间某些层次的代码模块,具有较强的移植性和实用性。为确保IP核固件具有必定的“健壮性”,完结过程中还需求注意细心规划其间的过错检测和过错康复机制,包含怎么合理安排很多的中止源、怎么充沛考虑协议中规则的操作时刻约束、怎么处理Watch Dog溢出等等。
本文评论的USB2.0设备固件计划不只有用改善和进步了USB设备的规划开发水平,还可广泛运用于USB2.0设备接口的实践运用规划,具有杰出的理论和运用价值。
责任编辑:gt