原创 良子USB2.0摄像头开发板1_硬件介绍

2015-2-26 21:57 2507 18 18 分类: MCU/ 嵌入式 文集: USB2.0摄像头开发板

      年前设计了一款基于USB2.0的摄像头开发板,样板已经测试完毕,现正在加工正式板(修正了样板的一些BUG),15年3月份会正式发布。配套的摄像头是APTINA的130万像素的MT9M001,其它高像素的摄像头配套在另外两款USB3.0摄像头开发板上。

(基于EP4CE30+2DDR2+USB3.0的摄像头开发板,可以参考地址:http://bbs.ednchina.com/BLOG_ARTICLE_3023101.HTM

基于SPARTAN6+2DDR2+USB3.0的摄像头开发板,可以参考地址:http://bbs.ednchina.com/BLOG_ARTICLE_3021533.HTM

       这款USB2.0的摄像头开发板,视频信号流分成两部分,一路视频经过USB上传到电脑,经过专用的上位机程序成像;另一路视频直接通过VGA接口,在液晶显示器上直接成像。电路板外观如下:

liangziusb_sensor_usb2.0_20150226.jpg

       开发板硬件上不是很复杂,主要是由FPGA+2SDRAM+USB2.0组成的,分述如下:

1、FPGA芯片,用的是EP4CE10,BGA封装,资源足够用来驱动摄像头。

2和3、SDRAM芯片,单片容量是32M字节,两片就是64M字节,示例程序只用到其中的一片,另外一片可以供用户做图像处理之用。

4、USB2.0芯片,56引脚的CY7C68013A,大量应用在我的其它USB开发板上。

5、视频DAC芯片,ANALOG公司的ADV7123,可以直接点亮液晶显示器。

6、EEPROM芯片,用来保存USB的固件程序。

7、电源芯片,提供电路板所用的3.3V、2.5V和1.2V电压。

8、电平偏移电路,这部分芯片是专门支持摄像头的,不管摄像头的数字信号电压是多大的,都可以调整到FPGA的3.3V。

9、4个LED,方便调试之用,如指示摄像头的场同步信号。

10、VGA接口,直接接液晶显示器。

11、USB2.0接口,直接接电脑。

12、并行摄像头接口,26针,含有一个电源和一个地,两个I2C引脚,其余全为数字信号,经过电平偏移电路连接到FPGA。

13、FPGA的JTAG接口,电路板上没有烧写EPCS存储器的AS接口。

 

       针对摄像头开发板,专门配套了相应的例程,用来测试电路板上的硬件模块,主要例程如下(每一个例程都会有一篇文章单独介绍):

1、跑马灯程序。

这个例程是用来测试4个LED的,LED由FPGA驱动,固件程序存储在EPCS16存储器中,开发板一上电,就会运行这个跑马灯程序。

2、测试EPCS16的程序。

良子USB2.0摄像头开发板上只有一个JTAG接口,并没有烧写EPCS的AS接口。这个例程示例如何使用JTAG接口来烧写EPCS16存储器。

3、烧写EEPROM例程。

USB芯片的固件程序是保存在EEPROM芯片中的。在测试时,可以每次上电手动将固件程序加载到CY7C68013A的内部SRAM中,并不需要烧写到EEPROM中;如果做成产品,则固件程序是应该烧写到EEPROM中去的。

4、8位彩条生成程序。

这个例程是测试视频DAC ADV7123的,FPGA生成8位数字彩条信号,再送给ADV7123,最后通过VGA接口驱动液晶显示器。

5、USB2.0测试程序。

主要测试CY7C68013A芯片,上位机会发送512字节数据到 CY7C68013芯片,CY7C68013A芯片再将收到的数据返回上位机。这个例程不需要FPGA参与。

6、FPGA及USB2.0测试程序。

这个例程需要FPGA参与,FPGA做主控,CY7C68013A芯片当做FIFO,工作在SLAVE FIFO模式。具体是FPGA产生递增的数据,将递增的数据传送给CY7C68013A芯片,再由CY7C68013A芯片传输到上位机。

7、SDRAM测试程序(TOP)。

开发板上有两片SDRAM,容量都是32M,方便用户缓存摄像头数据或者用来做图像处理。SDRAM需要由FPGA控制,FPGA产生递增的数据写进SDRAM,写满后再从SDRAM读出来,看数据是否一致。

8、SDRAM测试程序(BOTTOM)。

同上一个例程,测试另外一片SDRAM。

9、I2C测试程序。

摄像头芯片都有I2C接口,通过这个接口输入各种配置指令。I2C接口 可以由FPGA产生,也可以由CY7C68013A芯片产生。良子USB2.0摄像头开发板支持这两种模式(连接不同的电阻实现)。良子建议用户用CY7C68013A芯片的I2C外设来实现这个功能。CYPRESS也提供了配套的库函数,用户直接调用就可以,方便输入不同的控制指令。

10、130万像素摄像头MT9M001介绍。

良子USB2.0摄像头开发板配套的摄像头是MT9M001,其它的摄像头也可以使用这块开发板,但FPGA程序要稍做修改。我的另外两款基于USB3.0的摄像头开发板可以驱动任意一款摄像头芯片,FPGA程序是万能的,不需要做任何修改。

11、最后一个例程,驱动摄像头的例程。

这个例程比较复杂,需要FPGA、一片SDRAM、USB芯片全部参与。

12、上位机程序。

程序是用C#平台下的C++开发的,程序也不是很简单,但提供了源代码,用户可以自行分析,良子在这里也仅是简单说明。

     以上这些技术都应用在我的USB3.0的摄像头开发板上了,并且都经过了验证,提供给了几个厂家。当然,这些技术都是基本的,其它的如可编程时钟、可编程电压、开短路测试、电流测试、MIPI信号转换、HISPI信号转换、CYUSB3065等,都远比以上的技术复杂,有兴趣的用户可以查看我的别的文章。

 

(另公布一群号178338109,CYUSB3014开发专业讨论区)

 

 

淘宝店铺:http://liangziusb.taobao.com

良子.2015年    承接USB开发工程  

QQ:2687652834

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
18
关闭 站长推荐上一条 /3 下一条