通用串行总线在分组无线网中的应用
片上集成了带有3.3V电压调节器的USB收发器、串行接口引擎(SIE)、USB端点FIFO、多功能8位并行接口、MICROWIRE/PLUS接口和一个可编程的时钟发生器。共有7个FIFO寄存器支持不同的USB消息:一个双向的FIFO(8字节)支持命令控制端点EP0,其余六个单向的FIFO支持中断、等时和批方式的数据传输。8位并行接口支持复用和非复用方式的CPU数据/地址总线。可编程中断输出设置允许设备根据不同中断信号的需要进行配置。串行接口引擎包含了物理层接口(PHY)和媒体接入控制器(MAC)。其中物理层接口包括了一个EOP(包结尾)检测电路,它可以根据总线通信协议判断出一个包的结束;媒体接放控制器用来完成包格式化、CRC校验码的生成和检测、端点地址检测等功能,而且还为发送NAK、ACK、STALL等握手包提供必要的控制。
同时NATIONAL SEMICONDUCTOR公司还提供了USBN9603和USBN9604两种芯片可供选择。这两种芯片除了时钟产生电路的复位机制有所不同外,其他部分完全相同。而这个区别使得它们分别适用于不同的供电方式:自供电(self-powered)和总线供电(bus-powered)。USBN9603/4比USBN9602在功能方面更加完善,它们的主要区别有两点:①USBN9603/4的晶体振荡频率为24MHz,USBN9602为48MHz;②USBN9603/4的6个单向FIFO均为64字节,USBN9602的6个单向FIFO分别为4个32字节和2个64字节。
3.2 PRU和USB接口设计
USB接口电路图如图2所示。
图2中USBN9602上的引脚D+通过上拉电阻接在3.3V电压上,这样就选定为全速(12Mbps)设备。如果D-被上拉,则设置为低速(1.5Mbps)设备。
单片机可以通过8位并行接口AD[7:0]或MICROWIRE接口与USBN9602连接。对于并行接口,有两种模式可供选择:复用方式和非复用方式。这两种方式的选择通过设置MODE0和MODE1两引脚的电平高低来实现。这里使用复用方式连接USBN9602和8051单片机。选择该方式时,MODE0和MODE1分别接高电平和低电平。该方式下的数据传输用到了USBN9602上的控制引脚RD、WR、片选信号CS、地址锁存使能信号ALE和双向的地址/数据总线AD[7:0]。引脚RD、WR和ALE分别与8051上相应的引脚相连,片片信号CS由8051输出的高8位地址经过解码器产生。当ALE为高电平时,AD[7:0]上的地址信号被锁存到USBN9602内的地址寄存器中,再当RD或WR有效时,数据被读出或者写入。通过这种方式,USBN9602中的任何一个寄存器都可以被直接访问。由于这种读写时序与8051读写外部数据寄存器的时序相同,因此可以把USBN9602中需要读写的寄存器当作普通的外部数据寄存器来对待,在接口程序中直接用MOVX指令来进行操作。
另外USBN9602还提供了一个中断输出,它用来引起单片机的中断。中断方式可以通过编程设置,将这个中断输出引脚直接与8051单片机上的外部中断引脚INT1相连。由于8051的餐部中断输入为低有效,所以USBN9602的中断输出也应通过编程设置为低有效。
3.3 PRU的USB接口程序设计
USB接口的程序包括三个基本的部分:①初始化,这部分程序用来对单片机和所有外围电路进行初始化;②主循环,它可以被中断;③中断句柄,对中断进行处理,并且对时间敏感。这几部分均是嵌入在PRU的网络控制程序中的。
初始化程序中包含对USBN9602的初始化。①进行软件复位,它不影响时钟输出,相当于一个硬件复位;②设置中断方式,这一步骤确定了中断输出是高有效还是低有效;③设置缺省地址,这是由于USB规范规定设备在总线为其分配地址之间要以0作为缺省地址;④设置中断屏蔽,在USBN9602中各个端点的发送数据、接收数据和发送NAK握手包等事件可能产生中断;设置中断屏蔽这个步骤确定了哪一个端点的哪一种事件能够产生中断。
单片机通过中断的方式来处理USB接口上的各个事件,处理过程是在中断句柄中完成的。当某个端点接收到数据,并且在初始化中该事件被允许中断,则USBN9602就会向单片机发出中断信号,单片机会在中断句柄中处理这些数据。中断句柄中处理了端点0对以控制方式传输的命令的接收与响应和各个端点数据的发送与接收等事件,其中那些以控制方式传输的命令包括清除特征(CLEAR-FEATURE)、设置特征(SET-FEA-TURE)、读取配置(GET-CONFIGURATION)、设置配置(SET-CONFIGURATION)、读取描述符(GET-DESCRIP-TOR)、读取状态(GET-STATUS)和设置地址(SET-AD-DRESS)。通过这些命令主机可以了解或改变设备的工作状态。描述符包括设备描述符和配置描述符,USB规范给出了它们的格式工,想要计算机正确识别设备并安装驱动程序,这些描述符必须根据具体设备的情况填写。
以
- 通用串行总线架构(USB)的目的主要基于以下三方面考虑(12-15)
- 通用串行总线(USB)电缆隔离器电路(12-15)
- 解决通用串行总线(USB)控制器有感叹号(12-14)
- USB通用串行总线内部结构解析(12-14)
- 基于ARM Cortex3的低功耗无源USB-CAN透明传输的实(10-08)
- USB数据通信接□模块的通用串行总线简介(10-17)