阅读:1247回复:1
请教jinghuiren大虾slave fifo 问题
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? |
|
|
沙发#
发布于:2007-02-13 13:13
等待大虾现身
|
|
|