当前位置:首页 > 智能硬件 > 智能硬件
[导读]充分利用USB的独特优点以及GPIB在测试中的独有优势,将USB和GPIB结合起来,设计一种以单片机USB-GPIB为框架的数据传输系统。其中USB部分采用Cypress公司基于2.0协议的CY68013控制芯片,GPIB协议部分采用NI公司的TMS9914控制芯片。详细介绍USB和GPIB的优点,以及控制器部分的工作原理和硬件设计思想。

引 言
    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 硬件设计
2. 1供电方式

    设计中采用了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电路
    系统上电后,USB内核首先检查I2C总线上是否有EEPROM。如果有,并且其第一位数据是0xC2,则EZUSB FX2将EEPROM中的内容全部拷贝到内部RAM中,然后重列举,并开始执行RAM中的固件程序。由于CY68013芯片已经将I2C总线集成,设计转化为对I2C总线上挂接的EEPROM的设计;由于采用的是24LC64的EEPROM,整个串行I2C总线电路实现的原理如图4所示。


3 固件程序设计
    本设计针对的主芯片CY7C68013是以软件为框架的IC。CY7C68013芯片的固件开发所使用的集成开发环境为KEIL μVision2,编程语言为德国Keil公司的C51。把编辑、编译、汇编、连接、调试等各阶段都集成在一个程序内,先用编辑器编写程序,接着调用编译器进行编译、连接后直接运行,因此可以缩短开发周期。
    固件程序负责处理PC机发来的各种请求,主要负责设备与外围电路进行数据传输。完成一个完整的事务传输,除了开发环境Keil包括的文件,还需要Fw.c(固件架构原是程序代码)、Dscr.a51(USB描述符表)、Ezusb.lib(EZUSB函数库对象程序代码)、Periph.c(用户函数,也就是设计中实现GPIB功能要编写的函数)以及相关的中断跳转函数USBjmpTB.OBJ。功能函数里的TD_Poll()负责完成用户指定的功能,应该包括一个执行用户外围功能的状态机。从这个函数返回的话,高优先级的任务应该首先执行。
    void TD_Poll(void)
    if(!(EP2468STAT&bmEP2EMPTY)){
    if(!(EP2468STAT&bmEP6FULL))//判断端点2的FIFO缓冲区是否满
    {APTRlH=MSB(&EP2FIFOBUF);//自动指针1
    APTRlL=LSB(&EP2FIFOBUF):
    AUTOPTRH2=MSB(&EP6FIFOBUF);//自动指针2
    AUTOPTRL2=LSB(&EP6FIFOBUF);
    count=(EP2BCH<<8)+EP2BCL;
    for(i=0x0000;l<count;i++){
    EXTAUTODAT2=EXTAUTODAT1;//将端点2中断的数据复制到端点6
    }
    EP6BCH=EP2BCH;//设置端点6的字节数
    SYNCDELAY;
    EP6BCL=EP2BCL,
    SYNCDELAY:
    EP2BCL=0x80;} //设置端点6的字节数
    }

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭