Patent Publication Number: US-6711697-B1

Title: Data transfer method

Description:
FIELD OF THE INVENTION 
     The invention relates to a method of transferring serial data having a predetermined data length between a control device such as a CPU and a device such as a semiconductor IC to be controlled by the control device. 
     BACKGROUND OF THE INVENTION 
     A serial interface method is normally used in transferring predetermined data between a control device such as a CPU and a peripheral device such as an IC. 
     A typical serial interface method uses three data lines, including a data line SI for sending the serial data, a clock (CK) line, and a chip enablement (CE) line. Furthermore, if it is necessary, for example, to control 8-bit data as it is, an extra signal line for a data identification flag is needed to distinguish write data from command codes. Therefore, in total four lines are needed. 
     A serial data transfer method, called Inter Integrated Circuit (IIC) bus system, using only two data lines is also known in the art. In the IIC bus system, a master device and a multiplicity of IIC bus slave devices are connected via an IIC bus for exchange of address signals and data signals. 
     FIG. 1 shows a data format for use in an IIC bus system. As an example, in recording data in a predetermined IIC bus slave device via the IIC bus, the IIC bus master device raised a clock signal SCL to a HIGH level, while pulling data and address signals (SDA) from a HIGH to a LOW level. This establishes satisfactory conditions for data transfer, so that the bus master device sends an 8-bit address signal (A 7 -A 1 , R/W) to the IIC bus slave device. The eighth bit of the address signal (which corresponds to A 0  bit) is reserved for a read/write (R/W) bit which specifies a read or a write operation. 
     The IIC bus slave device addressed by the address signal returns an acknowledgment (ACK) signal to the IIC bus master device by lowering the SDA signal to the LOW level in the next clock subsequent to the eighth bit. Thus, the bus master device confirms that the IIC bus slave device is in the normal operating condition. 
     Upon receipt of the ACK signal, the IIC bus master device sends an 8-bit SDA data signal in synchronism with the clock signal SCL, which data signal is received and stored by the addressed IIC bus slave device. Upon receiving the data correctly, the addressed IIC bus slave device renders the SDA signal LOW, and returns an acknowledgment signal ACK. The IIC bus master device, upon receipt of the acknowledgment signal ACK, pulls up the SDA signals from the LOW to the HIGH level while the clock signal SCL is HIGH and ends the bussing operation. 
     Thus, in the IIC bus system, data transfer can be performed between a IIC bus master device and an arbitrary IIC bus slave device connected with the bus master device by means of two data transfer lines. 
     However, although such a conventional IIC bus system as mentioned above can transfer data using only two data lines, it require transfer of data amounting to a total of 18 bits in sending 8-bit data, including 7 bits slave device address and further bits for a R/W signal and an acknowledgment signal ACK, as shown in FIG.  1 . Moreover, in a case where a further signal must be included to indicate whether the serial data are data to be written in a device (referred to as write data) or a command code, additional 8 bits for the signal and a 1 acknowledgment bit, amounting to a total of 9 bits in a standard 8 bit data format, are needed for this purpose. 
     SUMMARY OF THE INVENTION 
     It is therefore an object of the invention to provide a simple and efficient data transfer method in which serial data can be transferred, in a reduced data format, between a control device such as a CPU and a device such as a semiconductor IC to be controlled by the control device, using only two signal lines as in IIC data transfer systems. 
     Thus, in one aspect of the invention, there is provided a serial data transfer method utilizing one clock line and one serial data line, comprising steps of: 
     transferring a predetermined number of serial data bits on said serial data line, with each bit in synchronism with a rise or a fall of a clock signal on said clock line; 
     placing a chip enablement signal in synchronism with a particular fall or rise of the clock signal associated with a particular one of said data bits; and 
     determining the range of said serial data based on said chip enablement signal. 
     It is noted that in transferring serial data from a control device such as a CPU to a slave device such as ICs, the chip enablement signal is placed at a predetermined bit position within the serial data bits, thereby reducing the data length to that of the serial data passed by two signal lines as in conventional IIC data transfer, thereby allowing simple yet efficient data transfer. 
     A data identification flag to distinguish serial data constituting a command code from serial data constituting write data may also be placed in the data bit that follows the chip enablement signal bit in synchronism with the falling or rising clock signal associated with the data bit. 
     The chip enablement signal allows determination of the data range of the sequential data. The data identification flag allows to distinguish write data from command codes. 
     In the data transfer system according to the invention, the above mentioned particular data bit to which said chip enablement signal is associated may be the second bit from the last in the serial data. This assures detection of the chip enablement signal. 
     The serial data bits may be sequentially read in and stored in registers by shifting the data bits in synchronism with the rising or fall clock signal. The serial data may be retrieved after the predetermined range of data bits are shifted in the registers following the detection of the chip enablement signal. 
     It should be appreciated that signals received are sequentially shifted in the registers and stored therein without querying whether the signals are valid sequential data or not, and that the serial data are retrieved when its validity is verified, thereby assuring receipt of the serial data by the addressed slave device in a simple and safe manner. 
     In cases where one-way data transfer is required, serial data transfer method of the invention is particularly useful. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a data format for a conventional IIC bus system. 
     FIG. 2 shows a concept of a data transfer system according to the invention 
     FIG. 3 shows a data format suitable for data transfer according to the invention. 
     FIG. 4 shows a circuit for use in data transfer according to the invention. 
     FIG. 5 shows a timing chart for use in data transfer according to the invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring to FIGS. 2 and 3, there is shown a concept of data transfer according to the invention and data format therefor, respectively. Referring to FIG. 2, a CPU  11  serving as a control device supplies serial data SI and serial clock signals SCK to an IC  14  of a peripheral display device, using two serial signal lines  12  and  13 . In the example shown herein, the data transfer is performed in one-way, so that the display IC  14  only receives the data. 
     The data format shown in FIG. 3 is defined in terms of serial data SI and serial clock signal SCK. 
     In the example shown herein, the serial data SI comprises a sequence of 8 data bits D 7  through D 0 . Each bit of the data D 7 -D 0  is placed in a first half segment of the bit so that it is synchronized to a rising clock signal. It is noted that the level of each bit of the serial data D 7 -D 0  is LOW during the second half segment of the bit in correspondence with the fall of the clock signal. 
     A chip enablement signal CE is provided to determine the data range of the serial data, and a data identification flag C/D is provided to distinguish serial data constituting a command code from serial data constituting write data. The chip enablement signal CE is placed in the second half segment of the seventh bit D 1  of the serial data bits D 7 -D 0 , while the data identification flag C/D is placed in the second half segment of the eighth bit D 0 . 
     The serial data SI, cast in the data format as described above, and the serial clock signal SCK are sent from the CPU  11  to the display IC  14  through the serial signal lines  12  and  13 , respectively. 
     The display IC  14  receives the transferred data as follows. 
     In synchronism with a rise of the clock signal, the levels (either HIGH or LOW) of each first half segment of the latest bits, where data bits D 7 -D 0  are embedded, is read in registers for at least one data length of the serial data. This causes the read data bits to be shifted through the registers. The level (either HIGH or LOW) of the bit in the second half segment of each data bit of the serial data SI is also read at every fall of the clock signal SCK to find a chip enablement signal CE placed in serial data. 
     If the level changes from LOW to HIGH during the falling clock SCK, the HIGH level portion of the bit is identified as the chip enablement signal. Since the chip enablement signal CE is placed in the second half segment of the seventh data bit D 1 , the serial data D 7 -D 0  are identified to be the 7 bits that precedes the CE bit plus a subsequent 1 bit. 
     Then the status of the data identification flag C/D is checked by determining the level of the data identification flag in the next falling clock signal SCK. If the level is HIGH, the sequence of data D 7 -D 0  is identified as a command code, but otherwise the data are identified as write data (data to be written in the peripheral device). 
     After the identification of the flag C/D and before the next rise of the clock pulse SCK, the serial data D 7 -D 0  are stored in internal registers of the display IC in accordance with the status of the data identification flag C/D. Then the chip enablement signal CE and the data identification flag C/D are cleared since they have now finished their roles. 
     Subsequently, similar storage, verification, and retrieval processing of the serial data are performed for the display IC  14  to obtain necessary data. 
     It is noted that the sequential data bits are not recognized as valid serial data SI unless a chip enablement signal having a HIGH level is detected for the serial data bits during the fall of a certain clock pulse SCK. Invalid bits will not be accepted by the display IC  14 . 
     As describe above, the invention provides the data format in which serial data D 7 -D 0  has a predetermined number of sequential data bits synchronized with the rising edges of the clock signal SCK, and a chip enablement signal CE within the serial data in synchronism with the fall of a clock pulse associated with the data bit D 1 , the chip enablement signal CE determining the data range of the serial data D 7 -D 0  with reference thereto. 
     Provided in association with the fall of the clock signal SCK associated with the data bit subsequent to the chip enablement signal CE, is a data identification flag C/D for determining if the serial data D 7 -D 0  is a command code or write data. 
     Thus, serial data transfer can be accomplished using only one signal line  12  for the serial data SI and another signal line  13  for the clock signal SCK by including a data identification flag C/D within the serial data D 7 -D 0  to determine if the serial data constitute a command code or write data. 
     Referring to FIG. 4, there is shown an exemplary circuit for use in the display IC  14  suitable for receiving serial data in the data format as described above. FIG. 5 is a timing chart for the circuit of FIG.  4 . As shown in FIG. 5, the serial data SI and the serial clock signal SCK are placed on the signal lines  12  and  13  by the CPU  11  controlling the circuit. 
     Coming back to FIG. 4, each of D type flip-flops DF 1 -DF 18 , equipped with a reset terminal R, reads data during a rise of clock signal entered to its clock terminal CLK, and is reset by a low level reset signal entered at the reset terminal R. A flip-flop DF 19  also has a set terminal S. The flip-flop DF 19  reads in data entered at a rise of the clock signal CLK, and is set by a LOW set signal entered at the terminal S. Inverters IV 1  through IV 7  are provided, coupled with NOR gates NR 1  and NR 2  as shown. A line RESET is provided in the display IC  14  to supply reset signals as needed by the IC  14 . 
     The serial data transfer method of the invention will now be described by way of example shown in FIGS. 4 and 5. 
     Entering the system in synchronism with the clock signal SCK, each bit of the serial data SI is sequentially read in the flip-flop DF 1  at a rise of the clock signal SCK and is shifted to the further flip-flops at the subsequent rises of the clock signal SCK. The serial data SI are thus read in and shifted through the flip-flops DF 1 -DF 8 . 
     If a data bit of the serial data SI has a LOW level during a rise of inverted serial clock signal {overscore (SCK)}, the Q output of the D type flip-flop DF 17  is LOW, the output of the inverter IV 6  is HIGH, the output of the inverter IV 7  is LOW, the Q output of the D type flip-flop DF 18  is LOW, the {overscore (Q)} output of the D type flip-flop DF 18  is HIGH, the output of the NOR gate NR 1  is HIGH, and the output of the NOR gate NR 2  is LOW. 
     Consequently, the D type flip-flops such as DF 17 , DF 18 , and DF 19  will not change their conditions, so that the serial data SI distributed in the first half segments of the data bits are sequentially read in and shifted through the flip-flops DF 1 -DF 8 . The data that has passed the last D type flip-flop DF 8  will be shifted away to disappear. 
     After the last data bit D 1  of the serial data SI has been read in, if the level of the serial data SI is HIGH at the rise of the next inverted clock signal {overscore (SCK)}, indicating that a chip enablement signal CE exists in the second half segment of the data bit for D 1 , the D type flip-flop DF 17  is inverted, generating a HIGH signal at its Q output terminal and a LOW signal at its {overscore (Q)} output terminal, while the inverter IV 6  pulls its output level from HIGH to LOW. Therefore, the D type flip-flops DF 9 -DF 16  will not read in the data from the flip-flops DF 1 -DF 8 , since the former flip-flops are adapted to read the data at the rise of a clock signal CLK. 
     Subsequently, as the data bit D 0  of the serial data SI is read in, the D type flip-flops DF 1 -DF 8  now have the entire serial data D 7 -D 0  registered therein. At the rise of the next inverted serial clock signal {overscore (SCK)}, the {overscore (Q)} output of the D type flip-flop DF 17  is inverted by the inverter IV 7 , going from LOW to HIGH, which is latched in the D type flip-flop DF 18 . The flip-flop DF 18  then generates a HIGH Q output and a LOW {overscore (Q)} output. 
     As the Q output of the D type flip-flop DF 18  goes HIGH, a reset signal is supplied via the NOR gate NR 1  to the reset terminals R of the D type flip-flops DF 17  and DF 18  to reset these flip-flops. 
     Resetting the D type flip-flops DF 17  and DF 18  causes the inverter IV 6  to pull up its output level from LOW to HIGH, which is supplied to the clock terminals of the D type flip-flops DF 9 -DF 16  as a rising signal for them to read in the serial data D 7 -D 0  from the D type flip-flops DF 1 -DF 8 . 
     On the other hand, the LOW {overscore (Q)} output of the D type flip-flop DF 18  and the LOW serial clock signal SCK are supplied to the clock input terminal CLK of the D type flip-flop DF 19  via the NOR gate NR 2 , so that the current condition of the serial data SI, i. e. the status of the data identification flag C/D appearing at the data input terminal D of the flip-flop DF 19 , is read into the D type flip-flop DF 18 . As a result, the data identification flag C/D is output from the {overscore (Q)} output terminal of the D type flip-flop DF 18 . 
     The serial data D 7 -D 0  stored in the D type flip-flops DF 9 -DF 16  and the data identification flag C/D stored in the D type flip-flop DF 19  are supplied to an appropriate section of the display IC  14 . 
     Subsequently, a reset signal is supplied to the reset terminal RESET prior to the rise of the next serial clock signal SCK, to thereby initializing the circuit and wait for the next serial data. 
     As described above, the serial data transfer of the invention utilizes two signal lines for supplying a serial clock signal SCK and serial data SI, in which serial data bits D 7 -D 0  are sequentially entered in D type flip-flops DF 1 -DF 8  by reading and shifting the serial data bits in synchronism with rise of the clock signal. A data bit that is HIGH during the fall of the clock signal SCK is identified as a chip enablement signal CE, which is used to determine the data range of the serial data by defining the data bit that precedes the CE bit by 7 bits as the leading data bit D 7 , and hence identifying the  8  bits that follow the bit D 7  as the valid serial data SI. 
     The level of the data bit subsequent to the chip enablement signal CE during the fall of the next clock signal SCK is regarded as a data identification flag C/D to distinguish serial data D 7 -D 0  constituting a command code from serial data D 7 -D 0  constituting write data, depending on the level (HIGH or LOW) of the data identification flag. Subsequent to the recognition of the data identification flag C/D, the serial data D 7 -D 0  are temporarily stored in internal registers until the next rise of the clock. The chip enablement signal CE and the data identification flag C/D are then cleared. 
     It will be appreciated that, in accordance with the invention, efficient one-way serial data transfer may be carried out using only two transmission lines, which is faster than conventional IIC bus data transfer. This is the case especially when the serial data constitute write data to a display. For example, in writing in a display panel having 128×128 dots with 8-bit serial data, the inventive serial data transfer requires a total of 16,384 clock pulses. In contrast, a conventional IIC bus data transfer will requires a total of 18,441 clock pulses {7(slave addresses)+1(R/W command)+1 (ACK signal)+2,048×(8(bit per data)+1(ACK signal))}, with neglect of all write commands. 
     Convention one-way serial data transfer can be controlled by 16,384 clock pulses, provided that four signal lines are available for the data transfer. 
     It will be apparent to a person of skill that the data length is not limited to 8 bits, but instead it can be of any arbitrary length. 
     It will be also apparent to a person of skill that, contrary to the example described above, the serial data can be read in at the falling edges of the clock signal SCK and the chip enablement signal and the data identification flag C/D may be obtained at rising edges of the clock pulses SCK.