微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 嵌入USB控制器的51系列单片机EZ-USB

嵌入USB控制器的51系列单片机EZ-USB

时间:06-24 来源:互联网 点击:
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通过中断端点传送数据的方式与块端点完全一样。

6.4 同步端点

同步端点通过USB发送高带宽、时间精确的数据。同步端点从数码相机或扫描仪等外设中获得数据,或将这些数据输出至音频数/模转换器等设备。EZ-USB包含16个同步端点,编号为8~15(8IN~15IN,8OUT~15OUT)。FIFO存储器为16个端点提供了1024字节的存储单元,这些单元可作为FIFO存储器,提供双缓冲器。作为双缓冲器,8051从包含前一帧数据的同步端点的FIFO缓冲器读取OUT数据,同时主机将当前帧的数据写入另一缓冲器中。相似地,8051将IN数据装入同步端点的FIFO缓冲器中,在下一帧中通过USB发送,此时主机从另一缓冲器中读当前帧的数据。在每一个起始帧,USB FIFO和8051 FIFO置位开关或进行乒乓通信。

7 USB的前景展望

其实,除了像显卡这种需要极高数据量和一些实时性要求特别高的控制设备外,几乎所有的PC外设都可以移植到USB上来。而事实上国外几乎已经做到了这一点,特别是在鼠标、键盘等产品上有很强的竞争实力。所以,USB的PC外设的发展空间是不可限量的。它可归纳为以下几个大类供开发者参考:

① 传统PC外设,像鼠标、键盘、音箱、游戏杆、扫描仪、打印机等;
② 基于PC的通信设备,如Modem、ISDN等;
③ 端口转接器,如USB→232、USB→LPT等,以适应原来的设备;
④ 具有中国特色的设备,像汉字输入笔那样的东西;
⑤ 工业领域。

选择何种芯片来设计USB控制系统,一般是基于任务的需求、学习编程的难易程度、性能价格比、可重编程及提供范例代码等几个因素来考虑。EZ-USB使得开发过程更简单和廉价,同时也大大提高了开发效率,缩短了产品的研发周期。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top