|Publication number||US5056113 A|
|Application number||US 07/410,206|
|Publication date||Oct 8, 1991|
|Filing date||Sep 21, 1989|
|Priority date||Sep 22, 1988|
|Publication number||07410206, 410206, US 5056113 A, US 5056113A, US-A-5056113, US5056113 A, US5056113A|
|Original Assignee||Megasoft Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (8), Referenced by (7), Classifications (6), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present invention relates to a data communication system, and particularly to such a system capable of high speed and requiring fewer communication lines.
Hitherto, data communication between sender and receiver, used a communication path such as RS-232C. Then the data communication between sender and receiver is carried out by sending not only original data, but also data indicating the beginning and the end of the original data, and control signals such as ready or not-ready.
This addition of data indicating the beginning and the end of the original data, causes the total data to be transmitted to become long. Also, the requirement to send control data such as ready, not-ready, or strobe, results in a need for more communication paths than that necessary if only the original data were sent. In the case of RS-232C, since it was necessary to make the pace with its ruled baud rate, it was not possible to make a CPU exhibit its improved capability in processing speed sufficiently.
It is a purpose of the present invention to offer a data communication system through which the abovementioned problems are to be solved.
Devices communicate data via m parallel transmission lines. Original data is encoded using a coding table. Each unit of original data is encoded into a string of numeric figures. The maximum value of any figure is 2 to the power of m. This allows transmission of each numeric figure as m bits with each of the m bits transmitted simultaneously via the m parallel transmission lines. Also, adjacent figures in each code string must be different. This reduces the amount of overhead data, for example by eliminating the need for sending extra signals for timing purposes.
The data communication system in accordance with the present invention, is characterized in that,
first communication path comprises a plural number of bits of m for sending data from one sender/receiver to other sender/receiver and also second communication path comprises a plural number of bits of m for sending data from the latter sender/receiver to the former sender/receiver are provided,
coding tables consisting of a set of codes corresponding to original data to be sent and received each of which comprises in bits, are stored in memories provided respectively in both sender/receivers, each numeric figure in each code having a value not over m-th power of 2, and values at adjacent figure positions are necessarily different,
at sender side, the original data to be sent are coded based on the coding table and sent out through the first or the second communication path to receiver side,
at the receiver side, received coded data are decoded based on the coding table, wherein
by receiving every one figure of the coded code, in order to inform reception of the one figure of the coded code to the sender side, the receiver side change acknowledging number comprising one figure having a value not over m-th power of 2, which is send back through the first or the second communication path to the sender side, in every successive sequence and
the sender side sends next one figure of coded code after acknowledging the change of the acknowledging number sent from the receiver side, then the receiver side takes in the next one figure of coded code after acknowledging change of the coded code sent from the sender side.
While the novel features of the invention are set forth particularly in the appended claims, the invention, both as to organization and content, will be better understood and appreciated, along with other objects and features thereof, from the following detailed description taken in conjunction with the drawings.
FIG. 1 is a circuit diagram showing a data communication system in accordance with an embodiment of the present invention in a simplified manner.
FIG. 2 is a data chart between sender side and receiver side.
FIG. 3 is a flowchart of data transfer.
FIG. 4 is a data chart between sender side and receiver side in case of changing the sender side and the receiver side with each other.
In the following, referring to the drawings, a data communication system embodying the present invention is described.
FIG. 1 is a circuit diagram showing the data communication system in accordance with an embodiment of the present invention in a simplified manner.
A sender/receiver 1 comprises a personal computer or the like, and it is provided with a CPU 2, a memory 3, buffers 4 and 5 for data-sending, for example for RTS or DTR use, buffers 6 and 7 for data-receiving, for example for CTS or DCD use, and an RS-232C terminal connector 24. A sender/receiver 8 also comprises a personal computer or the like and is provided with a CPU 9, a memory 10, buffers 11 and 12 for data-sending, for example for RTS or DTR use, buffers 13 and 14 for data-receiving, for example for CTS or DCD use, and an RS-232C terminal connector 25. While in this embodiment, the terminals RTS, DTR, CTS and DCD for RS-232C are used, the terminals are not used in accordance with the standard of RS-232C. Also, the present invention can be applied to any communication path other than RS-232C.
The CPU 2, the memory 3, buffers 4, 5, 6, and 7 are all mutually connected through a bus 15. Also the CPU 9, the memory 10, buffers 11, 12, 13, and 14 are all mutually connected through a bus 16. Buffers 4, 5, 6, 7 and buffers 11, 12, 13, 14 comprise I/O ports and others. Buffers 4 and 13 as well as buffers 5 and 14 are respectively connected through the RS-232C terminal connector 24, a 2-bit communication path 19 composed of data lines 17 and 18, and the RS-232C terminal connector 25. Also, buffers 6 and 11 as well as buffers 7 and 12 are respectively connected through the RS-232C terminal connector 24, a 2-bit communication path 22 composed of data lines 20 and 21, and the RS-232C terminal connector 25.
In this embodiment, data to be sent are stored in a floppy disk, then the personal computer 1 at the sender side reads a first 1 byte (8 bits) out of data to be sent from a floppy disk drive 30 into a buffer of the CPU 2. Those data to be sent (called original data) which were read into the CPU 2 are coded in accordance with a coding table stored in the memory 3. The CPU sends out those coded data with one figure at a time through the communication path 19 to the CPU 9.
The CPU 9 which received the coded data decodes those coded data into the original data in accordance with a coding table (the same table as that in the sender side). Those decoded data are sent to a floppy disk drive 40 through an interface 42 and recorded on a floppy disk.
As has been described above, data of an amount of 1 byte are transferred. Data of second byte as well as those data following this second byte are transferred similarly.
Besides the above, in the actual data transfer operation, it is necessary to confirm the waiting state or the receiving completion state at the receiver side as well as the sending completion state at the sender side. In this invention, by devising the coding scheme, the confirmation can be carried out without requiring to add any new transmission line. Furthermore it can make the operation even faster. Therefore, before describing the detailed operation of the communication, detail of the coding is described below.
In this embodiment, one byte of original data to be sent and received is composed of 8 bits (n=8). Accordingly, the number of possible different values of original data is 28, i.e. 256 values from 0 to 255. In FIG. 1, since the communication path is composed of 2 parallel lines 19 and 22 (m=2) simultaneously carrying 2 bits, each digit of coding codes is a number of a scale of the 2-nd power of 2, that is, 22 =4 different numbers starting from 0, i.e., 0, 1, 2, 3. When constructing the coding table, considerations must be paid on the following points:
Original data and coded codes must have a one-to-one correspondence.
In each code string, adjacent figures have different numeric values. By this, sending of the succeeding data can be recognized. Consequently, control signal such as the strobe signal is not required at the receiver side.
Each code string starts with a heading number. In this embodiment, the predetermined heading number is "1", and it must appear as the first figure.
Upon the reception of coded codes at the receiver side, in order to inform the readiness of the reception, as the receiving-ready number and at the same time as a second number other than the above heading number, in this embodiment, a number "3" is sent back to the sender side.
When the sender side and the receiver side are changed with each other and if "3" were designated for the last figure of the coded code the sender side might confuse "3" which is the last figure of the code string, with the receiving-ready number 3. For preventing this confusion, the last figure of the coded code should be a third number (ending number) which is a number other than the heading number and the receiving-ready number. In this embodiment, "0" or "2" is designated for the ending number. By this, it becomes possible to distinguish the ending number from the heading number or from the receiving-ready number, and hence the next following data can be transferred immediately after the end of the transfer of the present data.
Further, short coded codes must be assigned to those original data having high occurrence frequencies. By this, high-speed data transfer is possible. In general, in case where each coded code has different figure long in serial data transfer, a signal for showing the last figure of the coded code is necessary. However, in the present invention, the signal for showing the last figure of the coded code is not necessary, by devising the coding table as follows:
One code string for an original datum having high occurrence frequencies, is for example "120". Code strings for original data having lower occurrence frequencies, do not start with "120" irrespective of the total figure number in the coding table in the present invention. Therefore, the receiving side having the code table can find the end of code string immediately on receiving "120". Above mentioned relation is kept in all coded codes.
An example of the coding table constructed based on the above-described points of consideration is shown in TABLE 1.
TABLE 1______________________________________Coding TableOrigin. CodedData Code______________________________________ 0 1201 10102 12103 13104 101205 103206 121207 123208 130209 1312010 10202011 10201012 10201213 10203014 10203215 10210216 10212017 10213018 10213219 10230220 10232021 10231022 10231223 10121024 10121225 10123026 10123227 10130228 10132029 10131030 10131231 10302032 10301033 10301234 10303035 10303236 10321037 10321238 10323039 10323240 10310241 10312042 10313043 10313244 12121045 12121246 12123047 12123248 12130249 12132050 12131051 12131252 12302053 12301054 12301255 12303056 12303257 12321058 12321259 12323060 12323261 12310262 12312063 12313064 12313265 13021066 13021067 13023068 13023269 13010270 13012071 13013072 13013273 13030274 13032075 13031076 13031277 13202078 13201079 13201280 13203081 13203282 13210283 13212084 13213085 13213286 13230287 13232088 13231089 13231290 13121091 13121292 13123093 13123294 13130295 13132096 13131097 13131298 102021099 1020212100 1020230101 1020232102 1020130103 1020132104 1020310105 1020312106 1021010107 1021012108 1021030109 1021032110 1021210111 1021212112 1021230113 1021232114 1011310115 1021312116 1023010117 1023012118 1023030119 1023032120 1023210121 1023212122 1023230123 1023232124 1023130125 1023132126 1012130127 1012132128 1012310129 1012312130 1013010131 1013012132 1013030133 1013032134 1013210135 1013212136 1013230137 1013232138 1013130139 1013132140 1030210141 1030212142 1030230143 1030232144 1030130145 1030132146 1030310147 1030312148 1032130149 1032132150 1032310151 1032312152 1031010153 1031012154 1031030155 1031032156 1031210157 1031212158 1031230159 1031232160 1031310161 1031312162 1212130163 1212132164 1212310165 1212312166 1213010167 1213012168 1213030169 1213032170 1213210171 1213212172 1213230173 1213232174 1213130175 1213132176 1230210177 1230212178 1230230179 1230232180 1230130181 1230132182 1230310183 1230312184 1232130185 1232132186 1232310187 1232312188 1231010189 1231012190 1231030191 1231032192 1231210193 1231212194 1231230195 1231232196 1231310197 1231312198 1302130199 1302132200 1302310201 1302312202 1301010203 1301012204 1301030205 1301032206 1301210207 1301212208 1301230209 1301232210 1301310211 1301312212 1303010213 1303012214 1303030215 1303032216 1303210217 1303212218 1303230219 1303232220 1303130221 1303132222 1320210223 1320212224 1320230225 1320232226 1320130227 1320132228 1320310229 1320312230 1321010231 1321012232 1321030233 1321032234 1321210235 1321212236 1321230237 1321232238 1321310239 1321312240 1323010241 1323012242 1323030243 1323032244 1323210245 1323212246 1323230247 1323232248 1323130249 1323132250 1312130251 1312132252 1312310253 1312312254 1313010255 1313012______________________________________
This coding table is stored in the memory 3 as well as in the memory 4.
Upon the reception of coded codes at the receiver side, "3" is sent out to the sender as described before. And every time the receiver receives every one digit of coded codes, receiver side sends back the acknowledging number which is a third number other than the above first and second numbers, that is "0" or "2" in this working example, alternatively in every successive sequence.
By this coding table with the receiving-ready number as well as the acknowledging number, any addition of data for indicating the beginning and the end of original data becomes unnecessary. Hence, control signals indicating states such as ready, not-ready, strobe, etc. become unnecessary. As a result of this, the communication path can be simplified. Furthermore, CPU 2 and CPU 9 can exhibit their high-speed capability, thereby a high-speed data communication without errors can be achieved.
By the normal use of a conventional RS-232C terminal, up to an order of 9600 baud could usually be achieved, whereas by the present data communication system, using the RS-232C terminals 24 and 25 and providing a special wiring to the communication path 19 as well as to the communication path 22, communication speeds of 40,000-80,000 baud can be achieved so far.
Referring to FIGS. 1, 2 and 3, the data communication between the sender/receiver 1 and the sender/receiver 8, is described hereafter. FIG. 2 shows the change of data transferred between the sender/receiver 1 and sender/receiver 8. FIG. 3 shows the flow-chart of the data communication. In FIG. 2, "Rcv to Snd" shows change of data on the communication path 19 from sender side to receiver side. "Snd to Rcv" shows change of data on the communication path 22 from receiver side to sender side. "Held in Rcv side" shows data held in CPU of the receiver side. "Original data" shows restored original data.
A case where original data (0)10, (19)10. . . in decimal (00000000, 00010011. . . in binary) are transferred from the sender/receiver 1 to sender/receiver 8, is described below. First, the CPU 2 of sender side 1 codes (0)10 in accordance with the table 1 and obtains coding code or string "120" (S1 of FIG. 3). Next, the CPU 2 checks whether the receiver side 8 is in receiving-ready state or not (S2 of FIG. 3). When the receiver side 8 is ready for receiving, the CPU 9 of receiver side 8 outputs "3" as a receiving-ready number on the bus 16, the buffers 11 and 12 and communication path 22 (t1 of FIG. 2, S10 of FIG. 3), that is, the receiver side 8 makes H states of RTS terminal and DTR terminal. Therefore, RTS terminal and DTR terminal of sender side 1 becomes H state, i.e. "3". CPU 2 of sender side 1 knows that the receiver side 8 is ready for receiving, by receiving the "3" as a receiving-ready number (S2 of FIG. 3) and then send first figure "1" of the code string on the communication path 19 (t2 of FIG. 2 and S3 of FIG. 3). In other words, CPU 2 applies L state to the RTS terminal of sender side 1 and makes H state to the RTS terminal of sender side 1. Therefore, in the receiver side 8 CTS terminal becomes L state and DCD terminal becomes H state. In other words, "1" is transferred through the path, CPU 2→the bus 15→the buffers 4 and 5→the terminal 24 of RS-232C→the communication path 19→the terminal 25 of RS-232C→the buffers 13 and 14→the bus 16→the CPU 9.
As has been described above, the code string must be started from "1" as the heading number. Therefore, the CPU 9 of receiver side 8 knows the first figure of the code string by receiving the "1" through the communication path 19 (t2 of FIG. 2, S11 of FIG. 3). The CPU 9 takes in the "1" (m1 of FIG. 2, S13 of FIG. 3). After complete reception, the CPU 9 transfers "0", i.e. RTS=L and DTR=L, through the path 19 (t3 of FIG. 2, S14 of FIG. 3). Next, the CPU 9 of receiver side 8 searches whether the code "1" exists in the table or not (S15 of FIG. 3). Because there is not code of "1" in the table, the step S12 is carried out.
On the other hand, the CPU 2 of sender side 1 knows that the receiver side 8 takes "1" by watching the change of the data on path 19 from "3" to "0" (S5 of FIG. 3) and then sends the next figure "2" (RTS=H, DTR=L) of the code string (t4 of FIG. 2, S3 of FIG. 3). The CPU 9 of receiver side 8 knows that next data is transferred by watching the change of data of the path 19 from "1" to "2" (S12 of FIG. 3). The CPU 9 takes in "2" from the path 19 (S13 of FIG. 3) and transfers to "2" on the path 22 (t5 of FIG. 2, S14 of FIG. 3). The CPU 9 of receiver side 8 stores the "12" combination of the former taken code "1" and the present taken code "2" (m2 of FIG. 2). The CPU 9 searches the table and determines whether the code "12" exists in the table or not (S15 of FIG. 3). Because there is no code of "12" in the table, the step S12 is carried out.
The CPU 2 of sender side 1 knows that the receiver side 8 takes "2" by watching the change of the data on path 19 from "0" to "2" (S5 of FIG. 3) and then sends next figure "0" (RTS=L, DTR=L) of the code string (t6 of FIG. 2, S3 of FIG. 3). The CPU 9 of receiver side 8 knows that next data is transferred by watching the change of data on the path 19 from "2" to "0" (S12 of FIG. 3). The CPU 9 takes in "0" from the path 19 (S13 of FIG. 3) and transferred to "0" on the path 22 (t7 of FIG. 2, S14 of FIG. 3). The CPU 9 of receiver side 8 stores the "120" combination of the former taken code "12" with the present taken code "0" (m3 of FIG. 2). The CPU 9 searches and determines whether the code "120" exists in the table or not (S15 of FIG. 3). Because the code string "120" is corresponds to original datum (0)10, the original datum (0)10 is obtained (See Table 1).
As has been described above, there is no code starting from "120" other than the code corresponding to the original datum of (0)10. Therefore, the receiver side 8 knows that the "0" is last figure of the coded code by receiving the "0" of code "120". The end of a one group of code can be easily known without any signal for showing the end of code in the present invention.
Next, the CPU 9 processes the obtained original data (0)10, for example CPU 9 stores the data in the memory 10 or outputs the data to the FDD 40 (S16 of FIG. 3). After completing the processing, CPU 9 transfers "3" as receiving-ready number through the path 22 (t8 of FIG. 2, S10 of FIG. 3).
On the other hand, CPU 2 carries out the step S1 through the step S4, after sending the last figure "0" of the coded code "012". In the step S1, the CPU 2 codes the next original data of (19)10 in accordance with the table 1 and obtains code string "102302". The CPU 2 starts the data transfer, after receiving "3" from the receiver side 8 (S2 of FIG. 3). The data transfer is carried out in the above mentioned manner. Thus a high speed data communication can be achieved.
There are some cases of inversing the sender side and receiver side with each other in carrying out the communication. FIG. 4 shows the data communication in this case. First, the data (0)10 is transferred from the sender/receiver 1 to the sender/receiver 8. After transferring the data (0)10, the sender side and the receiver side exchange functions with each other at time X. In other words, the sender/receiver 8 sends data to the sender/receiver 1 after the time X. The sender 8 starts the transferring after receiving the receiving-ready signal "3". At the time X, the path 19 shows "0" which is the last figure of the coded code. The sender 8 starts to transfer data (t9 of FIG. 4), after changing the data on the path 19 from "0" to "3" (t8 of FIG. 4). Subsequent data communication is carried out as described above. By designating the value of the last figure of the code string as a value other than the receiving-ready number "3", the error operation can be prevented even in case of changing the receiver side and sender side with each other.
While in the above mentioned embodiment the coding is carried out one by one, the coding may be carried out together and memorized.
Hereupon, although in the above embodiment, the bit number n of data to be sent has been selected to be 8, it can also be applied to the case of other bit number. The number of transmission path, m, can also be selected arbitrarily.
As has been described above in detail, in the data communication system in accordance with the present invention, provides coding tables comprised of code strings in which each figure has a value not greater than the m-th power of 2. Also those values at adjacent figures are necessarily different. The receiver side sends the acknowledging number back to the sender side upon receiving every one figure of a code string. The sender side sends the next figure of a coded string after receiving the acknowledging number, and the receiver side takes in the next figure of a code string each after acknowledgment. Accordingly, control signals such as clock signal and strobe signal are not required any more, and also the number of communication path can be reduced.
Moreover, in the data communication system in accordance with the present invention, the first figure of each code string is designated to be a predetermined heading number. Therefore, each first figure is recognized as the head of code, hence synchronization to the head of each codes can be attained easily. Thus, since the code strings represent not only data themselves but also head figures thereof, it becomes not unnecessary to add any extra data for indicating the beginning of codes.
Furthermore, in the data communication system in accordance with the present invention, at the receiver side, upon the reception of coded codes, in order to inform the readiness of reception to the sender side, the receiving-ready number is sent to the sender side through the communication path. Thus the coded codes can be sent with a high reliability.
Furthermore, in the data communication system in accordance with the present invention, the last figure of each code string a predetermined ending number other than the acknowledging number and the receiving-ready number. Therefore, errors can be prevented even in case of changing the receiver side operations and sender side with each other.
Moreover, in the data communication system in accordance with the present invention, for those original data having high occurrence frequencies, short coded data are assigned, thereby still faster data communication becomes possible. Further, because values from head figure to P-th figure of a string having P figures are not the same as the head figure to P-th figure of any other string having Q figures longer than the P figure string, the end of a short code string can be known. Therefore, no signal for showing end of coded code strings is necessary even when using variable length coded code.
Although the invention has been described in its preferred form with a certain degree of particularity, it is understood that the present disclosure of the preferred form has been changed in the details of construction and the combination and arrangement of parts may be resorted to without departing from the spirit and the scope of the invention as hereinafter claimed.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4121259 *||Nov 23, 1976||Oct 17, 1978||Dr.-Ing. Rudolf Hell Gmbh||Method for digital run-length coding with redundance reduction for transmission of binarily coded picture informations|
|US4360840 *||May 13, 1980||Nov 23, 1982||Am International, Inc.||Real time data compression/decompression scheme for facsimile transmission system|
|US4622685 *||May 30, 1985||Nov 11, 1986||Racal Data Communications Inc.||RTS/DCD simulator|
|US4626829 *||Aug 19, 1985||Dec 2, 1986||Intelligent Storage Inc.||Data compression using run length encoding and statistical encoding|
|US4736394 *||Mar 28, 1986||Apr 5, 1988||Ing. C. Olivetti & C., S.P.A.||Interface circuit for transmitting and receiving data|
|US4791653 *||Aug 25, 1987||Dec 13, 1988||Hewlett-Packard Company||Pseudorandom word sequence synchronizer|
|US4805194 *||Oct 17, 1985||Feb 14, 1989||Ampex Corporation||Serial data communication system|
|US4884287 *||Apr 1, 1988||Nov 28, 1989||Ncr Corporation||Converter device for interconnecting systems having different communication standards|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US5343503 *||Nov 22, 1991||Aug 30, 1994||Next, Inc.||Method and apparatus for clock and data delivery on a bus|
|US5394438 *||Oct 10, 1991||Feb 28, 1995||Megasoft, Inc.||Data transmitting method|
|US5517669 *||Mar 16, 1994||May 14, 1996||Hitachi, Ltd.||Cyclic data communication system|
|US5548614 *||Apr 19, 1995||Aug 20, 1996||Echelon Corporation||Method and apparatus for interfacing between a twisted pair and an intelligent cell|
|US7257656||Mar 1, 2000||Aug 14, 2007||Moeller Gmbh||Device for synchronous transmission of data between a master device and a slave device|
|CN100388741C||Mar 1, 2000||May 14, 2008||默勒股份有限公司||Data transmission device|
|WO2000064125A1 *||Mar 1, 2000||Oct 26, 2000||Culca Horea Stefan||Data transmission device|
|U.S. Classification||375/285, 375/377|
|International Classification||H04L29/08, H04L29/06|
|Sep 21, 1989||AS||Assignment|
Owner name: MEGASOFT INC., 16-9, ENOKI-CHO, SUITA-SHI, 564 JAP
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:TAKAI, MAMORU;REEL/FRAME:005142/0520
Effective date: 19890918
|Apr 10, 1995||FPAY||Fee payment|
Year of fee payment: 4
|Jan 14, 1999||FPAY||Fee payment|
Year of fee payment: 8
|Mar 13, 2003||FPAY||Fee payment|
Year of fee payment: 12