前言
项目需要,花2个月采用K7 FPGA+IMX4XX(索尼的感光芯片)+88X3310(美满的10G PHY)方案完成了一个760fps具有10G RJ45以太网UDP输出视频的高帧频相机研发,毕竟连1000fps都没有突破,所以称为高帧频还是有些心虚的。
一、感光芯片
采用的是索尼的高帧频感光芯片IMX42X,芯片有8通道差分输出,可配置为SLVS或SLVS-EC。由于担心SLVS-EC的差分摆幅接近K7 GTX的输入摆幅下限,怕出问题,再加上SLVS-EC的编码数据处理麻烦,就采用了SLVS,看了下最高速率,完全在K7的LVDS范围内。SLVS到k7的lvds可以通过电阻网络实现匹配,嫌麻烦,懒得去调试电阻,直接采用了德国的转换芯片MC20901,便宜又省事。
感光芯片的SLVS能够输出760fps的视频数据,掐指一算纯有效数据带宽就3Gbit/s,若加上编码,帧头,帧尾等零碎,千兆以太网干不了这个活啊,只好采用万兆以太网,不过的确有点浪费。
二、RJ45万兆以太网
万兆以太网的PHY芯片采用了88X3310,设计时没细看上百页的手册,结果埋下一颗大雷。它上电后需要首先加载firmware,然后才进行初始化,自协商等操作,由于硬件没有预留加载firmware的存储器和接口,可把我吓坏了!!还好,仔细读手册发现竟然可以通过MDIO也能将外部firmware加载到88X3310,只剩一个问题了:外部firmware存储到哪里去呢?天无绝人之路,FPGA的配置存储器足够大,那在存储配置文件后,可不可以将firmware存到这里呢?
一顿摸索测试,终于搞清了firmware的数据格式,严重怀疑官网的诚意竟然没有放firmware的格式文档。在vivado下通过TCL指令,将firmware转换为mcs后,将该文件烧写到了存储器中足够大的起始地址,起始地址选择上注意要为默认的FPGA配置文件留够空间。
搞定了mdio加载firmware,剩下的就是常规的FPGA内的逻辑设计了。
万兆以太网本来也考虑光纤来着,后觉得光口太大,光纤又不如网线方便可靠,办公室的6类网线就能实现万兆网的传输,这也是选择RJ45万兆网的重要原因。文章来源:https://www.toymoban.com/news/detail-641548.html
三、FPGA
FPGA的活最喜欢了,写着写着一不小心就全写完了,主要实现了:MDIO加载firmware,SPI配置IMX42X,8通道SLVS接收视频数据并实现通道对齐和串并转换,DDR3缓存数据,UDP发送数据,10G MAC设置与调用,RAUI接口配置。
FPGA逻辑搞定后,测试几天,相机搞定,通过办公室的常用6类网线连接到万兆网卡上,一切正常!文章来源地址https://www.toymoban.com/news/detail-641548.html
到了这里,关于高帧频CMOS相机研发方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!