(5)一般情况下,一个自动测控系统内只有一个控制器发送各种控制信息,进行数据处理。若一个系统中包含多个控制器,则在某一时间内只能有一个控制器起作用,其余则必须处于空闲状态。
(6)系统组建容易,有较好的兼容性和灵活性。
6.6.1.2总线结构和接口信号
IEEE488标准的总线共使用16根信号线,按其功能可编排为三组独立的总线:双向数据总线(8根)、字节传送控制总线(3根)和接口管理总线(5根)。
系统中的每一设备按三种基本方式之一进行工作。这三种方式如下。
(1)“听者”方式:从数据总线上接收数据,在同一时刻可以有两个以上的听者在工作。
具有这种功能的设备有智能仪表、微型计算机、打印机和绘图仪等。
(2)“讲者”方式:向数据总线上发送数据,一个系统可以包括两个以上的讲者,但在每一时刻只能有一个讲者在工作。具有这种功能的设备有磁带机、磁盘驱动器、智能仪表和微型计算机等。
(3)“控制者(或控者)”方式:控制其他设备,例如对其他设备寻址或允许“讲者”使用总线。控制者通常由微型计算机担任,一个系统可以不止一个控制者,但每一时刻只能有一个控制者在起作用。
总线上的每一设备都有自己的地址,听地址和讲地址各有31个,根据需要可以选择一个讲者和一个或若干个听者。
IEEE488采用24脚插头座(包括8根地线和16根信号线),而IECIB采用25脚插头座(包括9根地线和16根信号线)。
(1)数据总线
数据总线由DIO1~DIO8组成,用于传递接口信息和器件信息,包括数据、地址和命令(听、讲方式的设定和其他控制信息)。由于在这一标准中没有地址总线,因此必须用其余两组信号线来区分这些信息的类型。
(2)字节传送控制总线
IEEE488数据总线上信息的交换,是按异步确认方式进行的(故允许连接不同传递速度的设备)。完成这一异步确认的3根线(DAV、NRFD、NDAC)就是所谓的字节传送控制总线。
DAV(Data Available)数据有效线:当DIO线上出现有效数据时,讲者置DAV线为低(负逻辑),示意听者从数据总线上接受数据。
NRFD(Not Ready for Date)未准备好接收数据线:只要被指定为听者的听者中有一个尚未准备好接收数据,NRFD线为低(听者之间的这根线用集电极开路线“或”形式)示意讲者暂不要发出信息。只有当所有听者都准备好时,此线才为高,示意讲者可以发出信息。
NDAC(NotDataAccept)未收到数据线:只要被指定为听者的听者中有一个尚未从数据总线上接收好数据,NDAC线为低,示意讲者暂不要撤掉数据总线上的信息。只有当所有听者(包括最慢听者)都已接收到信息时,此时才为高,示意讲者可以撤销在数据总线上的这一信息。
原始状态下,讲者置DAV线为高①,置听者NRFD和NDAC线为低②,然后讲者检查NRFD和NDAC。若均为低(不允许均为高),讲者把要发送的数据送到DIO1~DIO8上③。
当确认各听者都已作好接收数据的准备,即NRFD线为高⑤,且数据总线DIO上的数据稳定之后,讲者使DAV线变低⑥,告知听者在DIO线有有效数据。作为对DAV变低的回答,最快的听者把NRFD线拉低⑦,表示它因当前的字节而变忙,即开始接收数据。最早接收完数据的听者欲使NDAC变高(如时序虚线所示),但因其它听者尚未接收完,故NDAC线仍保持为低,只有当所有的听者接收到此字节后,NDAC线变高⑧。在讲者确认NDAC线为高后,升高DAV线⑨,并撤掉总线上的数据⑩。
听者确认DAC线为高之后,置NDAC为低⑩,至此完成了传送一个字节数据的三线联络的全过程。
(3)接口管理总线
接口管理总线(ATN、IFC、SRQ、REN和EOI)用来控制系统的有关状态。
ATN(Attention)注意线:此线由控制者使用,用来指明DIO线上信息的类型。当ATN=1时,说明此时在DIO线上的信息是由控制者发出的接口信息(如有关命令、设备地址等),这时其他设备都只能接收。当ATN=0时,在DIO线上的信息是由受命为讲者的设备发出的器件信息(如设备的控制命令、数据等),其他受命为听者的设备必须听,而未受命的设备则不予理睬。
IFC(Interface Clear)接口清除线:此线由控制者使用,其作用是将接口系统置为已知的初始状态(当IFC为低时),它可作为复位线。
REN(Remote Enable)远程允许线:此线由控制者使用,当REN线为低时,一切听者都处于远程控制状态,脱离由面板开关来控制设备的所谓“本地”状态(电源开关除外),即由外部通过接口总线来控制设备的功能。
SRQ(Service Request)服务请求线:用来指出某设备需要控制者服务。一旦器件要求服务,即可由此线向控制者发“SRQ”信息。控制者接受后,通过点名查询转入相应的服务程序。
EOI(Endor Identify)结束或识别线:此线既可被讲者用来指示多字节数据传送的结束,又可被控制者用来响应SRQ。两者的区别由ATN来决定。前者只EOI有效(低电平),而ATN无效(高电平);后者是EOI和ATN都有效,此时要求设备把它们的状态放在数据总线上,然后控制者再对此进行识别并服务。
6.6.1.3总线工作过程
在设备3和设备6正在传输数据时,设备8向总线发出SRQ信号。控者知道以后,再次使ATN有效,中止了设备3与设备6讲者与听者的资格,串行查询中断申请源。先使串行查询有效,再令设备11讲,控者听,设备11送出IDLE(空闲)状态,表明它不是中断源,控者再令设备8讲,设备8送出NEED SERVICE(需要服务)状态,则控者找到了中断申请源设备8,于是使串行查询无效。
设备8需要往设备11传送数据,于是控者指定设备8为讲者,指定设备11为听者,随之设备8与设备11间传送数据。数据传送完后,设备8使EIO有效,表明传送结束。控者得知后,再次接管总线……。
返回到被中断的设备3与设备6之间的数据传送过程。控者首先控制总线,撤销设备11的听者资格,再以串行查询方式询问设备8的状态。当得知设备8确实传送结束后,就使串行查询无效,再次接管总线,重新指定设备3与设备6的讲者与听者资格,放弃总线管理权。
这里要注意的是,在重新指定讲者与听者时,非听命令是必要的,非讲命令不是必要的。这是因为听者可以有多个,讲者只能有一个。在指定一个新的讲者时,隐含着老的讲者资格被取消。
6.6.2并行通信接口器件
为了简化GPIB接口设计,研制了许多可供选用的大规模集成电路接口芯片,例如Intel的8291、8292和8293,Motorola的MC68488、MC3447、MC3448,Texas的TM9914等。下面对Intel的接口器件作一简单的介绍。
8291(A)是一种微处理器控制的器件,用于将微处理器(例如8080/85、8086/88)接至并行标准总线,它可以完成IEEE488标准中除控者之外的全部接口功能。它能处理数据传递、挂钩(联络)协议、讲/听地址、器件清除、器件触发、服务请求、串行及并行点名等任务。
除非有字节到达(输入缓冲器满),或者必须将一个字节发送出去(输出缓冲器空),大部分时间里8291(A)不干扰微处理器工作。
8292是控者功能的微处理器接口芯片。它的内部包含了微处理器、RAM、可编程I/O和已编程的ROM,该ROM中的程序执行控者操作有关的各项任务,RAM用来存储各种状态信息及用作堆栈,I/O口用来提供总线的各种控制信号及辅助信息线,以便将8291(A)、8292和8293有机地沟通起来,完成控者功能。
8293是具有双向缓冲功能的总线收发器芯片,它与8291(A)讲者/听者或8291(A)/8292讲者/听者/控者组合形成两种IEEE488标准接口。第一种接口具有两个8293总线收发器。此外,8293还可用作具有9个接收器/驱动器的通用三态门或集电极开路的通用驱动器。8293可预置成四种工作模式之一:模式0是接收/驱动讲者/听者接口控制线的;模式1是接收/驱动讲者/听者/接口数据线的;模式2是接收/驱动讲者/听者/控者接口控制线的;模式3是接收/驱动讲者/听者/控者接口数据线的。
思考与练习题6
1.什么是同步通信和异步通信?它们各有什么优缺点?
2.异步通信协议的数据结构如何?起始位和停止位有何作用?
3.RS232C的逻辑1与逻辑0的电平范围是多少?如何实现与TTL电平的转换?
4.RS232C和RS485标准的接口信号线有哪几类?其中主要信号线是什么?
5.I2C总线、单总线、USB总线有什么异同?
6.为什么说HART协议是过渡性协议?
7.IEEE488标准的总线共分几类?其功能如何?