有一次我做一个项目,需要把DVP接口的图像数据通过MIPI CSI-2传输给HDMI显示器,看起来简单,但实际操作起来,还真是得花不少心思呢。那时候用的芯片是智多晶的SEALION 2000 CPLD和SEAL 5000 FPGA,最后总算把一条完整的视频通路给跑通了。我们先看看从DVP到MIPI再到HDMI的这个过程,DVP这个经典并行接口其实很稳定,好多老款摄像头都在用。不过现在大家都用移动设备和高清显示器了,所以MIPI CSI-2和HDMI这种高带宽的串行接口越来越流行。 这次方案的核心是OV5640摄像头输出的DVP格式数据进入SL2E-2V-8NA48CI CPLD芯片进行转换。这个CPLD主要负责把DVP信号转换成MIPI CSI-2协议发给SA5T-100-D0-8F676C FPGA。FPGA这边接收到信号后,用IP核解析数据并存进DDR3缓存里,最后通过HDMI接口输出到显示器上。这种设计的好处是分工明确,CPLD成本低、启动快,专门用来做协议转换这种事特别合适;而FPGA算力强、接口多,适合处理算法和控制显示。 我们在2K单板上连好OV5640摄像头,然后用FFC线把它的MIPI CSI-2 TX接口接到MIPI FMC子板上的RX接口。接着把这个子板扣到100K单板上,最后用HDMI线连到显示器就大功告成了。 下载程序的时候也是有讲究的。先给100K单板下好bin文件,等看到板载LED1以1秒的频率闪烁了(表示接收端准备好了),再给2K单板下载程序。 这次做出来的效果还不错,图像清晰也不卡帧,说明整个链路是通的。这套方案不仅让我见识了智多晶的强大实力,也给大家提供了一个很好的参考设计。如果有工程师想要做类似的项目或者想了解更多细节的话,欢迎去官网看看更多资料。