idr帧 i帧 p帧_「博文连载」CY7C68013帧同步及抽帧写入功能设计

在USB_Camra_Demo工程中,一部分功能用来完成同步FIFO的配置功能。当然由于强大的8051内核,Bingo还利用68013完成了CMOS视频的帧同步设计,以及抽帧写入功能。

首先打开PA0中断复用功能,作为CMOS_VSYNC的写入,该中断上升沿触发中断,设置如下所示:

f8b6cbbd043025a86d67a8d4c0018b84.png

其次配置PD5作为输出IO,该引脚主要用于实现USB_Trigger,即触发写入使能信号,默认为0。FPGA通过此信号进行数据的输出。

14b8d347ad3b5ba48b15bd00526651be.png

接下来的设计的方案是这样子的:

(1)首先,由于没法保证CMOS视频流写入68013那一刻,68013的FIFO已经初始化、清空、启动完毕,因此需要在68013内实现帧同步机制。这个帧同步机制的实现方式,完全类似于CMOS_Capture_RGB565.v模块中,frame_sync_flag的实现方式。在此Bingo用68013内部51内核的中断来实现。

(2)帧同步图像数据高速发送机制。

由于在68013发送数据的时候,PC未必已经准备好;同时,为了防止错帧,数据不同步等现象,在68013中必须做帧同步。具体实现如下所示:

7e90b6df7b7ae739b2acb3cd0f13d329.png

每次收到STOP_CAPTURE命令式,对68013 FIFO进行清除,同时清除帧计数frame_cnt,与帧起始信号frame_sign。而当收到START_CAPTURE时,开始输出帧起始信号,此时进行帧同步,以及数据接受环节,具体代码实现如下所示:

a283f81fd3e26adfc257d9f606d9ad7d.png

当frame_cnt == 1时,开始数据接收信号(PD5)。而这第一帧,就是用于帧同步实现。从frame_cnt == 1开始,连续发送数据。Bingo的配置,RAW输出在30FPS下,实现数据的实时传输。由于68013标称能达到480Mbps,因此640*480*30FPS的帧率,绰绰有余。

68013的Keil配置与设计的介绍就到此为止,最后Keil全编译(F7),软件将会自动将hex文件转换为iic文件,由于在Option中我们已经这样设置:

beb8f61a11412a62c81f30675ed55066.png

在下载68013固件前,我们务必保证已经安装好68013的驱动,关于驱动的安装方式以及更多的细节,请参照第4章。

在正确安装68013的驱动后,我们使用“02_工具、驱动、USB软件”目录下的CyConsole.exe软件进行iic文件的下载,这在4.3节中关于USB固件更新已经详细的介绍过。这里简略介绍,打开Cypress后,Options→EZ-USB Interface→Lg EEPROM→选择USB_Camera_Demo.iic,如下所示:

603e5136bedace2f69050309bbacbc54.png

给VIP Mini开发板重新上电,此时固件便更新了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值