USB接口是USB存储器等各种器件中常用的接口之一。但是USB接口的数据传输机制不是众所周知。本文将通过USB 2.0的概述,对USB接口进行简单的说明。
USB是一种非常流行的串行接口,特别是对于个人电脑而言。USB接口采用分层结构。一个“主机”控制着网络中的许多“设备”。举例而言,PC是主机,设备是通过USB电缆连接到PC的设备,例如键盘、鼠标设备、打印机、闪存和扬声器。
USB的显著特点是即插即用。连接或断开USB设备时,不必关闭电脑。这就是USB变得如此流行的原因之一。
USB接口由PC以外的其它机器使用。使用起来会比个人电脑的接口简单得多。例如多功能打印机的USB接口。多功能打印机通常通过网络与PC相连,打印出PC中的信息。但是有些打印机不使用PC就可打印出照片数据。这种情况是因为这些打印机嵌入了USB主机,它能直接控制USB存储器。主机通过USB设备存储照片数据或文档数据就已足够,不需要PC的复杂功能。
对于这种情况,带有嵌入式USB主机的微控制器便是实现打印机USB接口的最佳解决方案之一。
东芝32位微控制器TX03系列支持USB接口,可以是USB主机接口,也可以是USB设备。M360组支持嵌入式主机或USB 2.0全速(12 Mbps)设备。M320组集成了适用于音频应用的USB 2.0主机功能,支持高速(480 Mbps)和全速设备。
这些微控制器将在稍后进行介绍。
当USB设备插入PC上的USB端子时,PC内将执行以下操作。
PC中的USB主机会立即检测到USB设备的连接。实际上,主机始终监测着所有USB端子上的USB设备连接。当主机发现新设备时,它会要求设备发送设备信息。主机将选择一个合适的驱动器,给设备分配一个地址等等,这叫做“枚举”。枚举完成后主机可以正确访问。
当USB存储器(设备)中的数据传输到PC中的硬盘时,主机命令设备将数据发送到主机。设备将数据传输到主机,主机向设备返回确认,这表明操作已成功完成。另一方面,当路径的方向相反时,主机宣布其将数据发送到设备的意图,并进行传输。设备将接收数据并向主机返回确认。
当设备要从PC上卸下时,设备会以某种方式告知主机。然后主机断开连接以准备删除设备。之后,电脑会在显示器上显示USB存储器可以断开连接的标志。
您可能知道如何将USB设备连接到PC或断开与PC的连接。
USB 2.0规定了三种传输速率:低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)。东芝TX03系列微控制器的USB接口主要支持全速。
下面开始说明USB的数据格式和类型。首先介绍串行数据格式。然后说明四种传输模式。最后说明数据传输中的实际波形。
USB的格式
传输类型
波形
USB传输数据的最小单位就是一个包。包由SYNC字段、包ID(PID)字段、各种数据字段(DATA字段)和CRC(循环冗余校验)字段组成。
SYNC字段是8位,它在发射器时钟和接收器时钟之间进行同步。
PID字段显示要传输的数据类型。
DATA字段包含实际传输的数据。
CRC字段有一个错误检查代码,用于检查数据传输中是否无错误。
上图说明了数据包的一般格式。实际的数据包格式如下所示。
ADR(USB地址)和ENDP(端点)是“数据包”的发送寄存器或接收寄存器的地址。
握手包中有SYNC字段和PID字段,不存在数据字段和CRC。
我们将介绍包、令牌、数据和握手包。USB主机和设备之间的一系列传输数据由这些数据包的若干组合组成。我们将举例说明主机如何从设备接收数据。
主机开始向设备发送令牌包。包包括寄存器地址(ENDP)和发送传输数据的设备地址(ADR)。PID包含一个数据接收(IN)代码。
设备从地址寄存器(数据包)传输数据。
主机向设备返回确认(ACK)以连续接收数据(握手包)。此确认包含在PID字段中。
这种令牌、数据和握手包的组合称为事务。
USB全速的最大长度单位是“帧”。一帧时间长度固定为1毫秒。帧以SOF(帧启始)包开始。在SOF之后,许多事务都会接踵而至。
USB根据数据有四种传输类型。它们被称为控制、批量、中断和等时类型。
这种类型用于传输控制数据。当主机对设备进行枚举时,传输数据被分成许多短片段并多次传输。此方案将确保每次传输成功。
这种类型便于将大量数据(例如,存储在USB存储器中的数据)传输到PC中的文件夹。数据包的数据字段应尽可能长,以节省传输时间。在传输过程中,如果紧急传输要求它中断,则批量传输可以停止并让位于中断。
这种类型便于将大量数据(例如,存储在USB存储器中的数据)传输到PC中的文件夹。数据包的数据字段应尽可能长,以节省传输时间。在传输过程中,如果紧急传输要求它中断,则批量传输可以停止并让位于中断。
举例而言,这种类型用于实时数据、视频剪辑和音乐数据的传输。必须无缝传输这些数据,且无需确认数据是否正确到达。接收器不会发出应答包。
根据传输的数据类型,可以选择最有效的类型。
USB的数据线有四根线:VDD,GND,信号D+和信号D-。D+和D-是一个传输数据的互补值。如果D+为高电平,D-为低电平,则数据被称为“差分1”。如果D+为低电平,D-为高电平,则数据被称为“差分0”。
USB的数据格式为NRZI(反向不归零)。当一个时钟间隔内没有变化时,此格式将定义数据“1”,当发生从高到低或从低到高的变化时,则定义数据“0”。
USB没有任何时钟线。所以主机和驱动器必须彼此同步。传输8位SYNC码,使接收器与发射器以USB全速同步。