WO1985002041A1 - Communication interface - Google Patents

Communication interface Download PDF

Info

Publication number
WO1985002041A1
WO1985002041A1 PCT/GB1984/000376 GB8400376W WO8502041A1 WO 1985002041 A1 WO1985002041 A1 WO 1985002041A1 GB 8400376 W GB8400376 W GB 8400376W WO 8502041 A1 WO8502041 A1 WO 8502041A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
output
data
signal
input
Prior art date
Application number
PCT/GB1984/000376
Other languages
French (fr)
Inventor
Michael David May
Henry Miles Chesney
Original Assignee
Inmos Limited
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inmos Limited filed Critical Inmos Limited
Priority to JP59504152A priority Critical patent/JPH0612905B2/en
Publication of WO1985002041A1 publication Critical patent/WO1985002041A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals

Definitions

  • the invention relates to communication interfaces and is particularly applicable to communication interfaces for use with computer apparatus and the transmission of messages between computers or computers and other devices connected thereto.
  • the invention is particularly applicable to message transmission between integrated circuit devices.
  • Computer devices and other integrated circuit devices may need to transmit messages to or receive messages from other devices.
  • the message transmission may occur between two interconneted devices or between a large number of devices forming a network.
  • one or more of the devices may be in the form of computer apparatus and other devices may comprises a variety of peripheral equipment.
  • the transmission of data between the integrated circuit devices can be accomplished by a variety of different techniques. For communication over short distances it is common to use a parallel data bus with many signal wires shared between many devices. For communication over longer distances a serial communication system may be preferred with pairs of devices connected by one or two signal wires. The more devices that a shared bus connects, the slower the maximum speed of operation. This imposed a practical limit on the number of devices which may be connected by a shared data bus. Furthermore, it is inconvenient to use many parallel buses in a system on account of the large number of signal lines and difficulties of arranging for communication between devices attached to different buses.
  • the present invention provides a communication interface to enable communication between a device and a microcomputer, or between devices in a network including one or more microcomputers, which interface comprises an output channel for outputting data and an input channel for receiving data, the output channel comprising: (a) an output terminal for connection to an external unidirectional communication line so as to transmit data bits serially along the line, and
  • packet generator means arranged to generate and supply to the output terminal serial bit packets comprising data packets of a first format for conveying data and acknowledgement packets of a second format to indicate receipt of a data packet
  • said input channel comprising:
  • said interface including control means connected to said packet generator means and to said packet decoding means and responsive to the output of a packet by the output channel or receipt of a packet by the input channel to cause the packet generator means to output an acknowledgement packet in response to receipt of the data packet by the input channel and after output of a data packet to prevent output of a further data packet until the input channel has-received an acknowledgement packet.
  • the packet generator includes means for controlling the length of each packet so that a data packet includes a standard number of data bits.
  • the interface is arranged to transmit and receive data packets which each include one byte (eight bits) of data. In this way messages can be transmitted by use of the interface which are independent of the word length of the transmitting or receiving devices. A succession of data packets may be involved in the message. For either the transmitting or receiving machine the message may consist of one or more words in accordance w th the wordlength of the device and this message may be constituted by an appropriate number of bytes.
  • the packet generating means includes counter means arranged to count each data bit which is output in a packet and to provide a signal indicating when the number of data bits reaches the standard, whereby the packet generator ouputs a predetermined signal to indicate termination of the data packet.
  • the packet decoder means includes counter means to count the number of data bits received in an incoming data packet and the packet decoding means s arranged to provide a signal when the number of data bits reaches the standard, said signal being received by the control means and arranged to initiate action by the packet generator means to output an acknowledgement packet.
  • the packet generator has means for generating a first format bit pattern followed by a succession of data bits in order to output a data packet and a second format bit pattern without data bits in order to output an acknowledgement packet.
  • the first and second format may each be determined by two bits at the start of each packet.
  • the input channel and output channel each include a single byte register for holding eight bits of data.
  • control means comprises first latch means settable to one condition in which it provides an output signal to permit output of a data packet by the packet generator means and settable to a second condition in which it inhibits the output of a data packet, said first latch means being arranged to receive a signal from the packet decoding means on receipt of an acknowledgement packet by the input channel in order to set the first latch means to said one condition, and said first latch means being arranged to receive a signal from the packet generator means to set the latch means to said other condition on completion of a data packet output.
  • control means includes second latch means settable to one condition in which it provides a signal indicating to the packet generator means that an acknowledgement packet should be output and settable to a second condition in which it does not provide such a signal, said second latch means being arranged to receive an input responsive to the packet decoding means to indicate that a data packet has been received by the input channel and thereby set said second latch means to said one condition in order to cause output of an acknowledgement packet, said second latch means having a further input responsive to output of an acknowledgement packet by said packet generator means in order to set said second latch means to said other condition.
  • the signal timing in the input and output channels may be controlled by clock pulses from timing means.
  • Two communicating devices each incorporating a communication interface as aforesaid may use a common timing clock or alternatively they may be provided with different timing clocks.
  • the clocks having the same frequency without a fixed phase relationship.
  • the input channel of the aforesaid communication interface may include synchronising means for sampling the signal level at the input terminal at a frequency higher than the bit frequency of the incoming signal in order to detect a leading edge of a first bit of a packet and to supply to said packet decoding means signal levels after suitable time intervals from detection of said leading edge in order that the signal level may provide a true indication of the bit pattern of the incoming signal regardless of the phase of the incoming signal.
  • said synchronising means includes a succession of sampling flip-flops for detecting the leading edge of the first bit of a packet.
  • the present invention also provides a communication interface as aforesaid forming part of a l nk unit for connection to any communicating device in order to provide an output mechanism for that device and also to provide an input mechanism for that device.
  • a link unit may have suitable connections to the remainder of the device including connections to the input channel comprising an input data path and an input control signal line, and connections to said output channel comprising an output data transmission path and an output control signal line.
  • the present invention provides a network of two or more devices incorporating communication interfaces as aforesaid either with a common clock or with different clocks.
  • Figure 1 illustrates schematically a microcomputer of the type described in our European Patent Specification 0111642
  • Figure 2 illustrates a network in which a microcomputer of the type shown in Figure 1 is incorporated in a personal workstation and connected to device controllers incorporating link interfaces in accordance w th the present invention
  • FIG. 3 illustrates the form of a data packet transmitted by a link interface in accordance with the present invention
  • Figure 4 illustrates the form of an acknowledgement packet transmitted by a link interface in accordance with the present invention
  • Figure 5 illustrates schematically the interconnection between two devices each incorporating a link unit in accordance with the present invention
  • FIG. 6 illustrates further detail of the construction of a link unit in accordance with the present invention
  • Figure 8 illustrates an arrangement similar to Figure 5 but using separate Proc pulses
  • Figure 9 illustrates a modified arrangement for the packet generator and packet decoder when used with the arrangement of Figure 8,
  • Figure 10 shows a modification of part of Figure 7 for use with the arrangement shown in Figure 8,
  • FIG. 11 shows further detail of part of the arrangement shown in Figure 10
  • Figure 12 is a signal diagram for use in explaining the operation of Figures 10 and 11.
  • This example provides a communication interface in the form of a link unit to enable an integrated circuit device to input or output messages so as to communicate with a microcomputer which may be of the form shown in Figure 1.
  • a microcomputer which may be of the form shown in Figure 1.
  • the single integrated circuit device 11 incorporates a CPU 12 together with a ROM 13 and 20 and RAM 19.
  • External communications can be effected through a plurality of serial links each having an input pin 26 and an output pin 27 for a single non-shared wire connection to a further communicating device.
  • Figure 2 illustrates an example in which a microcomputer 11 similar to that shown in Figure 1 may receive input from a keyboard 30 and is connected to an external memory 31.
  • the microcomputer 11 is connected into a network of integrated circuit devices including a disk controller 32 controlling a disk 33 and a graphics controller 34 connected to a screen memory 35 and arranged to control a screen unit 36.
  • the connection between the controllers and the microcomputer 11 are effected by non-shared unidirectional wire connections coupled to serial links 25 on the microcomputer 11.
  • each of the controllers 32 and 34 is provided with a link unit 37 which will be described in more detail below.
  • Data which is transmitted by one link unit forms part of a data packet having the format shown in Figure 3.
  • a data packet consists of a start bit of value 1 followed by a further bit of value 1 followed by one byte (eight bits) of data followed by as stop bit of value 0.
  • Such data packets are transmitted on the unidirectional non-shared single wires as indicated at 38 connecting the output pin of one l nk unit with the input pin of another link unit.
  • each link unit On receipt of a data packet each link unit is arranged to output an acknowledgement packet of the type shown in Figure 4. This consists of a start bit of value 1 followed by a further bit of value 0.
  • a link unit When a link unit is not transmitting a packet it continuously transmits a signal of the 0 bit value.
  • a link unit receives 0 bits and ignores them until it receives the start bit 1 of a packet.
  • the standard number of data bits for each packet to correspond to one byte of data it enables link units to correspond with each other when they form part of devices which do not have a common wordlength. For example if a machine has a wordlength of eight bits then it need only transmit one data packet for each word. If it has a wordlength of 16, 24 or 32 bits, it will be arranged to transmit two, three or four data packets per word.
  • Figure 5 illustrates communication between two integrated circuit devices 40 and 41 each incorporating a link unit 37.
  • the integrated circuit devices may comprise a microcomputer.
  • one or more of the devices may comprise peripheral equipment such as for example the controllers 32 or 34 in Figure 2 each incorporating a link unit 37 so that the message transmission system throughout a network of interconnected integrated circuit devices is compatible with the inclusion of one cr more microcomputers.
  • each link unit 37 is connected to two pins on the device. Both devices have an output pin 27 and an input pin 26.
  • a link between the two devices is formed by connecting the two link units 37 by two unidirectional non-shared wires 38 and 39 interconnecting respective input and output pins and arranged to transmit the bit packets serially along the wires'.
  • each of the devices 40 and 41 incorporates means for indicating the source or destination of data to be output or input and it also includes store means such as a register holding a count of the number of bytes of data to be output or input.
  • the link interface will transmit each of the bytes in sequence and provide control signals to the associated device so that the count may be decremented to indicate when the full message is transmitted.
  • Figure 6 illustrates one link unit 37 and includes a single byte (8 bit) output register 144 which is used to hold data for output via the output pin 27. Similar a single byte input register 66 is used to hold data which is input to the link unit via an input pin 26.
  • An output READY INDICATOR 147 indicates that the output register 144 may be loaded via a bus 95 marked OUTPUT DATA connected to a data supply within the integrated circuit device on which the link is located. The bus 95 may supply the data as parallel signals into the register 144.
  • the READY INDICATOR 147 indicates that the register 144 may be loaded by providing a control signal on line 94. marked OUTPUTACK.
  • the indicator 147 is cleared when data is loaded into the output register 144.
  • an input READY INDICATOR 146 indicates by an INPUT DATA VALID signal 98 when data may be taken from the input register 145 on the INPUT DATA bus " 97 leading to a data destination location within the integrated circuit device on which ' the link unit 37 is located. It will be appreciated that data is fed into the input register from the input pin 26.
  • the input READY INDICATOR 146 is cleared when data is taken from the register 145.
  • a packet generator 70 transmits data and acknowledge packets of the type described with reference to Figures 3 and 4 and a packet decoder 71 receives data and acknowledge packets from the input pin 26.
  • the packet decoder 71 inspects the input pin 26 once every clock period, the clock period being determined by clock pulses from a clock 93.
  • the packet decoder detects a change of state of the input pin from 0 to 1 it inspects the input pin at the next clock period to determine whether the incoming packet is a data packet or an acknowledgement packet.
  • On detection of an acknowledgement packet it sets the indicator 147 and continues to inspect the input pin to identify the start bit of the next packet.
  • the packet decoder 71 inspects the input pin 26 at successive clock periods recording the successive states of the pin in the input register 145.
  • the packet decoder 71 sets the indicator 146 and continues to inspect the input pin to identify the start bit of the next packet.
  • the packet decoder 71 incorporates counter means to count the bits received in each input packet.
  • the packet generator 70 inspects the state of indicator 146, inspects the state of the READY INDICATOR 147 and the READY INDICATOR 146 and sets the state of the output pin 27 every clock period. When data is loaded into the output register 144 and the indicator 147 cleared, the packet generator records that a data packet must be generated. Similarly when data is taken from the input register 145 and the READY INDICATOR 146. cleared, the packet generator 70 records that an acknowledge packet must be generated. An acknowledge packet is generated by setting the output pin to 1 and to 0. A data packet is generated by setting the output pin to 1 and then to 1 again and then to eight successive bits of the output register and then to o. After each packet is generated the packet generator 70 determines whether a data packet or an acknowledge packet needs to be generated and if so commences to generate it. In the event that both a data packet and an acknowledge packet need to be generated the packet generator generates the acknowledge packet first.
  • the link interface consists of an output channel, an input channel and control logic which is illustrated more fully in Figure 7.
  • the output channel includes an output state machine 140 with a bit counter 141 and the input channel includes an input state machine 142 having a bit counter 143.
  • Each state machine consists of a state register to hold the current state of the machine and a programmable logic array which responds to the value of the state register and various input signals to the state machine in order to produce a predetermined pattern of output signals and a new value for the state register.
  • the link further includes an output register 144 connected to the output data bus 95 and arranged to receive a byte of data.
  • An input register 145 is connected to the input pin 26 in order to receive incoming data.
  • the register 145 is connected to the input data bus 97 which may lead to a memory interface! ' n the device to which the link unit is attached.
  • the link interface also includes two Ready Indicators, 146 and 147 which may each comprise a flip-flop. It further includes two latches 148 and 149 which may each comprise a flip-flop. It also includes three AND gates 150, 151 and 152 as well as an OR gate 153.
  • the output state machine 140 has a plurality of inputs and outputs as follows: reference signal purpose numeral name
  • the input state machine 142 has inputs and outputs as follows: reference signal purpose numeral name
  • the succession of states for the input state machine 142 are as follows:-
  • the purpose of the latch 148 is to control the output operation. Once a byte of data has been output the signal from output 169 sets the latch 148 to a state which controls the AND gate 150 to prevent further output until the l tch 148 is reset by an acknowledge signal from output 178 from the input state machine. Similarly the latch 149 controls the input operation. When data has been received, the signal on line 177 sets the latch 149 to remember that data has been input until an acknowledgement is sent. It controls the AND gate 152 to permit an ACKGO input to the output state machine until the latch 149 is reset by the output 170 indicating that the acknowledge has gone.
  • this link interface is as follows. Consider first the situation where a device wishes to output data. The device causes data to be supplied to the output register along bus 95 and an output data valid signal 96 sets the Ready indicator 147. The output of the indicator 147 is fed to the AND gate 150 and the state of the latch 148 is such that a DataGo signal is input at 161. The output on pin 27 is derived through the OR gate 153 and therefore consists either of the signal on the output 166 from the output state machine or the output of the AND gate 151 dependent on the signal supplied on output 167 from the output state machine.
  • the bit counter 141 is also loaded with the number of bits to be output which in this case would be 8.
  • the output state machine is then in the state called "databits" and as can be seen from lines 7 and 8 of the state table, this provides a dataout signal to the AND gate 151 so as to allow the data contents of the register 144 to be output to the output pin 27.
  • a shiftout signal on output 168 causes sequential discharge of the data from the register 144 with a consequential decrement in the count in the bit counter 141.
  • a Datagone signal is output at 169 which changes the latch 148 and removes the Datago signal from the input 161.
  • the output channel may also be used to send an acknowledge packet.
  • the input channel When the input channel has received a byte of data it sends a signal to the output state machine in order to output an acknowledge packet.
  • a signal is fed to the AND gate 152 from the Ready Indicator 146 and the state of the latch 149 at this time permits the ACKGO signal to be applied to input 163 of the output state machine 140. This corresponds to line 3 of the state table for the- output state machine 140 and as can be seen, this causes the output oneout on the output 166.
  • This is passed through the OR gate 153 so that the signal level on pin 27 is changed from the previous zero level to indicate a 1 forming the first bit of the acknowledge packet.
  • the output state machine 140 also causes an output ACKGONE on line 170 so as to change the state of the latch 149 and thereby alter the output of the AND gate 152 so that the ACKGO signal is removed from the input 163. The state machine then returns to the idle state.
  • the operation of the input state machine 142 will now be described.
  • the machine is reset by a reset signal on line 101 and in accordance with line 1 of the state table for the input state machine 142 this causes no listed outputs but puts the state machine into the idle state.
  • Input 172 is connected to the input pin 26 and so long as there is no Datain signal the machine remains idle in accordance with line 2 of the state table.
  • a Dataln signal is received at input 172 due to the arrival of a start bit of either a data packet or an acknowledge packet the state machine moves onto line 3 of the state table causing no listed output but moving to the state called start.
  • the machine moves to the new state databits and as can be seen from line 6 of the state table, so long as the input 173 does not reach zero the state machine continues to cause a succession of operations of moving the incoming bits successively along the input register 145 due to the shiftin signal on the output line 176 and it causes progressive decrease in the counter 143 due to the DECCOUNT signal on the output 175.
  • line 7 of the input state machine table applies in that the machine is still in the state databits and a count zero signal is received on line 173. This causes a shiftin output on line 176 to move the last databit into the input register 145 and the machine changes to the dataend state.
  • Line 8 of the state table indicates that in this condition a SetDataready signal is output on line 177 to alter the latch 149 and the Ready Indicator 146.
  • the input state machine 142 then returns to the idle state.
  • the SetDataready signal which was supplied to the Ready Indicator 146 causes the signal "input data valid" on line 98 to indicate that a full byte of data has now been received by the input register 145.
  • the link interface shown in Figure 7 provides a packet generator in the form of the output state machine 140 with the associated bit counter latches and gates so that data may be output in packets of the type shown in Figure 3 or acknowledge of the type shown in Figure 4.
  • the input state machine 142 forms a packet decoder together with its bit counter and latches which can distinguish between receipt at the input pin 26 of an acknowledge packet or a data packet.
  • a data packet it loads the input register 145 and provides an output from the Ready Indicator 146 when a complete byte has been received.
  • an acknowledge packet it does not load the input register 145 but causes an output signal for use in controlling the output of the next data packet. That output signal alters latch 148 to permit transmission of the next datago signal through the AND gate 150. It also causes the output ACK
  • an input acknowledge signal is generated for line 99 so that an acknowledge packet must be sent by the output pin 27 before another byte of data can be input.
  • a message may consist of one or more bytes of data each byte being separately transmitted in a packet of the type shown in Figure 3.
  • an acknowledge of the type shown in Figure 4 must be output by the associated output pin before the next data packet can be input.
  • the output pin must await an acknowledgment packet for each data packet which is output before it can proceed to outputting the next data packet.
  • Each byte must be separately sent and acknowledged.
  • both state machines in the link interface are supplied with timing pulses from a common clock. This will be used in controlling the bit frequency of the data and acknowledge packets transmitted by the output pin 27.
  • FIG 8 shows an arrangement similar to Figure 5 in which the single clock 93 is replaced by two separate clocks 43 and 44. These two clocks have a common frequency but an unknown or varying phase relationship.
  • the link unit 37 may be modified as shown in Figure 9. This illustrates a modified arrangement for the packet generator 70 and packet decoer 71 of the link unit of the device 50 which receives signals from the clock 43. A similar arrangement would be provided for the link unit 37 on device 51.
  • the clock 43 provides clock pulses on lines 78 to a divider 77 which may divide the pulse frequencey by three so that the .
  • packet generator 70 receives on line 79 one clock pulse for e y ery three cycles of the clock 43.
  • the packet decoder 71 receives clock pulses through a synchroniser 72.
  • the purpose of the synchroniser 72 is to ensure that the packet decoder 71 only inspects the input pin 26 when the state of the pin is not changing as for example occurs on change of signal level from 0 to 1 at the beginning of a start bit of a packet.
  • the synchroniser 72 is connected to the pin 26 via line 73 and inspects the input pin 26 e y ery clock period until the change from 0 to 1 is detected.
  • the packet decoder 71 Starting one clock period later, it outputs a clock pulse on l ne 75 to the packet decoder 71 and it supplies a clock signal on line 75 for eyery three clock periods of the clock 43.
  • the packet decoder 71 On detection of the last bit of a packet, the packet decoder 71 resets the synchroniser 72 by a reset signal on line 76 so that the synchroniser is synchronise with the next start bit of a new packet.
  • the frequency of the bit signals supplied on lines 38 and 39 between two interconnected link units will be one-third of the frequency of the clock 43 and consequently the clock 4 ' 3 acts as a relatively high frequency clock permitting the synchroniser to sample the input signals at a frequency well in excess of the bit frequency.
  • This enables the synchroniser 72 to detect the leading edge of an incoming bit and to arrange for the packet decoder to respond to the signal level on input pin 26 at suitable time intervals delayed from detection of the leading edge of a start bit such that a valid signal is obtained by the packet decoder 71.
  • the divider 77 is not restricted to dividing by three.
  • the clock 43 may operate at frequencies more than three times that required on the input line 79 to the packet generator 70. For example it may operate at five or more times the frequency.
  • the synchroniser 72 may operate by detecting a change from 0 to 1 and then counting n ⁇ 2 clock periods before outputting clock pulses to the packet decoder e y ery n clock periods.
  • Figures 10, 11 and 12 shows a modification to the input channel of the link interface shown in Figure 7. Similar numerals have been used for similar parts.
  • a high frequency clock 43 operates at five " times the required clock frequency 93 which is fed to the output state machine 140.
  • the input signal from pin 26 is fed through a sequence of sampling flip-flops 80 which provides an output to the register 145 and also supplies a signal on line 172 to the input state machine 142.
  • the high frequency clock pulses are supplied on line 82 to the sampling flip-flops 80 and to the input 84 to the input state machine 142.
  • a line 83 connects the high frequency clock 43 to a divider 81 which divides the high frequency clock pulses by five and provides clock pulses on line 93 for use by the rest of the link interface.
  • FIG. 11 shows that the input pin 26 is connected to a succession of four sampling flip-flops 85, 86, 87 and 88. Each flip-flop provides an output to the next flip-flop in the chain. Each flip-flop also has an input from the high frequency clock 43.
  • Figure 12 illustrates a start bit having a frequency determined by the clock pulses 93. It also shows the high frequency clock signal from clock 43 and the sampling periods which result from the use of the flip-flops shown in Figure 11. By use of the high frequency clock as shown in Figure 12, each flip-flop in the chain of Figure 11 samples the signal level on the input line from pin 26 at the sampl ng periods indicated in Figure 12.
  • the signal level is sampled five times for the duration of each bit of a packet.
  • the sampling is done continuously at the fixed frequency of the high frequency clock. Generally a change in signal level from 0 to 1 at the input pin 26 will arrive between two successive samples. Consequently one sample will show a value 0 while the next sample shows the value 1. If however the change coincides with a sample being taken the first sampling flip-flop 85 may go etastable.
  • the flip-flops in the chain shown in Figure 11 are arranged that when the high frequency clock sets the flip-flop to take a sample, the output of the flip-flop follows the input level. Between samples the flip-flop retains the state of its input when the last sample was terminated and applies strong positive feedback to resolve the state to a 0 or 1.
  • the fl p-flop will take some time to resolve the state and this may take longer than one clock phase. In this event, the next sampling period will cause the output from flip-flop 25 to be passed to flip-flop 86 which will have a further opportunity to resolve the state between 0 or 1. This occurs repeatedly with each of flip-flops 87 and 88 having further opportunities to resolve an output in any case where the first flip-flop 85 took the sample at a time of changing signal level between 0 and 1. In this way the output 89 from the chain of flip-flops will have decided whether the sample has signal level 0 or 1 and will therefore enable detection of the leading edge of a start bit of each packet arriving at pin 26.
  • the sequence of states of the input state machine 142 are arranged to receive inputs on line 172 at the frequency of the high frequency clock 43.
  • the transition table for the input state machine 142 is modified as follows:
  • the " input state machine 142 is changing state at the high frequency of the clock 43.
  • the first signal on line 89 which detects a start bit at the beginning of a packet will cause a signal Datain in accordance with line 3 of the transition table.
  • the machine then waits for seven high frequency clock periods before checking in accordance with lines 10 and 11 whether the output from the sampling flip-flop 80 corresponds to another Datain signal. If the signal on line 89 indicates that a data packet is arriving, the state machine recycles through lines 12 to 16 for each bit period so that data is advanced into the input register 145 only once in each five high frequency clock pulse periods. Furthermore lines 18 to 21 of the above state table delay the output SetDatready to match the lower clock frequency of the clock pulses 93.
  • link units 37 may each comprise a separate unit having suitable connections for attachment to other devices. In this way they can be attached as an adaptor unit to enable standard communication within a network for devices that are otherwise unable to communicate in that network.
  • microcomputer relates to smallsize computers generally based on integrated circuit devices but it does not impose any limit on how small the computer may be.

Abstract

A communication interface for effecting communication by serial bit packets on unidirectional non-shared lines comprises a packet generator (70) arranged to output a byte of data in a data packet of a first format or an acknowledgement packet of a second format and a packet decoder (71) is arranged to decode incoming packets.

Description

COMMUNICATION INTERFACE
The invention relates to communication interfaces and is particularly applicable to communication interfaces for use with computer apparatus and the transmission of messages between computers or computers and other devices connected thereto. The invention is particularly applicable to message transmission between integrated circuit devices.
BACKGROUND TO THE INVENTION
Computer devices and other integrated circuit devices may need to transmit messages to or receive messages from other devices. In some cases the message transmission may occur between two interconneted devices or between a large number of devices forming a network. In such a network one or more of the devices may be in the form of computer apparatus and other devices may comprises a variety of peripheral equipment.
The transmission of data between the integrated circuit devices can be accomplished by a variety of different techniques. For communication over short distances it is common to use a parallel data bus with many signal wires shared between many devices. For communication over longer distances a serial communication system may be preferred with pairs of devices connected by one or two signal wires. The more devices that a shared bus connects, the slower the maximum speed of operation. This imposed a practical limit on the number of devices which may be connected by a shared data bus. Furthermore, it is inconvenient to use many parallel buses in a system on account of the large number of signal lines and difficulties of arranging for communication between devices attached to different buses. There is no limit to the number of devices which may be connected using individual serial connections between pairs of devices provided that each device is equipped with a number of links to which connections can be made. However, existing serial connection systems are too slow, too big or inappropriate in function to be used for general purpose communications between microcomputers and other devices in a system.
OBJECTS OF THE INVENTION
It is an object of the present invention to provide an improved link interface for use in a serial communication system between communicating devices.
It is a further object to provide a l nk interface which enables two-way communication between two devices using non-shared signal wires.
It is a further object of the present invention to provide a communication interface which enables a standard communication procedure to be used by a variety of devices connected into a common networ .
It is a further object of the present invention to provide an improved communication interface which will permit communication between a variety of connected devices which do not have a standard wordlength. In this way communication is permitted between devices which do not all use the same number of bits per word in the processes carried internally by each device.
It is a further object to provide an improved communication interface for providing serial bit communication which is independent of wordlength.
SUMMARY OF THE INVENTION
The present invention provides a communication interface to enable communication between a device and a microcomputer, or between devices in a network including one or more microcomputers, which interface comprises an output channel for outputting data and an input channel for receiving data, the output channel comprising: (a) an output terminal for connection to an external unidirectional communication line so as to transmit data bits serially along the line, and
(b) packet generator means arranged to generate and supply to the output terminal serial bit packets comprising data packets of a first format for conveying data and acknowledgement packets of a second format to indicate receipt of a data packet,
said input channel comprising:
(c) an input terminal for connection to an external unidirectional communication line so as to receive databits serially along the line, and
(d) packet decoding means for receiving serial bit packets from the said input terminal and detecting whether the packet is of the said first format or of the said second format,
said interface including control means connected to said packet generator means and to said packet decoding means and responsive to the output of a packet by the output channel or receipt of a packet by the input channel to cause the packet generator means to output an acknowledgement packet in response to receipt of the data packet by the input channel and after output of a data packet to prevent output of a further data packet until the input channel has-received an acknowledgement packet.
Preferably the packet generator includes means for controlling the length of each packet so that a data packet includes a standard number of data bits. Preferably the interface is arranged to transmit and receive data packets which each include one byte (eight bits) of data. In this way messages can be transmitted by use of the interface which are independent of the word length of the transmitting or receiving devices. A succession of data packets may be involved in the message. For either the transmitting or receiving machine the message may consist of one or more words in accordance w th the wordlength of the device and this message may be constituted by an appropriate number of bytes.
Preferably the packet generating means includes counter means arranged to count each data bit which is output in a packet and to provide a signal indicating when the number of data bits reaches the standard, whereby the packet generator ouputs a predetermined signal to indicate termination of the data packet. Preferably the packet decoder means includes counter means to count the number of data bits received in an incoming data packet and the packet decoding means s arranged to provide a signal when the number of data bits reaches the standard, said signal being received by the control means and arranged to initiate action by the packet generator means to output an acknowledgement packet.
Preferably the packet generator has means for generating a first format bit pattern followed by a succession of data bits in order to output a data packet and a second format bit pattern without data bits in order to output an acknowledgement packet. The first and second format may each be determined by two bits at the start of each packet.
Preferably the input channel and output channel each include a single byte register for holding eight bits of data.
Preferably said control means comprises first latch means settable to one condition in which it provides an output signal to permit output of a data packet by the packet generator means and settable to a second condition in which it inhibits the output of a data packet, said first latch means being arranged to receive a signal from the packet decoding means on receipt of an acknowledgement packet by the input channel in order to set the first latch means to said one condition, and said first latch means being arranged to receive a signal from the packet generator means to set the latch means to said other condition on completion of a data packet output.
Preferably said control means includes second latch means settable to one condition in which it provides a signal indicating to the packet generator means that an acknowledgement packet should be output and settable to a second condition in which it does not provide such a signal, said second latch means being arranged to receive an input responsive to the packet decoding means to indicate that a data packet has been received by the input channel and thereby set said second latch means to said one condition in order to cause output of an acknowledgement packet, said second latch means having a further input responsive to output of an acknowledgement packet by said packet generator means in order to set said second latch means to said other condition.
The signal timing in the input and output channels may be controlled by clock pulses from timing means.
Two communicating devices each incorporating a communication interface as aforesaid may use a common timing clock or alternatively they may be provided with different timing clocks. The clocks having the same frequency without a fixed phase relationship.
To permit use of separate clocks, on separate communicating devices, the input channel of the aforesaid communication interface may include synchronising means for sampling the signal level at the input terminal at a frequency higher than the bit frequency of the incoming signal in order to detect a leading edge of a first bit of a packet and to supply to said packet decoding means signal levels after suitable time intervals from detection of said leading edge in order that the signal level may provide a true indication of the bit pattern of the incoming signal regardless of the phase of the incoming signal. Preferably said synchronising means includes a succession of sampling flip-flops for detecting the leading edge of the first bit of a packet.
The present invention also provides a communication interface as aforesaid forming part of a l nk unit for connection to any communicating device in order to provide an output mechanism for that device and also to provide an input mechanism for that device. Such a link unit may have suitable connections to the remainder of the device including connections to the input channel comprising an input data path and an input control signal line, and connections to said output channel comprising an output data transmission path and an output control signal line.
The present invention provides a network of two or more devices incorporating communication interfaces as aforesaid either with a common clock or with different clocks.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates schematically a microcomputer of the type described in our European Patent Specification 0111642,
Figure 2 illustrates a network in which a microcomputer of the type shown in Figure 1 is incorporated in a personal workstation and connected to device controllers incorporating link interfaces in accordance w th the present invention,
Figure 3 illustrates the form of a data packet transmitted by a link interface in accordance with the present invention,
Figure 4 illustrates the form of an acknowledgement packet transmitted by a link interface in accordance with the present invention,
Figure 5 illustrates schematically the interconnection between two devices each incorporating a link unit in accordance with the present invention,
Figure 6 illustrates further detail of the construction of a link unit in accordance with the present invention,
Figure 7 illustrates more fully the arrangement shown in Figure 6,
Figure 8 illustrates an arrangement similar to Figure 5 but using separate Proc pulses,
Figure 9 illustrates a modified arrangement for the packet generator and packet decoder when used with the arrangement of Figure 8,
Figure 10 shows a modification of part of Figure 7 for use with the arrangement shown in Figure 8,
Figure 11 shows further detail of part of the arrangement shown in Figure 10
Figure 12 is a signal diagram for use in explaining the operation of Figures 10 and 11.
This example provides a communication interface in the form of a link unit to enable an integrated circuit device to input or output messages so as to communicate with a microcomputer which may be of the form shown in Figure 1. This is described in our European Patent Specification 0110642 and will not be repeated. However similar reference numerals have been used for similar parts. The single integrated circuit device 11 incorporates a CPU 12 together with a ROM 13 and 20 and RAM 19. External communications can be effected through a plurality of serial links each having an input pin 26 and an output pin 27 for a single non-shared wire connection to a further communicating device. Figure 2 illustrates an example in which a microcomputer 11 similar to that shown in Figure 1 may receive input from a keyboard 30 and is connected to an external memory 31. The microcomputer 11 is connected into a network of integrated circuit devices including a disk controller 32 controlling a disk 33 and a graphics controller 34 connected to a screen memory 35 and arranged to control a screen unit 36. The connection between the controllers and the microcomputer 11 are effected by non-shared unidirectional wire connections coupled to serial links 25 on the microcomputer 11. In order to effect satisfactory message transmission each of the controllers 32 and 34 is provided with a link unit 37 which will be described in more detail below.
Data which is transmitted by one link unit forms part of a data packet having the format shown in Figure 3. A data packet consists of a start bit of value 1 followed by a further bit of value 1 followed by one byte (eight bits) of data followed by as stop bit of value 0. Such data packets are transmitted on the unidirectional non-shared single wires as indicated at 38 connecting the output pin of one l nk unit with the input pin of another link unit. On receipt of a data packet each link unit is arranged to output an acknowledgement packet of the type shown in Figure 4. This consists of a start bit of value 1 followed by a further bit of value 0. When a link unit is not transmitting a packet it continuously transmits a signal of the 0 bit value. Correspondingly a link unit receives 0 bits and ignores them until it receives the start bit 1 of a packet. By selecting the standard number of data bits for each packet to correspond to one byte of data it enables link units to correspond with each other when they form part of devices which do not have a common wordlength. For example if a machine has a wordlength of eight bits then it need only transmit one data packet for each word. If it has a wordlength of 16, 24 or 32 bits, it will be arranged to transmit two, three or four data packets per word.
Figure 5 illustrates communication between two integrated circuit devices 40 and 41 each incorporating a link unit 37. In this example the integrated circuit devices may comprise a microcomputer. Alternatively one or more of the devices may comprise peripheral equipment such as for example the controllers 32 or 34 in Figure 2 each incorporating a link unit 37 so that the message transmission system throughout a network of interconnected integrated circuit devices is compatible with the inclusion of one cr more microcomputers. In Figure 5 each link unit 37 is connected to two pins on the device. Both devices have an output pin 27 and an input pin 26. A link between the two devices is formed by connecting the two link units 37 by two unidirectional non-shared wires 38 and 39 interconnecting respective input and output pins and arranged to transmit the bit packets serially along the wires'.
It will be appreciated that the link units 37 provide a communication interface which can be connected to any suitable integrated circuit device to enable it to communicate with another or with a microcomputer even where the integrated circuit device was not initially provided with means enabling such communication. In Figure 5 each of the devices 40 and 41 incorporates means for indicating the source or destination of data to be output or input and it also includes store means such as a register holding a count of the number of bytes of data to be output or input. The link interface will transmit each of the bytes in sequence and provide control signals to the associated device so that the count may be decremented to indicate when the full message is transmitted.
The link unit will be described more fully with reference to Figures 6 and 7. Figure 6 illustrates one link unit 37 and includes a single byte (8 bit) output register 144 which is used to hold data for output via the output pin 27. Similar a single byte input register 66 is used to hold data which is input to the link unit via an input pin 26. An output READY INDICATOR 147 indicates that the output register 144 may be loaded via a bus 95 marked OUTPUT DATA connected to a data supply within the integrated circuit device on which the link is located. The bus 95 may supply the data as parallel signals into the register 144. The READY INDICATOR 147 indicates that the register 144 may be loaded by providing a control signal on line 94. marked OUTPUTACK. The indicator 147 is cleared when data is loaded into the output register 144. Similarly an input READY INDICATOR 146 indicates by an INPUT DATA VALID signal 98 when data may be taken from the input register 145 on the INPUT DATA bus "97 leading to a data destination location within the integrated circuit device on which'the link unit 37 is located. It will be appreciated that data is fed into the input register from the input pin 26. The input READY INDICATOR 146 is cleared when data is taken from the register 145. A packet generator 70 transmits data and acknowledge packets of the type described with reference to Figures 3 and 4 and a packet decoder 71 receives data and acknowledge packets from the input pin 26.
In operation the packet decoder 71 inspects the input pin 26 once every clock period, the clock period being determined by clock pulses from a clock 93. When the packet decoder detects a change of state of the input pin from 0 to 1 it inspects the input pin at the next clock period to determine whether the incoming packet is a data packet or an acknowledgement packet. On detection of an acknowledgement packet it sets the indicator 147 and continues to inspect the input pin to identify the start bit of the next packet. On detection of a data packet, the packet decoder 71 inspects the input pin 26 at successive clock periods recording the successive states of the pin in the input register 145. When all data bits of the data packet have been taken from the pin 26 the packet decoder 71 sets the indicator 146 and continues to inspect the input pin to identify the start bit of the next packet. The packet decoder 71 incorporates counter means to count the bits received in each input packet.
The packet generator 70 inspects the state of indicator 146, inspects the state of the READY INDICATOR 147 and the READY INDICATOR 146 and sets the state of the output pin 27 every clock period. When data is loaded into the output register 144 and the indicator 147 cleared, the packet generator records that a data packet must be generated. Similarly when data is taken from the input register 145 and the READY INDICATOR 146. cleared, the packet generator 70 records that an acknowledge packet must be generated. An acknowledge packet is generated by setting the output pin to 1 and to 0. A data packet is generated by setting the output pin to 1 and then to 1 again and then to eight successive bits of the output register and then to o. After each packet is generated the packet generator 70 determines whether a data packet or an acknowledge packet needs to be generated and if so commences to generate it. In the event that both a data packet and an acknowledge packet need to be generated the packet generator generates the acknowledge packet first.
The link interface consists of an output channel, an input channel and control logic which is illustrated more fully in Figure 7. The output channel includes an output state machine 140 with a bit counter 141 and the input channel includes an input state machine 142 having a bit counter 143. Each state machine consists of a state register to hold the current state of the machine and a programmable logic array which responds to the value of the state register and various input signals to the state machine in order to produce a predetermined pattern of output signals and a new value for the state register. The link further includes an output register 144 connected to the output data bus 95 and arranged to receive a byte of data. An input register 145 is connected to the input pin 26 in order to receive incoming data. The register 145 is connected to the input data bus 97 which may lead to a memory interface!'n the device to which the link unit is attached. The link interface also includes two Ready Indicators, 146 and 147 which may each comprise a flip-flop. It further includes two latches 148 and 149 which may each comprise a flip-flop. It also includes three AND gates 150, 151 and 152 as well as an OR gate 153. The output state machine 140 has a plurality of inputs and outputs as follows: reference signal purpose numeral name
inputs:
160 Reset Link interface reset connected to line 101
161 Datago Initiate data transmission
162 Countzero Test if bit count zero
163 Ackgo Initiate acknowledge transmission
outputs: 164 Loadcount Set Bit Counter to number of bits to be transmitted
165 Deccount Decrease bit counter by one 166 Oneout Set output pin 27 to one 167 Dataout Set output pin 27 to least significant bit of shift register
168 Shiftout Shift data register one place 169 Datagone Transmission of data complete 170 Ackgone Transmission of acknowledge complete
The input state machine 142 has inputs and outputs as follows: reference signal purpose numeral name
inputs:
171 Reset Link interface reset connected to line 101
172 Datain Data from input pin 26
173 Countzero Test if bit count zero
outputs:
174 Loadcount Set Bit Counter to number of bits to be received
175 Deccount Decrease bit counter by one
176 Shiftin Shift data register one place taking least significant bit from pin
177 SSeettddaattaarreesady Reception of data complete
178 Setackreai Reception of acknowledge complete The succession of states for the output state machine is as follows:-
OUTPUT STATE MACHINE 140
State Inputs Outputs Next State
1. any Reset idle
2. idle (ΔDatago) /\ (ΔAckgo) idle
3. idle Ac go Oneout ackflag
4. idle (ΔAckgo) /\ Datago Oneout data flag
5. ackflag Ackgone idle
6. data flag Oneout datab ts Loadcount
7. da abits ΔCountzero DecCount databits Shi ftout Dataout
8. databits Countzero Datagone idle
The succession of states for the input state machine 142 are as follows:-
INPUT STATE MACHINE 142
State Inputs Outputs Next State
1. any Reset dle
2. idle ΔDatain idle
3. idle Da ta n start
4. start ΔDatain SetAckready idle
5. start Datain LoadCount databits
6. databits ΔCountzero Shi f tin databits
DecCount
7. databi ts Countzero Shi f tin dataend
8. dataend SetData ready idle
For both state machines, where a specific output is listed under the output column, this means that a signal 1 is generated in order to indicate that specific output. At all other times the signal value of each output not listed is in the form of a zero. All inputs except those listed under the input column are ignored. The symbols \/ /\ and Δ are used to denote the boolean operations AND, OR and NOT respectively.
The purpose of the latch 148 is to control the output operation. Once a byte of data has been output the signal from output 169 sets the latch 148 to a state which controls the AND gate 150 to prevent further output until the l tch 148 is reset by an acknowledge signal from output 178 from the input state machine. Similarly the latch 149 controls the input operation. When data has been received, the signal on line 177 sets the latch 149 to remember that data has been input until an acknowledgement is sent. It controls the AND gate 152 to permit an ACKGO input to the output state machine until the latch 149 is reset by the output 170 indicating that the acknowledge has gone.
The operation of this link interface is as follows. Consider first the situation where a device wishes to output data. The device causes data to be supplied to the output register along bus 95 and an output data valid signal 96 sets the Ready indicator 147. The output of the indicator 147 is fed to the AND gate 150 and the state of the latch 148 is such that a DataGo signal is input at 161. The output on pin 27 is derived through the OR gate 153 and therefore consists either of the signal on the output 166 from the output state machine or the output of the AND gate 151 dependent on the signal supplied on output 167 from the output state machine. As can be seen from the table of transitions for the output state machine 140, when the machine is idle after being reset there is no indicated output for line 166 and consequently this transmits a signal level to the output pin 27 indicating a zero. When the DataGo signal is applied at input 161 this corresponds to line number 4 of the state table where there is an input DataGo and no AckGo signal. As indicated this causes the signal Oneout on output 166. This feeds a signal 1 to the output pin 27 and forms the first bit of the data packet. The output state machine then moves to the state called "DataFlag" as can be seen from line 6 of the state table. In this condition with no further inputs the state machine causes a further Oneout signal on output 166 and a loadcount signal on output 164. This causes the second signal value 1 to be output by pin 27 thereby forming the two start bits of the data packet. The bit counter 141 is also loaded with the number of bits to be output which in this case would be 8. The output state machine is then in the state called "databits" and as can be seen from lines 7 and 8 of the state table, this provides a dataout signal to the AND gate 151 so as to allow the data contents of the register 144 to be output to the output pin 27. A shiftout signal on output 168 causes sequential discharge of the data from the register 144 with a consequential decrement in the count in the bit counter 141. When the counter reaches zero as shown in line 8 of the state table a Datagone signal is output at 169 which changes the latch 148 and removes the Datago signal from the input 161. As can be seen from line 8 of the state table, no outputs on lines 166 and 167 are shown which means that the signal value 0 is resumed on line 166 which is fed through the OR gate 153 and the output pin 27 thereby forming the stop bit 0 at the end of the data packet. The output state machine returns to the idle condition.
The output channel may also be used to send an acknowledge packet. When the input channel has received a byte of data it sends a signal to the output state machine in order to output an acknowledge packet. A signal is fed to the AND gate 152 from the Ready Indicator 146 and the state of the latch 149 at this time permits the ACKGO signal to be applied to input 163 of the output state machine 140. This corresponds to line 3 of the state table for the- output state machine 140 and as can be seen, this causes the output oneout on the output 166. This is passed through the OR gate 153 so that the signal level on pin 27 is changed from the previous zero level to indicate a 1 forming the first bit of the acknowledge packet. This changes the output state machine 140 to the state called ACKFLAG and as can be seen from line 5 of the state table for that machine, this causes no further outputs on lines 166 and 167 and this means that the signal level on output 166 changes back to the zero level so that the signal level on the output 27 reverts to zero giving the second bit of the acknowledge packet. The output state machine 140 also causes an output ACKGONE on line 170 so as to change the state of the latch 149 and thereby alter the output of the AND gate 152 so that the ACKGO signal is removed from the input 163. The state machine then returns to the idle state.
The operation of the input state machine 142 will now be described. The machine is reset by a reset signal on line 101 and in accordance with line 1 of the state table for the input state machine 142 this causes no listed outputs but puts the state machine into the idle state. As no outputs are l sted the signals on all outputs will have a zero signal level. Input 172 is connected to the input pin 26 and so long as there is no Datain signal the machine remains idle in accordance with line 2 of the state table. As soon as a Dataln signal is received at input 172 due to the arrival of a start bit of either a data packet or an acknowledge packet the state machine moves onto line 3 of the state table causing no listed output but moving to the state called start. If the next bit to arrive at the input pin 26 is a 0 in accordance with the acknowledge packet then line 4 of the state table for the input state machine 142 will apply. The machine has been put into the state called start by the arrival of the first bit of the packet but as the second bit is a 0 there is no longer a Dataln signal on line 172 and in accordance with line 4 of the state table this causes the output SETACKREADY on output 178 and the machine returns to the idle state. The output on line 178 is fed to the latch 148 in order to indicate to the output state machine that an acknowledge packet has been received. It is also fed to the Ready Indicator 147.
If however the second bit of the packet arriving at the input pin 26 was a 1 rather than a 0 such that the packet is a data packet, then line 5 of the state table would apply in that the machine is in the start state due to the first bit of the data packet and the input is now Dataln on input 172. This causes the output loadcount on output 174 so that the bit counter 143 is loaded with the number of bits to be expected in the data packet. In this case the number of bits will be 8 corresponding to 1 byte of data. The machine moves to the new state databits and as can be seen from line 6 of the state table, so long as the input 173 does not reach zero the state machine continues to cause a succession of operations of moving the incoming bits successively along the input register 145 due to the shiftin signal on the output line 176 and it causes progressive decrease in the counter 143 due to the DECCOUNT signal on the output 175. When the count in the counter 143 reaches zero indicating that the required 8 bits of data have now been received, line 7 of the input state machine table applies in that the machine is still in the state databits and a count zero signal is received on line 173. This causes a shiftin output on line 176 to move the last databit into the input register 145 and the machine changes to the dataend state. Line 8 of the state table indicates that in this condition a SetDataready signal is output on line 177 to alter the latch 149 and the Ready Indicator 146. The input state machine 142 then returns to the idle state. The SetDataready signal which was supplied to the Ready Indicator 146 causes the signal "input data valid" on line 98 to indicate that a full byte of data has now been received by the input register 145.
It will therefore be seen that the link interface shown in Figure 7 provides a packet generator in the form of the output state machine 140 with the associated bit counter latches and gates so that data may be output in packets of the type shown in Figure 3 or acknowledge of the type shown in Figure 4. The input state machine 142 forms a packet decoder together with its bit counter and latches which can distinguish between receipt at the input pin 26 of an acknowledge packet or a data packet. In the case of a data packet it loads the input register 145 and provides an output from the Ready Indicator 146 when a complete byte has been received. In the case of an acknowledge packet it does not load the input register 145 but causes an output signal for use in controlling the output of the next data packet. That output signal alters latch 148 to permit transmission of the next datago signal through the AND gate 150. It also causes the output ACK
OMPI Λ, Hm W WIiPJΛOJ Λγ signal on line 94 to indicate that a further byte to be output can now be supplied along bus 95 to the output register 144. When a byte of data has been received by the input register 145 and then transferred to its destination via bus 97, an input acknowledge signal is generated for line 99 so that an acknowledge packet must be sent by the output pin 27 before another byte of data can be input.
It will be seen that by use of the link interface shown in Figure 7, a message may consist of one or more bytes of data each byte being separately transmitted in a packet of the type shown in Figure 3. As each packet of the type shown in Figure 3 is received by an input pin an acknowledge of the type shown in Figure 4 must be output by the associated output pin before the next data packet can be input. Similarly the output pin must await an acknowledgment packet for each data packet which is output before it can proceed to outputting the next data packet. Each byte must be separately sent and acknowledged.
In the above described example both state machines in the link interface are supplied with timing pulses from a common clock. This will be used in controlling the bit frequency of the data and acknowledge packets transmitted by the output pin 27.
In the event that it is inconvenient to distribute the same clock signal to two or more link units in a network, a synchronising device may be incorporated to ensure that the input pin of each link is inspected at the correct time. Figure 8 shows an arrangement similar to Figure 5 in which the single clock 93 is replaced by two separate clocks 43 and 44. These two clocks have a common frequency but an unknown or varying phase relationship. In such a case the link unit 37 may be modified as shown in Figure 9. This illustrates a modified arrangement for the packet generator 70 and packet decoer 71 of the link unit of the device 50 which receives signals from the clock 43. A similar arrangement would be provided for the link unit 37 on device 51. The clock 43 provides clock pulses on lines 78 to a divider 77 which may divide the pulse frequencey by three so that the.packet generator 70 receives on line 79 one clock pulse for eyery three cycles of the clock 43. The packet decoder 71 receives clock pulses through a synchroniser 72. The purpose of the synchroniser 72 is to ensure that the packet decoder 71 only inspects the input pin 26 when the state of the pin is not changing as for example occurs on change of signal level from 0 to 1 at the beginning of a start bit of a packet. The synchroniser 72 is connected to the pin 26 via line 73 and inspects the input pin 26 eyery clock period until the change from 0 to 1 is detected. Starting one clock period later, it outputs a clock pulse on l ne 75 to the packet decoder 71 and it supplies a clock signal on line 75 for eyery three clock periods of the clock 43. On detection of the last bit of a packet, the packet decoder 71 resets the synchroniser 72 by a reset signal on line 76 so that the synchroniser is synchronise with the next start bit of a new packet.
It will be appreciated that in the arrangement of Figure 9 the frequency of the bit signals supplied on lines 38 and 39 between two interconnected link units will be one-third of the frequency of the clock 43 and consequently the clock 4'3 acts as a relatively high frequency clock permitting the synchroniser to sample the input signals at a frequency well in excess of the bit frequency. This enables the synchroniser 72 to detect the leading edge of an incoming bit and to arrange for the packet decoder to respond to the signal level on input pin 26 at suitable time intervals delayed from detection of the leading edge of a start bit such that a valid signal is obtained by the packet decoder 71.
It will be appreciated that in the above example the divider 77 is not restricted to dividing by three. The clock 43 may operate at frequencies more than three times that required on the input line 79 to the packet generator 70. For example it may operate at five or more times the frequency. For example, if n is the number of clock periods necessary to transmit each bit by the packet decoder, the synchroniser 72 may operate by detecting a change from 0 to 1 and then counting n ÷ 2 clock periods before outputting clock pulses to the packet decoder eyery n clock periods. An alternative arrangement for enabling the link units 37 to operate with separate clocks is shown in Figures 10, 11 and 12. Figure 10 shows a modification to the input channel of the link interface shown in Figure 7. Similar numerals have been used for similar parts. In this case a high frequency clock 43 operates at five "times the required clock frequency 93 which is fed to the output state machine 140. The input signal from pin 26 is fed through a sequence of sampling flip-flops 80 which provides an output to the register 145 and also supplies a signal on line 172 to the input state machine 142. The high frequency clock pulses are supplied on line 82 to the sampling flip-flops 80 and to the input 84 to the input state machine 142. A line 83 connects the high frequency clock 43 to a divider 81 which divides the high frequency clock pulses by five and provides clock pulses on line 93 for use by the rest of the link interface. The sampling flip-flops are shown more fully in Figure 11 which shows that the input pin 26 is connected to a succession of four sampling flip-flops 85, 86, 87 and 88. Each flip-flop provides an output to the next flip-flop in the chain. Each flip-flop also has an input from the high frequency clock 43. Figure 12 illustrates a start bit having a frequency determined by the clock pulses 93. It also shows the high frequency clock signal from clock 43 and the sampling periods which result from the use of the flip-flops shown in Figure 11. By use of the high frequency clock as shown in Figure 12, each flip-flop in the chain of Figure 11 samples the signal level on the input line from pin 26 at the sampl ng periods indicated in Figure 12. That indicates that the signal level is sampled five times for the duration of each bit of a packet. The sampling is done continuously at the fixed frequency of the high frequency clock. Generally a change in signal level from 0 to 1 at the input pin 26 will arrive between two successive samples. Consequently one sample will show a value 0 while the next sample shows the value 1. If however the change coincides with a sample being taken the first sampling flip-flop 85 may go etastable. The flip-flops in the chain shown in Figure 11 are arranged that when the high frequency clock sets the flip-flop to take a sample, the output of the flip-flop follows the input level. Between samples the flip-flop retains the state of its input when the last sample was terminated and applies strong positive feedback to resolve the state to a 0 or 1. If the input was changing between 0 and 1 at the end of the last sample the fl p-flop will take some time to resolve the state and this may take longer than one clock phase. In this event, the next sampling period will cause the output from flip-flop 25 to be passed to flip-flop 86 which will have a further opportunity to resolve the state between 0 or 1. This occurs repeatedly with each of flip-flops 87 and 88 having further opportunities to resolve an output in any case where the first flip-flop 85 took the sample at a time of changing signal level between 0 and 1. In this way the output 89 from the chain of flip-flops will have decided whether the sample has signal level 0 or 1 and will therefore enable detection of the leading edge of a start bit of each packet arriving at pin 26.
In this arrangement the sequence of states of the input state machine 142 are arranged to receive inputs on line 172 at the frequency of the high frequency clock 43. In order to" cause data to be loaded into the input register 145 at a time which corresponds approximately to the centre of each bit in the incoming bit pattern, the transition table for the input state machine 142 is modified as follows:
INPUT STATE MACHINE
State Inputs Outputs Next state
1. any Reset idle
2. idle Δ Datain idle
3. idle Datain startO
4. startO startl
5. startl start2
6. start2 start3
7. start3 start4 State Inputs Outputs Next state
8. start4 startδ
9. starts start
10. start Δ Datain SetAckready idle
11. start Datain LoadCount databitsO
12. databitsO databitsl
13. databitsl databits2
14. databits2 databits3
15. databits3 databits
16. databits Δ Countzero Shiftin databitsO DecCount
17. databits Countzero Shift n dataendO
18. dataendO dataendl
19. dataendl d taend2
20. dataend2 dataend3
21. dataend3 dataend
22. dataend SetDatready idle
It will be seen that in this case the"input state machine 142 is changing state at the high frequency of the clock 43. The first signal on line 89 which detects a start bit at the beginning of a packet will cause a signal Datain in accordance with line 3 of the transition table. The machine then waits for seven high frequency clock periods before checking in accordance with lines 10 and 11 whether the output from the sampling flip-flop 80 corresponds to another Datain signal. If the signal on line 89 indicates that a data packet is arriving, the state machine recycles through lines 12 to 16 for each bit period so that data is advanced into the input register 145 only once in each five high frequency clock pulse periods. Furthermore lines 18 to 21 of the above state table delay the output SetDatready to match the lower clock frequency of the clock pulses 93.
It will be appreciated that the link units 37 may each comprise a separate unit having suitable connections for attachment to other devices. In this way they can be attached as an adaptor unit to enable standard communication within a network for devices that are otherwise unable to communicate in that network.
The invention is not limited to the details of the foregoing example. It will be understood that the term microcomputer relates to smallsize computers generally based on integrated circuit devices but it does not impose any limit on how small the computer may be.

Claims

CLAIMS:- 24 -
1. A communication interface to enable communication between a device and a microcomputer, or between devices in a network including one or more microcomputers, which interface comprises an output channel for outputting data and an input channel for receiving data, the output channel comprising:
(a) an output terminal for connection to an external unidirectional communication line so as to transmit data bits serially along the line, and
(b) packet generator means arranged to generate and supply to the output terminal serial bit packets comprising data packets of a first format for conveying data and acknowledgement packets of a second format to ndicate receipt of a data packet,
said input channel comprising:
(c) an input terminal for connection to an external unidirectional communication line so as to receive databits serially along the line, and
(d) packet decoding means for receiving serial bit packets from the said input terminal and detecting whether the packet is of the said first format or of the said second format,
said interface including control means connected to said packet generator means and to said packet decoding means and responsive to the output of a packet by the output channel or receipt of a packet by the input channel to cause the packet generator means to output an acknowledgement packet in response to receipt of the data packet by the input channel and after output of a data packet to prevent output of a further data packet until the input channel has received an acknowledgement packet.
2. A communication interface according to claim 1 in which the packet generator includes means for controlling the length of each packet so that a data packet includes a standard number of data bits.
3. A communication interface according to claim 2 in which the packet generator is arranged to generate data packets each containing 8 bits of data.
4. A communication interface according to claim 2 or claim 3 in which the packet generating means includes counter means arranged to count each data bit which is output in a packet and to provide a signal indicating when the number of data bits reaches the standard, whereby the packet generator ouputs a predetermined signal to indicate termination of the data packet.
5. A communication interface according to claim 4 in which the packet decoder means includes counter means to count the number of data bits received in an incoming data packet and the packet decoding means is arranged to provide a signal when the number of data bits reaches the standard, said signal being received by the control means and arranged to initiate action by the packet generator means to output an acknowledgement packet.
6. A communication interface according to any one of the preceding claims in which the packet generator has means for generating a first format bit pattern followed by a succession of data bits in order to output a data packet and a second format bit pattern without data bits in order to output an acknowledgement packet.
7. A communication interface according to claim 6 in which the first and second format are each determined by 2 bits at the start of each packet.
8. A communication interface according to any one of the preceding claims in which the output channel includes a si.ngle byte register for holding eight data bits to be output by the packet generator means.
9. A communication interface according to claim 1 or claim 8 in which the input channel includes a single byte register for holding eight data bits received by the input channel.
10. A communication interface according to any one of the preceding claims in which said control means comprises first latch means settable to one condition in which it provides an output signal to permit output of a data packet by the packet generator means and settable to a second condition in which it inhibits the output of a data packet, said first latch means being arranged to receive a signal from the packet decoding means on receipt of an acknowledgement packet by the input channel in order to set the first latch means to said one condition, and said first latch means being arranged to receive a signal from the packet generator means to set the latch means to said other condition on completion of a data packet output.
11. A communication interface according to claim 10 in which said control means includes second latch means settable to one condition in which it provides a signal ndicating to the packet generator means that an acknowledgement packet should be output and settable to a second condition in which it does not provide such a signal, said second latch means being arranged to receive an input responsive to the packet decoding means to indicate that a data packet has been received by the input channel and thereby set said second latch means to said one condition in order to cause output of an acknowledgement packet, said second latch means having a further input responsive to output of an acknowledgement packet by said packet generator means in order to set said second latch means to said other condition.
12. A communication interface according to any one of the preceding claims including timing means arranged to provide clock pulses to control the signal timing in the input and output channels.
13. A communication interface according to claim 12 in which the, output channel includes timing means arranged to output signals at a predetermined frequency and phase and said input channel includes signal synchronising means in order to synchronise incoming signals of the same frequency as said predetermined frequency but having a different phase said synchronising means including means for sampling signals received at said input terminal at a frequency higher than said predetermined frequency.
14. A communication interface according to claim 13 in which said synchronising means includes means for sampl ng the signal level at the input terminal at a frequency, higher than the bit frequency of the incoming signal, in order to detect a leading edge of a first bit of a packet and supplying to said packet decoding means signal levels after suitable time interval from detection of said leading edge in order that the signal level may provide a true indication of the bit pattern in the incoming packet, regardless of the phase of the incoming packet signals.
15. A communication interface according to claim 14 in which said synchronising means includes a succession of sampling flip-flops for detecting the leading edge of the first bit of a packet.
16. A communication interface according to any one of the preceding claims having means for connection to a device to which the interface is to be attached for communication purposes, said connections including connections to the input channel comprising an input data path and an input control signal line, and connections to said output channel comprising an output data transmission path and an output control signal line.
17. An integrated circuit device having a communication interface according to any one of the preceding claims.
18. A network of two or more devices incorporating communication interfaces as aforesaid, each of said interfaces being connected to another interface by non- shared unidirectional signal wires interconnecting the output terminal of each interface with the input terminal of another interface.
19. A network according to claim 18 wherein different devices within the network have different timing clocks arranged to provide signals of a common frequency.
PCT/GB1984/000376 1983-11-04 1984-11-02 Communication interface WO1985002041A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59504152A JPH0612905B2 (en) 1983-11-04 1984-11-02 Communication interface

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8329510 1983-11-04
GB838329510A GB8329510D0 (en) 1983-11-04 1983-11-04 Computer apparatus

Publications (1)

Publication Number Publication Date
WO1985002041A1 true WO1985002041A1 (en) 1985-05-09

Family

ID=10551257

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB1984/000376 WO1985002041A1 (en) 1983-11-04 1984-11-02 Communication interface

Country Status (6)

Country Link
US (1) US4811277A (en)
EP (1) EP0141659B1 (en)
JP (1) JPH0612905B2 (en)
DE (1) DE3473949D1 (en)
GB (1) GB8329510D0 (en)
WO (1) WO1985002041A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992010893A1 (en) * 1990-12-04 1992-06-25 International Business Machines Corporation Method of error recovery in a data communication system

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3678092D1 (en) * 1985-09-30 1991-04-18 Siemens Ag METHOD FOR BIT- AND BYTESYNCHRONOUS DATA TRANSFER VIA A SERIAL INTERFACE.
GB8701009D0 (en) 1987-01-19 1987-02-18 Inmos Ltd Digital signal switch
JPS6450152A (en) * 1987-08-20 1989-02-27 Fujitsu Ltd Communication controller
US5001705A (en) * 1987-11-06 1991-03-19 Fujitsu Limited Protocol control circuit for data bus system
JP2643978B2 (en) * 1988-04-23 1997-08-25 株式会社ケンウッド Packet data generator
KR920006617B1 (en) * 1988-06-07 1992-08-10 가부시기가이샤 히다찌세이사꾸쇼 Multiprocessor system
US4949245A (en) * 1988-10-21 1990-08-14 Modular Computer Systems, Inc. Intermediate memory system for connecting microcomputers to a rotating disk memory
EP0367182A3 (en) * 1988-10-31 1992-07-22 Bts Broadcast Television Systems Gmbh High-speed digital computing system
GB8915136D0 (en) * 1989-06-30 1989-08-23 Inmos Ltd Method for controlling communication between computers
JP3489147B2 (en) * 1993-09-20 2004-01-19 株式会社日立製作所 Data transfer method
US5495481A (en) * 1994-09-30 1996-02-27 Apple Computer, Inc. Method and apparatus for accelerating arbitration in a serial bus by detection of acknowledge packets
US5826068A (en) * 1994-11-09 1998-10-20 Adaptec, Inc. Integrated circuit with a serial port having only one pin
US6434638B1 (en) * 1994-12-09 2002-08-13 International Business Machines Corporation Arbitration protocol for peer-to-peer communication in synchronous systems
US6279098B1 (en) * 1996-12-16 2001-08-21 Unisys Corporation Method of and apparatus for serial dynamic system partitioning
DE19827337A1 (en) * 1998-06-19 1999-12-23 Philips Patentverwaltung Arrangement and method for transmitting address, command and / or data telegrams
AUPQ993100A0 (en) * 2000-09-06 2000-09-28 Software Engineering Australia (Western Australia) Limited System and method for transmitting and storing sensitive data transmitted over a communications network
US7007212B2 (en) * 2002-03-14 2006-02-28 Matsushita Electric Industrial Co., Ltd. Transmission device, reception device, test circuit, and test method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648256A (en) * 1969-12-31 1972-03-07 Nasa Communications link for computers
US3866172A (en) * 1974-05-16 1975-02-11 Bell Telephone Labor Inc Communication system for transmitting data words prior to receipt of acknowledgments for previously transmitted data words
FR2309078A1 (en) * 1975-04-25 1976-11-19 Cit Alcatel Clock signal reconstituting circuit - for binary coded transmission is fitted with transition detector and phase control loop for local clock
WO1982002102A1 (en) * 1980-12-12 1982-06-24 Ncr Co Chip topography for integrated circuit communication controller
EP0110642A2 (en) * 1982-11-26 1984-06-13 Inmos Limited Microcomputer

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2309078A (en) * 1939-01-23 1943-01-19 J M Lehmann Co Inc Grinding mill
US4156798A (en) * 1977-08-29 1979-05-29 Doelz Melvin L Small packet communication network
US4399531A (en) * 1980-09-29 1983-08-16 Rockwell International Corporation Distributed digital data communications network
JPS5779546A (en) * 1980-11-04 1982-05-18 Hitachi Ltd Information transmission system
JPS5866448A (en) * 1981-10-16 1983-04-20 Hitachi Ltd Error detecting system for exchange of packet
US4490785A (en) * 1982-05-07 1984-12-25 Digital Equipment Corporation Dual path bus structure for computer interconnection
US4490788A (en) * 1982-09-29 1984-12-25 Schlumberger Technology Corporation Well-logging data processing system having segmented serial processor-to-peripheral data links
US4584679A (en) * 1983-01-21 1986-04-22 E-Systems, Inc. Tack-on acknowledgement in computer networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648256A (en) * 1969-12-31 1972-03-07 Nasa Communications link for computers
US3866172A (en) * 1974-05-16 1975-02-11 Bell Telephone Labor Inc Communication system for transmitting data words prior to receipt of acknowledgments for previously transmitted data words
FR2309078A1 (en) * 1975-04-25 1976-11-19 Cit Alcatel Clock signal reconstituting circuit - for binary coded transmission is fitted with transition detector and phase control loop for local clock
WO1982002102A1 (en) * 1980-12-12 1982-06-24 Ncr Co Chip topography for integrated circuit communication controller
EP0110642A2 (en) * 1982-11-26 1984-06-13 Inmos Limited Microcomputer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992010893A1 (en) * 1990-12-04 1992-06-25 International Business Machines Corporation Method of error recovery in a data communication system
US5410536A (en) * 1990-12-04 1995-04-25 International Business Machines Corporation Method of error recovery in a data communication system

Also Published As

Publication number Publication date
EP0141659A2 (en) 1985-05-15
EP0141659A3 (en) 1985-07-03
JPS61500824A (en) 1986-04-24
DE3473949D1 (en) 1988-10-13
GB8329510D0 (en) 1983-12-07
US4811277A (en) 1989-03-07
EP0141659B1 (en) 1988-09-07
JPH0612905B2 (en) 1994-02-16

Similar Documents

Publication Publication Date Title
EP0141659B1 (en) Communication interface
US4390969A (en) Asynchronous data transmission system with state variable memory and handshaking protocol circuits
US4494232A (en) Statistical multiplexer with dynamic bandwidth allocation for asynchronous and synchronous channels
EP0046203B1 (en) Multiprocessor arrangement with a common bus
EP0522764B1 (en) Multiplexing scheme for modem control signals
US4485470A (en) Data line interface for a time-division multiplexing (TDM) bus
EP0378426B1 (en) Data transfer using bus address lines
US4393501A (en) Line protocol for communication system
US4535421A (en) Universal real time transparent asynchronous serial/echoplex converter
US5159684A (en) Data communication interface integrated circuit with data-echoing and non-echoing communication modes
JPH0311595B2 (en)
US4847756A (en) Data transmission system for a computer controlled copying machine having master and slave CPU's
GB1581836A (en) Cpu-i/o bus interface for a data processing system
EP0379772B1 (en) Programmable data transfer timing
US3623010A (en) Input-output multiplexer for general purpose computer
JPH0133860B2 (en)
US5128666A (en) Protocol and apparatus for a control link between a control unit and several devices
US5379327A (en) Synchronous-to-asynchronous converter
EP0276076B1 (en) Digital signal switch
US4613936A (en) Centralized generation of data transfer acknowledge pulses for microprocessors
US4047201A (en) I/O Bus transceiver for a data processing system
JP2758634B2 (en) Data transmission equipment
EP0353249A4 (en) Parallel networking architecture
KR910007749B1 (en) Communication interface
US5548790A (en) High speed IEEE 488 bus data transfer system

Legal Events

Date Code Title Description
AK Designated states

Designated state(s): JP US