USBN9604及其在USB接口设计中的应用
USB通用串行总线是近年兴起的一种通信方式。USB协议1.1版规定了低速(1.5Mb/s)和全速(12Mb/s)两种速率,目前大部分USB器件支持该协议。2000年USB2.0白皮书出台后,其速度最高可达480Mb/s。该总线是由Compaq、Intel、Microsoft、NEC四公司共同提出,并得到了众多厂商的支持。USB接口具有安装方便、高速、灵活、低成本、易扩展,支持热插拔等优点,已经逐渐成为现代数据传输的发展趋势。
2 USBN9604
USBN9604是NatiONalSemiconductor公司设计生产的一款较新型的专用USB通信控制芯片,是US-BN9602的改进产品,同时在时钟产生电路的复位机制上又较USBN9603有所改进。USBN9604支持全速传输,可满足USBl.0和1.1协议。它具有8位并行接口,可支持DMA、MICROWIRE/PLUS。图1是US-BN9604的结构框图。其主要特点如下:
USBN9604内部有64个映射到内存的寄存器,主要有主控制寄存器(MCNTRL)、时钟配置寄存器(CCONF)、主事件寄存器(MAEV)、转换事件寄存器ALteV)、接收发送事件寄存器(RXEV、TXEV)以及各端点的控制寄存器和收发数据及状态寄存器等。固件的大部分功能就是完成对此寄存器组的读写,实现对接口的配置、接口状态的转换以及数据在外设和计算机之间的传输等。
3 USB接口的硬件实现
51单片机与USBN9604的并行连接有两种方式,即非复用方式和复用方式。它们可通过设置引脚MODE0、MODEl来选择。在非复用方式时,可用控制引脚CS、RD、WR、地址引脚A0和双向数据线D[7:0]实现相应的地址读写。而在复用方式时,则使用控制引脚CS、RD、WR、地址锁存信号ALE和双向数据线D[7:01实现其地址读写。本设计采用复用方式进行数据交换。
图2所示是89C51单片机和USBN9604的接口电路,该电路由一片89C51单片机、USBN9604、时钟振荡电路以及相应的外围电路组成。其中USBN9604通过外部中断INT0与89C51单片机进行通信。
4 USB接口的软件实现
设备固件是设备运行的核心,可采用C语言设计。其主要功能是控制USBN9604接受并处理USB驱动程序的请求(如各种标准请求)、接收/_k传数据。当主程序完成CPU和USBN9604的初始化后,可用while循环等待外部中断。中断处理程序可在给出中断人口后跳出中断。所有的USB事物处理都在函数USB-ISR中完成。图3所示是USB-ISR程序框图。在USB-ISR中,通过程序可读取USBN9604中的主事件寄存器(MAEV),并判断中断原因,包括收发事件的发生、总线状态的改变以及握手信号的产生等,同时可根据不同原因进入相应函数。另外也可通过函数具体实现各种USB标准的请求、端点0的接收和发送以及其它端点的收发和总线状态的改变等。
评论