CN87100279A - 实现无主控装置串行总线占有控制的方法和设备 - Google Patents
实现无主控装置串行总线占有控制的方法和设备 Download PDFInfo
- Publication number
- CN87100279A CN87100279A CN87100279.5A CN87100279A CN87100279A CN 87100279 A CN87100279 A CN 87100279A CN 87100279 A CN87100279 A CN 87100279A CN 87100279 A CN87100279 A CN 87100279A
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- period
- stand
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Programmable Controllers (AREA)
Abstract
多个处理机连接到一根公共的串行总线上并将数据周期地传送到上述串行总线上。在每一个处理机中,当与固有处理机的数目和先前传送数据的处理机的数目的差值相对应的等待时间过去以后,要传送的数据即被送至公共总线,这样就使处理机执行的周期数据传送能在一固定的传送周期中完成而不会引起数据之间的碰撞。
Description
本发明涉及一种多个处理机合用一传输(通信)总线时总线占有控制的方法,特别是涉及一种可适用于工厂设备过程控制的可编程序控制器(PC)的总线占有控制方法。
可编程序控制器接收装置中的开关、接触点和振荡器的状态并通过一个程序进行计算以便例如对绕组和马达的通/断以及阀门的开/关进行控制。这种程序具有高速和循环周期执行的特点。在一个连接有多个可编程序控制器的系统中,有数据在可编程序控制器之间以与周期同步的高速度进行传送。
此外,要求这种可编程序控制器是一个非常紧凑的单元。
为了达到上述目的,要求数据传送设备包括一个串行总线而不是并行总线。
就控制串行总线的方法而言,采用处理机来对可编程序控制器的运行进行控制和对其数据传送进行控制的方法从结构的紧凑性这一方面来说是具有优越性的。
在可编程序控制器中,程序是通过信号输入、运算和运算结果输出这样一种处理流程来加以执行的。为了以协同方式在可编程序控制器之间实行控制,在程序的序列中有必要执行至少一次数据传送并把运算结果通知其它的可编程序控制器和外部装置。如果数据传送得不到保证,可编程序控制器之间的协同动作就有可能会延迟,因此整个系统的可控性和响应特征也就可能受到不良影响。
为了解决这个问题,可以考虑加快数据传送的速度,从而在一个程序周期中可以执行两次或三次数据传送以便确保协同运行。然而,如上所述,在为了使结构紧凑而配备一个可对运行和数据传送进行控制的处理器的可编程序控制器中,处理机被数据传送处理占用,很难为运行控制留出时间裕量。因此,有必要通过使运行周期和数据传送同步以确保在一个程序周期中进行数据传送以及留出控制这种运行的时间。
迄今为止,控制串行总线占有的方法大都采用一种设备作为主控装置来控制每一个受控(从动)单元中的总线占有权。还有另外一种通常的方法称为碰撞检测法,在这种方法中,不采用主控装置,在总线占有要求出现时,单方面地把数据传送到总线上去。在总线中发生数据碰撞(冲突)时,在一个预定的间隔时间之后重新把数据传送到总线上。
然而,前一方法带来的问题是,当主控装置发生故障时,就会使数据传送停止;而后一种方法的困难是总线上出现数据碰撞时重新传送的处理颇为复杂,因此在运行控制周期和传送周期之间的同步难以建立。
在日本专利JP-A-58-161061中描述了一个例子;在这个例子中以一种简单的方法实现了不用主控装置的总线占有控制。
在JP-A-58-161061所描述的方法中,其关键之点在于在接收结束和下一个传送之间有一段最低限度的间隔时间,即为传送等待时间计时器,置定一个最低限度的等待时间,从而实现高速数据传送。然而,由于受传送的数据量的影响和没有安装可编程序控制器而引起的传送周期的变化仍是有待解决的问题。
因此,本发明的目的是提供一种用于实现不用主控装置的串行总线占有控制的方法和设备,在不采用专门的优先控制设备的情况下通过简单的结构就能防止总线上的数据碰撞,并且能够以固定的传送周期实行周期性的数据传送,其中每一个可编程序控制器的总的运行控制时间和数据发送/接收时间都是相互同步的。
为了实现上述目的,按照本发明,在一根公共总线上连接多个处理机的系统中,在每个处理机中都装有一个计时器,在该计时器中置定了传送间隔时间和传送等待时间。传送间隔时间与决定于系统组装时每个处理机的串行数相对应,而传送等待时间决定于完成先前传送的处理机的数目。
除了按照同步的传送间隔时间进行数据发送/接收运行之外,还要由各个可编程序控制器高速周期地实现预定的运行控制;因此,作为实现以固定的传送时间间隔执行数据传送和作为在串行总线上防止发生数据碰撞的手段,计时器中设置有与执行先前的传送的处理机的数目和固有的处理机的的数目相对应的时间。传送是由作为最佳的传送等待时间的时间来实行的,因此时间用传送数据量来进行校正,以便以恒定的传送时间间隔进行传送,从而达到上述目的。
本发明的上述或其它的目的,通过结合相应的附图所作的下列描述,将变得更加明显,其中:
图1是表示中央处理单元(CPU)内部结构的方框图;
图2是一个采用本发明的可编程序控制器的系统的结构实例;
图3是串行总线上传送的数据的数据格式;
图4至图5是在控制单元中进行传送处理的流程图;
图6是表示决定传送等待时间的方法的示意图;
图7是串行总线上各个可编程序控制器的处理时间图。
下面将结合相应的附图对本发明的一个实施例加以描述。图1表示由本发明所提供的可编程序控制器的结构。图2是采用这种可编程序控制器的一个控制系统的实例的方框图。
整个结构将结合图2加以描述。一个可编程序控制器PC[1]包括一个主要用于执行程序的中央处理单元CPU[2]和用于控制与过程有关的接口的过程输入/输出处理机PIO[3]。CPU[2]通过PIO[3]从限位开关[5]、振荡器[8]和如图2所示的单元周期性地接收过程数据,通过使用先前贮存在CPU[2]中的程序对过程数据进行运算,并对图2中的马达[4],电磁阀门[6]和调整阀[7]实行通/断和开/关控制。此外,如图2所示,PC[1]通过串行总线[9]与其它的PC[1a]和[1b]相连接并且将对每个PC的运行进行控制所必需的数据和运算结果周期地加以传送,据此,通过维持PC之间的协同控制来实现运行控制。
下面结合图1对CPU的结构加以描述。CPU包括:一个用于贮存程序,数据和中间运算结果的存储器[26],一个用于执行贮存在存储器[26]中的程序的微处理单元MPU,一个用于对PIO[3]的接口进行控制以便把程序执行的结果传送给过程的输入/输出控制单元[28],一个用于把由PIO[3]输入的数据和MPU[24]的运算结果传送给串行总线[9]的串行总线输出电路[22],一个用于接收传送到串行总线[9]上的数据和运算结果的串行总线输入电路[21],一个用于控制串行总线的输入/输出电路[21]/[22]的串行总线输入/输出控制电路[23],一个用于对PC[1]的PC数目和对被传送到串行总线[9]上的数据传送间隔进行置位的置位单元[27]以及计时器[25],该计时器[25]用于对由置位单元[27]决定的PC数目和对由传送间隔和传送的PC数目获得的传送等待时间进行置位并对MPU[24]提供传送时间。
现在请参阅图1,下面将对CPU[2]的数据传送控制操作进行描述。在一般情况下,MPU[24]执行贮存在存储器[26]中的程序以便对连接在过程输入/输出控制电路[28]上的过程装置进行控制。在运行(操作)控制中,计时器单元[25]向MPU[24]提供一个传送时间,从而使数据以恒定的传送间隔时间传送。在接收到传送时间后,MPU[24]立即中断正在执行的运行控制而开始数据传送控制。首先,MPU[24]将贮存在存储器[26]中的输出数据对串行总线输入/输出控制电路[23]中的寄存器进行置位,然后,经过串行总线输出电路[22]把数据传送到串行总线[9]上。当MPU[24]的CPU完成了上述传送后,MPU[24]再次开始运行控制。当另一个PC把数据发送到串行总线[9]上时,无条件地将传送数据经过串行总线输入电路[21]对位于串行总线输入/输出控制电路[23]中的寄存器进行置位。数据在寄存器中置位后,串行总线输入/输出控制电路[23]通知MPU[24]接收数据已到。这样就使MPU[24]立即中断正在执行的运行控制而开始接收数据。MPU[24]把置位于串行总线输入/输出控制电路[23]中的寄存器的数据传送给存储器[26]并且在数据接收完成之前一直重复这种操作。此后,MPU[24]再次开始运行控制。
图3表示传送到串行总线上的数据的格式。该传送数据依次由传送PC的数目(SA)、传送数据量(DL)和被传送的数据项(DATA)构成。
图4至图5是表示MPU[24]的数据传送处理的流程图。在复位起动后,CPU[2]中的MPU[24]使系统起动。传送控制也在复位起动后被起动。首先,MPU[24]读出固有PC的数目,传送时间间隔t和对置位单元预置的PC总数并把这些数据项贮存到存储器[26]中。接着,MPU[24]在对其他PC的传输时间和控制处理时间进行考虑后而获得的最大等待时间加以置定并输入总线监控器的状态以便对另一个已经在串行总线上执行数据传送的PC加以确认。这些运行(操作)与图4中所示的流程图中的步骤F5,F10和F15相应。如果在串行总线上不存在任何已执行数据传送的PC的话,在最大等待时间过后计时器[25]就把传送时间提供给MPU[24],接着就开始数据传送。MPU执行这种传送,并且在这种传送完成以后,MPU[24]再次以最大等待时间对计时器[25]进行置位并执行运行(操作)控制。在这之后重复这些操作(图4中的步骤F15至F30)。
当在串行总线上存在一个已经执行数据传送的PC时,表明在MPU[24]上数据接收已经在计时器[25]提供传送时间之前发生这一状况的数据,经过图1中的信号线[100]从串行总线输入/输出控制电路[23]输出到MPU[24],接着MPU[24]开始接收处理。当完成最后的数据接收时,对接收是否已正常完成作出判断。因为数据的最后一段通常含有一个诸如CRC的错误检查码,所以这种判断是能够实现的。当发生不正常的数据接收时,如果所置的传送等待时间是基于这一错误的数据之上的,则极有可能出现数据的碰撞。此时,用从倒数第二个已确认为正常的接收数据起算的传送等待时间来对计时器[25]进行置位。如果接收到的数据是不正常的,对计时器[25]置位的时间由从倒数第二个正常的数据接收起算的传送等待时间决定。
因为是在接收完成以后将传送等待时间对计时器[25]置位的,所以,如果象通常的实例子中那样,在数据接收之后加一个恒定的等待时间,则传送周期随着数据量的改变而改变。为了保持传送周期的恒定,采用先前从其它的PC上接收到的数据量来对传送等待时间加以纠正。
图6表示对传送等待时间T进行设定(置位)的一个例子。T是由固有的PC数目决定的,而传送等待时间间隔t是由置位电路[27]、所接收到的数据量和由接收数据获得的传送PC数目来加以确定的。当固有的PC数目大于先前接收到的数据的PC数目时,传送等待时间是从下式获得的:
T=(固有PC数-固有处理机先前已从从中接收到数据的PC数)xt-τi其中,τi表示在串行总线上传送的并被用来作为达到以恒定的传送间隔Tt进行数据传送的校正时间的时间;t是PC起动传送的传送时间间隔。τi的值是按下式获得的:
τi=(传送的数据量)÷(传送速度)
顺便说一下,可以把τi的平均值作为τ,从而可以用τ来对传送等待时间进行校正。
然而,在这种情况中,存在着一种可能性,即传送周期Tt也许会略有变化。
当固有的PC数目少于接受到数据的PC的数目时,传送等待时间T是从下式获得的:
T=(总的PC数+固有的PC数-固有处理机中先前已从中接接收到数据的PC数)×t-τi。该式意味着传送等待时间T始终为正。在固有的PC进行传送之后的传送等待时间T是用经过校正的最大等待时间来计算的。
在以通过上文中所描述的方法获得的传送等待时间对图1中的计时器[25]置位以后,在步骤F61至F63中执行遗漏(缺失)PC检查。每个把先前接收的PC数目贮存起来,然后将目前接收的PC数目和贮存起来的PC数目进行比较。如果这两个PC数目之间的差值不是1,则表明在先前的接收和目前的接收之间存在遗漏(缺失)的PC。这一点可以是这样引起的:原来正常运行的PC发生故障而停止传送。这种遗漏的PC数目是从目前接收的PC数目,先前接收的PC数目和两者之间的差值计算出来的。根据这种遗漏的PC数目的信息,过程控制可以被停止,或者固有的PC的过程控制可以在与这种遗漏的PC相关的传送时间间隔的这段时间内加以完成。
接着,把接收到的数据贮存到图1中的存储器[26]中的工作区域中。至此接收处理即告完成并且对传送等待状态进行置位。接着,重新起动被中断的运行控制(图4中的步骤F40至F65)。对PC中这种处理的流程图进行描述之后,下面的段落将结合图7来描述用于控制整个系统的方法。假定PC#2由于电源故障而停止工作。
通过观察PC#3来给出说明,在执行运行控制的过程中,从PC#0接收到数据之后,PC#3起动数据接收过程。在确定了接收正常之后,以(3-0)×t-τ0=3t-τ。对计时器[25]进行置位,接着该系统进入传送等待状态,从而重新起动运行控制。接着,当时间t-τ。过去以后,PC#1开始传送过程,而PC#3再次开始数据接收处理。在数据正常接收之后,以传送时间T=(3-1)xt-τ1=2t-τ1对计时器[25]置位以便对计时器中的内容进行更新,系数进入传送等待状态,从而重新起动运行控制。此处,因为PC#2因电源故障而停止工作,当时间2t-τi过去以后,PC#3接收到来自计时器[25]的传送时间并开始传送处理。当传送完成之后,以最大等待时间对计时器[25]置位。
如上所述,把其它的PC的传送时间τ加上去以便对传送等待时间进行校正而获得恒定的传送周期。该传送周期是由PC的数目和传送间隔时间t确定的,其中传送时间Tt=总的PC数×t=常数。通过使用置位单元[27]能够灵活设置总的PC数和传送时间间隔t,这能够按照任何一种系统来形成传送系统。作为一种例子,假定有一种含有五个PC的系统的结构,在这种结构中,是采用0或2秒的传送周期Tt完成传送和控制的。如果假定总的PC数和传送时间间隔分别是5和0.04秒,则能很方便地将传送周期Tt相应地置为0.2秒。顺便说一句,该系统安排成每一个传送周期实行一次控制。此外,如果有可能在将来增加三个PC的话,则分别用10和0.02秒的裕量来确定总的PC数和传送间隔t。这样就使该系统可以允增加PC数,同时,在不改变对其它的PC的置位的情况下能以同一传送周期运行,直到总的PC数达到10为止。
按照本发明,最佳的传送等待时间是从以传送数据格式传送的PC数目,由置位单元确定的传送时间间隔和以传送数据格传送的数据量获得的,并以该最佳传送等待时间对每一个PC的计时器置位,它导致的效果是:串行总线占有控制在总线上不会发生数据碰撞的情况下以一个恒定的传送周期实现。
虽然本发明是结合具体的实施例加以描述的,但本发明并不受这些实施例的限制,而只是受到下列权利要求的限制。应该理解,熟悉本技术领域的人员能够对这些实施例加以更改或修改,但它们仍落在本发明的范围和精神实质之内。
Claims (8)
1、在一个系统中实现不用主控装置的串行总线占有控制的方法,系统中有多个处理机连接在一根公共总线之上,这些处理机周期地对公共总线发送数据,本发明的特征在于包括下述步骤:
对上述各个处理机赋予一个数字;
决定一个与处理机的数字相对应的传送间隔时间;
在一个等待时间后,把来自固有的处理机的数据发送到公共总线上,该等待时间由传送间隔时间与固有的处理机的数目和固有处理机中先前已从中接收到数据的那些处理机的数目的差值的乘积决定,从而使处理机的周期数据传送能在一个固定的传送周期中完成。
2、据权利要求1所述的控制方法,共特征在于,上述等待时间是通过减去一个校正时间,即从等待时间中减去完成先前的传送的处理机的数据传送时间来加以校正的。
3、据权利要求1所述的控制方法,其特征在于,当处理机的数目改变时,通过对处理机的数目和校正时间的考虑在任何情况下总是能获得固定的传送周期。
4、据权利要求1所述的控制方法,其特征在于,当固有的处理机先前接收到的数据中包括一个错误时,数据按照等待时间传送到公共总线上去,然后在上述恒定周期之后对数据进行传送。
5、据权利要求1所述的控制方法,其特征在于,当固有的处理机的数目少于固有的处理机先前已从中接收到数据的处理机的数目时,等待时间是根据下式加以计算的:
传送等待时间=(处理机的数目+固有的处理机的数目-固有处理机先前已从中接受到数据的处理机的数目)×传送间隔时间-先前数据接收的时间。
6、一种用于在系统中实现不用主控装置进行串行总线占有控制的设备,系统中多个处理机连接在一公共总线上,这些处理机对公共总线周期地发送数据,本发明的特征在于,上述每一处理机包括:
用于贮存处理程序和数据的存储器;
用于读出和执行贮存在上述存储器中的处理程序的微处理机单元MPU;
用于把上述MPU的执行结果传送给装置加以处理和使上述MPU接收来自该装置的信息以便加以处理的过程输入/输出控制电路;
连接在公共总线上的串行总线输入/输出电路,该电路用于接收来自其它的处理机的数据,用于把接收到的数据传送给上述MPU,用于接收来自于上述MPU的发送数据和用于把该发送数据传送到公共总线;
用于提供一固有处理机的数字,提供处理机之间的传送间隔时间和把发送数据传送到公共总线上去的传送时间的计时器;
用于置位的置位单位,在上述MPU完成对来自其它的处理机的接收数据的接收之后,该置位单元置定一个上述MPU传送一个发送数据必须等待的等待时间。
7、据权种要求6所述的设备,共特征在于,上述MPU把传送间隔时间与固有的处理机的数目和固有处理机中先前已从中接收到数据的处理机的数目的差值相乘,据此来计算等待时间。
8、据权利要求7所述的设备,其特征在于,对上述等待时间进行减法运算,在减法运算中,从上述等待时间中减去作为校正时间的与先前的传送相关的处理机的数据传送时间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61003434A JPH0648478B2 (ja) | 1986-01-13 | 1986-01-13 | マスタ−レスシリアルバス占有制御方法 |
JP3434/86 | 1986-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN87100279A true CN87100279A (zh) | 1987-08-12 |
CN1008019B CN1008019B (zh) | 1990-05-16 |
Family
ID=11557255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 87100279 Expired CN1008019B (zh) | 1986-01-13 | 1987-01-13 | 可编程控制器的无主控串行总线占有控制的方法和设备 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPH0648478B2 (zh) |
CN (1) | CN1008019B (zh) |
IN (1) | IN165881B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243189A (zh) * | 2013-06-09 | 2014-12-24 | 海尔集团公司 | 一种基于同一信道的多设备通信方法及其通信系统 |
CN114747183A (zh) * | 2019-09-26 | 2022-07-12 | 罗伯特·博世有限公司 | 用于串行总线系统的用户站的冲突探测器和用于在串行总线系统中进行通信的方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2566267B2 (ja) * | 1988-01-31 | 1996-12-25 | 松下電工株式会社 | 電話回線を使用した出退表示システム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5654145A (en) * | 1979-10-11 | 1981-05-14 | Nec Corp | Data transmission system between processors |
JPS59167729A (ja) * | 1983-03-11 | 1984-09-21 | Fuji Xerox Co Ltd | マルチcpu通信装置 |
-
1986
- 1986-01-13 JP JP61003434A patent/JPH0648478B2/ja not_active Expired - Fee Related
-
1987
- 1987-01-01 IN IN5/CAL/87A patent/IN165881B/en unknown
- 1987-01-13 CN CN 87100279 patent/CN1008019B/zh not_active Expired
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243189A (zh) * | 2013-06-09 | 2014-12-24 | 海尔集团公司 | 一种基于同一信道的多设备通信方法及其通信系统 |
CN104243189B (zh) * | 2013-06-09 | 2018-07-20 | 海尔集团公司 | 一种基于同一信道的多设备通信方法及其通信系统 |
CN114747183A (zh) * | 2019-09-26 | 2022-07-12 | 罗伯特·博世有限公司 | 用于串行总线系统的用户站的冲突探测器和用于在串行总线系统中进行通信的方法 |
CN114747183B (zh) * | 2019-09-26 | 2024-05-10 | 罗伯特·博世有限公司 | 用于串行总线系统的用户站的冲突探测器和用于在串行总线系统中进行通信的方法 |
Also Published As
Publication number | Publication date |
---|---|
IN165881B (zh) | 1990-02-03 |
JPS62162159A (ja) | 1987-07-18 |
JPH0648478B2 (ja) | 1994-06-22 |
CN1008019B (zh) | 1990-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0185348B1 (en) | Method and apparatus for synchronizing the timing subsystems of the physical modules of a local area network | |
US5764927A (en) | Backplane data transfer technique for industrial automation controllers | |
EP0137438B1 (en) | Method for passing a token in a local-area network | |
US8934351B2 (en) | Communication apparatus and communication system | |
US8046512B2 (en) | Communication system with master and slave exchanging control data in predetermined communication period | |
US5640602A (en) | Transferring digital data in units of 2 bytes to increase utilization of a 2-byte-wide bus | |
JPH08123520A (ja) | 駆動制御指令装置と複数台の駆動制御指令装置の同期制御システム及びその同期制御方法 | |
US11010328B2 (en) | Communication apparatus, communication method, program, and communication system | |
US5289466A (en) | Multiplex transmission method | |
CN87100279A (zh) | 实现无主控装置串行总线占有控制的方法和设备 | |
US7467036B2 (en) | In-vehicle electronic control unit | |
CN116909977A (zh) | 一种多机通信方法及系统 | |
US7203205B2 (en) | Polling device and communication apparatus | |
CN117201222B (zh) | I2c接口系统、数据写入方法以及数据读取方法 | |
JP3234608B2 (ja) | データ処理装置 | |
JPS60218939A (ja) | 複写機等の制御装置 | |
JP2808961B2 (ja) | 通信制御装置 | |
KR100220518B1 (ko) | 카 랜 시스템의 데이터 구조와 이를 이용한 시계보정 시스템 | |
JPH08115300A (ja) | データ通信装置 | |
EP0288191B1 (en) | Method and apparatus for data transfer handshake pipelining | |
JP2621772B2 (ja) | シリアル伝送装置 | |
US20020099890A1 (en) | Apparatus and method for processing interruptions in a data transmission over a bus | |
JPH0417492B2 (zh) | ||
JPH0439938B2 (zh) | ||
JP2001077800A (ja) | シリアル伝送送受信回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C13 | Decision | ||
C14 | Grant of patent or utility model | ||
C15 | Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993) | ||
C19 | Lapse of patent right due to non-payment of the annual fee |