Abstract:
Data is transmitted asynchronously between a master and a slave microprocessor unit by first converting the number representing the word or part thereof to be transmitted into a time interval, transmitting a pulse having a width corresponding to the time interval and, at the receiver, reconverting the pulse width (time interval) to a number. Conversion and reconversion can be accomplished by, respectively, down counting a counter with a fixed frequency from the number constituting the word to be transmitted and up-counting a counter during the received pulse width at the same frequency.

Description:
Cross-Reference to Related Applications and Publications: &#34;Electronik&#34;, 1979, No. 26, pages 33 to 38. 
     The present system relates to data transmission between at least two microprocessing systems, each of the systems having a central processing unit, an input/output unit and a storage unit. 
     BACKGROUND OF THE INVENTION 
     In the magazine &#34;Electronik&#34;, 1979, No. 26, pages 33 to 38, a system is described in which a master microprocessor transmits information to and receives information from a multiplicity of other microprocessor systems. It is an object of such a system to decrease the data handling requirements of the microprocessor by carrying out sub-programs, etc. in so-called &#34;slave&#34; microprocessor systems associated therewith. In such systems, data transmission takes place either in parallel over a joint bus system or serially by addition of components for converting the data words from a parallel to a serial form. If it is impossible to effect either serial or parallel transmission between the two systems, then data transmission cannot take place between them at all. 
     THE INVENTION 
     It is an object of the present invention to allow data transmission between or among microprocessing systems even without interfaces for transmitting or receiving words in either parallel or serial form. 
     It is a further object of the present invention to allow data transmission from one unit to the other without using too much of the available computing time of the system. 
     Further, the apparatus of the present invention is to be relatively independent of interrupts and little, if any, additional components are to be required for its implementation. 
     In accordance with the present invention, the micrprocessor system from which the data is to be transmitted converts the word represented by a number or portion of the word to be transmitted into a gating time interval. A signal having a duration of said time interval is transmitted to the receiving system, where it is reconverted into a number which, then, reconstitutes the word, or word portion. Preferably, the time converters and reconverters are counters which are already present in the system, for example either in the central processing unit or in the input/output unit. Data transmission according to the present invention can thus be implemented using only components already present in the system. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 illustrates the connection between two microprocessor systems in block diagram form. 
     FIG. 2, in graphs a through g, shows conversion of a digital number into a representative timing interval, and reconversion thereof into the digital number, selecting, as number, the number 365, for example representing the number of days in a year; and 
     FIG. 3 is a flow diagram illustrating the conversion of a number to a timing interval, and reconversion thereof to the original number, and explaining the operation of the system of FIG. 1. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The first (master) microprocessor system consists of a central processing unit (CPU) 10 connected to a storage unit (ROM/RAM) 11 and an input/output unit (I/O) 12. A second similarly constructed microprocessor system consists of corresponding units 13, 14 and 15. Central processing units (CPUs) 10 and 13, each, include a counter 18, 19 whose counting inputs and outputs are connected to each other by a transmission line 16. Further, central processing units 10 and 13 are connected to each other by a control line 17. Control line 17 is either connected to the interrupt inputs of the CPUs 10, 13 or to the flag inputs/outputs. Which of the inputs are utilized depends on the particular microprocessor system. Microprocessor CDP 1804 (RCA) has a counter which can be utilized as counter 18 or 19. When this microprocessor is used, of central processing unit 10 transmission line 16 is connected from output logic circuits associated with counter 18 to input logic circuits associated with counter 19. 
     Central processing unit 10 of the master system operates under control of a main program, while central processing unit 13 utilizes sub-programs which need the command of the master system in order to run. The necessary commands as well as the required data are transmitted in the form of data words. 
     Central processing unit 13 receives a signal through control line 17 which indicates that information is now to be transmitted to it. The acknowledgment that data is being received is transmitted over the same line. 
     In accordance with the invention, data words to be transmitted represented in form of a number are converted by counter 18 to a gating time interval. This is done by setting counter 18 to the number to be transmitted, which represents the data word, and then counting down at a fixed clock frequency. This is, of course, by no means the only way by which this conversion can be accomplished. During the counting process, a signal is present on transmission line 16 whose duration corresponds to the duration of the counting process and thus to the number to be transmitted. Counter 19 converts the received time interval back to a number. This can be done by counting up in counter 19 during the time that a signal is carried on line 16 at the same frequency as the clock frequency used to convert the number representing the data word into a timing interval. The end count on counter 19 is then identical to the number originally transmitted from the first system. 
     Transmission, of course, can also take place in the other direction, from microprocessor unit 13 to microprocessor unit 10. In this way, the master microprocessing system can call up information from the slave system. 
     The system of the present invention can be used for transmission among a multiplicity of microprocessor systems. In that case, either a plurality of control lines must be provided or different codes are transmitted over the same line, each code identifying the system addressed. 
     If the clock frequency available for counters 18 and 19 is relatively low, and there is no time available in the particular part of the program at which transmission is to be carried out, then the required transmission time can be decreased by splitting the data word to be transmitted. The number of partial transmissions, i.e. transmissions for parts of one word, should be optimized for each application. It depends on the particular microprocessor system, the length of the word, and the application. The apparatus is very flexible in that the words can be split into a number of data units or parts, which split number is entirely arbitrary. 
     The transmission of data, instead of being between central processing units can also take place from input/output unit 12 to input/output unit 15. Of course, counters must then be present in the input/output units. The transmission process is the same as that described above. 
     Additionally, instead of two lines 16 and 17, a single line may be used both for control and data transmission. Such a single line must then of course be connected to the counters as well as to the interrupt or flag inputs of the CPUs 10, 13. 
     FIG. 2 is a timing diagram illustrating the various signals which occur in the system. Graph a merely lists a decimal number--selected, for example, as the number of the days in the year--which is entered in counter 18. Of course, the decimal number can be converted, first, to a binary number in a well known decimal-binary converter. A clock, providing clock pulses and part of the CPU 10 runs, providing pulses as shown in graph b. If the number 365 is to be transmitted, the counter 18 is set to number 365 and, upon application of a start signal, which likewise is transmitted over line 17, the counter will count 365 pulses--see graph d--providing one long output signal as shown on graph e as long as it takes for the counter to count down the number 365. The counter--see graph b--will continue to count, but the gating time interval, transmitted on line 16, has terminated. 
     Simultaneously, upon receipt of the start signal line 17, the CPU 13 at the receiver has received a signal which started the counter 19 therein to start counting the pulses applied as a clock signal, and, at the same rate, during the time that the gating line 16 is open, that is, during the same period of time shown by the graph e of FIG. 2. Consequently, the counter 19 will receive 365 pulses, which number will be in the counter and can be retrieved therefrom in decimal or binary form, see lines g. 
     FIG. 3 illustrates the flow diagram to carry out the foregoing. In the first step, the counter 18 is loaded with the data to be transmitted, that is, for example, programmed to accept, upon receipt of a start signal, only 365 pulses. FIG. 3 omits the generation of the clock signals, which, of course, are inherent in all computer apparatus. Thus, upon generation of the start signal, that is, the &#34;set start signal line 17&#34; block, the counter 18 will start counting and, simultaneously, line 16 will provide a single pulse which will persist for the duration of the count of the counter--in the example for the decimal number of 365 pulses. As soon as the 365th pulse is ended, the line 16 is disabled, and the counter can then return to other functions. When the counter has been started, the CPU 10 can continue with other programs. 
     In the receiving CPU 13, the similar sequence will have occurred. Again, the clock pulses are not shown. Upon receiving the interrupt or start pulse on line 17, the counter will be enabled and will count for the duration of the pulse shown in FIG. 2 on graph e and, then, necessarily will reach the count number 365. The counter 19, thus, during an open &#34;gate&#34; thereto, will reconvert the time interval into the number, see third block, right portion of FIG. 3. The output of the counter, in accordance with well-known computer usage, can be loaded in a random-access memory (RAM), so that the transmitted information can be accessed, as desired, and the counter returned to other functions. The counter can then return to other functions in the main program. 
     Many variations of the inventive concept are possible. For example, the time interval could be indicated by a start and a stop signal rather than a pulse having a duration corresponding to the word. The interval itself could be created by a variable delay rather than a count. Many other variations will be readily apparent to one skilled in the art and are intended to be encompassed in the following claims.