光电集成芯片公司“齐芯光电”完成3.5亿元Pre-IPO轮融资,重庆南方基金投资
06-18
摘要:介绍一种基于USB2.0控制器CY7C0的USB-ATA接口,一种将普通硬盘转换为USB Mass-Storage的解决方案。
文章给出了使用GPIF实现该解决方案的相关设计方法。
关键词:USB2.0 ATA 接口 CY7C0 GPIF 1 简介 USB(通用串行总线)接口的特点是速度快、功耗低、支持即插即用(Plug & Play),安装使用 由于其方便等优点,得到了广泛的应用。
目前USB2.0标准的传输速度已达到Mb/s,这使得USB可以推广到硬盘、信息家电、网络产品等快速外设中。
在一些应用中,例如基于硬盘的大容量数据采集分析系统,为了方便使用,需要将普通硬盘转换成海量存储,这样就无需关机重启或打开机箱即可使用。
安装。
本文介绍一种可行的解决方案,利用带有USB接口的微控制器芯片CY7C3来控制普通硬盘的读写,从而将半普通硬盘转变为USB2.0海量存储。
该系统具有可扩展性,可用于实现基于硬盘的大容量数据。
采集和分析系统。
2 硬件设计 2.1 USB 接口芯片 本设计采用Cypress EZ-USBFX2 系列芯片的CY7C3。
这是一个带有USB接口的微控制器芯片。
虽然它是一个低成本的微控制器,但仍然获得非常高的速度。
它包括一个处理器、一个串行接口引擎(SIE)、一个USB收发器、一个8.5kB片上RAM、一个4kB FIFO存储器和一个通用可编程接口(GPIF)。
FX2 提供了完全集成的解决方案。
它有三种封装:56SSOP、TQFP、TQFP。
本设计采用56SSOP封装,占用电路板空间较小。
如果要扩展,也可以选择TQFP封装。
2.2 ATA接口 ATA接口是在ST的基础上改进的。
它将控制器集成到驱动器中,利用8个端口寄存器(即命令寄存器)完成硬盘的读写。
,ATA有两种工作模式:PIO模式和DMA模式。
本设计采用的DMA传输模式不需要处理器参与整个数据传输过程。
相反,I/O端口直接将数据传输到内存,从而节省大量CPU时间来更好地处理其他事件。
控制器对硬盘的操作分为两种:对8位数据的命令操作和对16位数据的数据传输操作。
在向硬盘输出控制命令之前,程序需要向端口输出完整的7字节命令块。
前6个端口是参数,最后一个端口是命令码。
读写操作端口一般使用字节作为数据块。
硬盘执行完命令后,发出中断请求,表示操作结束(结束传输),也可以将控制器状态设置为空闲,表示扇区请求传输(数据传输)。
最后,控制器读取硬盘状态寄存器来检测硬盘操作的成功或失败。
如果运行正常,则进行下一步操作;否则,进入错误处理程序。
2.3 GPIF和ATA接口 FX2芯片的主要特点是可以通过USB2.0通用可编程接口(GPIF)对特定的应用接口进行编程,从而可以使用多种协议完成与外围设备。
无缝连接,如EIDE/ATAPI、IEEE、Utopia等。
其编程可以根据需要进行,不需要CPU干预。
它可以通过一些CPU标志和中断与增强核心进行通信。
系统结构框图如图1所示。
本设计采用“GPIF master”接口模式,使用PORTB和PORTD双向FIFO数据线形成16位数据接口到4个FX2端点FIFO(EP2、EP4) 、EP6、EP8)用于连接数据线DD[15:0]并传输数据; GPIF 作为内部主控连接到 FIFO,通过产生用户可编程控制主控并产生用户可编程控制信号 CTL[2:0] 与 FIFO 与外部接口进行通信。
同时,GPIF还可以通过RDY[1:0]引脚采用外部信号并等待外部事件。
由于 GPIF 的运行速度比 FIFO 快得多,因此其定时信号具有良好的编程分辨率。
FX2 使用 4 个波形描述符来控制每个状态。
这些波形描述符可以为任何端点 FIFO 动态配置。
配置完成后,GPIF 会根据波形描述符生成相应的控制逻辑 CTL 和握手信号 RDY 与外界接口,满足对 FIFO 数据读写的需要。
GPIF 数据总线可以是 8 位 FD[7:0] 或 16 位 FD[15:0]。
本设计使用16位数据总线。
硬盘读数据控制波形如图2所示。
每个波形描述符包含7个有效状态S0~S6和1个空闲状态。
在每个铲子状态对应的时间段内,经过预先设置后,GPIF 可以做出以下事件:驱动(拉高或拉低)或浮动 CTL 输出、采样或驱动 FIFO 数据总线、增加 GPIF 地址总线值,增加指向当前 FIFO 指针的值并启动 GPIFWF(GPIF 波形)中断。
此外,在每种状态下,GPIF 还可以对以下信号中的任意两个进行采样:RDYX 输入、FIFO 状态标志、内部 RDY 标志和传输计数终止标志。
每个 GPIF 操作由七个段组成,每个状态都可以定义为非决策区间 (NDP) 或决策点区间 (DP)。
当某个状态定义为NDP时,执行该状态动作时,系统仅使用简单的延迟来确定指定级别的持续时间;当执行 DP 状态时,它将使用 RDY0 和 RDY1 上的输入信号 状态对两个信号进行与、或或不同,然后根据结果跳转到任何其他状态或延迟 1~ IFCLK 时钟周期。
当然,也可以根据输入信号进行跳跃或延迟。
图2中,在第一个DP时刻,如果硬盘中的数据准备好,硬盘将向GPIF发送负脉冲信号RDY0。
根据该信号,波形将依次转变为状态2、3、4。
并且指向内部FIFO的指针在每个时钟上升沿加1,然后依次读取4个数据。
读取数据后,利用CTL0的上升沿开始下一次读写操作。
如果状态1没有负脉冲,则直接跳转到状态6,然后重复这个波形描述符。
这种情况下,所有的读、写和控制逻辑都可以通过CY7C3的GPIF通过软件编程来实现,控制逻辑的改造非常方便灵活(只需改变接口的一个配置寄存器的值)。
GPIF波形描述符可以使用Cypress的GPIF工具GPIFTOOL进行配置,该工具是一个可以在Windows平台上运行的应用程序。
3 系统软件设计与实现 本系统软件设计包括:固件、应用程序和驱动程序的设计。
其中,固件程序是指设备CPU中运行的程序,是整个程序设计的核心。
可以用汇编语言和C语言进行设计。
外设只有在程序运行时才能称为具有给定功能的外部设备。
3.1 USB 设备固件程序设计 设备固件程序的主要功能是控制 EZ-USB FX2 接收并处理来自 USB 驱动程序的请求(如请求设备描述符或设置设备状态、请求或设置设备接口等(USB2.0标准请求),控制芯片内应用控制指令的接收,控制硬盘数据的读写等。
除了使内置通用可编程接口(GPIF)能够通过四个大型端点 FIFO(EP2、EP4、EP6、EP8)处理高速宽带而无需 CPU 干预外,固件程序还具有以下固定任务: 配置端点,通过控制端点0响应主机请求,控制和监视GPIF活动等。
其固件框图如图所示。
设计时可以使用 PIO 和 UDMA 模式。
FX2芯片的BULK端点大小可以设置为字节或字节。
为了实现UDMA功能,GPIF中的Slave FIFO应该直接连接到USB通信中的端点BUFFER,数据传输不再需要CPU的引用。
当 BUFFER 已满时,设置 BUFFER 已满标志以停止 GPIF。
其实也可以使用GPIF的Re-execute功能。
设置该功能后,GPIF 只需采样 RDY 信号即可重复下一步动作,而无需经过 IDLE 状态。
该操作将停止,直到出现指定的标志。
该功能一般用于大批量数据的连续读写。
如UDMA模式下对一个或多个扇区的读写操作。
如UDMA模式下对一个或多个扇区的读写操作。
为了实现UDMA模式下的CRC校验,需要专门的寄存器来完成CRC校验。
3.2 驱动设计 本系统需要两个驱动级别,即通用驱动和下载固件驱动。
通用驱动程序用于完成与外设和用户程序的通信和控制;而下载的固件驱动负责在连接USB总线后将具体的固件程序下载到FX2的RAM中以重启FX2的CPU,同时模拟断开和USB总线连接完成外围设备的复位,这使得主机能够根据新的设置安装通用驱动程序,并将外围设备重新安装为新的 USB 设备。
一般来说,通用驱动不需要重写。

您可以使用Cypress编译的驱动ezusb.sys。
由于Windows操作系统中已经添加了媒体存储(Mass Stroage)设备的驱动程序,并且可以使用批量传输功能,因此可以直接选择BULKUSB.SYS驱动程序,但固件驱动程序必须定制才能下载。
3.3 用户程序设计 用户程序是系统与用户之间的接口,通过通用驱动程序完成对外设的控制和通信。
编写用户程序时,必须先与外围设备建立连接,然后才能实现数据传输。
本设计利用Visual Basic6.0编译环境中的API函数将ATI函数封装成VB.DLL连接程序文件。
编程方法与串口编程类似;首先找到设备,打开设备的句柄,然后对其进行读写和控制。
操作,最后关闭设备句柄。
程序中主要使用CreatFile()和DeviceIoControl()两个API函数根据该句柄完成数据传输。
4 结论 本设计利用CY7C3芯片的ATA接口,将普通硬盘转换为具有USB2.0接口的大容量存储器。
其灵活的接口和可编程特性简化了外部硬件设计并提高了系统稳定性。
也有利于PCB板的生产和调试。
此外,USB设备的热插拔特性使得系统便携且易于使用。
无需关机重启或打开机箱即可安装。
该系统可以采用两种模式实现:PIO和UDMA。
为了实现UDMA方法,所使用的Conconductors是80针而不是传统的40针,但Cable(即电缆的连接器部分)仍然是40针。
该设计支持全速和高速传输状态。
如果PC是USB1.1,还可以向下兼容USB1.1,速度比采用纯USB接口芯片加外部微处理器的系统要高很多。
。
从该方案可以看出,如果采用TQFP封装的EZ-SUB FX2系列芯片,还可以利用其地址线和数据线在此基础上进行其他扩展,从而实现大容量的数据采集和分析基于硬盘。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-17
06-18
06-21
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现