主动视觉(Active Vision)是当今计算机视觉和机器视觉研究领域中的一个热门课题。主动视觉强调的是视觉系统与其所处环境之间的交互作用能力。具体地说,主动视觉系统应具有根据自己在当前环境中所处的状态,如几何位置、姿态、摄像机的成像光学条件等,调整自身各部分的状态参数,使其能够达到一个最佳成像状态,从而使系统能够最方便地完成特定的视觉任务,如动态地跟踪物体的运动。主动视觉系统的研制与开发具有重要意义和广泛的应用前景,如各类导弹的成像导引头、机器人、人机交互研究等。
以往的主动视觉系统大多采用以图形工作站为中心,由图形工作站完成图像的采集、处理、跟踪控制,再通过RS232等接口控制执行机构运动以完成跟踪任务。以图形工作站为中心的系统虽然应用灵活,但具有体积庞大、价格昂贵、可靠性差等缺点。随着电子技术的发展,单芯片的计算能力发生了质的飞跃。以往往往需要由许多颗芯片才能完成的计算任务,现在只需要极少量的芯片便可实现。嵌入式系统是针对特定应用设计和优化的计算机软硬件系统,具有体积小、重量轻、可靠性高和价格低廉等优点。本文正是在这样的大背景下研制和开发了基于DSP的嵌入式主动视觉系统。
1 系统需求分析
主动视觉系统主要用于人机交互和高速视觉伺服任务,根据这一用途在设计中主要考虑以下几个问题:
首先是系统的图像处理能力。标准PALL电视信号的帧频率为25Hz,分辨率约为720x576像素;场频率为50Hz,图像分辨率约为720x288像素,因此系统的图像处理能力应该能够满足处理PAL传输视频的要求。
其次考虑系统的动力学响应要求。人眼正常运动角速度约为60度/秒,扫视运动时可高达700度/秒,因此要求电机控制系统能够达到近似的运动速度。
最后,系统应该具有一定的通用性和灵活性,以便接收测试数据和实现灵活多样的任务,因此平台应具有灵活、丰富的计算机接口和充足的计算资源。
2 总体设计
基于以上对系统性能要求的分析,系统采用TI高性能数字信号处理芯片TMS320C6711实现图像的处理功能并采用TMS320E2812高性能控制芯片完成电机的控制、传感器数据采集和实现与PC机之间的通讯功能。TMS320C6711主要用于通讯、声音信号处理和数字图像的处理,具有900MFLOPS的浮点运算能力和很高的性价比。TMS320F2812是TI专门针对运动控制而开发的高性能控制芯片,具有16通道12位ADC、丰富的片上资源和多种通讯接口,如McBsp、CAN和SCI接口等。系统将C6711和F2812两款高性能芯片相结合,充分利用F2812丰富的接口资源弥补C6711在控制和通讯功能上的不足,从而充分发挥C6711的计算功能,最终实现高性能的主动视觉系统。MS320C6711的时钟频率为150MHz并采用了BGA封装,给设计和制造带来很大困难。C6711 DSK是低价位、易用性C6000 DSP开发板。该板不仅能够充分发挥C6711DSP的性能,还提供了丰富的功能,例如声音采集和EEP并口在线开发等等。本设计通过扩展C6711 DSK的图像采集功能缩短开发周期、降低开发成本。
图1:系统总体结构图。
系统整体结构如图1所示。在C6711DSK基础上,通过其外围扩展接口扩展图像采集功能。TMS320C6711和TMS320F2812之间通过McBsp接口实现芯片之间信息的交换。F2812与PC机之间通过CAN总线或者RS232实现通讯。系统中采用的倾角传感器是具有RS232接口的智能传感器。通过F2812的SCI可以实现RS232串口,进而实现倾角传感器配置和数据采集。
3 系统硬件设计
3.1 图像处理系统的设计与实现
系统采用Philips公司提供的专用视频解码芯片SAA7111实现模拟视频信号的采集。SAA7111与C6711之间通过专用视频帧存储器AL422实现,外围接口逻辑由一片EPM7032实现,如图2所示。
图2:图像采集扩展结构。
3.2 I2C总线实现
SAA7111不支持即插即用功能,需要通过I2C总线对其进行初始化。由于C6711没有I2C接口模块,需要采用通用I/O接口和软件来模拟实现。C6711没有专门的通用I/O接口,需要通过配置多通道缓冲串行口(McBsp)使其成为通用I/O接口。C6711具有2个McBs接口,可将其中的一个配置成通用IO接口。C6711的时钟频率比I2C总线的频率要求高,在设计时需要注意I2C总线的时序要求,尤其是对数据保持时间的要求。
3.3 C6711与AL422接口实现
图像采集设计中需要考虑的主要问题之一是图像帧缓冲结构的设计。采用先进先出存储器(FIFO)只占用单页地址映射空间,可以节省大量地址空间。而且如果将帧存储体映射到地址空间的高段,会使其对DSP的影响降低到最小,因此系统采用了基于FIFO的图像帧缓冲结构。
AL422是专门用在视频领域的大容量视频帧存储器,设计中需要考虑的主要问题是接口逻辑的实现。虽然AL422的读写与WCK、RCK同步,但是与普通的同步FIFO不同的是其必须保证WCK、RCK至少1MHz的独立时钟,并且在进行不规律读写时只能由WEN或BEN进行控制。C6711采用100MHz的外部时钟,需要通过降频合成AL422的RCK。由于C6711输出的外部时钟频率为100MHz,而AL422B的最高RCK为50MHz,因此采用将C6711输出的外部时钟二分频作为AL422的RCK。AL422的REN、OEN可以采用DSK板上的DB_AREN、DB_OEN、DB_CE2信号通过组合逻辑实现。而RRSTN可采用DSK的一个通用I/O接口实现。DSK的外部时钟频率为IOOMHz,因此在设计时应该考虑逻辑器件本身的时延并采用同步设计方式。系统采用EPM7032实现上述FIFO接口逻辑,并将FIFO的输出数据与C6711DSK扩展接口的数据总线相连,将CE2存储空间分配给FIFO,从而最终实现了C6711与FIFO之间的接口。
3.4 F2812与C6711接口实现
由于TMS320C6711和TMS320F2812都支持McBsp接口并且相互兼容,所以系统采用McBsp接口实现两者之间的通讯。McBSP是多通道缓冲串行口的简称,能够同步发送和接收8/16/32位串行数据。接收和传送均采用独立的时钟和帧信号,其来源、频率、极性等均可由用户进行编程。McBSP包括数据流路径和控制路径,通过6根信号线连接到外部设备。数据信息通过传输引脚DX发送,接收引脚DR接收。时钟和帧同步控制信息由发送时钟、接收时钟、发送帧同步和接收帧同步引脚来产生。McBSP提供了双倍缓冲传送和三倍缓冲的接收。接收数据到达引脚DR后,移入接收移位寄存器RSR1,当整个字信息被接收之后,又被复制到接收缓冲寄存器RBR,最终复制到数据接收寄存器DRR,由CPU读取。而发送数据由CPU写入发送寄存器DXR,再复制到发送移位寄存器XSR。在帧同步信息发送后,发送器开始将XSR的内容移位到DX引脚。
F2812具有一个McBSP模块,而C6711自带了两个McBSP模块,二者之间完全兼容的。由于第一组McBSP的信号被配置成为通用I/O接口用于I2C总线的扩展,故只能使用C6711的第二组McBSP实现与F2812之间的通讯。在硬件上采用双机接收/发送端互连,即C6711的数据发送、时钟发送、帧发送同步信号管脚连接到F2812对应的接收管脚;反之亦然。
通过对相关寄存器的配置来实现数据的接收和发送操作,具体流程如下:
1)设置相关引脚为MeBSP引脚。
2)复位接收器、发送器及采样率发生器。
3)禁止数字回送、时钟停止、多通道模式。
4)接收和发送帧:单相,字长32位,每帧2个码字,使能帧同步忽略,无压缩扩展,1位数据延迟,右对齐高位填0,产生中断方式为检测到帧同步脉冲,帧同步脉冲高有效,时钟信号为上升沿触发。
5)发送时钟信号和帧同步信号来自内部采样率发生器,接收时钟信号和帧同步信号来自外部相应的接收引脚。时钟频率为37.5MHz,帧频率为1.25M,帧宽度为1个时钟脉冲宽度。采样率发生器时钟来源于内部CPU。
6)使能接收中断和发送中断,使能接收器、发送器及采样率发生器。
在相应的中断子程序中,通过读取和写入DXR1、DXR2、DRR1、DRR2寄存器实现F2812和C6711之间数据的读写。
4 系统软件设计
4.1 C6711软件实现
C6711软件设计过程中充分地考虑流水线处理的特点,充分发挥流水线的功能实现多种任务并行执行是设计的关键。因为系统采用帧缓冲存储结构只能完整地保存一行图像数据,所以当一行结束时必须及时将数据从帧缓冲存储中读出来。设计中采用C6711的QDMA功能实现图像数据的读取,减少C6711计算资源的占用并实现C6711运算资源的最大利用。软件流程如图3所示。
图3:系统软件设计结构图。
4.2 F2812电机控制实现
主动视觉系统对平台运动速度提出比较高的要求。步进电机在高速转动控制中容易出现失步的问题。电机失步会引起角度控制的误差,在控制中必须加以避免。避免步进电机失步是电机控制软件设计中的关键。为避免步进电机在加速和减速时出现失步,在加速和减速时采用升速/降速曲线进行控制,其控制软件流程如图4所示。
图4:步进电机控制软件流程图。
5 实验应用
5.1 图像采集实验
图像采集是系统中非常重要的一环,图像采集质量的好坏直接影响到目标检测的成败。实验中通过编写专门的图像采集程序,将采集到的图像存放在C6711DSK的SDRAM中,然后通过CCS2.0的图像调试工具读取图像,并在CCS调试界面中显示出来,从而验证图像采集质量的好坏。图像采集的实验结果如图5所示,实验结果说明图像清晰完整且颜色正常。
图5:图像采集结果。
图6:目标做水平往复运动时的跟踪误差。
5.2 目标跟踪实验
在实验室真实环境下采用桔红色的排球作为跟踪目标,在距离系统正前方1.5米左右处以不同方式运动。跟踪控制采用比例控制实现,通过对静止、水平往复运动、垂直往复运动、圆周运动目标的跟踪性能的分析验证系统的性能。图6显示了系统对水平往复运动目标进行跟踪的结果。
6 结论
文中将TMS320C6711的运算能力和TMS320F2812的控制能力和丰富的外围接口相结合实现了高性能主动视觉系统。图像采集由专用视频解码芯片完成,通过FIFO实现视频解码器与C6711的互联,通过DMA方式读取FIFO中的数据。这样的设计充分发挥了C6711流水处理的特点,提高计算资源的利用率。采用F2812提供的接口实现了传感器数据采集和PC机之间的通讯,弥补了C6711在运动控制和接口资源方面的不足。实验结果表明设计可行,系统性能达到设计要求。