该系统主要实现USB的接口功能,通过它,外设与计算机之间可以实现USB方式的连接。外设接口1用于DMA方式数据的传送,可与CCD摄像头等设备相连。外设接口2采用了标准的IDE接口方式,可直接于硬盘等大容量存储器相连,传输海量数据,也可以通过接口转换,与其他功能的外设相连,具有较广的适用性。
下面说明了此多功能USB接口电路的框图:
这个框图显示了两种接口方案:普通模式和DMA模式。
(1)方案一:普通模式
图4-2是该USB接口电路普通模式的框图,该框图说明了连接外设的一种简单模式,所有寄存器和数据的读写都是通过8051 的I/O 来仿真的,因此数据吞吐速率较低,适合间歇式数据的传送。
(2)方案二:DMA模式
数据传送以DMA方式,直接由D12传送到计算机里,MCU只完成DMA的初始化工作,传输速度快,适合于视频数字信号等高速实时传送。
系统详细的电原理图和电路板结构图参见附录。
4.2 系统主要部件及电路
该系统主要由89C51控制电路、PDIUSBD12 接口电路、数据选择电路、串并转换电路、挂起复位电路、IDE扩展接口电路等组成,下面分述各部分的功能和特点。
4.2.1 89C51控制电路
89C51是该接口电路的控制核心,其中P0,P2口用做16位数据I/O口,P1,P3口用做控制。
89C51的晶振频率为24MHz,每个机器周期为0.5us.
4.2.2 PDIUSBD12 接口电路
PDIUSBD12是一个性能优化的USB器件,通常用于基于微控制器的系统并与微控制器通过高速通用并行接口进行通信,也支持本地DMA传输。该器件采用模块化的方法实现一个 USB接口,允许在众多可用的微控制器中选择最合适的作为系统微控制器,允许使用现存的体系结构并使固件投资减到最小。这种灵活性减少了开发时间、风险和成本,是开发低成本且高效的USB外围设备解决方案的一种最快途径。 PDIUSBD12完全符合USB1.1规范,也能适应大多数设备类规范的设计,如成像类、大容量存储类、通信类、打印类和人工输入设备等,因此,PDIUSBD12 非常适合做很多外围设备,如打印机、扫描仪、外部大容量存储器( Zip驱动器)和数码相机等。现在用SCSI实现的很多设备如果用 USB来实现可以直接降低成本。
PDIUSBD12挂起时的低功耗以及LazyClock输出符合ACPI 、OnNOW和USB电源管理设备的要求。低功耗工作允许实现总线供电的外围设备。
PDIUSBD12还集成了像SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等特性。所有这些特性都能在系统实现时节省成本,同时在外围设备上很容易实现更高级的 USB功能。
(1)内部结构
① 模拟收发器。集成的收发器直接通过终端电阻与USB电缆接口。
② 电压调整器。片上集成的1个3.3 V电压调整器为模拟收发器供电,也提供连接到外部1.5 kΩ上拉电阻的输出电压。作为选择,PDIUSBD12提供集成1.5 kΩ上拉电阻的SoftConnect技术。
③ PLL。片上集成1个6~48 MHz的倍频PLL(锁相环),允许使用6 MHz的晶振,EMI也由于使用低频晶振而减小。PLL的工作不需要外部器件。
④ 位时钟恢复。位时钟恢复电路用4倍过采样原理从输入的USB 数据流中恢复时钟,能跟踪USB规范中指出的信号抖动和频率漂移。
⑤ PHILIPS串行接口引擎PSIE。PHILIPS的SIE完全实现USB协议层。考虑到速度,它是全硬件的, 不需要固件(微程序)介入。这个模块的功能包括:同步模式识别、并 /串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定。
⑥ SoftConnect。高速设备与USB的连接是靠把D+通过1个1.5 kΩ的上拉电阻接到高电平来建立的。在PDIUSBD12中,这个上拉电阻是集成在芯片 内的,缺省是没有连接到VDD,这个连接是靠外部 MCU发一个命令来建立的。这使得系统微处理器可以在决定建立 USB连接之前完成初始化。重新初始化USB总线连接也可以不用拔掉电缆来完成。
⑦ GoodLink。GoodLink是靠一个引脚接发光二极管实现的。在 USB设备枚举时LED指示灯将立即闪亮;当PDIUSBD12被成功枚举并配置时, LED指示灯将会始终亮;经过PDIUSBD12的USB数据传输过程中, LED将一闪一闪,传输成功后LED熄灭;在挂起期间,LED熄灭。这种特性可以使我们知道 PDIUSBD12的状态,方便电路调试。
⑧ 存储器管理单元MMU和集成RAM。MMU和集成RAM能缓冲USB(工作在 12Mb/s)数据传输和微控制器之间并行接口之间的速度差异,这允 许微控制器以自己的速度读写USB包。
⑨ 并行和DMA接口。并行接口容易使用、速度快并且能直接与主微控制器接口。对于微控制器,PDIUSBD12可以看成是一个有8位数据总线和1位地址线的存储设备。 PDIUSBD12支持多路复用和非多路复用的地址和数据总线。在主端点(端点 2)和局部共享存储器之间也可使用DMA(直接存储器存取)传输。它支持单周期模式和块传送模式 两种DMA传输。
(2)PDIUSBD12引脚说明
(3)PDIUSBD12的典型连接
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 中的数据。
4.2.3 DMA方式数据传输电路
上面详细介绍了PDIUSBD12芯片的原理和工作方式,下面将介绍接口电路板工作在DMA方式的原理。该传输方式的原理框图参看图4-3。
当外设接口1接入要求DMA传输的设备,51单片机向D12发出DMA传送的指令,并通过控制口线使157数据选择电路里74164传送过来的并行数据直接与D12的并行接口相连,不在进入51单片机,在完成了对D12 DMA传送初始化以后,MCU不再控制传送,而由计数器满8向D12发送一个读信号,使D12 读取164内存储的8个字节的数据,如此反复,整个传输过程由硬件完成,不受MCU 的速率限制,从而实现了DMA传输。
此工作方式适用于视频数字信号的传输,下面是连接CCD摄像头的电路示意图:
CCD_IN为经过A/D转化或二值化处理的视频数字信号,CCD_CLK1为脉冲同步信号,CCD_CLK2为行同步信号,CCD_CLK3为场同步信号。计数器对CCD_CLK1进行计数,满8个脉冲向D12的读端发一个低电平,通知D12对164里面的数据进行读取。
4.2.4 数据选择电路
数据选择电路是由两片74H157搭建而成,数据选择DATA_SEL端连到了51的控制口线上,由51控制D12的并行数据I/O口是和51的P0口相连还是和74HC93串并转换输出的并行数据线相连,从而到达了数据选择的作用。
4.2.5 串并转换及计数器电路
电路中74HC164起了串并转换的作用,在DMA工作方式下,通过接入数据同步脉冲,把外设接口1送入的串行数据转化成并行数据,供D12直接读取。
计数器74HC93负责对CCD_CLK1进行计数,满8个脉冲向D12的读端发一个低电平,通知D12对164里面的数据进行读取。
评论
查看更多