Patent Publication Number: US-5524237-A

Title: Controlling data transfer between two microprocessors by receiving input signals to cease its data output and detect incoming data for reception and outputting data thereafter

Description:
BACKGROUND OF THE INVENTION AND PRIOR ART 
     This invention relates generally to microprocessor communication systems and specifically to a simple serial data transmission system for intercoupling a pair of microprocessors. 
     Conventionally, when a pair of microprocessors must communicate with each other, one microprocessor is placed in the position of a master and the other in the position of a slave so that control of the communication link or bus connecting the microprocessors may be transferred without confusion. While there are a number of systems for regulating the control of communications buses linking microprocessors, the present invention represents a very simple, economical approach. 
     The present invention will find use in many situations that require intercommunication between microprocessors. One particular implementation is that of a cable system in which the subscriber station cable converters are microprocessor controlled for receiving downloaded information from the cable head-end. The cable converter may also include an &#34;add-on&#34; on-screen display arrangement or unit for conveying selected information to a subscriber. For example, an out-of-band frequency shift keyed (FSK) type receiver in the add-on unit may receive downloaded channel mapping information in which the channel number displayed at the subscriber station may not be the channel number of the signal actually provided to the television receiver at the subscriber station. This is common in cable systems and is advantageous to the subscriber in that the channel number normally associated with a particular station is retained even though the cable system uses a different number for that station&#39;s television signal. In that arrangement, a so-called &#34;conditional access&#34; microprocessor in the subscriber station cable converter is in communication with a so-called &#34;dialogue&#34; microprocessor in the add-on unit and the communications between the two microprocessors must be regulated to enable the conditional access microprocessor to perform its various &#34;off-line&#34; functions while monitoring for downloaded information from the dialogue microprocessor. The dialogue microprocessor may also go &#34;off-line&#34; and perform other tasks for variable time periods, as required. The data protocol used may be conventional. For example, each microprocessor may send successive 24 bit data packets over a data line with data packets being separated by a sync bit, sent over a sync line, to inform the receiving microprocessor that the data packet is finished and to take appropriate action in response thereto. 
     OBJECTS OF THE INVENTION 
     A principal object of the invention is to provide an improved data communications system for a pair of interconnected microprocessors. 
     Another object of the invention is to provide a simplified intercommunication arrangement for microprocessors. 
     A further object of the invention is to provide a serial data intercommunication system between a pair of microprocessors which enables each microprocessor to perform tasks of higher priority without confusion. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     These and other objects and advantages of the invention will be apparent upon reading the following description in conjunction with the drawings, in which: 
     FIG. 1 is a simplified block diagram of a pair of microprocessors intercoupled in accordance with the invention; 
     FIG. 2 is a series of waveforms indicating the exchange of data, sync and control signals between the microprocessors of FIG. 1; and 
     FIG. 3 is a simplified flow chart illustrating operation of the communication system of the invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring to FIG. 1, a first microprocessor A (reference 10) and a second microprocessor B (reference 20) are shown. The microprocessors are substantially identical, although that is not a requirement, and each includes a data in/out port, a sync in/out port, a clock in port and a clock out port. It will, of course, be noted that more than one bidirectional data port may be provided and such an arrangement is contemplated herein. The microprocessors also include conventional ROM and RAM memories and instruction programs (not shown) for effecting their respective operations. Microprocessor 10 is shown intercoupled along a bidirectional link or communication path 16 to an input/output device (not shown). Similarly, microprocessor 20 may be intercoupled to an input/output device (not shown) via a bidirectional link 18. The bidirectional nature of these links is indicated by the double headed arrows. The data in/out port and the sync in/out port of microprocessor 10 are connected by sync and data lines to the data in/out port and sync in/out port, respectively, of microprocessor 20. These lines may be individually connected to a source of B+ through pull-up resistors 12 and 14 as indicated. Also the clock out port of microprocessor 10 is coupled to the clock in port of microprocessor 20 and the clock in port of microprocessor 10 is connected to the clock out port of microprocessor 20. These latter lines are one way communication links, as illustrated by the single headed arrows. The arrangement of sync, data and clock lines comprises a bus that interconnects microprocessors 10 and 20. 
     In FIG. 2, data information 22 (indicated by the X&#39;s) is outputted simultaneously on the sync and data lines by both microprocessors 10 and 20. This data information consists of data pulses on the data line and sync pulses on the sync line (formatted according to an agreed upon protocol, such as that described above). The outputted data of both microprocessors 10 and 20 is combined on the data line since they simultaneously output information. (The sync line is also known as a data valid line and when the sync line is at zero, the information sent on the data line is immaterial. When no data of significance is being sent from one of the microprocessors, the sync transmission is in the form of zeros.) The data and sync transmission consists of pulling the respective line low for a &#34;0&#34; and releasing it (high) for a &#34;1&#34; bit. The clock lines of the microprocessors A and B are also illustrated. The clock lines are toggled (switched from high to low and vice versa) to indicate a change in control of the bus that interconnects the two microprocessors. The clock line input of each microprocessor is monitored for a change in level caused by the other microprocessor toggling the clock line. The toggling of the clock line by one of the microprocessors therefore functions as a control signal to indicate release of the bus to the other microprocessor. 
     In FIG. 3, the flow chart for both microprocessors is shown with the exception of the dashed line portion 40 which is included in only one of the microprocessors for reasons to be discussed. FIGS. 2 and 3 should be considered together in following the operation of the intercommunication system of the invention. 
     Assume a condition in which microprocessor 20 has toggled its clock output line CB, i.e. changed its voltage from high to low as indicated at 30. The toggled clock signal is a control signal that indicates that microprocessor 20 is outputting new information on the data and sync lines and has relinquished control of the bus. This toggling is noted by microprocessor 10 in due course. During this time, data and sync are outputted on these lines by both microprocessor 10 and microprocessor 20 as illustrated by the X&#39;s 22. Microprocessor 10, when its priorities permit, notes the toggled clock from microprocessor 20 at its (microprocessor 10&#39;s) clock input port and effectively takes control of the bus by terminating its own outputting of information to the data and sync lines and detecting the data and sync (from microprocessor 20) that are present at its data and sync ports. This is indicated by the block 24 labelled &#34;To 10&#34; where information on the lines is received by microprocessor 10. When reception of the data is complete, microprocessor 10 commences outputting its new data (and sync) as illustrated at 22&#39; and then toggles its clock line CA (illustrated at 32) which in effect sends a control signal to the clock input port of microprocessor 20 telling microprocessor 20 that control of the bus has been relinquished. Microprocessor 20 in turn (when its priorities permit) monitors its clock input port and seizes control of the bus by terminating its outputting of information and receiving and detecting the data and sync that is present on the data and sync ports. This is illustrated by block 26 labelled &#34;To 20&#34;. When reception of data is completed by microprocessor 20, it outputs new data (and sync) and toggles its clock output port (see 34) to indicate its relinquishing of control of the bus. Data and sync are therefore simultaneously being outputted by both microprocessors 10 and 20 for the period 22&#34; and when microprocessor 10&#39;s priorities permit, it monitors its clock input port to determine whether a toggle has occurred. If so, it ceases outputting on the data and sync lines and detects the information that is at its data and sync ports. This is illustrated by the block 28 in which data is received by microprocessor 10. After the receipt of the data, microprocessor 10 toggles its clock output port (see 36) after commencing outputting of data and sync on the data and sync lines. 
     It is seen that both microprocessors output information simultaneously on the data and sync lines. As mentioned above, should there be no relevant information to output, the sync that is outputted takes the form of zeros or other suitable indicators of no meaningful information. In the dotted portion of the flow chart, there is a decision block that indicates that should no clock line toggling be noted for a given time period, that a forced toggle of the clock output port of one of the microprocessors is made. This prevents lock up during start up of the microprocessors where no seizure of control of the bus occurs. 
     What has been described is a novel, simple serial data communication system for coupling two microprocessors that need to &#34;talk to&#34; each other but that also must be free to perform other tasks. It is recognized that numerous changes in the described embodiment of the invention will be apparent to those skilled in the art without departing from its true spirit and scope. The invention is to be limited only as defined in the claims.