摘要:本文主要介绍Cypress Semiconductor公司的EZ-USB FX2单片机CY7C68013,该单片机是一个带USB2.0内核、8051兼容的单片机。
关键词:USB2.0 EZ-USB FX2 单片机 CY7C68013
1 介绍
Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB2.0的微处理器,它集成了USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。FX2这种独创性结构可使数据传输率达到56Mbytes/s,即USB2.0允许的最大带宽。在FX2中,智能SIE可以硬件处理许多USB1.1和USB2.0协议,从而减少了开发时间和确保了USB的兼容性。GPIF(General Programmable Interface)和主/从端点FIFO(8位或16位数据总线)为ATA、UTOPIA、EPP、PCMCIA和DSP等提供了简单和无缝连接接口。
2 EZ-USB FX2结构
CY7C68013结构图如图1所示。它有三种封装形式:56SSOP,100TQFP和128TQFP。
CY7C68013集成了以下特性:
● USB2.0收发器、SIE(串行接口引擎)和增强性8051微处理器;
● 软件运行:8051程序从内部RAM开始运行,可以借助下列几种方式进行程序装载:
(1) 通过USB下载;
(2) 从EEPROM中装载;
(3) 通过外部存储器设备。
● 四个可编程BULK/INTERRUPT/ISOCHRONOUS端点;
可选双、三和四缓冲
● 8位或16位外部数据接口
● 通用可编程接口(GPIF)
(1) 可以直接连接到并口,8位和16位;
(2) 可编程波形描述符和配置寄存器;
(3) 支持多个Ready输入和Control输出。
● 集成标准8051内核,且具有下列增强特性:
(1) 可以达到48MHz时钟;
(2) 每条指令占四个时钟周期;
(3) 两个USARTs;
(4) 三个定时/计数器;
(5) 扩展的中断系统;
(6) 两个数据指针。
● 3.3V电源系统;
● 智能串行引擎(SIE);
● 矢量USB中断;
● 独立的数据缓冲区供SETUP和DATA包控制传输;
● 集成I2C控制器,运行速度可达100或400KHz;
● 四个FIFO,可与ASIC和DSP等无缝连接;
● 专门的FIFO和GPIF自动矢量中断;
● 可用于DSL Modems、ATA接口、相机、Home PNA、WLAN、MP3播放器、网络等。
3、USB启动方式和枚举
上电时,内部逻辑会检查连接到I2C总线上的EEPROM中的第一个字节(0xC0或0xC2)。如果是0xC0,就会使用EEPROM中的VID/PID/DID来替代内部存储值;如果是0xC2,内部逻辑就会把EEPROM中的内容装入到内部RAM中;如果没有检查到EEPROM,FX2就会使用内部存储的描述符来枚举。FX2缺省的VID/PID/DID是0x04B4/ 0x8613/ 0xxxyy。
当首次插入USB时,FX2通过USB电缆会自动枚举且下载固件和USB描述符表;接下来,FX2再次枚举,这次主要通过下载的信息来定义设备。这两个步骤就叫做重枚举,当设备插入时它们就立即执行。
4、程序/数据存储器
4.1内部数据RAM
如图2所示,FX2的内部数据RAM被分成三个不同的区域:低(LOW)128、高(Upper)128和特殊功能寄存器(SFR)空间。低128和高128是通用RAM,SFR包括FX2控制和状态寄存器。
4.2外部程序存储器和数据存储器
FX2有8K片上RAM,位于0x0000-0x1FFF;512字节Scratch RAM,位于0xE000-0xE1FF。尽管Scratch RAM从物理上来说位于片内,但是通过固件可以把它作为外部RAM一样来寻址。
FX2保留7.5K(0xE200-0xFFFF)数据地址空间作为控制/状态寄存器和端点缓冲器。
注意:只有数据内存空间保留,而程序内存(0xE000-0xFFFF)并不保留。
5、端点缓冲区
FX2包含3个64字节端点缓冲区和4K可配置成不同方式的缓冲,其中3个64字节的缓冲区为EP0、EP1IN和EP1OUT。EP0作为控制端点用,它是一个双向端点,既可为IN也可为OUT。当需要控制传输数据时,FX2固件读写EP0缓冲区,但是8个SETUP字节数据不会出现在这64字节EP0端点缓冲区中。EP1IN和EP1OUT使用独立的64字节缓冲区,FX2固件可配置这些端点为BULK、INTERRUPT或ISOCHRONOUS传输方式,这两个端点和EP0一样只能被固件访问。这一点与大端点缓冲区EP2、EP4、EP6和EP8不同,这四个端点缓冲区主要用来和片上或片外进行高带宽数据传输而无需固件的参与。EP2、EP4、EP6和EP8是高带宽、大缓冲区。它们可被配置成不同的方式来适应带宽的需求。
6、外部FIFO接口
EP2、EP4、EP6和EP8大端点缓冲区主要用来进行高速(480Mbits/s)数据传输,可以通过FIFO数据接口与外部ASIC和DSP等处理器无缝连接来实现高速数据传输。它具有通用接口:Slave(从)FIFO(外部主)或GPIF(内部主)、同步或异步时钟、内部或外部时钟等。图3、图4分别为FX2 FIFO处在“Slave FIFO”模式和“GPIF Master”模式。
7、中断资源
FX2的中断结构是在一个标准8051单片机的基础上增强和扩展了部分中断资源,中断资源如表1所示:
表1 FX2中断
FX2中断 |
中断来源 |
中断向量 |
优先级 |
IE0 |
INT0 Pin |
0x0003 |
1 |
TF0 |
Timer0 Overflow |
0x000B |
2 |
IE1 |
INT1 Pin |
0x0013 |
3 |
TF1 |
Timer1 Overflow |
0x001B |
4 |
RI_0 & TI_0 |
USART0 Rx & Tx |
0x0023 |
5 |
TF2 |
Timer2 Overflow |
0x002B |
6 |
Resume |
WAKEUP/WU2 Pin |
0x0033 |
0 |
RI_1 & TI_1 |
USART1 Rx & Tx |
0x003B |
7 |
USBINT |
USB |
0x0043 |
8 |
I2CINT |
I2C BUS |
0x004B |
9 |
IE4 |
GPIF/FIFOs/INT4 Pin |
0x0053 |
10 |
IE5 |
INT5 Pin |
0x005B |
11 |
IE6 |
INT6 Pin |
0x0063 |
12 |
其中27个USB请求共享USB中断,14个FIFO/GPIF源共享INT4。
8、结束语
我们用EZ-USB FX2 CY7C68013单片机来实现多串口转USB,并开发了windows操作系统下的USB驱动。