USB作为一种新型的接口技术,以其简单易用、速度快等特点而备受青睐。本文简要介绍USB 接口的特点、硬件结构、数据流传送以及外设控制器的实现方式。并详细说明利用51单片机结合PHILIPS公司的PDIUSBD12带并行总线的USB接口器件设计带DMA工作模式的可供视频信号传输的多功能USB接口电路的过程。
引 言
USB的英文全称为Universal Serial Bus,中文含义是通用串行总线,它是一种快速的,双向的,同步传输的廉价的并可以进行热拔插的串行接口。USB接口使用方便,它可以连接多个不同的设备,而过去的串口和并口只能接一个设备。速度快是USB技术的突出特点之一。全速USB接口的最高传输率可达12Mb/s,比串口快了整整100倍,而执行USB2.0标准的高速USB接口速率更是达到了480Mb/s.这使得高分辨率、真彩色的大容量图象的实时传送成为可能。USB接口支持多个不同设备的串列连接,一个USB接口理论上可以连接127个USB设备。连接方式也十分灵活,既可以使用串行连接,也可以使用集线器(Hub)把多个设备连接在一起,再同PC机的USB接口相接。普通的使用串口、并口的设备都需要单独的供电系统,而USB设备则不需要。正是由于USB的这些特点,使其获得了广泛的应用。到目前为止,USB已经在PC机的多种外设上得到应用,包括扫描仪,数码相机,数码摄像机、音频系统、显示器、输入设备等。对于广大的工程设计人员来说,USB是设计外设接口时理想的总线。
对于USB接口芯片,通常分为普通和DMA(直接存储器存取)两种工作模式。相对于普通模式,DMA数据传输模式传输速率更快,更适合于视频数字信号等高速、实时信号的传送。但遗憾的是,国内市场上提供的各种USB接口电路板大部分仅工作在普通模式,缺少对DMA工作模式的支持,不能直接用于象CCD数字摄像机USB接口这样的需要工作在DMA模式下的设计开发。为了解决这个问题,我们对USB的原理进行了研究,尝试着利用51单片机结合PHILIPS公司的PDIUSBD12带并行总线的USB接口器件设计带DMA工作模式的可供视频信号传输的多功能USB接口电路,现已设计出了完整的硬件电路。
1、USB概述
由于多媒体技术的发展对外设与主机之间的数据传输率有了更高的需求,因此,USB总线技术应运而生。USB(Universal Serial Bus)翻译为中文就是通用串行总线,是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接器,它支持各种PC与外设之间的连接,还可实现数字多媒体集成。现在生产的PC几乎都配备了USB接口,Microsoft 的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对 USB的支持。
USB的主要优点:
(1)使用方便。连接外设不必再打开机箱;允许外设热插拔,而不必关闭主机电源。
(2)速度快。USB支持三种设备传输速率:1.5 Mb/s(低速设备)、12 Mb/s(中速设备)和480 Mb/s(高速设备)。
(3)独立供电。USB接口提供了内置电源。
(4)连接灵活。一个USB口理论上可以连接127个USB设备。连接的方式也十分灵活,既可以使用 串行连接,也可以使用集线器Hub,把多个设备连接在一起,再同PC机的USB口相接。
(5)成本低。为了把外设连接到PC上,USB提供了一种低成本的解决方案。
现在满足USB要求的外设有:调制解调器,键盘,鼠标,光驱,游戏手柄,软驱,扫描仪,音箱等。USB总线标准由1.1版升级到2.0版后,传输率由12Mbps增加到了480Mbps,更换介质后连接距离由原来的5米增加到近百米。基于这点,USB也可以做生产ISDN以及基于视频的产品。USB 总线结构简单,信号定义仅由2条电源线,2条信号线组成。
2、USB结构与工作原理
一个USB系统可以从三个方面加以描述
(1)USB互联。
(2)USB设备。
(3)USB主机。
USB互联是指一个USB设备与USB主机相联并和其通信的方式,它包括:
(1)总线拓扑结构:USB主机和USB设备的连接模型。
(2)层间关系:USB在系统中的每一层都要完成一定的任务。
(3)数据流模型:USB系统中信源和信息之间的数据传送方式。
(4)任务规划:USB提供可以共享的互联机制。通过规划对互连机制的访问,可以支
持同步数据传输。
下面简要讨论USB硬件结构和数据流传输。
2.1 USB硬件结构
一个USB系统包含三类硬件设备: USB主机(USB HOST)、 USB设备(USB DEVICE)、USB集线器(USB HUB)。参见图2-1。
(1)USB HOST
在一个USB系统中,当且仅当有一个USB HOST时,USB HOST有以下功能:
◇ 管理USB系统;
◇ 每毫秒产生一帧数据;
◇ 发送配置请求对USB设备进行配置操作;
◇ 对总线上的错误进行管理和恢复。
(2)USB DEVICE
在一个USB系统中,USB DEVICE和USB HUB总数不能超过127个。USB DEVICE接收USB总线上的所有数据包,通过数据包的地址域来判断是不是发给自己的数据包:若地址不符,则简单地丢弃该数据包;若地址相符,则通过响应USB HOST的数据包与USB HOST进行数据传输。
(3)USB HUB
USB HUB用于设备扩展连接,所有USB DEVICE都连接在USB HUB的端口上。一个USB HOST总与一个根HUB (USB ROOT HUB)相连。USB HUB为其每个端口提供100mA电流供设备使用。同时,USB HUB可以通过端口的电气变化诊断出设备的插拔操作,并通过响应USB HOST的数据包把端口状态汇报给USB HOST。一般来说,USB设备与USB HUB间的连线长度不超过5m,USB系统的级联不能超过5级(包括ROOT HUB)。
USB总线最多可支持127个USB外设连接到计算机系统。USB的拓扑是树形结构,有1个USB根集线器(root hub),下面还可有若干集线器。1个集线器下面可接若干USB接口。USB线缆包括4条线:Vbus(USB电源)、D+(数据)、D-(数据)和 Gnd(USB地)。线缆最大长度不超过5m。USB1.1的传输速率最高为12Mb/s(低速外设的标准速率为1.5Mb/s,高速外设的标准速率为 12Mb/s)。图2-1是典型的USB功能器件结构框图,图2-3是高速外设的USB线缆与电阻的连接图。图2-3中:FS为全速(高速);LS为低速;R1=15kΩ,R2=15kΩ。USB外设可以采用计算机里的电源(+5V,500mA),也可外接USB电源。在所有的USB信道之间动态地分配带宽是USB总线的特征之一,这大大地提高了USB带宽的利用率。当一台USB外设长时间(3ms以上)不使用时,就处于挂起状态,这时只消耗0.5mA 电流。按USB1.0/1.1标准,USB的标准脉冲时钟频率为12MHz,而其总线时脉冲时钟为1ms(1kHz),即每隔1ms,USB器件应为 USB线缆产生1个时钟脉冲序列。这个脉冲系列称为帧开始数据包(SOF)。高速外设长度为每帧12000bit(位),而低速外设长度只有每帧 1500bit。1个USB数据包可包含0~1023字节数据。每个数据包的传送都以1个同步字段开始。
2.2 USB的数据流传输
主控制器负责主机和USB设备间数据流的传输。这些传输数据被当作连续的比特流。每个设备提供了一个或多个可以与客户程序通信的接口,每个接口由0个或多个管道组成,它们分别独立地在客户程序和设备的特定终端间传输数据。USBD为主机软件的现实需求建立了接口和管道,当提出配置请求时,主控制器根据主机软件提供的参数提供服务。
USB支持四种基本的数据传输模式:控制传输,等时传输,中断传输及数据块传输。每种传输模式应用到具有相同名字的终端,则具有不同的性质。
控制传输类型:支持外设与主机之间的控制,状态,配置等信息的传输,为外设与主机之间提供一个控制通道。每种外设都支持控制传输类型,这样主机与外设之间就可以传送配置和命令/状态信息。
等时传输类型:支持有周期性,有限的时延和带宽且数据传输速率不变的外设与主机间的数据传输。该类型无差错校验,故不能保证正确的数据传输,支持像计算机-电话集成系统(CTI)和音频系统与主机的数据传输。
中断传输类型:支持像游戏手柄,鼠标和键盘等输入设备,这些设备与主机间数据传输量小,无周期性,但对响应时间敏感,要求马上响应。
数据块传输类型:支持打印机,扫描仪,数码相机等外设,这些外设与主机间传输的数据量大,USB在满足带宽的情况下才进行该类型的数据传输。
USB采用分块带宽分配方案,若外设超过当前带宽分配或潜在的要求,则不能进入该设备。同步和中断传输类型的终端保留带宽,并保证数据按一定的速率传送。集中和控制终端按可用的最佳带宽来传输传输数据。
3、USB外设控制器的两种实现方式
USB芯片在外设领域的应用面很广。USB外设控制芯片通常包括USB收发器、串行接口引擎(SIE)、USB控制器和外设功能等四个模块(SIE 主要以硬件方式处理大多数USB协议,USB控制器负责与PC交互通信信息)。USB控制器一般有两种类型:一种是MCU集成在芯片里面的,如 Intel的8X930AX、CYPRESS的EZ-USB、SIEMENS的C541U以及 MOTOLORA、National Semiconductors等公司的产品;另一种就是纯粹的USB接口芯片,仅处理 USB通信,如PHILIPS的PDIUSBD11(I2C接口)、 PDIUSBP11A、PDIUSBD12(并行接口),National Semiconductor的USBN9602、USBN9603、USBN9*等。
集成MCU的USB控制芯片优点是CPU与控制器在同一片芯片里,CPU只需要访问一系列寄存器和存储器,便可实现USB口的数据传输,最大限度的发挥 USB高速的特点。而且简化了程序的设计,极大地降低了USB外设的开发难度。缺点是灵活性不够高,开发成本较大。
纯粹的USB接口芯片的优点是系统组成灵活,可根据不同的系统需求,搭配不同的MCU,具有较高的性能价格比。但因为USB控制器是通过串行口或并行口与MCU连接,在传输速度方面和开发难度方面不如集成了MCU的控制芯片。
不同的实现方式在设计开销、上市时间、元器件开销和引脚数方面各有优劣,选择不同的方案意味着在以上各项指标中进行取舍。
本文主要介绍PHILIPS公司的PDIUSBD12器件。该芯片是一款性价比很高的USB器件,它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,设计者可根据需要选择合适的微控制器,灵活性较大,适用于开发低成本且高效的USB外围设备。
4、应用:带DMA视频信号接口功能的USB接口电路设计
目前,市场上提供的USB接口电路板很多,但大部分仅使用普通的工作模式,缺少对DMA工作模式的支持,不能直接用于象CCD数字摄像机USB接口这样的需要工作在DMA模式下的设计开发。
所谓的DMA传送方式,全名叫直接存储器存取(Direct Memory Access)数据传送方式,是指采用专门的硬件(DMA控制器)来执行数据传送。DMA控制器可以从CPU那里接管系统总线的控制权,并且由本身发出存储器地址信号以及访问存储器和I/O设备的读/写脉冲等控制信号,使得数据通过总线,直接在存储器和I/O设备之间(或I/O设备与存储器之间,存储器与存储器之间)进行传送。在DMA接管总线执行数据传送过程中,CPU暂停工作。
由于DMA传送方式仅仅在需要占用总线传送数据时才暂停CPU的操作,CPU的工作效率极高,传输数据可由硬件自身控制,大大提高了传送速率,十分适合于高速数据的采集。
下面就介绍一下我们利用51单片机结合PHILIPS公司的PDIUSBD12带并行总线的USB接口器件设计带DMA工作模式的可供视频信号传输的多功能USB接口电路。
4.1 系统概况
该系统主要实现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个*8 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里面的数据进行读取。
4.2.6 复位挂起电路
复位挂起电路
挂起和复位电路被设计在一起,允许器件进入挂起模式还可以达到在USB 规格Rev.1.1 中所陈述的挂起限制电流。
执行此功能以后将强迫MCU 进入掉电模式,MCU 振荡器停止工作。只有硬件复位才能唤醒MCU工作。从这个电路中,复位信号是连接到复位电路的,当上位PC 机从挂起状态恢复时,将导致D12 触发挂起信号,并通过上面的电路而产生复位信号。
4.2.7 外设接口2
采用标准的IDE接口连线方式的外设接口2电路
外设接口2采用了标准的IDE接口连线方式,可直接与计算机硬盘、光驱、光盘刻录机等相连,用于传输海量数据,使用方便。
由于采取了51接口扩展的方式,通过对接口的转换,也可以与其他更多的外设相连,用途比较广泛。
4.2.8 其他器件
1.按下按钮SW1 :复位或恢复系统
2.LED D1 : USB 接口连接成功指示器:当此LED 点亮时表示USB 主机和USB 器件已经装配和枚举。如果它正在闪烁表示数据已经发送或接收。
3.JP2: 外设接口1,用于与CCD相连,为4接口的接插件
4.CON1: USB CON 用于与USB电缆相联。
结束语
USB为计算机外设输入输出提供了新的接口标准。它使设备具有热插拔,即插即用,自动配置的能力,并标准化设备连接。USB的级联星型拓扑结构大大扩充了外设数量,使增加,使用外设更加便捷,快速。而新提出的USB2.0标准更是将数据传输速率提高到了一个新的高度,这是具有美好的应用前景。