基于FPGA+DSP的智能车全景视觉系统
3 芯片间通信
多芯片协处理系统中最重要的一个方面就是芯片间数据通信的效率,该效率直接影响系统的运行效率。而数据延迟和传输带宽,是最值得关注的两个方面。本系统采用多种方式进行数据传输,提高了系统的灵活性。
3.1 FPGA2与DSPs间的数据通信
根据应用特点和系统接口,本系统采用两种方式连接FPGA和DSP:32 bit EMIF-A and McBSP0。选用32 bit EMIF-A作为DSP与FPGA间进行高速数据通信主要原因是传输速率高,可充分利用TMS320C6416内EDMA方式传输数据的优点。如图3所示。
FPGA内部的EMIF FIFO接口模块用于转换DSP的EMIF信号,将数据转移至接收FIFO。当接收满一帧数据后,FPGA的计算内核开始从该接收FIFO获取数据并处理,然后将处理完的数据写到发送FIFO。发送FIFO数据满时,启动DMA中断将数据传送到DSP片内Cache。由于该EMIF-A是工作在133 MHz的32 bit总线,峰值数据率可达532 MB/s。
FPGA2与DSPs间的第二种通信方法是McBSP(Multichannel Buffered Serial Port),两个DSP的McBSP0连到FPGA。McBSP是一种全复用串行口,工作频率为125 Mb/s。进行串行通信时,具有独立的帧同步FSX,FSR和位同步时钟CLKX、CLKR,提供系统时钟信号为CLKS。在从模式下,可由外部时钟驱动,主模式下可由McBSP采样时钟驱动。接收和发送也很简单,各需要一个数据线:DR,DX。McBSP通信协议简单,可节省FPGA的资源。
3.2 两片DSP间的数据通信
两片DSP之间的通信也有两种通信方式。第一种通信是通过McBSP接口。为了获得最大的数据传送率,将两片DSP的McBSP1和McBSP2连接起来,这样每个DSP可以做为时钟主控和帧主控。换句话说,同一片DSP的一个McBSP接口作为主控在通信时产生数据发送时钟和帧同步时钟,同时另外一个接口作为从控等待控制信号以接收数据。图中,当DSP-A的McBSP1为主控发送数据时,McBSP2为从控;同时DSP-B的McBSP2为主控,DSP-A的McBSP1等待从DSP-B的同步信号以接收数据。
除了McBSP之外,两片DSP间还通过EMIF-A进行高速连接映射,FPGA内部的32 bit双向接口通过FIFO实现,如图4所示。这种基于FIFO的双向数据传送口支持DSP间复杂的数据交换和控制消息传递。DSP的EMIF-A工作频率为133 MHz,数据传输时,FPGA的可编程FIFO阈值中断支持DSP间通过EDMA方式。
3.3 与上位机PC的数据通信
为了实现从PC进行远程控制,特别是用无线网络连接控制通信,系统特别设计了以太网接口、USB2.0接口和PCI接口。网络连接是通过FPGA2的标准GMII接口,以太网PHY连接到外部RJ45。GPIO接口配置成USB2.0数据接口,而4个PCI则是将PCI芯片连接到FPGA2内的MGT模块来实现的。
4 高速并行数字图像处理结果
在智能车视觉系统中,除了要预先将多通道画面进行拼接等预处理外,更重要的是完成自动导航和目标跟踪,这些都牵涉到海量数据流的实时传输和运算。本次实验为基于特征点的运动物体追踪,包括以下步骤:(1)背景学习;(2)全画面运动估计、图像差分;(3)差分部分的特征提取;(4)特征点的帧间运动估计;(5)基于K-means法的特征点分类。
基于全景画面的特征点跟踪需要对多通道视频同时进行运算,运算过程复杂,包括跟踪前与跟踪后的处理任务,如何将这些任务分配到不同的芯片上并使板载资源做到任务间最大共享,需要根据任务强度估计后放到不同的芯片上。同时,由于μC/OS是一种可移植性强、代码微小的实时、多任务操作系统,适合在本系统的DSP上运行[10]。移植μC/OS操作系统到一个DSP上,将该DSP作为主控DSP进行任务分配,本次实验的各个任务分配如图5所示。由于两个DSP协助FPGA2进行运算具有强大的计算能力,可进行多目标跟踪,FPGA2承担了大量的并行数据运算,如运动探测包括的差分、运动估计、图像拼接,而DSP则承担特征点提取和追踪这些不能并行运算的部分。实验结果表明,6路视频采集后的全景图像上可作实时多目标追踪。
本系统通过选用FPGA+DSP相配合的方式,同时利用了两种芯片的性能优势,既保证系统的执行速度,也能保证可靠的逻辑控制。该系统实现了6路1 M大小视频图像信号的同时采集和处理,由FPGA1对系统的运行逻辑进行控制,通过优化在DSP上运行的图像处理程序,可实现智能车导航应用中全景图像范围内的目标追踪。该系统还可作为一个独立的图像处理系统,后续通过添加其他如立体视觉和光学跟踪等的算法,形成其他多方面的图像应用研究平台。同时该方案也为其他基于多DSP和FPGA混合图像处理平台设计提供了参考。
全景视觉系统 FPGA+DSP 数字图像采集与处理系统 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
