韩金霞 杨景常 杜焕勇 黄亚琴
(西华大学电气信息学院,四川 成都 610039)
随着计算机技术和自动测试系统的发展,人们对程控仪器的测试速度和准确度的要求也日益提高。同时,由于程控仪器SCPI(standard commands for programmable instrument)具有“横向兼容性”(不同产品类型之间的兼容性)和“纵向兼容性”(即产品各代之间的兼容性),并且为了便于仪器在不同总线的自动测试系统中的应用,本文提出了基于仪器接口平台的USB接口模块设计,提高了程控仪器的通用性。
在自动测试系统中,由控制机向可程控仪器发出SCPI指令(一连串的ASCII码),可程控仪器的接口部分经过语法分析,将SCPI指令转换为仪器部分可识别的控制代码。接口部分的语法分析步骤一般分为接收字符串消息、词法分析、语法分析、中间代码生成、优化和目标代码生成[1]。自动测试系统中的仪器接口正是以这样的工作原理将控制机和程控仪器相结合,实现测试工作的自动化。USB接口模块的设计也是基于这样的一种理念,将PC机发送来的ASCII码字符串表示的SCPI消息转变为简单的二进制代码串。利用USB接口模块不仅可以实现仪器语言标准化,而且还能提高仪器对远程控制的响应速度。
USB接口的具体实现是首先通过上位控制机,将建立在IEEE 488.2(程控仪器消息交换协议)基础上的SCPI(一连串的ASCII码)发送到USB的接收缓冲区;然后通过USB中央处理单元,将SCPI消息解析为简单的二进制代码串;最后将此二进制代码命令发送到程控仪器并执行相应的操作。
整个系统的设计主要包括接口电路和LCD显示模块等部分,硬件电路整体框图如图1所示。
图1 硬件电路整体框图Fig.1 The entire block diagram of hardware circuit
上位机虚拟仪器将SCPI程控命令发送到USB接口芯片缓冲区,接口电路中单片机从USB接口芯片缓冲区读取数据,并对数据进行解析翻译,实现对程控仪器的控制。电路中设计的LCD1602用于调试过程中对SCPI指令的显示。
系统采用增强型8051内核的单片机STC89C516RD+作为中央处理芯片。STC89C516RD+是一款低功耗芯片,它具有64 kB的Flash程序存储器和8 kB的片内Flash存储区(可存放ISP引导程序与用户数据)。芯片中1280 B的RAM(256 B的内部RAM和1 kB的外部RAM)解决了在编程时遇到的RAM资源缺乏的问题,支持在系统编程(ISP)和在应用编程(IAP)两种方法,实现在线编程。
USB主机控制芯片采用南京沁恒电子公司生产的CH375A[2],它是一个 USB总线通用接口芯片,支持USB-Host主机方式和USB-Device/Slave设备方式。在本地端,CH375A具有8位数据总线和读/写、片选控制线及中断输出,可以方便地挂接到单片机、DSP、MCU和MPU等控制器的系统总线上。在USB设备方式下,CH375A是一个全速USB设备接口,兼容USB2.0且即插即用[3];外围元器件只需要具备晶体和电容,这样就降低了设备的成本,缩小了设备的体积。同时,CH375A还提供一对主端点和一对辅助端点,支持控制、批量以及中断传输,具有内置固件模式和外部固件模式。
USB接口原理如图2所示。
图2 USB接口原理图Fig.2 The principle of USB interface
图2中:CH375A的数据线D0~D7连接到微处理器的数据线D0~D7;CH375A的引脚分别连接到单片机的STC89C516RD+写选通引脚和读选通引脚线确定了CH375A的地址;A0也作为地址的一部分。
当A0为1时,表明写入CH375的为命令;当A0为0时,表明写入或者从CH375A读出的为数据。由于低8位地址线与CH375的操作地址无关,因此,没有使用地址锁存器74LS373。高8位地址线中除了A0和CS,其他的地址线也与操作地址无关[4]。据此,CH375A的写命令地址为0xfe00,读或者写数据的地址为0xfc00。中断请求输出,低电平有效,其直接连接到单片机的中断输入引脚当CH375A接收到来自USB总线的数据,需要微处理器进行处理时,则通过引脚向微处理器请求中断。
本设计的软件部分主要分为两个部分:①上位机软件设计,实现程控命令的发送和数据的回显;②单片机应用程序设计,实现对命令、数据的读写和SCPI解析技术的具体实现。
本设计的上位机程序采用NI-VISA与USB设备进行通信[5]。
VISA是用来与各种仪器总线进行通信的高级应用编程接口(API),它不受平台、总线和环境的限制。通用串行总线(USB)是基于信息的通信总线。这表示PC机与USB设备通过发送指令和数据进行通信。
每个USB设备有各自的指令集,可以使用NI-VISA的读写功能向仪器发送这些指令。当与USB进行通信时,NI-VISA从3.0版开始支持USB通信,它有两种VISA函数,可以控制USB INSTR与USB RAW这两类USB设备。本设计中的USB设备属于USB RAW设备。
使用NI-VISA控制USB设备时,需要分以下三个步骤配置USB设备:① 使用Driver Development Wizar(驱动程序开发向导)创建INF文档;②安装INF文档并安装使用INF文档的USB设备;③使用NI-VISA interactive Control(NI-VISA互动控制工具)对设备进行测试。
配置完成后,打开Measurement&Automation Explore(MAX),点击USB设备,属性窗口显示设备制造商ID、型号代码以及设备序列号等相关信息。
USB设备配置完成后,设计用NI-VISA与USB设备进行通信。由于本设备是USB RAW类,所以要使用具体的CH375A的通信协议。NI-VISA与USB通信的程序框图如图3所示。
图3 通信程序框图Fig.3 The block diagram of communication program
图3中:Bulk Out Buffer和空字符串为从界面上输入的标准SCPI程控命令。本设计中的CH375A选用的是内置固件模式,且USB RAW设备通信采用端点2以批量传输的方式接收上位机操作命令,同时,端点2以批量传输的方式给上位机发回仪器测试数据。“130”是对应十六进制数“0082”的十进制数,它表示端点2批量输入;而端点数“2”对应十六进制数“0010”的十进制数,表示端点2批量发送。
单片机应用程序是在Keil C51开发环境下通过C语言编程实现的,它主要包括USB程序设计和SCPI解析模块设计两部分。
3.2.1 USB 程序设计
对CH375A的操作主要通过写命令、写数据和读出数据来完成。每次操作时,首先向CH375A中写入命令码,然后写入输入数据,接着读出输出数据。每次CH375A收到来自主控制器的数据或者发送数据完毕时,都会复位管脚,微处理器可以通过查询的方式监测管脚的电平,然后进行处理。本设计中,通过软件程序设定CH375A为内置固件模式,当接到上位PC机发送的SCPI程控命令时,CH375A锁定当前的USB缓冲区,并将脚设置为低电平[6],向单片机请求中断,单片机进入中断服务程序,获得中断状态;然后单片机根据获得的中断状态处理相应的程序。
3.2.2 SCPI解析模块的设计
SCPI命令主要包括SCPI仪器公用命令和SCPI仪器特定命令。SCPI的语法很多,由于我们的主要目的是提高程控效率,故在解析时只解析程控题头,而不解析程控数据。总结SCPI仪器公用命令和特定命令,并以多维数组的形式存储,其中仪器公用命令只有一层,而仪器特定命令总共七层,将每一层存储在不同的数组中,将命令所在数组的行数通过LCD输出显示,然后将翻译后的二进制命令送入仪器执行相应的动作。
SCPI的主程序流程图如图4所示[7]。
图4 主程序流程图Fig.4 Flowchart of the main program
该接口在实验室设计的晶振与继电器精度测试仪上进行的测试结果如表1所示。根据设计,测试仪执行了相应的操作,证明了此接口的实用性。
表1 不同SCPI命令解析结果Tab.1 Parsing results of different SCPI commands
本文提出的基于仪器接口平台的USB接口模块设计方案使程控仪器能方便地接入自动测试系统,从而实现了接口的通用性,并缩减了开发周期。同时,本设计采用的SCPI解析技术使程控仪器器件数据和命令得到了标准化,具有高可靠性和高执行效率。
[1]Wheeler H.SCPI:the next step in the evolution of ATE systems,electronics test[M].New York:Industry Publisher,1990:12 -15.
[2]南京沁恒电子有限公司.USB总线接口芯片CH375[DB/OL].[2005 - 05 - 10].http:∥www.Winchiphead.com/product.ch-375detail.html.
[3]张银海.基于CH375的USB移动存储接口设计[J].电子元器件应用,2008(10):22 -24.
[4]钟富昭.8051单片机典型模块设计与应用[M].北京:人民邮电出版社,2007:24-39.
[5]张凯,周陬,郭栋.LabVIEW虚拟仪器工程设计与开发[M].北京:国防工业出版社,2004:244-252.
[6]黄惟公,邓成中,王燕.单片机原理与应用技术[M].西安:西安电子科技大学出版社,2007:163-183.
[7]马忠梅,籍顺心,马凯,等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2007:94-110.