打印本文 关闭窗口 | ||
USB-GPIB控制器的硬件电路设计来源于瑞达科技网 | ||
作者:佚名 文章来源:网络 点击数 更新时间:2011/1/25 文章录入:瑞达 责任编辑:瑞达科技 | ||
|
||
USB是PC体系中一套全新的工业标准,通用可编程接口GPIB(General Programmable Interface BUS),是Cy-press公司在其EZ-USB FX以及FX2系列单片机里设计的一个可由用户编程的接口,具有快速、灵活等特点;可使用多种协议完成与外围器件的无缝连接,如EIDE/ATAPI、IEEE1284、Utopia等。对其可以根据需要进行编程,且运行中不需要CPU的干预,仅通过一些CPU标志和中断与增强型8051内核通信。作为自动化测试仪器的互联标准历史悠久,使用广泛,组建费用低廉且操作方便,特别是连接台式机的时候尤其显得灵活高效。在很多对测试速度要求不高以及对测试仪器体积不作要求的情况下,GPIB总线也有相当的优势。因此,将USB所具有的独特优点引入到以GPIB为标准的自动测试系统中,设计基于USB总线的GPIB控制器,对提高便携式和无外接插槽的自动测试系统整体性能有很大促进作用。 1 系统总体设计方案 硬件电路的设计分为硬件和固件两部分。硬件要实现PC机与USB芯片的通信以及USB与GPIB接口逻辑之间的通信;同样,固件也要满足USB接口和GPIB逻辑协议。设计思路就是USB接口与PC机实现通信,并且提供给GPIB的信号线,最终建立两者之间的通信,硬件总体框图如图1所示。
USB主芯片选取了Cypress公司CY7C68013控制芯片,芯片结构如图2所示。CY7C68013集成了以下特性:USB2.0收发器、SIE(串行接口引擎)和增强型8051微处理器;8051程序从内部RAM开始运行;4个可编程BULK/INTERRUPT/ISOCH-RONOUS端点;8位 16位外部数据接口;通用可编程接口(GPIF);3.3V电源系统;矢量USB中断;独立的数据缓冲区供SETUP和DATA包控制传输;集成I2C控制器,频率可达100或400 kHz;4个FIFO,可与ASIC和DSP等无缝连接;专门的FIF0和GPIF自动矢量中断。 美国NI公司推出的TMS9914控制芯片是一款高性能CMOS的GPIB接口专用芯片,满足IEEE488协议的要求;工作在TMS9914模式下,能够将GPIB母线上的信号按照GPIB协议进行解码和译码转换为用户可用的格式,同时将用户发过来控制GPIB的信号进行处理,按照协议要求发送到GPIB母线上;内部有16个寄存器,分成两组,一组是只写寄存器,有8个;另一组是只读寄存器,有8个。TMS9914内部各个寄存器的状态决定或标志着芯片及GPIB的工作状态。在GPIB接口设计中,只有通过编程对寄存器进行正确编排,才能实现对GPIB的各种操作。
2 硬件设计 设计中采用了USB总线供电方式。USB接口从PC机能获取的电压为5V,而USB控制芯片CY7C68013的工作电压为3.3V,GPIB控制芯片TMS9914的工作电压为5V,所以本设计中选用了Maxim公司的MAX882进行电压变换。从PC经USB电缆到B端口来的5V电源,经去耦合和滤波电路后直接提供给系统中要求在5V正常工作的芯片,如TMS9914、75LS160、75LSl62等;而经MAX882分压后得到3.3V则提供给USB控制芯片CY7C68013以及LVC245。这样就可保证整个控制器正常工作。电路中的SN7524,是专门为USB接口电路设计的,抑制USB数据线的瞬时电气噪声,如图3所示。 2.2 外接EEPROM电路
3 固件程序设计 固件程序负责处理PC机发来的各种请求,主要负责设备与外围电路进行数据传输。完成一个完整的事务传输,除了开发环境Keil包括的文件,还需要Fw.c(固件架构原是程序代码)、Dscr.a51(USB描述符表)、Ezusb.lib(EZUSB函数库对象程序代码)、Periph.c(用户函数,也就是设计中实现GPIB功能要编写的函数)以及相关的中断跳转函数USBjmpTB.OBJ。功能函数里的TD_Poll()负责完成用户指定的功能,应该包括一个执行用户外围功能的状态机。从这个函数返回的话,高优先级的任务应该首先执行。 void TD_Poll(void) SYNCDELAY; EP6BCL=EP2BCL, SYNCDELAY: EP2BCL=0x80;} //设置端点6的字节数 } |
||
打印本文 关闭窗口 |