简易USB接口卡的设计和实现
时间:04-21
来源:微计算机信息
点击:
目前比较常用的方法是在PC机或工控机内安装ISA或PCI数据采集卡(如A/D卡及422,485卡).但这些数据采集卡存在安装麻烦,受计算机插槽数量、地址、中断资源的限制,可扩展性差等缺点特别是在一些电磁干扰较强的工业现场。随着USB总线的发展和应用以及USB接口芯片出现,现在USB接口卡应该是一个即实用又方便的选择了。这项设计实现的是一个动态采集和存储系统的计算机通信接口卡,基本上可分为CY7C68013 USB接口芯片、CPLD芯片扩展控制部分、软件的实现部分。
一、 整体结构图
USB设备包含一些向主机软件提供一系列USB 设备的特征和能力的信息的设备描述符,用来配置设备和定位USB 设备驱动程序。这些信息确保了主机以正确的方式访问设备。通常,一个设备有一个或多个配置( Conf iguration) 来控制其行为。配置是接口( InteRFace) 的集合,接口指出软件应该如何访问硬件。接口又是端点( endpoint) 的集合,每一个与USB交换数据的硬件就为端点,它是作为通信管道的一个终点. 图1-1就是整个动态采集和存储系统中的USB接口连接部分的基本框。在计算机上的应用程序通过调用USB驱动从接口中读取数据,读到输入缓冲区中。计算机通过接口采数存数并发出控制信号然后由驱动程序通过接口将其转换为电压信号,而接口卡则是将其有限的控制信号进行扩展而且转换为USB设备可以正常接收的电压信号,使被控制部分执行相应的操作由于CY7C68013 USB接口芯片厂商提供了基本的固件程序所以用户只需编相应的应用程序和简单的驱动程序就可以实现一般用户要实现的基本功能,如果有特殊的需要只需稍加修改。所以CY7C68013 USB接口芯片是一款使用起来快速方便又简单的USB接口芯片。
二、芯片
EZ2USB FX2是一款集成USB2. 0的微处理器,它集成了USB 2. 0收发器、SIE (串行接口引擎) 、增强的8051微控制器和可编程的外围接口(GP IF) 。FX2这种独创性结构可使数据传输率达到56Mbp s,即USB 2. 0允许的最大带宽。在FX2中,智能SIE可以硬件处理许多USB 1. 1和USB 2. 0协议,从而减少了开发时间和确保了USB 的兼容性。GP IF ( General Pro2grammable Interface)和主/从端点F IFO ( 8 位或16 位数据总线)为ATA,UTOP IA, EPP, PCMCIA,DSP等提供了简单和无缝连接接口。EZ2USB FX2 CY7C68013内部的微处理器是一个增强的8051内核,内部的RAM可用于存储程序和数据,使EZ2USB具有软配置特性。USB主机(如PC机)通过USB总线将8051程序代码和设备描述符装载到RAM中后, EZ2USB使用已下载的固件程序中定义的外设特性进行重枚举。内置的8051 处理器,相对标准的8051处理器有以下改进:
(1)独立的地址总线和数据总线,总线周期为四个时钟;
(2)双数据指针和自动指针可用于存储器之间的快速数据传输,提高数据传输效率;
(3)通用可编程接口(GP IF) ,可以直接连接到并口( 8位和16位) ,可编程波形描述符和配置寄存器;支持多个Ready输入和Control输出;
(4)矢量USB中断,独立的数据缓冲区供Setup 包和Data包控制传输;
(5)四个F IFO,可与ASIC和DSP等无缝连接;
(6)扩展的中断系统支持13 个中断源,并支持F IFO 和GP IF自动矢量中断;
(7)一个I2C接口;两个UART接口, 40个可配置I/O端口;www.51kaifa.com
(8)三个16 位内置定时/计数器、512 字节内部寄存器RAM;
(9)外部时钟可达48MHz;
(10)芯片内部集成有8KB、外部RAM, 8051 内核使用MOVX指令访问此RAM区。
三、基本电路图的设计结构
图3-1基本的原理图结构
其中的主要芯片是CY7C68013,起基本的USB接口通信功能,EPM7128SQ是一款CPLD主要用来通过编程扩展控制引脚的,剩下的芯片都是起电压转换给CY7C68013和CPLD芯片供电用的或一些起稳压和调理作用的。一般USB接口的通信可以通过驱动程序将其设为高速或低速形式,只要在接口卡上给出一个电压判断信号进行确认是高速还是低速的就可以在驱动里加以判断自动进行速度的调整。
四、程序
程序的大体结构如图4-1所示:
固件程序是芯片厂家提供的在此就不做详细介绍了。
本项设计的驱动程序是WDM模型的驱动程序及应用程序是 用VC++编的,采用动态库与驱动程序进行通信的。应用程序是通过API函数和驱动程序进行通讯的。本驱动程序的主要功能是控制USB设备上的读写、擦除和一些检查等功能。
如下所示的基本驱动程序读写控制函数和相应的驱动体系结构:
1) 初始化例程DriverEntry ()www.51kaifa.com
设备驱动程序与应用程序不同,它没有main () 或WinMain () 函数,而是有一个名为DriverEnt ry ()的入口函数,它通常完成一些初始化工作。当设备驱动程序被加载时,操作系统调用这个入口。在该例程中,需要初始化Dispatch (分派) 例程入口函数。
2) 创建设备例程AddDevice ()
大多数的PDO 都是在PnP 管理器调用该程序入口点时被创建的。插入新设备后,系统启动时,总线枚举器会发现总线上的所有设备,会自动寻找并安装设备的驱动程序,并由驱动程序中的处理PnP功能模块自动处理AddDevice () 例程及其他PnP 消息。此例程使用IoCreateDevice () 函数创建设备对象,再使用IoRegisterDevice InteRFace () 函数将设备组成为一个特定的设备接口,然后使用IoAttachDe2viceToDeviceStack () 函数关联设备栈。
一、 整体结构图
USB设备包含一些向主机软件提供一系列USB 设备的特征和能力的信息的设备描述符,用来配置设备和定位USB 设备驱动程序。这些信息确保了主机以正确的方式访问设备。通常,一个设备有一个或多个配置( Conf iguration) 来控制其行为。配置是接口( InteRFace) 的集合,接口指出软件应该如何访问硬件。接口又是端点( endpoint) 的集合,每一个与USB交换数据的硬件就为端点,它是作为通信管道的一个终点. 图1-1就是整个动态采集和存储系统中的USB接口连接部分的基本框。在计算机上的应用程序通过调用USB驱动从接口中读取数据,读到输入缓冲区中。计算机通过接口采数存数并发出控制信号然后由驱动程序通过接口将其转换为电压信号,而接口卡则是将其有限的控制信号进行扩展而且转换为USB设备可以正常接收的电压信号,使被控制部分执行相应的操作由于CY7C68013 USB接口芯片厂商提供了基本的固件程序所以用户只需编相应的应用程序和简单的驱动程序就可以实现一般用户要实现的基本功能,如果有特殊的需要只需稍加修改。所以CY7C68013 USB接口芯片是一款使用起来快速方便又简单的USB接口芯片。
二、芯片
EZ2USB FX2是一款集成USB2. 0的微处理器,它集成了USB 2. 0收发器、SIE (串行接口引擎) 、增强的8051微控制器和可编程的外围接口(GP IF) 。FX2这种独创性结构可使数据传输率达到56Mbp s,即USB 2. 0允许的最大带宽。在FX2中,智能SIE可以硬件处理许多USB 1. 1和USB 2. 0协议,从而减少了开发时间和确保了USB 的兼容性。GP IF ( General Pro2grammable Interface)和主/从端点F IFO ( 8 位或16 位数据总线)为ATA,UTOP IA, EPP, PCMCIA,DSP等提供了简单和无缝连接接口。EZ2USB FX2 CY7C68013内部的微处理器是一个增强的8051内核,内部的RAM可用于存储程序和数据,使EZ2USB具有软配置特性。USB主机(如PC机)通过USB总线将8051程序代码和设备描述符装载到RAM中后, EZ2USB使用已下载的固件程序中定义的外设特性进行重枚举。内置的8051 处理器,相对标准的8051处理器有以下改进:
(1)独立的地址总线和数据总线,总线周期为四个时钟;
(2)双数据指针和自动指针可用于存储器之间的快速数据传输,提高数据传输效率;
(3)通用可编程接口(GP IF) ,可以直接连接到并口( 8位和16位) ,可编程波形描述符和配置寄存器;支持多个Ready输入和Control输出;
(4)矢量USB中断,独立的数据缓冲区供Setup 包和Data包控制传输;
(5)四个F IFO,可与ASIC和DSP等无缝连接;
(6)扩展的中断系统支持13 个中断源,并支持F IFO 和GP IF自动矢量中断;
(7)一个I2C接口;两个UART接口, 40个可配置I/O端口;www.51kaifa.com
(8)三个16 位内置定时/计数器、512 字节内部寄存器RAM;
(9)外部时钟可达48MHz;
(10)芯片内部集成有8KB、外部RAM, 8051 内核使用MOVX指令访问此RAM区。
三、基本电路图的设计结构
图3-1基本的原理图结构
其中的主要芯片是CY7C68013,起基本的USB接口通信功能,EPM7128SQ是一款CPLD主要用来通过编程扩展控制引脚的,剩下的芯片都是起电压转换给CY7C68013和CPLD芯片供电用的或一些起稳压和调理作用的。一般USB接口的通信可以通过驱动程序将其设为高速或低速形式,只要在接口卡上给出一个电压判断信号进行确认是高速还是低速的就可以在驱动里加以判断自动进行速度的调整。
四、程序
程序的大体结构如图4-1所示:
固件程序是芯片厂家提供的在此就不做详细介绍了。
本项设计的驱动程序是WDM模型的驱动程序及应用程序是 用VC++编的,采用动态库与驱动程序进行通信的。应用程序是通过API函数和驱动程序进行通讯的。本驱动程序的主要功能是控制USB设备上的读写、擦除和一些检查等功能。
如下所示的基本驱动程序读写控制函数和相应的驱动体系结构:
1) 初始化例程DriverEntry ()www.51kaifa.com
设备驱动程序与应用程序不同,它没有main () 或WinMain () 函数,而是有一个名为DriverEnt ry ()的入口函数,它通常完成一些初始化工作。当设备驱动程序被加载时,操作系统调用这个入口。在该例程中,需要初始化Dispatch (分派) 例程入口函数。
2) 创建设备例程AddDevice ()
大多数的PDO 都是在PnP 管理器调用该程序入口点时被创建的。插入新设备后,系统启动时,总线枚举器会发现总线上的所有设备,会自动寻找并安装设备的驱动程序,并由驱动程序中的处理PnP功能模块自动处理AddDevice () 例程及其他PnP 消息。此例程使用IoCreateDevice () 函数创建设备对象,再使用IoRegisterDevice InteRFace () 函数将设备组成为一个特定的设备接口,然后使用IoAttachDe2viceToDeviceStack () 函数关联设备栈。
- 实现WUSB设备控制器的设计考虑因素(09-12)
- 基于USB2.0的高速无线数传接收设备的数据接收存储方法(09-09)
- 四种短距离无线监控解决方案的性能对比(09-16)
- Wibree:一个可供选择的新无线联网技术(11-07)
- TI 单芯片手机多媒体电话解决方案(12-01)
- 蓝牙技术硬件实现模式分析(01-11)