位置:51电子网 » 技术资料 » 控制技术

IEEE1394视频视觉系统中DSP软硬件设计方案

发布时间:2007/8/24 0:00:00 访问次数:832

本文介绍了一种以DSP为核心、基于IEEE1394总线的图像实时采集处理系统的软硬件设计。此外还提出了一种易于用DSP实现且存储器资源占用率小的运动目标检测算法。据了解,目前国内外大多数的计算机视觉研究都是用计算机软件处理实现的,因此在实时性和成本方面受计算机平台的制约。本文讨论了一种计算机视觉系统的硬件平台设计方案,并在此平台上实现了运行目标检测。可以说,这是一次用DSP实现计算机视觉算法的成功尝试,对于其它算法的硬件实现有一定的借鉴意义。




图1 硬件系统框图
采用IEEE1394总线作为传输接口是实现实时图像采集的根本保证。IEEE1394是由国际电气和电子工程师协会(IEEE)制定的一种高速串行总线协议。1394总线具有以下优点:
*支持热插拔和即插即用:
*提供统一的通用接口,并且具有总线供电能力(每一端口的最大输出电流为1.5A,输出电压8~33Vdc);
*传输速率高100~400Mbps;
*不依赖计算机,支持1394设备间的点对点传输。
其中第四点是目前常用的USB2.0总线无法实现的,也正是这一优点使得1394不仅是一种计算机外设连接总线,更是多种消费类电子产品的连接方案。




图2 帧缓存访问次序
另外,为了实现数字视频图像的实时采集和处理,充分发挥1394总线的高速传输速率,笔者选用了TI公司的TMS320VC33数字信号处理器作为主控制器。这是一款高性能浮点DSP,它具有17ns的指令周期和60MIPS的处理能力。
下面将分别介绍这套DSP系统的工作原理,软、硬件设计以及运动目标检测算法的改进和实现。
系统组成及工作原理
本系统是为验证并实现各种计算机视觉算法而搭建的一个硬件平台,用五片512K×8bit的SRAM分别作为帧缓冲和DSP的扩展RAM。还有一片20万门的FPGA用作系统的逻辑控制及以后机器视觉算法的硬件实现。系统的结构框图如图1所示。
系统的工作原理如下:系统上电或复位后,DSP首先从FlashROM中自动装入代码并开始运行,等待1394电缆插入。当电缆插入后,DSP通过解析根节点发来的请求包发出对应的内容作为应答,直至根节点发现该设备。之后,只要根节点发出读数据请求,DSP就根据请求包的内容从帧缓冲RAM中取出 数据,通过1394链路层和物理层芯片将其送到1394总线上。
图像数据的采集、处理和传输三个步骤以流水线的方式,在同一时刻各掌握一片帧缓存RAM的访问权,并行工作。当各个步骤都完成后,在FPGA的控制下同时切换各片帧缓存的控制权,开始流水线的下一个周期。各个步骤对三片帧缓存RAM的控制次序如图2所示。
这种流水线式的电路结构实现了图像采集、图像处理、图像传输三个步骤并行工作,极大地提高了处理的连续性和实时性。




图3 DSP软件流程图
DSP硬件设计
DSP在本系统中的任务有三个:首先是通过链路层和物理层芯片与根节点通信,完成自标识过程;其二是处理采集好的一帧图像,并把它再存回帧缓存;其三是自标识完成后,响应根节点发来的数据读请求,从帧缓冲RAM中读出处理过重的图像数据并送到总线上。整个系统由一片TMS320VC33、一片20万门的FPGA(EP20k200EBC356)、五片512KB高速SRAM(IS61LV5128AL)、一片Flash(AM29LV400B)、一片1394链路层芯片(TSB12LV32)、一片1394物理层芯片(TSB41LV04a)以及DSP电源看门狗芯片(PS767D301)组成。其中TMS320VC33作为主控制器与TSB12LV32的主控制器接口相连。FPGA在DSP的控制下向1394链路层芯片的DataMover端口发送数据。此外FPGA还有地址译码、时序调整以及帧缓存切换等功能。三片SRAM作为帧缓冲存,另外两片作为DSP的扩展RAM,每片RAM内存放一帧图像(300K字节),其访问时间为12ns,因此完全适合TMS320VC33以零等待方式访问。物理层芯片TSB12LV04a只与链路层芯片通信,与DSP无关,它负责进行总线上的差分模拟信号与系统的数字信号之间的转换。Flash用来存放DSP代码,它经过地址译码直接与DSP相连。DSP复位后由BootLoader将代码从Flash加载到DSP片内RAM中开始运行。可以通过DSP的JTAG接口方便地进行Flash的在系统擦写。由于AM12LV400B的访问时间为70ns,DSP访问Flash时至少应加入5个等待周期。
DSP软件设计
DSP的软件开发是在TI公司提供的Code Composer(CC)环境一,结合DSP硬件仿真器完成。代码的开发根据实际情况使用C语言和汇编语言的混合编程。在实际设备自标识的过程中使用C语言,这是因为这个过程逻辑关系比较复杂,但只在总线复位初始化时执行一次,用C语言可以提高可读性,减小开发难度,同时也不会对系统的性能有太大影响。而在进行图像处理和响应数据读请求包时,则使用了汇编语言。原因是这些代码使用频繁,直接影响系统的速度。
图4 应用程序界面
响应1394总线的自标识过程是系

本文介绍了一种以DSP为核心、基于IEEE1394总线的图像实时采集处理系统的软硬件设计。此外还提出了一种易于用DSP实现且存储器资源占用率小的运动目标检测算法。据了解,目前国内外大多数的计算机视觉研究都是用计算机软件处理实现的,因此在实时性和成本方面受计算机平台的制约。本文讨论了一种计算机视觉系统的硬件平台设计方案,并在此平台上实现了运行目标检测。可以说,这是一次用DSP实现计算机视觉算法的成功尝试,对于其它算法的硬件实现有一定的借鉴意义。




图1 硬件系统框图
采用IEEE1394总线作为传输接口是实现实时图像采集的根本保证。IEEE1394是由国际电气和电子工程师协会(IEEE)制定的一种高速串行总线协议。1394总线具有以下优点:
*支持热插拔和即插即用:
*提供统一的通用接口,并且具有总线供电能力(每一端口的最大输出电流为1.5A,输出电压8~33Vdc);
*传输速率高100~400Mbps;
*不依赖计算机,支持1394设备间的点对点传输。
其中第四点是目前常用的USB2.0总线无法实现的,也正是这一优点使得1394不仅是一种计算机外设连接总线,更是多种消费类电子产品的连接方案。




图2 帧缓存访问次序
另外,为了实现数字视频图像的实时采集和处理,充分发挥1394总线的高速传输速率,笔者选用了TI公司的TMS320VC33数字信号处理器作为主控制器。这是一款高性能浮点DSP,它具有17ns的指令周期和60MIPS的处理能力。
下面将分别介绍这套DSP系统的工作原理,软、硬件设计以及运动目标检测算法的改进和实现。
系统组成及工作原理
本系统是为验证并实现各种计算机视觉算法而搭建的一个硬件平台,用五片512K×8bit的SRAM分别作为帧缓冲和DSP的扩展RAM。还有一片20万门的FPGA用作系统的逻辑控制及以后机器视觉算法的硬件实现。系统的结构框图如图1所示。
系统的工作原理如下:系统上电或复位后,DSP首先从FlashROM中自动装入代码并开始运行,等待1394电缆插入。当电缆插入后,DSP通过解析根节点发来的请求包发出对应的内容作为应答,直至根节点发现该设备。之后,只要根节点发出读数据请求,DSP就根据请求包的内容从帧缓冲RAM中取出 数据,通过1394链路层和物理层芯片将其送到1394总线上。
图像数据的采集、处理和传输三个步骤以流水线的方式,在同一时刻各掌握一片帧缓存RAM的访问权,并行工作。当各个步骤都完成后,在FPGA的控制下同时切换各片帧缓存的控制权,开始流水线的下一个周期。各个步骤对三片帧缓存RAM的控制次序如图2所示。
这种流水线式的电路结构实现了图像采集、图像处理、图像传输三个步骤并行工作,极大地提高了处理的连续性和实时性。




图3 DSP软件流程图
DSP硬件设计
DSP在本系统中的任务有三个:首先是通过链路层和物理层芯片与根节点通信,完成自标识过程;其二是处理采集好的一帧图像,并把它再存回帧缓存;其三是自标识完成后,响应根节点发来的数据读请求,从帧缓冲RAM中读出处理过重的图像数据并送到总线上。整个系统由一片TMS320VC33、一片20万门的FPGA(EP20k200EBC356)、五片512KB高速SRAM(IS61LV5128AL)、一片Flash(AM29LV400B)、一片1394链路层芯片(TSB12LV32)、一片1394物理层芯片(TSB41LV04a)以及DSP电源看门狗芯片(PS767D301)组成。其中TMS320VC33作为主控制器与TSB12LV32的主控制器接口相连。FPGA在DSP的控制下向1394链路层芯片的DataMover端口发送数据。此外FPGA还有地址译码、时序调整以及帧缓存切换等功能。三片SRAM作为帧缓冲存,另外两片作为DSP的扩展RAM,每片RAM内存放一帧图像(300K字节),其访问时间为12ns,因此完全适合TMS320VC33以零等待方式访问。物理层芯片TSB12LV04a只与链路层芯片通信,与DSP无关,它负责进行总线上的差分模拟信号与系统的数字信号之间的转换。Flash用来存放DSP代码,它经过地址译码直接与DSP相连。DSP复位后由BootLoader将代码从Flash加载到DSP片内RAM中开始运行。可以通过DSP的JTAG接口方便地进行Flash的在系统擦写。由于AM12LV400B的访问时间为70ns,DSP访问Flash时至少应加入5个等待周期。
DSP软件设计
DSP的软件开发是在TI公司提供的Code Composer(CC)环境一,结合DSP硬件仿真器完成。代码的开发根据实际情况使用C语言和汇编语言的混合编程。在实际设备自标识的过程中使用C语言,这是因为这个过程逻辑关系比较复杂,但只在总线复位初始化时执行一次,用C语言可以提高可读性,减小开发难度,同时也不会对系统的性能有太大影响。而在进行图像处理和响应数据读请求包时,则使用了汇编语言。原因是这些代码使用频繁,直接影响系统的速度。
图4 应用程序界面
响应1394总线的自标识过程是系

相关IC型号

Warning: Undefined variable $stockkeys in G:\website_51dzw\www.51dzw.com\code\tech\view.php on line 152

热门点击

 

推荐技术资料

自制经典的1875功放
    平时我也经常逛一些音响DIY论坛,发现有很多人喜欢LM... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!