完成了前端预处理模块到主存储器 SDRAM 的数据搬移过程,接下来主要是后端的高速数据传输过程。DSP 与SDRAM 之间的数据传输可达到100MHz 以上的高速速率,尤其是DSP 支持的EDMA 传输方式,更是允许不在CPU 干涉的情况下,就可完成外部数据与DSP 内部的Cache 之间的传输,这样可提高CPU 工作的效率。另外,DSP 芯片内部有两级的缓存,第二级缓存L2 更是可达到1MB,因此我们考虑采用现在流行的ping-pong 传输方式,当CPU 在处理缓存中的ping 或pong 内部的数据时,在可以预测剩余处理时间的前提下,我们可预先将接下来要处理的数据通过EDMA 方式传输到对应的pong 或ping 存储区中,这样便将数据传输的时间蕴含在了处理过程中,节省了相应的传输时间,提高了效率。
综合了上面对整个数据传输流程的分析,我们可以得出如图4 所示的数据搬移过程。由图中可以看出,从Sensor 出来的数据到FPGA 中的预处理,与DSP 内部的数据处理过程,在SDRAM 的缓存处理下,是可以以流水线的方式传输处理的,FPGA 作为前端预处理模块,完成大容量数据的处理过程,对于系统效率的提高具有非常大的作用。
3、系统软件算法
关于前端图像预处理方法及车道偏离决策算法的介绍性文章比较多[2][3][4],在本文中就不做过多的描述,主要的实现流程如图5所示。通过 [2]中的一些典型算法,我们验证了本文所设计的汽车主动安全系统是完全满足汽车驾驶这种应用条件下的实时性要求的,而且该系统是具有较强的扩展性的。
4、结论
本文详细介绍了一套基于 DSP 计算和FPGA 逻辑计算的车道偏离预警系统的实现方案,主要解决了大容量图像数据在系统中的高速传输和存储、处理等。在设计的过程中,本文充分运用了FPGA 的逻辑资源对底层视觉算法的适应性及DSP 芯片的高速处理能力来满足高层的串行度高的视觉算法。通过一系列的实验,验证了该系统满足汽车安全这种应用背景下的高实时性要求。
本文创新点:
(1) 结合驾驶员、汽车与道路环境的关系,模拟人的驾驶行为来设计汽车主动安全系统,在系统设计的原理上更有现实意义;
(2) 针对计算机视觉系统设计中对多个层次算法的适应性,采用DSP 计算和FPGA 逻辑计算相结合的方式,满足系统算法各个层次的要求;
(3) 对计算机视觉系统中数据传输、存储和处理的流程进行了详细的分析,采用优化的EDMA 传输方式-PDT 来满足系统实时性的要求;