USB作为一种新的扩展接口,主要致力于计算机-电话一体化和应用类消费产品。它的数据传输率比标准串/并口高。USB总线具有时分复用的特点,多个不同速度的USB外设可以通过集线器同时连接到同一台计算机的同一个USB口上,在USB总线带宽允许的情况下,多个外设可以同时工作而不相互影响。USB传输速率适用于中、低速外设。高速模式下,USB支持实时的视频、音频和压缩的视频数据传输。
在视频会议和可视电话等多媒体应用中,具有数字接口的摄像系统(CAMERA)是其关键的部件。它完成视频图像的采集、处理,并通过数字接口把信号送进计算机显示,作进一步处理。
1 USB数字摄像系统原理
1.1 USB简介
通用串行总线(Universal Serial Bus)适用于USB外围设备连接到主机上,通过PCI总线与PC内部的系统总线连接,实现数据的传送。同时USB又是一种通信协议,支持主系统与其外设之间的数据传送。在USB的网络协议中,每个USB的系统只能有一个主机。
USB是一种层状的星形拓扑,其根部是主机控制器,USB器件与根部接口连接实现其功能。
若多个器件同时行使其功能,就要通过集线器来扩展,但扩展层不能超过5层。USB器件支持热拔插,而且可以即插即用。USB一般支持两种传输速度,即低速1.5Mbit/s和全速12Mbit/s,在USB2.0版本中其速度提高到480Mbit/s。
USB有几种用于不同类型的数据传输方式。控制传输,主要用于设置、命令和状态信息;中断传输,与一般的中断概念不同,主要用于打印机、扫描仪等大量数据传输;同步传输,用于视频、声音等实时传输。
考虑到USB传输速率较高,如果利用只实现ENGINE功能的芯片,外加一个普通微控制器(如8051),其处理速度就会很慢而达不到USB传输要求。USB外设作为消费类产品的目的之一在于降低产品成本,如果采用高速微处理器(如DSP),满足了USB的传输速率,但成本较高。经多方面比较选择了CYPRESS公司的内置微控制器芯片EZ-USB 2131Q,开发了具有USB接口的数字摄像系统。
1.2 系统的原理图
系统的原理图如图1所示。
整个系统以EZ_USB为核心,通过I2C总线控制电路对数字CAMERA 芯片的工作状态进行控制,数字图像数据通过数据转换电路送入数据缓冲区,USB总线控制器从数据缓冲区中读取数据。与计算机的通讯则通过USB接口实现。
2 USB数字摄像系统硬件
2.1 EZ_USB 2131Q芯片介绍
EZ_USB 2131Q内部框图如图2所示。它是Cypress公司的内嵌微控制器的80pin的USB接口控制芯片,包含3个8位多功能端口、8位数据端口、16位地址端口、2个USB数据端口和其它输入输出端口。
EZ_USB 2131Q芯片采用了一种基于内部RAM的解决方案,允许客户随时不断地设置和升级,不受端口数、缓冲大小、传输速度及传输方式的限制。
片内嵌有一个增强型的8051微控制器,与标准的8051相比,其速度快3倍。它通过内部RAM编程和数据存储,这样使得芯片具有软特性。USB主机通过USB总线下载8051程序代码和设备特征到RAM中,然后EZ_USB芯片作为一个由代码定义的外围设备重新连接到主机上。
EZ_USB 2131Q有两种同步传输方式:即普通读写方式和快速读写方式。在普通读写方式下,芯片从外部读取或向外部写入数据的速率不会超过1000字节/毫秒,而且数据传输指令只能一一列出,共要写出1000行相同的指令。中间不能用循环来传输数据,而且也没有时间来加入其它指令。这种方式对于要求同步传输、每帧传输1023字节的设备是不可取的。在快速读写方式下,芯片可以在0.5毫秒内从外部读取或向外部写入1023字节的数据,并且还留有足够的时间可以加入其它指令。
如图2所示,USB收发器连接到USB总线的D+和D-管脚;串行接口引擎(SIE)编码和解码串行数据并且进行错误校验、位填充和执行USB所需的其他信号,最后完成数据从USB接口的传输。
EZ_USB-2131Q使用了一个增强型SIE/USB接口(USB核),它本身完成了许多的USB协议,这样就简化了8051代码。
2.2 EZ_USB系列USB总线仿真板
CYPRESS公司的EZ_USB开发板为USB设备的开发提供了一个良好的工具。开发板使用的是80管脚的AN2131Q芯片,而且包含5个用于扩展接口的引出端。板上所有的电路均为3.3V,开发板可以由USB连接器供电,也可以由外部供电。
EZ_USB开发板包括以下几个部分:
· 2131 EZ_USB集成电路,它包括一个高性能的8051核;
· 64K扩展RAM(由两个32K RAM组成);
· 两个8051 UART口;
· DIP开关控制来选择RAM内存映射地址和EEPROM地址;
· 两个I2C总线的8位I/O扩展芯片,一个用于驱动七段LED,另一个用于读8位开关状态;
· 一个3.3V调节器,它可以把5V转换成3.3V;
· 电源和中断/监控指示灯;
该仿真板基于EZ_USB系列USB总线控制器,它包含标准的MCS51外设模块和USB模块。USB模块集成了USB的收发器、串行总线接口机制、功能接口单元和收/发缓冲区。通过内存配置开关可灵活地改变RAM的地址空间,并方便地进行内存扩充。
利用该板上的I/O扩展连接口提供的控制线和数据线对CAMERA芯片进行控制,并完成图像数据的输入。图像数据则通过USB端口送入计算机,可以进行异步传输和等时传输。
监控程序驻留在板上的EPROM内,可与PC机进行通讯,控制程序通过外部UART送入仿真板,可以进行实时仿真。这个仿真板和控制器都完全满足《USB协议》。采用该仿真板来完成产品的开发,并在此基础上完成产品,可提高产品的开发周期。
2.3 数字CAMERA芯片
采集卡的CODEC是OmniVision Inc.的OV6620,该芯片将CMOS光感应核与外围支持电路集成在一起,具有可编程控制与视频模/数混合输出等功能,其输出的视频为彩色图像,与CCIR标准兼容。OV6620内部嵌入了两个8位的A/D,因而可以同步地输出8位或16位的数字视频流。在输出数字视频流的同时,还提供象素时钟PCLK、水平参考信号HREF、垂直同步信号VSYNC?便于外部电路读取图像。
2.4 I2C总线控制电路
I2C总线是一种双向串行总线,它只有两根信号线,可用于不同的IC或硬件模块间的通讯。两条线分别是串行数据线(SDA)和串行时钟线(SCL),当与设备相连时,每条线都必须通过上拉电阻接到电源上。I2C总线上可连接多个主从设备。I2C总线具有控制简单、稳定可靠的特点。I2C总线的数据量是可编程的,其最大的数据量是100K。图3给出了一个完整的I2C总线上的数据传输。
2.5 数据转换及数据缓冲电路
CAMERA芯片的数据输出率较高,并且输出的图像数据格式不能直接用于通过USB总线传送,因而需要进行数据格式转换。CAMERA芯片的数据输出格式由工作模式决定,通过I2C总线控制。为了简化电路,并保持系统一定的灵活性,采用了ALTERA公司的CPLD可编程逻辑阵列芯片来实现数据转换。数据缓冲采用NEC公司的256K×8位静态RAM芯片。电路图如图4所示。
CAMERA芯片的主要输出信号有:CLKOUT(时钟输出,作为CPLD芯片的全局工作时钟)、Y和UV(视频数据输出线均为8位,作为CPLD芯片的数据线)、VSYNC(垂直同步信号,用作帧同步信号)、CHSYNC(水平同步信号,用作行同步信号)。
数据转换电路通过可编程逻辑完成下列功能:根据同步信号,针对QCIF格式,过滤一行中的冗余数据和一帧中的同步行数据,产生数据缓冲芯片的写时钟信号、写复位信号和写使能信号。数据的过滤是通过控制写使能信号实现的,该芯片在使能信号为低时,可以写入缓冲区,而在信号为高时,则不能够将数据写入缓冲区。
数据缓冲芯片的数据输入与数据输出分别由不同的信号控制,两者互不干扰。写数据控制信号有:WRCLK(写时钟信号)、WRST(写复位信号)和WREN(写使能信号)。写操作过程是:首先,控制产生一个内部复位信号WRST,使写缓冲区的写地址指针指向零,在复位周期后,进行写操作;在写时钟信号的上升沿,如果写使能信号为低,一个时钟周期后,数据就写入SRAM中,同时SRAM的写地址指针自动增加。
读操作信号有:RDCLK(读时钟信号)、RE(读允许信号)、OE(输出允许信号)和RDST(读复位信号)。读操作的过程为:控制产生一个读复位信号RDST,使读缓冲区的地址指针指向零,在下一时钟周期进行读操作;在读时钟的上升沿,如果RE和OE信号同时为低,SRAM中的数据就会出现在输出数据总线上,同时SRAM的读地址指针自动增加。
读写操作过程互不干扰,各自有自己的地址指针。把CAMERA芯片输出的图像数据依约定的要求按帧存放在缓冲区,并加上相应的帧间隔标志,USB控制器则从缓冲区中读取数据,并通过接口送往主机,完成数据图像的传输。
3 USB数字摄像系统软件
开发一个USB设备,软件设计是必不可少的。USB应用系统软件设计分为三部分:USB外设端的固件(Firmware)、主机操作系统上的客户驱动程序以及操作界面程序。界面程序通过客户驱动程序与系统USBI(USB Device Interface)进行通信,由系统产生USB数据的传送动作,固件则响应各种来自系统的USB标准请求,完成各种数据的交换工作和事件处理。
由于图像数据自身的格式和USB同步传输适合传输时间敏感的大量数据,采用了同步传输模式。但是同步传输设备和进程的同步设计有较大的难度,且它不提供错误检查机制。固件利用中断来响应主机的I/O请求。因此8051核的IRQE是关键。需要注意的还有USB设备的初始化和配置。初始化时,要按严格的顺序对AN2131的各寄存器进行操作。主机操作界面程序是用VC++6.0编写的,主要实现图像显示以及图像处理等多种功能。
该系统是为了开发USB接口的数字化摄像设备而设计的,系统的一个性能是帧传输率,CAREMA芯片的数据传输率最高可达到30帧/秒。目前笔者所实现的USB接口,在等时传输方式下,可达到8帧/秒。由于目前采用仿真模式,系统的性能在最后的定型中,可得到进一步的提高。
下一步将继续进行系统的集成和优化,并最终实现产品化。由于目前的系统是基于系统仿真板的,所以必须进行集成,以最小系统实现。此外,还要进一步开发设备的驱动程序。由于EZ_USB包括很多的功能,而这里只用到它的等时传输,浪费了很多的资源,加大了成本。所以在后继研究中,还会开发USB控制器,这样才能真正地降低成本,提高性能。
参考文献
1 Compaq,Intel,Microsoft,NEC. Universal Serial Bus Specification Revision 1.1.Sep 23, 1998
2 USB Device Working Group. USB Still Image Capture Device Definition Revision 1.0. July 11 2000
3 Cypress.EZ-USB Technical Reference Manual Version 1.9. May 2000
4 李伯成,侯伯亨,裘雪红. IBM PC微机应用系统设计. 西安?西安电子科技大学,1999
5 Malter Oney. Programming the Windows Driver Model. Microsoft Press 1999
编辑:jq
评论
查看更多