基于onsemi安森美半导体公司的python500、python1300系列图像传感器电路设计

   设计了基于ONSEMI(安森美半导体)公司的PYTHON300/PYTHON500/PYTHON1300系列图像传感器的成像电路。   

     最近设计了ONSemi安森美半导体公司的PYTHON系列图像传感器的成像电路,sensor用的是NOIP1FN1300A,以这个探测器为例,其他的几个型号应用方式是一样的。

     这颗sensor的主要特点就是高输出帧率,高灵敏度。如果用全速输出,主频72MHz,LVDS数据率将达到720MHz,对电路设计和FPGA器件及程序、时序设计等等,都有一定的难度。

首先设计了硬件电路,FPGA用cyclone4(EP4CE55),ddr2存储器(MT47H64M16),flash(128M存储),外加USB2.0(CY7C68013A)图像传输。sensor采用4通道LVDS输出,主频降低到36MHz。程序里面,从sensor输出的数据写入到DDR2的过程中,只例化了一个FIFO,而没有做乒乓操作,所以,在行有效期间,像素数据写入fifo,在行消隐期间,数据存入DDR2。为了保证数据能够正常写入到DDR,这就需要额外的增加行消隐的时间。为了配合DDR的写入和USB2.0图像传输,行间(即行消隐时间)手动设置了较大的延时,造成帧率下降,根据实测,目前含USB传输的条件下,帧率达到64fps(1280*1024)。如果将人为增设的延时取消掉,实际帧率可达122fps(1280*1024)。



硬件上设计了三块电路板,一个USB接口板,一个FPGA核心处理板,一个CMOS焦面电路板。FPGA板与接口板之间采用50pin板对板连接器对插。sensor焦面板与FPGA板之间,使用90度板对板高速LVDS连接器对插。

 编写FPGA程序代码:

sensor对上电时序有严格的要求,在datasheet上有单独章节,对上、下电时序做说明。最优的操作是遵循datasheet上的标准操作流程。但是如果条件受限,也不必太考虑上下电时序。我实际测试过,正常同时上下电,sensor也是可以正常工作的。

程序上首先是sensor的上电时序配置->sensor输出串并转换->行场同步信号译码->图像拼接->图像储存DDR->图像读出->USB2.0图像传输->上位机VC demo程序显示。

  说实话,这颗sensor不是太好用,资料有限,手里仅限于一个datasheet。按照手册要求,编译好程序后,下载调试,经过努力,终于将图像调出。测试环境比较简陋,用个镜头贴在sensor前面,不可避免的会出现漏光,干扰成像效果。

  全分辨率图像调试出来之后,又进行了开窗口操作,将sensor设置为640*512分辨率进行输出:

sensor内部有8组寄存器对应8个窗口的设置,也就是说,在前期初始化配置时,就可以先预置好8个窗口。当然,程序也可以设计成在线开窗口的方式,只不过程序里面需要设置窗口寄存器,另外做一些帧是否输出完毕的判断逻辑即可。

    目前有些功能还待进一步实现,待续中.......

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值