基于CPLD的GPIB控制器
及从一个状态变迁到另一个状态一切可能的途径。由于篇幅的限制,下面以受方挂钩接口功能 AH 功能为例, 来介绍功能模块的实现过程及原理。受方挂钩功能赋予器件保证正确地接收远地多线消息地能力。一个源方挂钩功能与一个或多个受方挂钩功能(分别含于各个器件中)的链锁挂钩序
列保证每个消息拜特的异步传递。受方挂钩功能可以延迟多线消息传递的开始或结束,直到 器件准备好继续参与传递过程为止。状态图如图 1:
图 1 AH 功能状态图
其状态转换的 VHDL 语言描述如下:
process(c_state,n_state)
begin AIDS='0';ANRS='0';AWNS='0';ACDS='0';ACRS='0'; case c_state is
when s1=>AIDS='1';NRFD='1';NDAC='1';
IF (ATN OR LACS OR LADS)='1' then n_state=s2;
else n_state=s1; end if;
when s2=>ANRS='1';NRFD='0';NDAC='0';
IF ((ATN OR rdy) and not tcs)= '1' then n_state=s3;
elsif DAV='1' then n_state=s5;
else n_state=s2; end if;
when s3=>ACRS='1';NRFD='1';NDAC='0'; IF DAV='1' then n_state=s4;
ELSIF (NOT ATN AND NOT rdy)='1' THEN n_state=s2;
else n_state=s3; end if;
when s4=>ACDS='1';NRFD='0';NDAC='0';
IF ((ATN AND T3) OR (NOT ATN AND NOT rdy))='1' THEN n_state=s5;
else n_state=s4; end if;
when s5=>AWNS='1';NRFD='0';NDAC='1'; IF DAV='0' then n_state=s2;
else n_state=s5; end if;
end case;
end process; 根据仪器的具体要求,由于大多数测试系统只要求被远控,并不要求控功能,而并查功
能在系统组建中属于可选项,很少用到,为了简化系统,设计中彻底去掉此两项功能。其他
功能模块包括:讲者功能(T)、听者功能(L)、源方挂钩功能(SH)、受方挂钩功能(AH)、 服务请求功能(SR)、、远控本控功能(RL)、设备触发功能(DT)和设备清除功能(DC)。
其设计原理与 AH 相同,在这里就不做详细论述。
2.4 辅助命令译码器与多线消息译码器
1.辅助命令译码器通过对辅助命令寄存器 F0 到 F4 位的译码来生成辅助命令。 辅助命令共有 stactic 和 pulse 两种,即静态和脉冲两种信号,静态命令用电平的高低来表示。而动态命令则通过一个周期的方波脉冲信号来产生,要求脉冲命令至少在写完辅助命令 寄存器后保持一个周期。我们通过 VHDL 语言来完成本模块的设计。
2.多线消息是处于相互排斥的编码集中但又公用一组信号线来传递的消息。在母线上,
每一时刻只能传递一条多线消息(一个消息拜特)。多线消息在远地消息译码单元内进行译码。 在这个译码单元,通过消息传递单元(DIO 线)来接收母线上的消息。消息译码单元仅在命令工作方式下(ATN=真)期间起作用。这样的接口消息可能是地址、通令、专令或副令之一。
在数据工作方式(ATN=假)中,数据线上携带器件消息,这时译码单元不起作用。在本 GPIB
控制器设计中,此模块还包含了地址比较器,这样可以得到内部状态机所需的与地址相关的 信号。用 VHDL 语言完成其设计,并例化成模块。
2.5 三态 I/O 通道
需要注意的是芯片数据通道中八条数据线与控制数据流向的八条控制线都是双向的,所以必须对 I/O 通道进行设置。实现双向总线,就需要使用可编程逻辑器件的双向口构造双向
三态总线。三态总线的实现,需要使用三态缓冲器,实现高、低电平和高阻三个状态。基于ALTERA 公司的 CPLD 系列器件的特点,我们在设计的时候,内部避免使用双向的三态总线, 将双向的信号分别直接引到外部。在外部设计双向三态总线。设计中采用图形方式输入,利用参数化模块库(LPM)实现。这种方法尤为清晰简便。如图所示:
图 2 三态总线的实现
在这里用 TE 信号来作为三态总线的方向控制信号。不考虑控功能,当本设备处于并行点 名状态,或者作为非命令数据的源接受方时,TE 信号为真,即 TE=PPAS+~SIDS。
2.6 GPIB 总线中的三线挂钩技术的实现
三线挂钩技术是本设计的关键,因为在总线传输中,所有的命令和数据的传送都要通过三线挂钩来实现。
GPIB 总线中的三线挂钩技术(DAV、NRFD、NDAC)可以自动适应测试系统中各种不 同器件的传输速率。源方作为讲者或者控者的器件,发 DAV 消息。受方作为听者的器件,发NRFD、NDAC 消息。三条握手线,DAV 线、NRFD 线和 NDAC 线,用于控制设备之间消息 字节的传送。发送消息方(源方)和接收消息方(受方)利用这 3 条握手线进行三线挂钩,以保证数据线上的消息(命令或数据)能准确无误地传送。
图 4 本设计三线挂钩仿真图
通过对系统的仿真,对比 NI 公司
- 基于GPIB总线的变频器自动测试系统设计(07-31)
- 基于PXI总线的某装备自动测试系统设计与实现(03-30)
- 基于1553B总线电缆网络自动测试系统设计及研究(08-31)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- 用CPLD实现FIR数字滤波器的设计(08-07)
- 基于DSP+CPLD的交流电机调速在水处理控制中的应用(11-27)