基于层次模型的USB2.0接口芯片IP核固件的设计
发布时间:2008/6/3 0:00:00 访问次数:499
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)
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)
热门点击
推荐技术资料
| |