对USB接口进行固件设计提升视频传输质量方案

时间:2018-08-23

  在如今这个依靠数据传输的时代,图像的传输算得上的领域中的发展难点,由于视频传输的信息量较大,并且在传输过程中经常会遇到线路抖动、图像失真等问题,因此图像总线的接口质量非常重要。本文将为大家介绍一种基于USB接口的同步视频输出的系统设计方案固件设计部分。

  固件设计

  固件是指固化在USB控制器中MCU的程序,它的主要功能是负责接收与处理主机发给设备的各种请求,并向主机返回设备的状态信息。FX2系列的固件代码可以存储到主机中,设备上电复位以后通过USB电缆手动到FX2,这种方法易于升级,在系统的开发过程中很方便;固件代码可以固化到片外存储器EEPROM或者是ROM,设备上电以后,自动固件到片内RAM,这两种方法可以将系统固件做成产品,无须每次手动。

  本系统中固件分两个部分,一个是数据通道的控制,一个是主机控制命令的应答。数据通道的控制主要是GPIF控制数据传输管道完成。而控制管道EP0则负责主机和USB设备端的去掉数据部分的通信:更改管道和端点配置信息,设置软件中断,更改GPIF视频图像传输的大小,获取重要寄存器的状态等等。

  固件的程序框图如图1。其中设备请求部分即为控制管道信息,是由单片机负责,而数据通道主要是通过GPIF操作,隔离了单片机的参与,提高数据传输速度。

  固件代码编写使用Keil  uVision,GPIF编程应用CYPRESS公司的GPIF工具(GPIFTOOL)。GPIF可以控制FX2端点FIFO,也可以产生六个控制输出端(CTL0~CTL5)和九根地址线输出,并且可以接收六个外部输入信号,并对这些信号进行逻辑编程控制,从而控制FX2与外部接口的读写时序。实际操作可以利用GPIFTOOL绘制波形描述符,转为C文件,配置各个相关的寄存器,控制SRAM接口读写逻辑。

  SRAM硬件接口的时序图如下:

  依据上面的波形图,只需要在S1结束的时候跳转S0状态即可。将绘制的波形图应用GPIF  TOOL转换为gpif.c文件,加入Project中,连接编译即可得到固件。

  在固件编程中电源管理部分,由于FX2在首次枚举电流大约是75mA,FX2设备的识别则至少需要100mA,小于500mA,因此在固件中要加进电源检测,如果小于100mA,必须向主机申请更大的电流,直到主机正确识别FX2。

  以上就是基于USB接口的同步视频输出系统设计方案固件部分。对USB口进行适当的改造能够的使传输的图像保持清晰,对于USB口感兴趣的朋友可以收藏本文进行仔细研究。

上一篇:什么是云电源方案
下一篇:基于CPLD的专用键盘接口芯片的方案设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料