(2)PDIUSBD12引脚说明
PDIUSBD12引脚及说明如 图 4-5所示。
图4-5 PDIUSBD12引脚
(3)PDIUSBD12的典型连接
图4-6 PDIUSBD12与80C51的典型连接电路
PDIUSBD12与80C51的连接电路如 图4-6 所示。在这个例子中, ALE始终接低电平,说明采用单独地址和数据总线配置。A0 脚接80C51的任何I/O引脚,控制是命令还是数据输入到PDIUSBD12 。80C51的P0口直接与PDIUSBD12的数据总线相连接,CLKOUT 时钟输出为80C51提供时钟输入。
(4)PDIUSBD12的DMA 传输
直接存储器寻址 允许在主端点和本地共享存储器间实现数据块的有效传输.使用DMA控制器,PDIUSBD12 的主端点和本地共享存储器间的数据传输可自主进行而不需要本地CPU 的干预.要处理任何DMA传输,本地CPU 从主机接收必要的建立信息并对DMA控制器进行相应的编程.典型的对DMA控制器的传输模式、字节计数寄存器和地址计数器进行正确的编程。在该模式下, PDIUSBD12 发出请求时开始传输,当字节计数器减少为零时终止。在DMA 控制器编程之后,本地CPU 在初始化传输时将PDIUSBD12 中的DMA使能位置位。
PDIUSBD12 可编程为单周期DMA或突发模式DMA。在单周期DMA 中,DMREQ在每单个应答后直到被DMACK_N 重新激活之前保持无效。在突发模式DMA 中,DMREQ 在器件中突发编程时一直保持有效。该过程持续到PDIUSBD12 通过EOT_N 接收到一个DMA 终止信息。这时产生一个中断指示本地CPU ,DMA操作已经完成。
在DMA 读操作时,DMREQ 仅当缓冲区完全表示主机成功的发送了一个信息包到PDIUSBD12 时才有效。由于具有双缓冲配置主机可以在第一个缓冲区被读出时对第二个缓冲区进行填充。这种并行的处理有效的增加了数据吞吐量。当主机没有完全填满缓冲区的情况下(单向ISO 配置时小于64 或128 字节)。DMREQ 会在缓冲区的最后一个字节时无效,而不管当前的DMA突发计数。在更新了DMA突发计数的下一个包发送时,DMREQ 再次被激活。
DMA的写操作与之相似,当缓冲区未装满时,DMREQ 一直有效。当缓冲区填满时,在下一个IN 标志将信息包送入主机。当传输完成之后DMREQ 变为无效。同样的,双缓冲配置在这也改善了数据的吞吐量。在非同步传输中(批量模式和中断),在数据被发送到主机之前,缓冲区需要通过DMA写操作完全装满。唯一的例外是,在DMA传输结束时,EOT_N 接收的信号将会停止DMA写操作并且在下一个IN 标志置位时将缓冲区的内容传送到主机。
在同步模式中,本地CPU 和DMA 控制器必须保证它们在一个USB 帧(1ms )中能够吞吐的最大信息包的规模。DMACK_N 的激活将自动选择主端点(端点2 )而不管当前选择的端点。PDIUSBD12的DMA操作可通过普通的I/O 对其它端点的存取实现交叉存取。DMA操作可通过以下方式终止:复位DMA使能寄存器位或EOT_N 加上DMACK_N 以及RD_N/WR_N的激活。
PDIUSBD12 支持单地址模式中的DMA传输,也可以在DMA 控制器的双地址模式中工作。在单地址模式中,DMA 通过DREQ ,DMACK_N,EOT_N,WR_N 和RD_N 控制线实现传输。在双地址模式中,DMREQ,DMACK_N和EOT_N未用,取而代之的是CS_N,WR_N和RD_N控制信号。需要遵循 PDIUSBD12的I/O 模式传输协议。在读周期中对DMAC 信号源进行访问,在写周期对目标进行访问。传输需要两个单独的总线周期来储存暂存在DMAC 中的数据。 |