各位老哥们好,我在开发xc7k325tffg 900-2
FPGA时遇到一个瓶颈,跪求各位给个建议。
FPGA通过CameraLink相机采集分辨率为2040*1080的8bit灰度图,现在需要通过FPGA网口将图像数据发送到显示设备上。图像数据传输到显示设备,只需要满足肉眼的实时性15fps左右即可,不需要特别快。
我已经确认无误camlink相机采集的数据可以发送到FPGA上,因为我从FPGA通过SRIO接口发送到了DSP C6678上面,并从DSP缓冲区成功打印了一帧图像。
我当前的难点如下:
Camlink相机数据传输速率太大,时钟频率82MHz,一个时钟传输8*8bit = 64bits,
相当于一个字节的传输频率为82*8 = 656MHz,而千兆以太网传输频率为125MHz,速率差距太大;
我尝试在之间加一个双口ram缓冲,但是不知道可行不可行。一帧图像为2203200字节,约2.1M,那么camlink写完一帧图像,根据时钟频率差异,网口才传出其1/6,因此双口ram消耗的资源起码要有2.1M * 5/6 = 1.8M,我不知道FPGA的资源够不够。因为我们这个工程主要还有camlink相机采集模块、srio向DSP传输图像模块,应该这些模块也会消耗FPGA板上的资源;
我也尝试了使用一定尺寸的双口ram,尺寸是131072字节,写宽度是64位,写深度为16384,读深度为131072,读取宽度为8位,当从网口向上位机传输.coe文件里面的固定内容,或者固定的数据时,是没问题的;然后我将双口ram的写入端变换为camlink 64位数据信号时,发送到上位机的测试图像数据包就会出现乱码,但是乱的比较有规律。
上述图片是DSP缓冲区收到的测试图像数据,测试图像的数据都是有规律的;下面的图片是上位机从网口接收到的UDP数据包格式,按道理说其变化规律起码应该是递增的那种。一包数据8042字节,后面八千是图像数据,我不知道出现这种乱码的原因是什么,是不是传输频率不同的缘故呢,可是仔细看一下这包数据以7开头的有16个,以9开头的也有连续的16个,希望您能给我指点一下,谢谢了。
0