① 空闲( wasted)的总线周期被消去。一个总线周期仅包含4个时钟周期,而标准8051则为12个时钟周期。
② 8051的运行速度为24 MHz。
除了速度的提高,改进的8051内核还有以下几处结构上的改进:
① 第二个数据指针,可用于存储器块之间的传输;
② 第二个UART;
③ 第三个16位计数器/定时器(TIMER2);
④ 与非多路复用16位地址总线的高速存储器直接接口;
⑤ 增加了7个中断源(INT2~INT5、PFI、T2和UART1);
⑥ 可变的MOVX执行时间可适应高/低速的RAM外设;
⑦ 256字节的内部寄存器RAM,8K字节的程序/数据复合SRAM;
⑧ 3.3 V工作电压。
EZ-USB 集成芯片在8051的基础上又有其他改进:
① 快速外部数据块传输(指针自动增量,快速传输模式);
② USB中断向量;
③ CONTROL传输的SETUP和DATA部分有各自的缓冲器。
4.1 AN2131Q的封装和引脚描述
图5是EZ-USB 2100系列中80引脚封装的AN2131Q的引脚排列图。
各引脚功能分述如下:
DISCON#:引脚1,输出。该引脚由两个位DISCOE和DISCON控制。当DISCOE=0时,引脚悬空;当DISCOE=1时,驱动引脚。当DISCOE=1时,驱动的逻辑级与DISCON位相反。
USBD-,USBD+:引脚77,79 ,高阻态。USB D+/D-信号。将24Ω振荡器与USB D+/D-引脚相连。
A0~A15:引脚7~12,15,16,26~29,34~37输出。8051地址总线。
D0~D7:引脚48~51,57~60,I/O/高阻态。8051数据总线。该双向总线空闲时处于高阻状态,总线读时为输入,总线写时为输出。
PSEN#:引脚80,输出。程序存储器使能端。引脚接低电平时有效,表示从外部存储器中读取程序。当EA为低电平时,程序存储器的地址从0x1B40开始;当EA为高电平时,程序存储器的地址从0x0000开始。
PA0~PA7:引脚68~71,73~76,I/O。多功能输入/输出引脚。
PB0~PB7:引脚44~47,52~55,I/O。多功能输入/输出引脚。
PC0~PC7:引脚30~33,38~41,I/O。多功能输入/输出引脚。
BKPT:引脚61,输出。断点。当8051地址总线与BPADDRH/L寄存器的内容一致,且USBBAV寄存器中的断点使能(BPEN)时,该引脚被激活(高电平)。如果USBBAV寄存器中的BPPULSE位为高,就产生8个24 MHz的高电平的时钟脉冲;如果BPPULSE位为低,保持高电平直到8051清除USBBAV寄存器中的BREAK位(写1)。
RESET:引脚25,输入。有效高电平复位。使8051和SIE复位。该引脚一般通过1个10 kΩ电阻接地,用1个1μF电容接VCC。
EA:引脚24,输入。访问外部存储器。该引脚有效(HI)时,8051并不是从内部程序RAM中获得代码,而是从外部存储器中读取代码。当EA=0时,8051从外部存储器的0x1B40地址(AN2131)开始读取代码。
AVCC:引脚21,电源。Analog Vcc(模拟电源)。该引脚为芯片的模拟部分提供电源。
AGND:引脚18,电源。Analog Ground(模拟地)。尽可能以最短路径接地。
XIN:引脚19,输入。晶振输入。该引脚经由12 MHz晶振和22~33 pF电容接地。它也能用12 MHz的时钟电路驱动。
XOUT:引脚20,输出。晶振输出。该引脚经由12 MHz晶振和22~33 pF电容接地。当XIN由12 MHz时钟电路驱动时,该引脚悬空。
WAKEUP#:引脚66,输入。USB唤醒。当8051挂起时,该引脚上的一个上升沿可开启振荡器,向8051发出中断,请求推出挂起状态。维持WAKEUP#的低电平可避免EZ-US芯片进入挂起状态。
SCL:引脚65,OD(漏极开路)。I2C时钟。即使没有I2C设备相连,也要用2.2 kΩ电阻接VCC。
SDA:引脚64,OD(漏极开路)。I2C数据。即使没有I2C设备相连,也要用2.2 kΩ电阻接VCC。
CLK24:引脚4,输入。24 MHz时钟,可锁定为12 MHz输入时钟。当CPUCS寄存器中的OUTCLKEN=0时没有输出。
NC:引脚67。该引脚不连接。
软配置是EZ-USB系列芯片的一个重要特性。EZ-USB芯片中包含内部程序/数据RAM,不再需要ROM或其他固定的存储器。通过USB本身将程序下载到RAM中,为设备提供独特的特性,使得修改、版本更新更容易。
EZ-USB可作为USB设备进行连接,当内部8051处于复位状态时,将程序下载到内部RAM。这一切都是由改进的SIE完成的,它可以进行图2中的所有操作,甚至更多。SIE包含其他逻辑,可用内部描述符表进行枚举操作。它也能响应主机发出的特殊的"下载固件"设备请求,将固件装入内部RAM。还有一点值得一提的是,增加的SIE功能可用于8051。这一特点可缩减8051程序,加快程序的执行。
5 EZ-USB的枚举和再枚举
PC机运行时,若插上或拔去一个USB设备,Windows系统便会自动装载或卸去设备的驱动程序,即所谓的即插即用。这一系列动作的自动完成归因于在每一个USB设备里都有一个描述符表,记录了设备的要求和性能。当插上USB时,要经过以下几个步骤:
① 主机向地址0发送"Get_Descriptor/Device"请求(设备第一次连接时,必须响应地址0);
② 设备响应该请求,并将ID数据发送给主机;
③ 主机向设备发出"Set_Address"请求,给设备提供一个唯一的地址,以区别其他与总线相连的设备;
④ 主机发出"Get_Descriptor"请求,获取更多的设备信息。据此,主机可以了解到该设备的其他情况,如该设备的端点个数、电气要求、所需带宽,然后下载程序。
为了支持软特性,EZ-USB芯片能自动地作为一个不需要固件的USB设备进行枚举,所以,USB接口本身可用来下载8051的程序和描述符表。当8051复位时,EZ-USB的内核进行最初(通电)的枚举和下载。这种支持程序下载的最初USB 设备被称为"默认的USB设备"。
在代码描述符表从主机中下载到EZ-USB RAM后,8051脱离复位状态,开始执行设备程序。EZ-USB设备再次枚举,这一次是作为装入的设备。第二次枚举称为"再枚举"。 再枚举的完成是EZ-USB芯片通过给USB 加电,模拟物理断开和重连接来完成的。
被称为"ReNum"(再枚举)的EZ-USB控制位决定由内核及8051中的哪一个实体处理端点的设备请求。通电时,RENUM位(USBCS.1)为0,表示EZ-USB内核自动处理设备请求。一旦运行8051,它能设RENUM=1,表示用户8051程序用它下载的固件处理子设备请求。
6 EZ-USB端点
由于USB是串行总线,因此设备端点实际上是一个FIFO存储器。主机通过发出4位地址及1位方向位,选择设备端点。所以,USB可定位32个端点:IN0~IN15和OUT0~OUT15。8051从OUT缓冲区中读取端点数据,将通过USB传输的端点数据写入IN缓冲区。
USB端点有四种类型:块(bulk)、控制、中断、同步。
6.1 块端点
块端点无方向控制,一个端点地址对应一个方向,所以,端点IN2的地址不同于端点OUT2。EZ-USB提供了14个用于块传输的端点,包括7个IN端点(EP1_IN~EP7_IN)和7个OUT端点(EP1_OUT~EP7 _OUT)。每一个端点都有1个64字节的缓冲区。
6.2 控制端点0
控制端点用于传输控制信息。任一个USB设备必须有默认的控制端点0。设备的枚举(即第一次插上该设备时,主机对其进行初始化的过程)就是由端点0引导的。主机通过端点发送所有的USB请求。
控制端点是双向的,它只接受SETUP信号。控制传输包含两个或三个阶段:SETUP、DATA(可选)和HANDSHAKE。
6.3 中断端点
中断端点与块端点大致相同。14个EZ-USB端点(EP1~EP7、IN和OUT)可用作中断端点。中断端点的信息包的最大长度可达到64字节,在它们的描述符中包含一个"轮询间隔"字节,告诉主机为之服务的频率。8051通过中断端点传送数据的方式与块端点完全一样。
上一篇:单片机与组态王软件通讯的解决方案