基于EZ-USB的数据传输接口设计
0 引言
USB控制器采用通用连接技术以实现与外设的简单快速连接,具有连接灵活、使用方便、速度快、扩展能力强等优点,使得其一些高速、高精度的信号采集领域中, 具有极大的应用价值[1]。 EZ-USB序列芯片AN2131Q是Cypress公司的内嵌微控制器的80pin的USB接口控制芯片,它采用了一种基于内部RAM的解决方案,允许客户随时不断地设置和升级,不受端口数、缓冲大小、传输速度及传输方式的限制[2]。片内嵌有一个增强型8051微控制器,与标准的8051相比,其速度快3倍。本文将USB控制器EZ-USB2131Q用于基于TMS320C5409的水声信号采集及混沌特性研究系统中,实现了数据的高速传输。
1 USB控制器与DSP的连接
1.1 AN2131Q和TMS320C5409的硬件连接
在TMS320C5409和USB控制器AN2131Q硬件连接中,采用FIFO(first in first out SRAM)连接方法,除了能确保DSP和主机间的数据传输速度只受USB协议限制外,还能使USB控制器和DSP之间的最大数据交换速度超过USB总线的速度。
由于USB控制器AN2131Q内嵌有加强型的8051处理器,可使用两片FIFO(FIFO选用IDT72V02,它具有1K×9位的内存)可以实现USB控制器和DSP之间的双向通信。从USB控制器AN2131Q或者DSP传输的数据首先保存在FIFO中,然后再由DSP或者AN2131Q读走,从而使得数据的传输不会出现堵塞情况,其硬件连接框图如图1所示。
图1 AN2131Q和TMS320C5409的连接图
1.2 AN2131Q和IDT72V02的连接
IDT72V02状态信号有空(EF)、半满(HF)和满(FF),它们都在FIFO为低电平时有效。其与AN2131Q的连接如图2所示。
图2 AN2131Q和IDT72V02的连接图
1.3 AN2131Q和TMS320C5409的软件连接
USB控制器AN2131Q和DSP之间的软件部分包括4个部分,分别是USB控制器AN213lQ对FIF01的写、USB控制器AN2131Q对FIF02的读、TMS320C5409对FIF01的读、TMS320C5409对FIFO2的写。为了描述的方便,将FIF01的3个状态信号分别称为 、 和 ,对应FIF02的为 、 、 。
(1)USB控制器AN2131Q写FIFO1
当USB总线上有数据要传送至TMS320C5409时, AN2131Q查询 ,若 无效, AN2131Q一次向FIFO1写入一个数据包(数据包要小于或等于FIFO1容量的一半),而且AN2131Q一次向FIFO1写入每一个字节时不需再查询 。
(2) TMS320C5409读FIFO1
TMS320C5409每次从FIFO1中读入一个数据包,每读一个字节前,DSP需要查询 ,只有当 无效(FIFO1不为空)时,DSP才能进行读操作。
(3) TMS320C5409写FIFO2
当TMS320C5409有数据要传送至主机时,TMS320C5409把数据打包,每次向FIFO2中写入一包数据,方法与USB控制器AN2131Q写FIFO1相同,惟一不同的是TMS320C5409查询的信号是 。写完一包数据后,TMS320C5409通过操作控制字向USB控制AN2131Q发一个中断信号,TMS320C5409在写下一包数据时必须等到AN2131Q应答。AN2131Q应答的方法是利用TMS320C5409的外部中断INT1中断DSP。
(4)USB控制器AN2131Q读FIFO2
USB控制器AN2131Q收到TMS320C5409发出的中断信号,应答DSP后,从FIFO2中读入一包数据,不用再查询 。
2 USB接口软件设计
USB接口软件主要分为三部分:固件程序、驱动程序、主机应用程序。主机应用程序通过驱动程序与系统USBDI( USB Device Interface)进行通信,由系统产生USB数据的传送动作,固件程序则响应来自系统的USB标准请求,完成各种数据的交换的时间处理。
2.1 EZ-USB固件程序开发
固件代码存储在AN2131Q内部的8KBR AM中,它是用来初始化USB总线设备的。固件代码包括了设备的信息,它以描述符形式指定了制造商号、产品号和其他USB总线协议中所需要的信息,其主要功能是实现设备枚举过程[3]。
为了简化和加速用户对EZ
- EZ-USB FX2单片机CY7C68013的特性介绍(10-15)
- 基于EZ-USB FX2的USB 2.0系统软件开发(11-08)
- 基于EZ-USB单片机的正弦信号发生器(02-20)
- 基于EZ-USB 2100系列单片机的PCB探测系统开发(02-03)
- EZ-USB电磁眼接口设计(12-30)
- 有一种数据传输接口叫USB Type-C,你造吗?(12-13)