基于USB 2.0数据采集系统的程序设计
1 引言
在工业生产和科学技术研究的各行业中, 常利用PC或工控机对各种数据进行采集, 如压力、频率、液位、温度等。常用的采集方式是通过数据采集板卡, 其不仅安装麻烦, 易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制, 不可能挂接很多设备。而通用串行总线( Universa l Ser ia l Bus, USB )的出现, 很好地解决了以上这些冲突, 可实现低成本、高可靠性、多点的数据采集。USB 2. 0 是一种计算机外设连接规范, 除了USB1. 1中规定的1. 5Mb it / s和12Mb it / s两个模式以外, 还增加了480Mbit / s( 60MB / s)这一 高速 模式, 将USB的应用范围得到进一步扩大。
本文介绍的基于USB 2. 0的两路力信号采集传输系统, 可用于销盘式摩擦实验机, 测量材料的摩擦系数。
2 硬件设计
2. 1 系统方案
外部传感器的摩擦力信号和压力信号分别通过两片8位AD转换器转换为数字信号, 由USB 芯片直接传输至计算机中处理, 并使用软件演示两路力之间的关系, 计算出材料的摩擦系数。主机同时负责数据传输的启动与停止, USB 控制器控制信号的采集并读取到内部缓冲区。
2. 2 控制器芯片选择USB 控制器采用56 脚SSOP 封装的CY7C68013, 属于Cypresss 公司FX2 系列。
Cypresss EZFX2将USB 2. 0的收发器、SIE、增强型8051 和一个可编程逻辑接口集成在一个芯片上。在EZUSB FX2 上, 灵活的SIE 处理大部分USB1. 1和USB 2. 0硬件协议, 释放了用于特殊应用功能的嵌入式微控制器。通用可编程接口( GPIF)和主控/伺服端点FIFO ( 8..或16..位数据总线) 提供了其与常用接口, 如: ATA, UTOPA, EPP,PCMC IA, 以及大多数DSP /处理器的简单无缝连接。其有如下特点:
内核: 增强型8051的时钟频率高达48M; 每个周期4个时钟; 运行来自内部RAM的程序。
四个可编程BULK / INTERRUPT / ISOCHRONOUS端点: 缓冲区可选择为双缓冲区, 三缓冲区或四缓冲区; 外部数据接口可为8或16位。
GPIF: GPIF对于FX2的FIFO来说是一个内部主机, 可编程状态机是它的核心。对于56脚封装,它可以产生三个‘控制?’( CTL [ 2: 0] ) 和九个‘地址’ (GPIFADR [ 8: 0] )输出, 能接收两个外部和两个内部‘准备’ ( RDY [ 1: 0] )输入。控制状态机由四个用户定义的!波形描述‘控制’。内部RAM 中的波形描述符描述每个GPIF信号的行为。初始化阶段, 波形描述符由FX2固件下载到GPIF寄存器中,通过GPIF接口在传输操作的代码执行全过程使用它。控制输出信号( CTL[ 1: 0] )通常用做闸门控制(使能信号线)、读/写信号线等。CTLx波形边沿可通过编程进行传输, 速率可达每个IFCLK时钟一次( IFCLK 运行于48MH z)。RDY[ 1: 0]由GPIF取样,而且能迫使一个传输处于等待, 继续, 或重复状态,直到它们处于一个特殊的状态。
2. 3 硬件电路图
根据所选控制器和具体条件, 设计硬件电路如图2所示。
采用从主机下载固件程序的方法, SCL, SDA引脚通过两个2. 2k 的电阻接3. 3V 电源, RESET引脚有滞后作用, 低电平有效; 内部PLL 在V cc 到达3. 3V后约200s后稳定。典型电路是外接一个RC电路(R = 100K, C = 0. 1F)提供RESET:信号;软件部分采用GPIF Master模式, 16 位数据总线,将两路8位ADC 数据线直接连到GPIF数据总线上: FD[ 0: 7]接摩擦力数据信号FDATA [ 0: 8] ,FD[ 8 : 15] 接压力数据信号PDATA [ 0 : 7 ]。
CTL0, CTL1分别连接ADC 的READ 和WRITE 引脚, 用于控制其工作时序。REY0连接ADC 的INTR, 用于判断是否开始读取数据, 并由此判断何时改变GPIF状态。
芯片电源使用USB 总线电源, 采用MAX IM 公司的MAX882 芯片, 把5. 25V 的Vbus转换为3.3V, 如图3所示。
对于USB 2. 0系统, D + 和D - 信号线上的差分特性阻抗会严重影响到信号眼图、EOP、带宽、信号抖动和干扰的大小。根据U SB 2. 0规范的要求,差分线对的特性阻抗要求控制在90 ? 10% 以内,使D+ 和D - 布线长度在1英寸以内, 匹配误差在50m il以内。
3 软件设计
USB接口程序设计包括三部分: 固件程序设计、硬件驱动程序设计、高级应用程序设计。
3. 1 固件( firmw are)设计
设备固件程序的主要功能是控制EZUSB FX2接收并处理USB 驱动程序的请求、控制芯片中应用程序控制指令的接收、控制ADC 中的数据读入等。该设计的固件程序除能够使内置的GPIF在没有CPU 的干涉下通过四个端点FIFO ( EP2、EP4、EP6、EP8)中的两个处理数据传输外, 还有配置端点、通过控制端点0 来响应主机请求、控制和监测GPIF的活动等固定工作。
GPIF的波形描述符通过FX2的固件保存在波形寄存器中。FX2可以保持多达4个波形描述符,均可采用4种传输方
USB2 0数据采集系统程序设 相关文章:
- 利用FPGA实现外设通信接口之: 典型实例-USB 2.0接口的设计与实现(06-05)
- 利用FPGA实现外设通信接口之:利用FPGA实现USB 2.0通信接口(06-05)
- 基于总线的嵌入式高速图像通信系统设计(12-21)
- USB2.0接口全接触(12-14)
- 如何轻松地将USB 2.0变为USB Type-C(12-13)
- USB设备插在物理机USB2.0接口上无法正常映射的解决方法(12-13)