微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于USB接口的同步视频输出系统设计方案

基于USB接口的同步视频输出系统设计方案

时间:11-14 来源:互联网 点击:

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

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

  

  固件的程序框图如上所示。其中设备请求部分即为控制管道信息,是由单片机负责,而数据通道主要是通过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.

  3.用户应用程序和USB设备驱动程序设计

  USB设备驱动程序是连接USB外设、操作系统以及用户应用程序的桥梁,是USB设备连接到计算机系统的软件接口。

  FX2 系列CYPRESS公司提供了一个通用的USB驱动程序ezusb.sys,可以实现USB外设和应用程序之间的一般的通信和控制功能,开发者如果需要实现系统特有的通信和控制功能,必须在此基础上加以修改,比如,通用USB驱动程序每一次块传输数据大小必须小于64KB,而一般一幅图像数据的大小大于或者等于64KB,如果要求每次传输一幅图像到USB外设,则必须在通用USB驱动程序上加以改动。

  此外还需要在驱动程序中添加下载固件部分,在USB外设上电以后,可以自动下载固件到FX2的RAM中,FX2二次枚举,主机正确识别USB外设。

  用户的应用程序是操作系统和用户的接口,它以不同的参数调用驱动程序的函

  数,控制USB外设,实现用户定义系统的各种功能:读写视频图像,利用控制管道的用户定义命令对FX2进行监控以及重新下载固件等等。

  应用程序的程序框图如下:

  

  4.结束语

  针对视频图像同步输出实际需要,本系统采用USB 2.0的高速协议,CYPRESS公司的FX2 USB 控制器,使USB设备接口硬件简化,引入视频显示部分的场同步信号触发数据流,视频图像的显示结果标准平滑。本系统视频图像的传输速度严格依据PAL制为50场/秒,GPIF的接口速度为24MB/s.此外本系统可扩展性强,方便实用,稍加改动,可以将任何数据从主机高速导入外设,目前可以达到最大速度为23MB/s;如果加入视频采集部分电路,就可成为一个实时采集视频系统。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top