现在需要用一片C6678,接受从摄像头进来的光学图像,同时接受从其他单元进来的一些”数据A“,处理完这些数据后,在利用结果处理光学图像
由于C6678不带Video Port口,打算用FPGA从解码芯片的输出端做个桥接,桥接到C6678的EMIF口,把摄像头的数据传输进C6678。大体上走的是DM系列中VP口的原来,FPGA内部RAM缓存一行的图像,一行缓存完了之后,通知C6678读走这一行到DDR3。读完一帧(假定为576行)后,C6678再采集”数据A“,先对数据A处理,完了再利用这个结果处理光学图像。
现在的问题是:
1. 由于FPGA每缓存一行后,就通过C6678读走这一行。拟用C6678的GPIO产生一个EDMA事件,让C6678读走这一行到DDR3。这样的话,每帧576行,1s为25帧。则C6678需要每秒相应576×25=14400次的GPIO来的EDMA时间。C6678在接受上一帧图像的时候,肯定还得做下一帧的处理。
那么C6678能在处理数据的同时,还能承受每秒14400次的GPIO来的时间响应吗?或者能否用其中一个核负责GPIO的相应,另一个核做数据处理?
2. 按照当前想法,C6678在每个40ms片段内,需要对DDR3有以下两个操作
(1)一直读写DDR3,做上一帧的算法。
(2)同时每隔64us,从EMIF口把下一帧每行的图像读进来,写进DDR3。
因为操作(2)的意思就是每隔64us,暂停一下操作(1),把一行数据写进DDR3后,再继续执行操作(1)。
我的问题是:这样的话,操作(2)会不会严重影响操作(1) 的进行?
求指导!!
Feng Jin:
可能我一开始写的不太清楚,现在我把我的问题简述一下:
1. C6678在1秒内,需要接受14400次GPIO来的EDMA事件,C6678能否承受?
2. C6678在40ms内,
(1)需要不停地利用DDR3中的1MB的数据进行运算
(2)需要每隔64us就从EMIF读进来2K数据,写进DDR3.
操作(1)、操作(2)会不会因为DDR3只能被同时被一个操作进行,而导致严重地互相干扰?
Sean Shi:
Hi ,Fengjin
我遇到的问题与你类似,也是TVP5158采集四路数据送到c6778进行图像分析。请问你的方案中加FPGA进行转换了吗?
我的邮箱是shizhaohui@live.cn,能否给予一些指导,谢谢。
致礼!
Sean Shi
Feng Jin:
回复 Sean Shi:
最终我们的方案是:摄像头–>TVP5150–>Spartan6–>C6678。
S6与C6678之间是通过EMIF16传输的,C6678通过EDMA读取EMIF16接口的数据,S6写时序将视频数据传输进来,带宽达到了50MB/s。
感觉带宽不够,最后还提出了彩色信号(项目中不需要)。感觉可以用SRIO进行FPGA到C6678之间的数据传输更好。