首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

GPIB控制器软件的IP核设计

GPIB控制器软件的IP核设计

随着网络技术与通信技术的高速发展,测试仪器和测试技术发生了革命性变化,“网络就是仪器”确切地概括了测试仪器间的网络化发展趋势。组建网络化测试系统不仅能实现资源共享,而且组建系统方便,还可提高测试系统的复杂度,拓宽其应用范围。笔者采用CPLD 芯片实现GPIB 控制器的IP 核设计完成芯片NAT 9914 的产权自主化,从而大大降低了开发成本。
1 GPIB 控制器方案设计
通用接口总线( General Purpose Interface Bus,GPIB) 使自动化测试仪器的互联有了统一的标准,极大地推动了自动测试技术的发展。GPIB 总线具有并行总线传送速度快、有效数据速率高、驱动能力强、通信距离可达20m、抗干扰能力良好及通用性特点,总线上最多可挂接15 台设备并且传输速度可以达到8Mbit /s,因此有良好的应用前景[1],其自动测试系统组建如图1 所示。


图1 GPIB 控制器组建的自动测试系统框图


GPIB 控制器IP 核设计采用模块化思想,主要模块包括状态机模块、数据通路模块和译码电路模块。对状态机模块的设计包括8 个小模块( 如源方挂钩及受方挂钩等) ,采用VHDL 语言对各个小模块进行编程实现,最后调用各子模块并用原理图的方式进行状态机顶层模块设计,并在Synplify 以及QuartusⅡ平台进行分析和仿真。对数据通路的设计也采用同样的方式,先对各个子模块进行设计,然后进行整体设计。最后调用状态机顶层模块、数据通路顶层模块及多线消息译码电路模块等进行GPIB 控制器IP 核的顶层设计。完成整个IPCore设计后,通过JTAG 下载方式将Core 下载到选定的DE2 专用开发套件CPLD 芯片进行通信设置验证,成功后再搭建硬件,从而得到实体化GPIB 控制器。
2 GPIB 控制器IP 核设计的实现
2. 1 接口控制电路的工作原理
GPIB 总线是一种24 芯的并行无源总线,由8根地线和16 根信号线组成。16 根信号线为8 根数据线( DIO1 ~ DIO8) 、3 根握手线( DAV、NRFD、NDAC) 和5 根管理线( ATN、REN、IFC、EOI、SRQ) 。数据传输采用位并行、字节串行的双向异步传输方式。需要注意的是: GPIB 采用的是负逻辑,即低电平( 不大于0. 8V) 为逻辑1,高电平( 不小于2. 0V)为逻辑0[2]。
GPIB 总线的基本原理是将控者作为服务器,利用编程并通过GPIB 总线实现对各个仪器的控制,同时各个仪器也通过操作GPIB 控制芯片来实现与服务器的数据传输,其输出到GPIB 母线上的信号符合IEEE488 标准,从而达到自动控制和测试的目的。
2. 2 模块设计
GPIB 控制器的设计主要包括3 个模块: 接口功能模块、多线消息译码器和数据通路模块。
2. 2. 1 与GPIB 母线通信的接口功能模块在GPIB 系统中,把器件与GPIB 总线的一种交互作用定义成一种接口功能,实质上是一组逻辑功能,实现IEEE488 通信协议。该功能模块是本设计的重点,在接口功能子集的选择上也有一定的要求,主要实现各子接口功能,即: 源方挂钩SH、讲者T、听者L、服务请求SRQ 及远控本控RL 等。各接口模块功能采用同步MOORE 状态机( 只与当前信号有关,与输入信号无关) 实现。在各子接口模块功能实现的基础上,对其进行顶层状态机设计,即:调用各子模块,用原理图方式对其进行互联式设计,并用VHDL 语言完成对状态机的描述,实现的逻辑功能如图2 所示。其中,输入信号有: GPIB 母线信号( ATN、DAV、IFC、REN、NDAC、NRFD、EOI、SRQ) ,多线消息( MTA、MLA、OTA、LLO、GTL、GET、DCL、SDC、UNL、SPD、SPE) ,辅助寄存器产生的内部消息及本地消息( swrst、lon、rsv、ton) 等。这些输入的信号均通过译码电路产生,输出信号对接口功能的状态进行控制。


图2 与GPIB 母线通信功能逻辑


下面以源方挂钩SH 为例说明其逻辑的实现,逻辑图如图3 所示。


图3 SH 功能实现的逻辑电路


主要代码为:
IF RESET = '1'OR( NOT ATN AND NOT( LACS
OR LADS) ) = '1'THEN C_ST < = ST1; RFD <
= '1'; DAC < = '1';
AIDS < = ' 1'; ANRS < = ' 0'; ACRS < = ' 0';
AWNS < = '0'; ACDS < = '0';
ELSIF CLK'EVENT AND CLK = '0' THEN
CASE C_ST IS
WHEN ST1 = > IF ATN = '1'OR LACS = '1'OR
LADS = '1'THEN C_ST < = ST2; RFD < = '0';
DAC < = '0'; AIDS < = '0'; ANRS < = '1'; …
ELSE C_ST < = ST1; RFD < = '1'; DAC < = '1';
AIDS < = '0'; …WHEN …. ELSIF DAV = '1' THEN C_ST < = ST4;
RFD < = '0'; …
ELSE C_ST < = ST2; RFD < = '0'; DAC < = '0'; …
…不同种状态定义…
2. 2. 2 数据通路模块设计
其模块实现微处理器端到GPIB 接口功能端的数据,对控制器内部寄存器进行读、写操作。
2. 2. 3 多线消息译码器电路
译码电路的目的是产生逻辑功能信号,对控者发送的远地消息和本地消息译码,实现各接口功能的控制。
2. 3 程序设计
程序设计主要完成接口初始化、主控PC 向仪器发送消息以及接收消息并对数据分析处理等工作。母线上各种动作均是通过PC 机向NAT9914内部寄存器写入或读取数据,使接口实现相应的功能变化。
2. 4 实验结果
通过对整体系统搭建,完成仪器与总线间的数据传输。以AH 与L 功能配合接收GPIB 总线的数据为例分析实验结果。AH 与L 功能接收数据实验结果波形如图4 所示。


图4 受方接收数据波形


由图4 可以看出,在信号WRITE 及地址RS[2. . 0]= 010( ADR 在寄存器中的地址) 的作用下,仪器通过INDATA[7. . 0]数据端口向地址寄存器ADR 内写入该仪器在GPIB 总线上的地址11H。在第4 个时钟下降沿器件收到ATN 信号,表明AH 功能从AIDS 状态进入ANRS 状态; 第5 个时钟下降沿仍然有ATN 信号,表明AH 功能从ANRS 状态进入ACRS 状态,同时发出RFD 信号,告诉控制者已经准备好接收GPIB 接口命令; 在6个时钟下降沿,检测到总线传输的DAV 信号,表明AH 功能从ACRS 状态进入ACDS 状态。随后,系统控制者通过DIO 线发送地址命令31H,通过多线消息译码器输出MLA 信号,在第7 个时钟下降沿,L 功能在MLA&ACDS 的作用下从LIDS 进入LADS状态,表明仪器已经受命于听者,接收接口消息结束后,便会产生一个T 信号; 在第8 个时钟下降沿,GPIB 控制器检测到T 信号,表明AH 功能进入AWNS 状态,并发出DAC 信号,告诉控制者接口命令接受完毕; 在第9 个时钟下降沿,系统控制者撤销DAV 信号和ATN 信号,表明AH 功能进入ANRS 状态,至此一个三线挂钩的过程已经完成。在ATN 为0 的作用下,L 功能进入LACS 状态,此时仪器正式进入听者状态。其他传输过程与听者接收数据过程类似,在此不再赘述。
3 结束语
实验证明,由GPIB 控制器构成的自动测试系统具有自动采集数据、速度快及效率高等特点,其核心部件采用IP 核设计具有可移植性,可开发周期短、成本低,改变了传统仪器手工操作及单台使用等缺点,并为计算机与仪器仪表相结合的自动测试系统向智能化、标准化发展提供了有力的媒介。
返回列表