乒乓操作引起的数据的错误

板卡外部接a和b相机,a相机给板卡供20M时钟,串行差分信 ;B相机给板卡供21M时钟,12位并行的差分数据和门控信 。其中A相机一帧数据是647k字,B相机一帧数据是71M字。门控低时数据有效。

板卡用2片70v631做片外sram缓存数据,上位机通过pci接口与板卡通信,板卡采用乒乓操作从sram读取数据至上位机。乒乓结构采用512+512式,当写满上面512时发出读上面512指令,同样写满下面512发出读下面512指令,如此循环。

 错误描述:

原始程序在调试A相机的时候没问题,当挂上B相机时,数据就出现问题。数据出现丢失和重写的问题。

在排查问题的时候过于将问题集中在软件的问题上。后面经过同学的提示,忽然发现送给乒乓操作给sram地址信 线有问题。在门控信 每次拉低的时候都会指向0地址。所以数据丢失的情况是,当还没写满一次1M空间中的512K时,门控信 拉高,此时地址会站停下来,但当门控信 拉低的时候,地址会指向0,所以出现了丢失的数据的情况。数据重复读取的情况是,当写满一次1M空间中的上面的512K,但还没写满下面的512K时,此时门控信 拉高,地址停下来,但当门控信 拉低的时候,地址指向0,但会去读取下面的512k字的数,所以会多读一些数据。致使上面的问题出现。

比较好的乒乓结构操作应该如下:

cap_cnt为地址线

cap_flag是门控第一次拉低的标志信

cap_flag_r是门控信

trigl和trigh为乒乓操作信

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年6月6日
下一篇 2015年6月6日

相关推荐