wjt810907
驱动中牛
驱动中牛
  • 注册日期2004-08-18
  • 最后登录2011-04-16
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望409点
  • 贡献值1点
  • 好评度402点
  • 原创分2分
  • 专家分0分
阅读:1246回复:1

请教jinghuiren大虾slave fifo 问题

楼主#
更多 发布于:2007-02-13 10:10
  jinghuiren大虾:
   你的帖子“68013读取sensor图像时错帧问题产生的原因,分析及深入探讨!”中:
============================================================

二,读写数据操作方法1:使用VSYNC中断
1,初始化时将HREF(即SLWR信号)的控制IO口置高,这样数据可进入SLAVE FIFO并且填满4x512的缓冲区
2,上位机发送读取数据的VENDOR命令,固件接收到命令后关闭HREF的控制IO,即关闭SLWR信号的输入,禁止数据写入,给应答是命令返回,同时打开INT0中断,一旦有中断触发说明帧起始信号到来,在中断中打开打开控制HREF信号的IO,使SLWR信号获得输入。
3,读取数据命令返回后立刻发送读取2x512数据的READ命令,考虑到此时端点中有4x512的无用数据,因此先读出2个包的数据腾出部分缓冲区,允许新的数据写入。
4,在3返回后发送读取(2x512+640x480)数据(图像大小640*480)的READ命令,这样去掉前面的2x512数据,后面的640x480数据即为完整的一幅图像。

三,读写数据操作方法2:查询PA0
1,发送读取数据的VENDOR查询命令,固件接收到命令后关闭HREF信号的控制IO,同时使用while循环查询帧起始信号,一旦查到立刻让查询命令返回
2,1完成后立刻发送(4x512+640x480)数据的READ命令,那么去除前面的4x512的无效数据,后面的即为完整的一幅图像。
=============================================================

请问在二中为什么要先读读出2个包的数据腾出部分缓冲区,允许新的数据写入?

    在三中为什么去除前面的4x512的无效数据?

我对端点的多级缓冲和提交不是很理解,为什么有时要dump 或 skip?
mcu_boy
wjt810907
驱动中牛
驱动中牛
  • 注册日期2004-08-18
  • 最后登录2011-04-16
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望409点
  • 贡献值1点
  • 好评度402点
  • 原创分2分
  • 专家分0分
沙发#
发布于:2007-02-13 13:13
等待大虾现身
mcu_boy
游客

返回顶部