图3 PDIUSBD12的内部框图
(6)Soft Connect:高速设备与USB的连接是靠把D+通过1个1.5k。的上拉电阻接到高电平来建立的。在PDIUSBD 12中,这个上拉电阻集成在芯片内,缺省情况下没有连接到VDD,这个连接是靠外部MCU发一个命令来建立。这使得系统微处理器可以在决定建立USB连接之前完成初始化。重新初始化USB总线连接也可以不用拔掉电缆来完成。
(7)Good Link: GoodLink是靠一个引脚接发光二极管实现的。在USB设备枚举时LED指示灯将立即闪亮:当PDIUSBD 12被成功枚举并配置时,LED指示灯将会一直亮;在PDIUSBD 12的USB数据传输过程中,LED将闪烁;在挂起期间,LED熄灭。这种特性可以使我们了解芯片状态和方便电路调试。
3.3 PDIUSBD12的端点描述
端点(Endpoint)是一个USB设备唯一可以确认的部分,它是主机与设备之间的通信流终点。一系列相互独立的端点在一起构成了USB逻辑设备。每个逻辑设备有一个唯一的地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是在设备设计时被给定的。每个端点都是一个简单的连接点,或者支持数据流进设备,或者支持其流出设备,两者不可得兼。端点具有确定端点与客户软件之间通信所需要的传输服务类型的功能,一个端点可通过下列几个方面的特性来描述自己:总线访问频率要求、总线延迟要求、带宽要求、端点号、错误处理的方法、接收或发送包的最大长度、传送类型、数据传输方向。
(1)端点0要求:所有USB设备都需要实现一个缺省的控制方法。这种方法将端
点0作为输入端点,同时也将端点0作为输出端点。USB系统用这个缺省方法初始化及一般地使用逻辑设备(即设置此设备)。缺省控制通道支持了对控制的传送,一旦设备接上,并加电,且又收到一个总线复位命令,端点0就是可访问的了。
(2)非0端点要求:设备可以有除0以外的其它端点,这取决于这些设备的实现。
低速设备在0号输入及输出端点外,只能有2个额外的可选端点。而高速设备可具有的额外端点数仅受限于协议的定义,协议中规定,最多15个额外的输入端点和最多15个额外的输出端点。非0端点在被配置前处于未知状态,在设备配置以后才能使用。
计算机毕业设计 D12的端点适用于不同类型的设备,并可通过“Set Mode”命令配置为4种不同的模式:模式0(非同步模式),模式1(同步输出模式),模式2(同步输入模式),模式3(同步输入输出模式)。本设计中只用到了模式0配置,同步模式配置未使用。端点可用来存放从主机接受到或者设备发送来的数据,每个端点都有属于自己的缓冲区。模式0配置下的端点缓冲区如表1所示。
端点2(主端点)是进行吞吐大数据量的主要端点,具有64字节双缓冲区结构,可以减轻传输大量数据的任务:
计算机毕业设计
[1]双缓冲。允许USB与本地CPU之间的并行读写操作这样就增加了数据的吞吐量缓冲区切换是自动处理的这导致了透明的缓冲区操作。
[2]支持DMA直接存储器访问操作。可以和对其它端点的正常I/0操作交叉进行。
[3] DMA操作中的自动指针处理。在跨过缓冲区边界时不需要本地CPU的干预。
[4]可配置为同步传输或非同步批量和中断传输。
表1 端点缓冲区配置(模式0)
端点号 端点索引 传输类型 端点类型 方向 缓冲区长度(字节)
0 0 控制输出 默认 输出 16
1 控制输出 默认 输入 16
1 2 普通输出 普通 输出 16
3 普通输出 普通 输入 16
2 4 普通输出 普通 输出 64
5 普通输出 普通 输入 64