USB作为一种新的扩展接口,主要致力于计算机-电话一体化和应用类消费产品。它的数据传输速率比串/并口都要高。USB总线具有时分复用的特点,多个不同速度的USB外设可以通过集线器同时连接到同一台计算机的同一个USB中上,在USB总线带宽允许的情况下,多个外设可以同时工作而不相互影响。USB传输速率适用于中、低速外设。高速模式下,USB支持实时的视频、音频和压缩的视频数据传输。本文对于CMOS视频传感器为核心的数字图像设备(电脑眼)与USB接口进行了研究,并利用Anchor公司的EZ-USB 2131Q芯片设计了一种基于外接RAM的单片方案,实现了电脑眼的USB接口。
1 USB概述与EZ-USB 2131Q芯片介绍
通用串行总线(Universal Serial Bus)适用于USB的外围设备连接到主机,通过PCI总线和PC内部的系统总线连接,实现数据的传送。同时USB又是一种通信协议,支持主系统和其外围设备之间的数据传送。在USB的网络协议中,每个USB的系统只能有一个主机。
1.1 USB的基本特征
USB是一种层状的星形拓扑,其根部是主机控制器,USB器件直接与根部接口连接实现其功能。若多个器件同时行使其功能,就要通过集线器来扩展,但扩展层不能超过5层。USB器件支持热插拔,而且可以即插即用。USB一般支持两种传输速度,即低速1.5Mbit/s和高速12Mbit/s,在USB2.0版本中其速度提高到480Mbit/s。
USB通过四根电缆线连接,两根用于电源线,两根用于差动数据线(D+和D-)。主机是USB通信的中心,它控制和分时连接器件。主机是唯一可利用系统资源的。主机控制器经根集线器初始化交易,主机控制器每毫秒开始一帧(USB2.0中每1/8毫秒开始一帧称微帧),在这一帧或1/8帧中,外设与主机进行数据通信。主机对多个外设进行交易,并对外设请求的带宽进行分时。
USB有四种传输方式用不同类型垢数据。控制传输,主要用于设置、命令和状态信息;中断传输,与一般的中断概念不同,主要用于键盘、鼠标等少量数据的传输;批量传输,主要用于打印机、扫描仪等大量数据传输;同步传输,用于视频、声音等实时传输。
同步传输方式下,数据传输保持固定的带宽和延时,保证了数据传输速率的稳定性。
USB有诸多优点,适合于与视频电脑眼的接口。本文应用一种内置微控制器的USB芯片,设计了一种同步传输方式的单片方案。
一般来讲,USB的控制芯片有两种类型,一种是MCU(微控制器)集成在芯片里面的产品;另一种是单独的一个芯片实现USB的Engine功能。
考虑到USB传输速率较高,如果利用只实现Engine功能的芯片,外加一个普通微控制器(如8051),其处理速度就会很慢而达不到USB传输要求。USB外设作为消费类产品的目的之一在于降低产品成本,如果采用高速微处理器(如DSP),满足了USB传输速率,但成本较高。在各方面比较下,选择了内置有微控制器的芯片EZ-USB 2131Q。
1.2 EZ-USB 2131Q芯片介绍
EZ-USB 2131Q内部框图如图1所示。它是Anchor公司的一种内嵌有微控制器的80脚的USB芯片,包含有3个8位多功能端口,8位数据端口、16位地址端口、两个USB数据端口和其它输入输出端口。
其采用了一种基于内部RAM的解决方案,允许客户随时不断地设置和升级,不受端口数据、缓冲大小、传输速度及传输方式的限制。
片内嵌有一个增强型的8051微控制器,4个时钟的周期使它比标准8051的速度快3倍。
EZ-USB 2131Q有两种同步传输方式:即普通读写方式和快速读写方式。在普通读写方式下,芯片从外部读取或向外部写入数据的速率不会超过1000字节/ms,而且数据传输指令只能一一列出,共要写出1000行相同的指令。中间不能用循环来传输数据,而且也没有时间来加入其它指令。这种方式对于要求同步传输、每帧传输1023字节的设备是不可取的。在快速读写方式下,芯片可以在0.5ms内从外部读取或向外部写入1023字节的数据,并且还留有足够的时间可以加入其它指令。
2 电脑眼与EZ-USB 2131Q的接口方案
2.1 电脑眼的USB单片方案
本文中电脑眼的传输速度为9帧/s,发送一场图像数据约111ms;而USB采集一场图像数据约108ms,电脑眼发送图像数据和USB接收图像数据的时间基本相当。
根据EZ-USB 2131Q和电脑眼的总线其传输速率,可以利用外接存储器来实现各功能块的接口,电脑眼与EZ-SUB接口框图如图2所示。电脑眼通过8位数据线传输数据,如果保持电脑眼数据的连续传输,就用场同步和象素同步作为控制信号。EZ-USB2131Q具有8位输入输出数据线,多功能口可用来接收和发送控制信号,其地址线在快速传输模式下不可用。
芯片每帧从外部存储器取数1023字节,在电脑眼与EZ-USB 2131Q接口时,如果利用一个2KB的异步FIFO,电脑工作如下:在电路加电后,电脑眼的场同步控制信号时FIFO进行初始化,然后电脑眼的象素同步信号选通FIFO的读数据端口,将电脑眼采集的图像数据写入FIFO;当FIFO中的数据量达到1KB时(即半满时),FIFO自动对半满标志端口置位,EZ-USB2131Q芯片内的控制指令在USB的帧中断时检测到半满标志位后,发出快速读数据控制信号,从FIFO中取出1023个字节的图像数据存入芯片内部的缓冲中。因电脑眼一场图像的分辨率是384×287象素,一场图像数据为110208(1023×107+747)字节,在取完1023×107字节数据后,芯片在USB的下一帧中断时检测不到FIFO半满置位标志。为了保证电脑眼不中断地采集数据而只能舍弃剩余的747字节的数据,并且新的场同步信号的到来又会对FIFO进行初始化,开始存入新一场图像数据。这一接口电路虽然简单,能实现图像显示,但通过USB口所显示的图像不完整。因此,设计了基于外接RAM的单片方案。
2.2 基于外接RAM的单片方案
介于上述接口方案存在的缺陷,即要保证电脑眼不间断采集数据又要保证EZ-USB 2131Q芯片能获取一场图像的全部数据,可以采取如图3所示的另一种单片方案。上面提到过,电脑眼一场的图像数据是110208字节,要存入一场图像数据就需要一个128KB的RAM。为了保证电脑眼不间断地连续传输,在此单片方案中利用一个多路转换器对两个128KB的RAM进行切换,分别存入电脑眼连续采集的两场图像数据。外接RAM的电路中,包含有3大功能块:两个128KB的RAM组成存储功能块、两个地址发生器及一个多路转换器,如图3所示。存储功能块用于存储电脑眼的一场完整图像数据,地址发生器用于存储器的地址选择,多路转换器用于切换对存储块的工作路径。
多路转换器是利用电脑眼场同步信号来进行切换的,其切换频率与电脑眼的场同步信号的频率相当。在多路转换器中,当电脑眼的场同步信号到来时,一路选通RAMA并同时对RAMA写选通,另一路选通RAMB并同时对RAMB读选通。A地址发生器由电脑眼的象素同步信号触发,由此产生的地址信号被接入RAMA的地址端,并将电脑眼采集的一场图像数据写入RAMA中,A地址发生器对RAMB是不选通状态。在EZ-USB芯片端,芯片快速读控制信号触发B地址发生器,产生的地址信号接入RAMB地址端。此时B地址发生器对RAMA是不选通状态,这样USB芯片就能从RAMB中读取完整的一场图像数据。在芯片读取下一场图像数据时,上述过程正好相反,电脑眼向RAMB中写入数据,EZ-USB芯片从RAMA中取出数据。
2.3 基于RAM单片方案的软件流程
如上所述,EZ-USB 2131Q芯片采用了一种基于RAM的方案,实现数据格式转换的程序并未固化在芯片中,是一种软硬结合的固件(FIRMWARE)。当器件插入USB口时,主机对器件进行轮询,获取了器件的ID号后,系统程序将FIRMWARE下载到芯片内部,执行数据格式的逻辑转换。FIRMWARE结构如图4所示。其中:TD_Init():用于初始化FIRMWARE的全局状态变量;TD_Poll():反复调用,用于执行用户的外设功能;TD_Suspend():此函数可以使器件进入低功耗状态;TD_Resume():此函数用于响应外部恢复事件,使器件恢复正常工作状态。
FIRMWARE工作时,获取图像数据后转换成USB数据格式,提交给计算机处理。
利用FIFO的方法,电路简单,可以得到稳定的图像。但代价是要丢掉一些有效数据,在不损失有效数据的条件下又必须控制电脑眼,会使得图像的传输速率降。是一种可用但不最佳的方法。
电脑眼基于外接RAM的单片方案,虽然在电路上比接FIFO稍显复杂,但此方案解决了数据传输的完整性,而且能保持电脑眼连续采集数据,保证了电脑眼的最大传输速率。
图5是通过基于RAM的单片方案获取电脑眼采集的图像数据并经USB口送入计算机,经过客户软件处理后得到的电脑眼的图像。
综上所述,基于外接RAM的单片方案是一种稳定可以的解决方案,保证了数据的完整性和连续性。
|