版权归原作者所有,如有侵权,请联系我们

[科普中国]-计算机控制信号

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

背景

控制系统一般检测物理量的变化或开关、按钮的状态,再根据一定的控制逻辑,输出相应的控制信号,驱动执行机构。为了提高控制的精度,实际上这个过程是不断循环进行的,即采用所谓的闭环反馈控制方式。例如,一个采用液压缸的位置控制系统,需要不断检测液压缸的位置或行程,根据PID控制逻辑,输出控制信号控制电磁阀或伺服阀的开口度,调节液压缸运动的速度。液压缸运动速度与位置偏差有关,偏差越小,速度越低,最终将液压缸位置控制在指定的精度范围内。只要液压缸的位置发生变化,输出控制信号也会变化。

控制对象的物理参数类型较多,如位置、温度、速度、压力等,必须通过相应的传感器将这些物理量的变化转换成电信号的变化,才能传送给计算机系统进行检测。控制精度的高低与传感器的检测精度密切相关。

对于特定的计算机系统而言,电信号的输入类型和范围基本是固定的,为了规范化统一化,往往对传感器输出的各类信号还需要进行调理处理,转换成计算机系统能够输入的电信号。因而大多数传感器输出的信号经过二次仪表(放大、调理、转换),再传送给计算机。

检测的电信号由于收到外部干扰的影响,往往不能真实反映物理量的变化,为此,需要对检测的信号进行必要的处理,去伪存真,从而提高控制精度。

控制信号控制信号是计算机系统实施各类动态操作时生成的信号,多数控制信号由CPU生成,但其他功能部件也可能生成部分控制信号,以配合CPU完成较复杂的操作。在操作寄存器时,CPU产生的控制信号只在CPU内部作用于所操作的寄存器,不会出现在控制总线上;在操作外部存储单元时,包括内存单元和端口,CPU产生的控制信号会出现在控制总线上。在这里,我们将最基本、最重要、最常见的控制信号做一个介绍。1

时钟信号时钟信号是一种周期性的方波信号,它是最基本的控制信号,也是产生时序过程的必要条件。图中给出了时钟信号的一般形式,横坐标轴为时间轴,纵坐标轴为信号的幅度轴。时钟信号的周期称为时钟周期,其频率称为时钟频率,一个时钟周期通常被称为一个节拍。

时钟信号一般由晶体震荡片产生的周期信号经过整形、分频后得到,一个计算机系统内,生成的时钟信号只有一个,所有功能部件都会通过控制总线接收到这个信号,并以此信号为时间基准,进行有条不紊的工作。这就好像一个有周密规划的公司一样,在启动一个项目后,对每位工作人员都安排了工作任务,但这些工作任务是有先后的,后面的任务需要等待前面的任务完成后才能进行,闪此,每位工作人员都要按照给定的时间限制来完成任务。那么,按照什么时间来作为标准呢?在公司里,采用的就是当地时间,例如在中国,我们采用北京时间;类似地,在计算机系统模型中,时间基准就是时钟信号,在启动一个时序过程后,各功能部件按照约定好的节拍完成各自的操作,这就保证了计算机系统能够有条不紊地工作。

读/写信号读信号和写信号是两种控制信号,但它们通常搭配在一起使用,因此将它们放在一起介绍。当CPU需要读取对某一存储单元中的数据时,它会产生读信号,并施加在相应的功能部件上;当CPU需要向某一存储单元保存数据时,它会产生写信号,并施加在相应的功能部件上。对于8086/8088 CPU芯片,针对寄存器、内存单元、端口的读写信号是不同的控制信号,但读/写信号在不同的系统中定义也有区别。总的来说,读信号针对存储单元的读操作,写信号针对存储单元的写操作,这一特征对任何计算机系统都适用。

片选信号片选信号是一种特殊的控制信号,它足CPU针对外部存储单元进行读写操作时产生的,但它是由地址总线的高位地址生成的,而非来自于控制总线的信号。物理地址中的高位地址用于区分不同的内存芯片或设备接口。这种区分在硬件上就是通过片选信号来实现的,片选信号是依靠地址译码器生成的,其生成原理如图所示。

在图中,若地址译码器的输入为卯位输入,则输出为2n位,图中以3位输入为例。假设地址译码器的输人为3位高位地址,那么这3位高位地址可以理解为不同内存芯片或不同设备接口的编号,地址译码器将高位地址译码后,选通编号对应的输出线路,而其余输出线路则处于未选通状态。

例如,图中,输入编号“010”,则选通第2号输出线路,使之输出“1”,而其余输出线路均输出“0”。这里输出线路编号是从第0号开始的,右侧为低编号输出。这些输出线路上的信号便是片选信号,它们分别连接到不同内存芯片或不同设备接口的片选端,只有当相应片选信号有效后,内存芯片或设备接口才会接受CPU的读写操作。由于在任意时刻,只有一个内存芯片或设备接口被选中,因此,在任意时刻,只有一个内存芯片或设备接口能接受CPU的读写操作。中断请求/中断响应信号

中断请求与中断响应信号是一对控制信号,要完成完整的中断过程,这两个信号缺一不可。在现代计算机系统中,很多外部设备都属于中断型设备。最典型的中断型设备为键盘、鼠标等低速输入设备。在没有键盘、鼠标输入的情况下,CPU不会访问它们的设备接口,而是执行系统程序或应用程序,仅当发生输入事件时,设备接口才会通过控制总线向CPU发送中断请求信号。注意,多数控制信号都是由CPU通过控制总线发出,其他功能部件只是接收相应的控制信号,但中断请求信号是例外的情况,它由中断型设备发出,由CPU接收。实质上,中断请求信号应属于外部设备的状态信号,而控制总线的全称也应当是控制/状态总线,包括CPU发送给其他功能部件的控制信号和其他功能部件向CPU发送的状态信号。如果没有在CPU内部设置中断屏蔽,那么CPU在执行完当前指令后,会暂停当前程序的执行,并向控制总线发出中断响应信号,提出中断请求的设备接口接收到中断响应信号后,会向数据总线发送中断类型号,CPU则从数据总线接收中断类型号,并以此在内存中定位中断服务程序,执行中断服务程序调用,从而完成与设备接口的数据交换。除输入设备外,输出设备也叮能采用中断方式与CPU交互,并且,除数据交换可以采用中断方式外,设备出现故障需要CPU处理时也可以向CPU提出中断请求。

时序过程时序过程是指计算机系统中按照既定时间顺序、分步骤完成的动态操作过程。指令的执行过程属于时序过程,并且也是计算机系统中主要的时序过程‘,但并不是全部,例如中断过程就不属于指令执行的范畴。结合前面介绍的基本控制信号,在计算机系统模型中给出一种最基本的时序过程,应由此建立对时序过程理解的基础,并在将来学习指令系统时.有意识地分析指令执行时可能的时序过程,以加深对指令执行的理解。

读/写操作是指令执行或其他时序过程中经常执行的,它本身也构成一个基本的时序过程。我们下面将分析CPU读取内存单元的时序过程。注意,这里给出的时序过程不针对任何一种具体的CPU芯片,只是一种概念性的说明。我们应当在此时序过程的分析中有意识地体会其顺序性、步骤性。系统设计把读操作分解为若干个步骤,每个步骤都能在一个节拍的时间内完成执行,下面分节拍列出各个步骤的操作。

(1)第一个节拍:CPU将内存单元的物理地址发送到地址总线。

(2)第二个节拍:地址总线上信号稳定,等待片选信号的产生;CPU将读控制信号发送到控制总线。

(3)第三个节拍:控制总线上的读信号已稳定,片选信号已产生并稳定;相应内存芯片被选通,低位地址信号进入内存芯片,内存芯片执行针对指定内存单元的读操作。

(4)第四个节拍:内存芯片读操作执行完毕,内存单元中的数据传送到数据总线。

(5)第五个节拍:数据总线上的信号稳定,CPU将数据总线上的数据写入到寄存器。

从上面的例子中,我们应当认识到,任何时序过程所消耗的时间都是节拍的整数倍。对于写操作的时序过程,可以自己根据对读操作时序过程的理解来构造。在介绍中断请求/中断响应信号时,已对中断过程大致作了说明,读者可以进一步将其分割为以节拍为单位的步骤,构造出中断时序过程。

机器指令系统机器指令的概念在前面的章节中已经多次提到,对其概念,这里再重新归纳一次。机器指令实质上是一种二进制编码,不同编码对应不同的指令功能。机器指令除了指明操作类型外,还包含了对操作数的寻址方式或操作数本身等信息。通常,一条完整的机器指令分为操作码字段、寻址方式字段、立即数字段和位移量宁段几个部分,各字段占据的二进制位数因指令而异,如图所示。在具体韵机器指令中,除操作码字段是每种指令都必须具有的字段外,可能并不会包含上述所有的字段。

操作码字段用于标识指令功能,例如,加法指令、减法指令、逻辑与指令等等。寻址方式用于表示指令所使用的操作数使用何种寻址方式,例如,寄存器寻址、存储器寻址等等。立即数字段用于提供操作数本身,位移量字段用于提供存储单元的地址分量。机器指令格式在不同的计算机系统中各不相同,同类指令执行的时序过程在不同系统中也各不相同。某一计算机系统的机器指令全集称为该计算机系统的机器指令系统。机器指令的执行分为读取指令、解释指令、执行指令几个步骤,这几个步骤都是通过时序过程来完成的,执行指令仅是指令执行过程的其中一个组成部分。

汇编指令实质上是机器指令的助记版本,由于使用英文助记符,它比机器指令更加容易记忆。但是值得注意的是,大多数汇编指令的格式都是从机器指令格式演化而来的,而不是随意定义的,而机器指令格式又是与CPU中指令译码器的设计对应起来的。

常见的控制信号时钟用来同步各种操作。

复位初始化所有部件。

总线请求表示部件需要获得的使用权。

总线允许表示需要获得总线使用权的部件已获得了使用权。

中断请求表示部件提出中断请求。

中断响应表示中断请求已被接收。

存储器写将数据总线上的数据写至存储器的指定地址单元内。

存储器读将指定存储单元中的数据读到数据总线上。

I/O读从指定的I/O端口将数据读到数据总线上。

I/O写将数据总线上的数据输出到指定的I/O端口内。

传输响应表示数据已被接收,或已将数据送至数据总线上。

控制信号及其实现机电控制系统的主要控制对象是电动机、液压缸等执行机构,其控制形式多样,控制系统需要针对具体的控制对象输出相应控制信号。

控制信号的类型根据机电系统控制对象的不同,控制信号可以分为四大类:模拟信号、数字信号、开关信号和脉冲信号。2

模拟信号所谓模拟量信号,是指采用不同的电信号大小表示控制信号的大小,如电动机控制中,用一10V~+10V的电压表示一1000~+1000r/min的转速,电压信号的每一个数值都代表不同的转速输出。模拟量信号的取值是连续的。

计算机系统内部采用数字方式存储、传输数据,如果控制对象需要模拟量的控制信号,则必须经过模拟量到数字量的转换,经D/A转换后,才可以输出给控制对象。

模拟量一般采用电压信号,其电压范围如下:一10V~+10V;一5V~+5V;0V~+10V;0V~+5V。

电压信号随着控制线路的延长和工作环境的影响,容易衰减或受到干扰,这就限制了控制计算机与控制对象之间的距离,电压形式的模拟信号只能在较短的距离进行控制。为了克服这个问题,往往还采用电流形式的模拟量控制信号,可以把控制距离延长到100~200m。

电流形式的模拟量范围如下:0~20mA;4~20mA。其中,以4~20mA电流形式使用最为广泛。

数字信号数字信号实际上一种离散信号。在一根信号线上,以不同的电压范围表示0和l两种状态。多根信号线0、1的组合或同一信号线不同时刻0、1的组合形成控制机电对象所需要的数值。

表示0和1的状态可以采用正逻辑,即低电平表示0,高电平表示1;也可以采用负逻辑,用高电平表示0,低电平表示1。

数字信号的传输方式分成并行和串行两种:并行传输是把不同线路同一时刻的二进制数组合在一起;而串行则是把同一线路不同时刻的二进制数组合在一起,如RS232、RS485、以太网以及现场总线传输均是采用串行方式传输数字挝控制信号。

计算机系统不同,表示0、1状态的电信号范围不同。对于普通的PC、单片机、DSP等,大多采用TTI。电平标准,即o~0.4V的电压表示0,2.4~5V的电压表示1;PLC系统则普遍采用24V电压等级表示数字量的0和1。

数字信号并行输出时,可以采用二进制格式,也可以采用BCD码(包括8421码和格雷码),这是由软件与连接线决定的。

数字信号采用一定范围的电压表示0和1,可以克服模拟量信号易受干扰影响的缺点,能够提高控制精度。在要求较高的情况下,应该尽量采用数字控制信号。目前,许多传感器的输出也采用数字信号。

开关信号开关信号是针对某一根信号线而言的,其不同电压范围表示0、1(或开、关)两种状态。上述的并行数字信号实际就是由多个开关信号组合而成。在许多控制模块或板卡中,并不明确区分开关信号和数字信号。

如PLC系统的数字模块,单独的每个数字端口可以作为开关信号的输出,用于控制某个灯或状态,如某些变频器的速度设定就是采用2个或3个开关信号选择内部定义的固定速度;而把它们每8个或16个组合在一起,则可以作为一个字节或整数数值的输出。

开关信号具有以下几种不同的输出形式:TTL电平输出;继电器输出;集电极开路输出(OC输出)。

TTL电平输出的输出接点与公共端之间输出直流电压,根据输出电流的大小,可以直接控制一定的负载,如指示灯、电磁阀等。为了保护输出电路,往往采用光耦隔离措施,即使外部短路,也不会损坏内部电路。

继电器输出属于无源输出,每个输出接点相当于一个开关,不能直接带负载,需要在控制回路中串接电源。针对负载特点,可以采用直流电源,也可以采用交流电源。因而是一种比较灵活的输出形式。继电器输出的连接如图所示。

集电极开路输出时,晶体管的集电极处于开路状态。当内部电路导致晶体管导通时,输出接点(端子)与公共端之间为管压降(0.4V),表示0,当晶体管不导通时,输出接点处呈现高阻态,其状态不确定。为此,需要将集电极通过电阻连接到+5V电源,这样,当晶体管不导通时,电源通过电阻、负载与地形成一个回路,输出接点(集电极)处电压即为电阻与负载分压的电压,只要超过2.4V,就可以表示1。采用的电阻称为上拉电阻,其阻值的大小决定了带负载的能力。集电极开路输出的连接如图所示,集电极开路输出开关量信号,当内部输出高电平时,光耦导通,使得晶体管也导通,输出接点处呈现低电平,为0;而当内部输出低电平时,光耦隔断,晶体管不导通,输出接点呈现高电平,为1。应用集电极开路输出开关量,给输出寄存器发送控制数据时,应采用负逻辑,希望输出1时,实际发送0。

脉冲信号脉冲信号是以某个线路上脉冲数量的多少表示控制数据的大小,如第3章介绍的步进电动机控制,一个脉冲代表电动机旋转一个步距角。

脉冲信号可以采用开关信号实现,按照指定的时间间隔输出高电平和低电平形成需要的脉冲序列,也可以采用专门的定时器实现脉冲输出。

控制信号的实现采用计算机实现机电系统控制,要求具备模拟信号、数字信号、脉冲信号等的输入输出处理能力。

普通微机可以通过串行口、打印机进行简单的数字信号输入输出,对于大多数机电控制系统来说,则需要通过板卡扩充其模拟量、数字量通道。根据总线不同,具有ISA、PCI和USB等类型的板卡。

提供输入输出板卡的供应厂家很多,主要有美国国家仪器(NI)、研华、菱华、研祥、康拓、中泰、嘉兆、阿尔泰等公司。

1)PCL818:16路12位模拟量输入,32路TTL电平数字量输入输出。

2)PCL833:3路24位正交编码计数。

3)PCL836:6路独立计数器,32路TTL电平数字量输入输出。

4)PCL725:8路继电器输出,8路光隔数字量输入。

5)PCL711B:8路12位模拟量输入,1路12位模拟量输出,32路TTL电平数字量输入输出。

6)PCL726:8路12位模拟量输出。

7)PCL730:32路TTL电平数字输入输出。

8)PCIl713:32通道12位隔离模拟量输入卡。

9)PCIl716:16路16位模拟量输人,2路16位模拟量输出,32路TTL电平数字量输入输出,1路16位计数器。

10)PCIl784:4轴正交编码计数。

11)PCIl753:96/192位数字量I/O卡。

12)PCIl781:8通道计数器/定时器卡。

13)USB4711A:16路12位模拟量输入,2路12位模拟量输出,16路TTL电平数字量输入输出,1路32位计数器。

14)USB4716:16路16位模拟量输入,2路16位模拟量输出,16路TTL电平数字量输入输出,1路32位计数器。

15)USB4718:8路热电耦输入。

16)USB4751:48路TTL电平数字量输入输出。

17)USB4761:8路继电器输出,8路光隔离TTL电平数字量输入

其中,PCLxxx为ISA总线板卡、PCIxxxx为PCI总线板卡,USBxxxx为USB总线板卡。PCL833和PCL836卡在电动机的运动控制中应用较多,一般采用PCL833检测电动机编码器的正交编码脉冲,采用PCL836输出脉冲控制电动机(伺服电动机或步进电动机)。

PCL836卡可以提供如下功能:6个指定频率的脉冲输出;3个PWM脉冲输出;6个高速计数;16个数字输入口;16个数字输出口。其中频率脉冲输出和PWM脉冲输出需要利用同样的硬件资源,不能同时使用。

研华公司的所有板卡驱动采用设备管理器进行,其输入输出函数基本一致。

研祥公司的I/O控制板卡研祥公司是中国深圳的工业自动化产品制造商,其生产的模拟量、数字量、脉冲量板卡大多数与研华公司的产品兼容。研祥公司的PCL711B、PCL725、PCL726、PCL833、PCL836卡等与研华公司的同型号产品兼容,但其提供的驱动程序不同,编程方法也不一样。研祥公司的控制板卡主要以控件形式提供Windows平台下的编程接口。研祥的PCI输入输出板卡主要有:

1)PCI一64AD:64通道12位模拟量输入、16路TTL电平数字量输入输出。

2)PCI一144DIO:144路TTL数字量输入输出。

3)PCI一16P16R:16路继电器输出,16路隔离数字量输入。

阿尔泰公司的I/O控制板卡阿尔泰公司是中国北京的工业I/O产品制造商,其产品系列包括ISA、PCI、USB总线的模拟量、数字量、脉冲量的输入输出,价位较为低廉。阿尔泰公司的产品提供Windows平台下VB、VC、Delphi以及LabView的驱动,接口函数简单方便。阿尔泰公司的工业控制板卡产品主要有:

1)BHSl05:8路12位模拟量输入,2路模拟量输出。

2)BH5118C:32路12位模拟量输入。

3)BH5200:9路16位计数器,32路TTL电平数字量输入输出。

4)PCI2001:32路16位100K高速光隔离模拟量输入。

5)PCI2003:16路12位模拟量输入,2路12位模拟量输出,32路TTL电平数字量输入输出。

6)PCI2007:4路16位模拟量输出。

7)PCI2304:8路12位模拟量输出。

8)PCI2307:16路继电器输出,16路隔离TTL电平数字量输入。

9)PCI2310:32路OC数字量输出,32路隔离TTL电平数字量输入。

10)PCIl020:4轴运动控制卡。包括:4路脉冲输出,4路32位正交编码计数,32路光隔离数字量输入,32路光隔离数字量输出。

11)USB2310:32路12位模拟量输入,32路TTL电平数字量输入输出。

12)USB2810:32路12位模拟量输入,16路TTL电平数字量输入输出,3路16位定时计数器。

BHXXXX为ISA总线的板卡。