基于EZUSB FX2的数据采集系统USB接口设计

2020-05-13 09:53

基于EZUSB FX2的数据采集系统USB接口设计

摘 要: 以CYPRESS公司的EZ?USB FX2芯片为基础,对工业CT数据采集系统的USB接口设计所涉及的几个方面进行了详细的介绍。该设计中为了能提高数据传输的速度,EZ?USB芯片采用Slave FIFO接口方式,在此方式下,USB内核不参与数据的传输。CY7C68013A芯片内部包含有4 KB的可配置端点缓冲区,这是大容量数据传输端点,可配置成不需要8051固件参与就同外围电路完成高速数据传输端。CYPRESS公司提供的EZ?USB固件程序开发包中包含有固件程序的基本框架。在此介绍CY7C68013A芯片的结构和特点,分析EZ?USB FX2固件程序框架,并给出固件程序实例代码,描述固件代码装载方式,应用程序调用驱动程序的接口函数。采用EZ?USB芯片开发USB接口,大大降低开发难度,提高开发效率。

关键词: USB 2.0; EZ?USB; FX2; 固件程序 中图分类号: TN919?34; TP334.7 文献标识码: A 文章编号: 1004?373X(2015)04?0073?04 0 引 言

在锥束工业CT系统中,数据采集系统用来获取探测器输出信号,转换为数字信号上传给计算机做图像重建,同时下传计算机的控制命令,是工业CT的关键部件。通用串行

总线(Universal Serial Bus,USB)以其易插拔,无需配置,真正的即插即用等特性获得了广泛的认可,USB 2.0标准其高速传输模式的速率可达480 Mb/s,可以满足数据采集系统的速率要求。本文设计采用CYPRESS公司的EZ?USB FX2系列芯片作为数据采集系统与计算机间的USB接口芯片,具体型号为CY7C68013A[1?2]。数据采集卡整体结构如图1所示,本文只介绍USB接口软硬件设计部分。

USB接口设计主要涉及USB固件程序编写,装载,设备驱动程序的安装,应用程序与驱动程序间的接口等方面。CYPRESS公司提供包含有固件程序框架,通用的设备驱动程序的应用开发包,降低了USB接口的开发难度。下面就USB接口开发所涉及的几个方面进行详细介绍。 1 EZ?USB硬件介绍

CY7C68013A接口芯片是CYPRESS公司EZ?USB FX2系列芯片中的一种类型,它集成了USB2.0协议的微处理器,支持12 Mb/s的全速传输与480 Mb/s的高速传输,完全适用于USB2.0并向下兼容USB1.1。芯片内部集成增强型8051内核,指令周期为4个时钟周期,时钟频率可配置为12 MHz,24 MHz,48 MHz。集成智能SIE(串行引擎接口),由USB 2.0收发器与SIE完成USB协议的封包与解包功能[1]。CY7C68013A芯片内部包含3个固定的,64 B的端点缓冲区,分别是EP0,EP1IN,EP1OUT。EP0是默认的控制传输端点,

EP1IN和EP1OUT支持块传输,中断传输与同步传输,此三端点只能由8051内核访问。还有4 KB的可配置端点缓冲区,分别是EP2,EP4,EP6,EP8,它们是大容量宽带的数据传输端点,不需要8051固件参与就同外围电路完成高速的数据传输[3]。这4个端点可以灵活的配置容量,满足多种数据传输要求。

2 EZ?USB FX2 CY7C68013A固件程序设计

CY7C68013A固件程序是指在EZ?USB芯片内部RAM中运行的程序代码,固件程序是USB接口设计的核心部分。固件代码的作用就是控制芯片执行指定的设备功能,即处理上位机下传的各种USB设备请求,控制芯片与外围电路进行数据传输。EZ?USB芯片内部集成增强型8051内核,USB芯片的固件程序实际上就是单片机程序文件,可以采用汇编语言或C语言编写。CYPRESS公司提供的EZ?USB FX2固件程序开发包中提供了固件程序的基本框架,这为用户开发基于EZ?USB FX2芯片的USB设备提供了很大的方便。 2.1 固件框架

固件程序框架主要包括设备初始化,处理标准USB设备请求和USB挂起时的电源管理等。程序框架使用Keil C51编写,它是现成的直接可以编译为HEX文件的8051程序代码,使用者只需要改写USB描述表,在一些固定函数下添加功能代码,主要是EZ?USB芯片的初始化配置和实现USB

外设功能的代码。固件框架的流程图如图2所示[4]。 复位后固件先初始化一些全局变量,然后调用初始化函数TD_Init(),该函数初始化USB设备到没有配置的状态,并打开中断。循环1 s进行一次设备重枚举,直到端点0收到一SETUP包,然后进入while循环语句,开始TD_Poll任务处理函数。

依次执行下列过程:

(1) TD_Poll() 用户任务调度函数;

(2) 如果发现USB设备请求,则分析该请求并执行; (3) 如果收到USB挂起信号,则调用TD_Suspend()挂起函数,内核挂起,直到出现USB远程唤醒信号,调用TD_Resume(),内核唤醒,从新进入while循环。固件框架包含的文件如表1所示。 表1 固件框架文件列表 2.2 固件代码编写

USB固件程序主要的功能有2个:一是PC机的Windows系统能够检测与识别相应设备;二是数据的上传与下传。Cypress公司为EZ?USB FX2系列芯片提供的固件程序框架极大的简化了固件开发。一般的固件开发只需要修改用户调度函数文件Periph.c与USB描述符列表文件Dscr.a51,这两个文件在Keil C51编程器中都可打开。Periph.c文件中只需要修改TD_Init()与TD_Poll()函数。在本设计中为了能

进行高速的数据传输,EZ?USB芯片采用Slave FIFO接口方式。此方式下,USB内核不参与数据的传输,所以TD_Poll()函数不用写代码,设置成空函数就可以了。这样USB固件程序的开发主要任务就是改写TD_Init()函数与USB描述符列表文件Dscr.a51。在本设计中配置端点6传输方向为IN,传输方式为块传输,缓冲大小设置为1 024 B,深度为2级,作用是上传采集的数据。配置端点2传输方向为OUT,传输方式为块传输,缓冲大小设置为1 024 B,深度为2级,作用是下传FPGA的命令配置参数。固件程序的编译使用Keil μVision2集成编译环境,集成编译环境中包括有C51编译器,A51汇编器等工具与调试器。代码中还需包含头文件FX2.h与Fx2regs.h,库文件Ezusb.lib。对修改后的代码进行编译与链接,最后生成HEX文件。HEX文件可直接下载到EZ?USB中运行。HEX文件也可根据需要通过CYPRESS公司提供的EZ?USB FX2固件开发包中的Hex2bit.exe应用工具生成IIC文件,IIC文件用于烧写到EEPROM中。


基于EZUSB FX2的数据采集系统USB接口设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:商业银行模拟经营沙盘实验报告—房地产D企业 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: