位置:51电子网 » 技术资料 » 测试测量

基于GPIF的USB-ATA解决方案

发布时间:2008/6/3 0:00:00 访问次数:553

作者:杭州浙江大学电气工程学院(310027)张剑波 颜钢锋 来源:《电子技术应用》

摘要:利用ez-usb fx及fx2系列中gpif的功能,提出了一套解决usb-ata的可行性方案,并给出了单片机控制硬盘时pio模式和udma模式的实现方法。此方案具有速度快、性能高、占用cpu资源少等特点。 关键词:ata接口 通用可编程接口(gpif) 通用串行总线(usb) udma模式 目前,通过单片机去控制硬盘的ata接口,大多采用pio模式实现,速度和性能上都不狗理想,硬盘与pc机的连接也相当繁琐。要频繁地与pc机交换大量资源,采用usb硬盘是一个相当好的解决方案。本文给出一个如何利用单片机完成对硬盘的读写,同时具有usb-ata功能的可行方案。 1 usb、gpif、ata接口 1.1 usb总线 usb(universal serial bus)[4]是一种串行接口的新标准,其主要优点是速度快、功耗低、支持即插即用(plug & play)、使用安装方便。usb支持最多5个hub层以及127个外设,所有外设通过协议共享usb的带宽。目前使用中的usb协议有1.0、1.1和2.0三个版本,通过速率分别为1.5mbps、12mbps、480mbps,usb协议向下兼容。 从逻辑结构上讲,usb数据的传输是通过管道进行的,管道的两端连接host和device的端点buffer,buffer的大小直接影响通讯的速率。usb系统软件通过缺省管道(与端点0相对应)管理设备,设备驱动程序通过其它管道来管理设备的功能接口。每一个usb设备在主机看来就是一个端点的集合,主机只能通过端点与设备进行通讯。在usb系统中,每一个端点都有唯一的地址,这是由设备地址和端点号给出的。每个端点都有一定的特性,其中包括:传输方式、总线访问频率、带宽、端点号、数据包的最大容量等。根据应用场合的同选择相应的端点类型。usb数据流模型见图1。 1.2 gpif gpif(general programmable interface)[1、2]即通用可编程接口,是cypress公司在其ez-usb fx以及fx2系列单片机里设计的一个可由用户编程的接口,具有快速、灵活等特点,可使用多种协议完成与外围器件的无缝连接,如eide/atapi、ieee1284、utopia等。对其可以根据需要进行编程,且运行中不需要cpu的干预,仅通过一些cpu标志和中断与增强型8051内核通讯。gpif与8051内核的关系见图2。

gpif主要组成部分: (1)adr[5..0]:地址线,可作为扩展存储器的低位地址,在连续执行gpif动作时具有自动增一功能。可对其对应的寄存器进行读写(fx2系列中扩充为9根地址线)。 (2)rdy[5..0]:输入ready信号,可对指定的信号进行连续采样,以确定gpif动作继续、等待或是反复不断采样,直到信号的指定状态出现。通常用来等待指定信号的某个状态出现,然后继续剩余动作。 (3)ctl[5..0]:输出control信号,根据编程指令输出高低电平或集电极开路。通常用作选通信号、非总线输出信号,以及产生简单的脉冲信号。 (4)fd[15..0]:双向fifo数据线,一般又称afi、bfi。 (5)ifclk:时钟接口,决定使用外接时钟还是使用内部48mhz或30mhz时钟周期。 (6)gstate[2..0]:当前gpif状态数,可用来判断当前gpif工作状态,一般调试用。 (7)gpif program:gpif程序存储区间0x7900~0x797f,存储gpif指令,可存储4组波形的程序代码(fx2系列存储区间为0xe400~0xe47f)。 每个gpif动作都由七段组成:interval0~interval6,简称i0~i6。执行完i0~i6的动作后,最后都进入idle(i7),即空闲状态,以准备启动

作者:杭州浙江大学电气工程学院(310027)张剑波 颜钢锋 来源:《电子技术应用》

摘要:利用ez-usb fx及fx2系列中gpif的功能,提出了一套解决usb-ata的可行性方案,并给出了单片机控制硬盘时pio模式和udma模式的实现方法。此方案具有速度快、性能高、占用cpu资源少等特点。 关键词:ata接口 通用可编程接口(gpif) 通用串行总线(usb) udma模式 目前,通过单片机去控制硬盘的ata接口,大多采用pio模式实现,速度和性能上都不狗理想,硬盘与pc机的连接也相当繁琐。要频繁地与pc机交换大量资源,采用usb硬盘是一个相当好的解决方案。本文给出一个如何利用单片机完成对硬盘的读写,同时具有usb-ata功能的可行方案。 1 usb、gpif、ata接口 1.1 usb总线 usb(universal serial bus)[4]是一种串行接口的新标准,其主要优点是速度快、功耗低、支持即插即用(plug & play)、使用安装方便。usb支持最多5个hub层以及127个外设,所有外设通过协议共享usb的带宽。目前使用中的usb协议有1.0、1.1和2.0三个版本,通过速率分别为1.5mbps、12mbps、480mbps,usb协议向下兼容。 从逻辑结构上讲,usb数据的传输是通过管道进行的,管道的两端连接host和device的端点buffer,buffer的大小直接影响通讯的速率。usb系统软件通过缺省管道(与端点0相对应)管理设备,设备驱动程序通过其它管道来管理设备的功能接口。每一个usb设备在主机看来就是一个端点的集合,主机只能通过端点与设备进行通讯。在usb系统中,每一个端点都有唯一的地址,这是由设备地址和端点号给出的。每个端点都有一定的特性,其中包括:传输方式、总线访问频率、带宽、端点号、数据包的最大容量等。根据应用场合的同选择相应的端点类型。usb数据流模型见图1。 1.2 gpif gpif(general programmable interface)[1、2]即通用可编程接口,是cypress公司在其ez-usb fx以及fx2系列单片机里设计的一个可由用户编程的接口,具有快速、灵活等特点,可使用多种协议完成与外围器件的无缝连接,如eide/atapi、ieee1284、utopia等。对其可以根据需要进行编程,且运行中不需要cpu的干预,仅通过一些cpu标志和中断与增强型8051内核通讯。gpif与8051内核的关系见图2。

gpif主要组成部分: (1)adr[5..0]:地址线,可作为扩展存储器的低位地址,在连续执行gpif动作时具有自动增一功能。可对其对应的寄存器进行读写(fx2系列中扩充为9根地址线)。 (2)rdy[5..0]:输入ready信号,可对指定的信号进行连续采样,以确定gpif动作继续、等待或是反复不断采样,直到信号的指定状态出现。通常用来等待指定信号的某个状态出现,然后继续剩余动作。 (3)ctl[5..0]:输出control信号,根据编程指令输出高低电平或集电极开路。通常用作选通信号、非总线输出信号,以及产生简单的脉冲信号。 (4)fd[15..0]:双向fifo数据线,一般又称afi、bfi。 (5)ifclk:时钟接口,决定使用外接时钟还是使用内部48mhz或30mhz时钟周期。 (6)gstate[2..0]:当前gpif状态数,可用来判断当前gpif工作状态,一般调试用。 (7)gpif program:gpif程序存储区间0x7900~0x797f,存储gpif指令,可存储4组波形的程序代码(fx2系列存储区间为0xe400~0xe47f)。 每个gpif动作都由七段组成:interval0~interval6,简称i0~i6。执行完i0~i6的动作后,最后都进入idle(i7),即空闲状态,以准备启动

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!