METHOD OF, AND APPARATUS FOR DATA COMMUNICATION

Abstract: A method of data communication, particularly for long data messages, is disclosed. The data code words of a message are arranged in segments, each with its own header, and are assigned message and segment identification. A receiver reconstructs the data message segment by segment and in the non-group call situation transmits an acknowledgement after the receipt of a segment. The receiver comprises a resettable timer which is set on the receipt of an acceptable segment and runs for a pre-determined duration. If another segment is received within the duration of the timer and has the same identification as said acceptable segment, then it is treated as a retransmission. Efficiency of the data communication method can be increased by retransmitted data code words being included with new data code words in a segment rather than being transmitted in a separate segment requiring its own header. Optionally an efficient form of bit interleaving may be used.

Description: The present invention relates to a method of, and apparatus for, data communication, which has particular, but not exclusive, application in mobile data communication systems. A problem which occurs in data communication is corruption due to for example channel noise, resulting in the loss of part or all of the message data. Two transmission protocols for use with mobile data systems are disclosed in a paper "Predicting the range and throughput of mobile data systems" by P. J. Mabey reported in the IEEE Vehicular Technology Conference, May 1982, San Diego, USA, pages 370 to 374. Before discussing them reference will be made to Figure 1 of the accompanying drawings which shows a typical data format. The format begins with a preamble PR of 16 bit-reversals 1010 ... 10 to enable bit synchronisation in a data demodulator and is followed by a 16-bit synchronisation sequence SYN to enable code word framing. This is followed by the information which is transmitted in 64-bit code words based on a cyclic error detecting and/or correcting code, each code word containing 48 information bits and 16 error-check bits. The first code word ACW of the message contains addressing information and some data, and is sufficient for short message applications such as status reporting and precoded messages. For longer data messages additional code words DCW1 to DCWn are concatenated onto the first code word ACW as required to accommodate data. The first retransmission protocol described in the above mentioned paper is termed a simple retransmission protocol. Essentially in this protocol the sending equipment transmits the entire message and then waits for an acknowledgement from the receiving equipment. If no acknowledgement is received or if a retransmission is requested the sending equipment retransmits the entire message and again waits for an acknowledgement. The message may be retransmitted up to a predetermined maximum number of times after which if no acknowledgement has been received the transaction is terminated. For each transmission the receiving equipment must successfully decode the synchronisation word SYN and address code word ACW before it can decode the data code words DCW. Decodable data words may be stored and undecodable data words are discarded. The receiving equipment uses data words from the retransmissions, if necessary, to complete the message and transmits a transaction completion acknowledgement only when it has assembled the whole message (or receives a repeat of a message it has previously completed, because its previous acknowledgement was not decoded or was delayed). Because each retransmission comprises the entire message this simple retransmission protocol can lead to a low throughput. Furthermore it is not suitable for group calls where the receiving equipment does not send acknowledgement signals. The second of the known retransmission protocols is termed selective retransmission protocol and enables a higher throughput by avoiding retransmission of data code words already decoded successfully. In this second protocol the receiving equipment transmits an acknowledgement to every transmission that it receives to specify which data code words must be retransmitted thus improving throughput. In the event of an acknowledgement not being received successfully the sending equipment repeats its previous transmission. The transaction is complete when an acknowledgement is received which indicates that the receiving equipment has assembled the whole message, or when the sending equipment has made the predetermined maximum number of transmissions. This second protocol also relies on acknowledgements being sent by the receiving equipment which makes it unsuitable for group calls. Additional problems which arise with retransmission protocols are "duplication" of messages at the receiving equipment when retransmissions are made, the "omission" of messages at the receiving equipment due to corruption in transmission, and "lost" messages due to a sender interpreting an acknowledgement as being for the wrong message because for example the acknowledgement was late. These problems are overcome in line protocols, known per se, by numbering schemes. However, line protocols have the disadvantage of signalling overheads for call establishment or call initialisation. Also they are not optimised for group calls. It is known that efficiency can be improved by transmitting data as a series of segments but as far as is known such protocols require a call establishment phase which is an undesirable overhead, particularly for small amounts of data. Compcon 83, 25th IEEE Computer Society International Conference, Arlington VA, 25th to 29th September, 1983, pages 66 to 70, discusses protocols associated with the transfer of large volumes of data over long distances. The transfer of data takes place by radio through satellite and terrestial links which inevitably involve such great distances that delays of the order of 0.320 seconds are incurred each way on the satellite link(s). The amount of data can vary in size from a portion of a magnetic tape to several complete disc files. The transmission time depends on the transmission rate used and the size of the data file and in the case of a data file of 3x10 10 bits it will take 6.9 days to transmit at 56 kilobits per second (kbps) and 1.5 hours to transmit at 6.312 Megabits per second. The article considers three protocols (1) Block-by-Block, (2) Restart-After-Error-Detection and (3) Continuous. In the Block-by-Block protocol the transmission and receiving terminals must exchange signals to assure that each is prepared for the transmission. The data is transmitted in blocks of bits, there being 10,000 or less bits per block. Frame sizes of about 4,000 bits are said to provide efficient protocol performance on satellite links. Each transmitted block may be identified by a sequence number as a check to assure that the data is received in order. A cyclical redundancy check (CRC) is added to each block so the receiving station can check for errors introduced during the transmission over the channel. The first and last blocks of the transmission are uniquely identified to bound the transmission. Acknowledgements returned by the receiving terminal are short transmissions which identify the block just received and provide a positive or negative acknowledgement information. In the case of a negative acknowledgement being transmitted, the block which had just been transmitted is retransmitted. The article continues by discussing the Restart-After-Error-­ Detection and Continuous protocols which also involve identifying each block by a sequence number. In drawing conclusions from considering the three ptotocols, the article unambiguously states that Block-by-Block protocols are not suitable for satellite services at megabit per second and higher data transmission rates. This article is not particularly relevant to a mobile data telecommunication system in which the volume of data is small but the number of messages being transmitted is large so that the risk of a mobile data terminal receiving two different messages from separate sources is greater than in a satellite link. Further the described protocols for sending large volumes are not suited to group call situations in which acknowledgements are not transmitted but the message is repeated at predetermined times. The time overhead incurred in preparing the transmission and receiving terminals can be tolerated in the case of a transmission lasting hours and perhaps days but cannot be accepted when the messages are of very short duration. An object of the present invention is to overcome these disadvantages when communicating data and provide a more efficient and flexible system. According to the present invention there is provided a method of communicating messages comprising data code words from a transmitter to a receiver, wherein the data code words of each message are arranged into a segment or a plurality of segments each of predetermined length and wherein an identification is assigned to the segment or each segment of a sequence of segments to be transmitted, said identification being included in each message segment to indicate the position of the segment in the sequences characterised in that an identification is assigned to each message and that a code word identifying such message is included in the or at least one segment of each message. In the case of a short message, for example less than 30 source data code words, it may be treated as a single segment. When implementing the method in accordance with the present invention it may be arranged that all the segments transmitted contain their respective segment identification and at least the first segment of a long message or the only segment of a short message includes its message identification. In order to avoid the risk of the retransmission of the same segment being treated as a new message, the receiving equipment may include a resettable timer which, when started by the receipt of a segment, runs for a duration which is fixed or may be determined dynamically with respect to the length of the segment and if another segment is received having the same segment identification and if present also message identification within said duration the receiving equipment may treat it as a retransmission of a previous segment. However the receipt of such a segment after the expiry of said duration may be treated as a new segment. The timer may be reset on the receipt of every segment or alternatively on the receipt of each new segment. If desired the data code words may be transmitted by optional bit interleaving and on receipt be de-interleaved in a complementary manner. The decision as to whether to bit interleave the data code words or not may be made dynamically and may depend on several factors, for example, the capabilities of the decoder at the receiving equipment and the prevailing channel conditions. An advantage of using bit interleaving is that if a burst of errors occurs during transmission the errors are dispersed among several code words thus increasing the likelihood of the code being able to correct the errors. Consequently the number of segments which need to be retransmitted is reduced. Under some circumstances bit interleaving can be detrimental, hence the benefit of making bit interleaving optional. If the data code words are bit interleaved an indication, for example a flag, may be included in the message to indicate to the receiving equipment that the data code words have been interleaved. The degree of interleaving may be dependent on the segment length because the number of code words in a segment may vary. Irrespective of the number of code words in a segment, they can all be interleaved. By making the interleaving degree variable, that is dependent on segment length, the maximum benefit of bit interleaving is gained. The message data may be encrypted in which case an indication, for example a flag, may be included in the message to indicate to the receiving equipment that the message data has been encrypted. The need for encryption may depend on the nature of the message data itself and/or the selected address to which it is being sent. Both bit interleaving and encryption may be used together. The efficiency of the data message protocol can be increased by a segment comprising data code words which are to be retransmitted together with new data code words concatenated onto the ones to be retransmitted. This avoids having to transmit a short segment with its associated header for the retransmitted data code words alone. The present invention also provides a receiver for use with the method in accordance with the present invention; the receiver being characterised by means responsive to identifications assigned to messages and segments, means for sending an acknowledgement signal in response to receiving a segment, and means for providing an indication in a field of the acknowledgement signal as to whether the segment has been successfully decoded or as to whether a selective or non-selective retransmission is requested. If desired the receiver may comprise resettable timing means responsive to the acceptance of a segment for setting a time period of a predetermined duration, and means for treating a segment which has been received within the time period and has been assigned the same segment identification as an already received segment as a retransmission of the already received segment. Optionally the receiver may further comprise means for treating a segment received after the expiry of the time period but having the same identification as an earlier received message segment, as a new message. The present invention will now be described, by way of example, with reference to Figures 2 to 5 of the accompanying drawings, wherein: Figure 2 illustrates the format of an address code word ACW which forms part of the header of a segment, Figure 3 illustrates the format of the first data code word DCW 1 of a segment, Figure 4 illustrates the format of an acknowledgement address code word ACKD transmitted by receiving equipment, and Figure 5 illustrates the format of the optional data code word following the acknowledgement address code word. The method of transmitting message data in accordance with the present invention involves arranging concatenated data code words into a number of segments and each segment is sent in turn. Message and segment identification schemes, for example the use of consecutive numbers, are used to recognise duplicate messages at the receiving equipment. The message data is sent segment by segment which permits the transaction to be aborted early if the channel is poor and allows the first part of a message to be delivered to its destination before the whole transaction has been completed. Additionally segmenting also improves throughput and reduces the delays by reducing the amount of repetition. In formatting the message, each segment contains preamble, synchronisation sequence and an address code word ACW followed by a plurality of data code words DCW, typically the number of data code words lies between 1 and 31. The message and segment identification numbers are included in each segment, for example in the first data code word following the address code word. The format of a 64 bit address code word ACW of a segment is shown in Figure 2 and the format of the first data code word DCW 1 is shown in Figure 3. The number of bits used by each part of the address code word and first data code word DCW1 are also indicated. Referring to the address code word ACW in Figure 2 the first bit is used to indicate if the code word is an address code word, binary digit "1" or a data code word, binary digit "0". PFIX is an address prefix. IDENT 1 is the address of the receiving equipment or group of receiving equipments. CAT indicates that this address code word is of the category used for message data transmission. SEGL is an indication of the number of concatenated data code words following the address code word. As five bits have been allocated then the maximum number is 31 unless encoding of these digits is carried out. IDENT 2 is the address of the sending equipment. INT has a value "0" if the data codewords are not interleaved and a value "1" if they are interleaved. CRYPT has a value "0" if data codewords are not encrypted and a value "1" if they are encrypted. The last field or part P comprises parity check bits for error correction or detection. The non-described parts EXT, FLAG 1 and FLAG 2 are of no interest insofar as understanding the present invention is concerned. In Figure 3 the first bit of the first data code word DCW 1 is "0" indicating that it is a data code word. SPEC is available to indicate for example a specific type of data or data construction, or direct the data to a specified peripheral address. NSEG denotes the segment number. NUM indicates the message number or the number of repeated code words in the segment. More particularly if NSEG = 0 indicating a first segment of a message, then NUM = NMESS; if NSEG does not equal 0 then NUM = NREP, where NMESS is the message number and NREP is the number of repeated code words in the segment and is set to zero for non-selective transmissions. LAST is zero for all except the last segment of the message. Within the final code word of the segment LAST denotes the number of data bits used in the code word. If C = 1 then the CRC field contains a 16 bit checksum conforming to CCITT Recommendation V24. Alternatively, if C has a value "0" the data is not protected by a checksum contained in the CRC field in which case this field is available for customisation. RSVD are bits which have not been dedicated and the final sixteen bits P are parity check bits for the 64 bit code word. In forming a segment the data code words may be compiled by optional bit interleaving. In optional bit interleaving data code words are read into a two dimension store in a row by row direction and read-out in a column by column direction so that all the first bits are read out, then all the second bits, and so on. This means that if there is a burst of errors in transmission then the errors are shared among the data code words and at the receiving equipment the likelihood of errors exceeding the error correction capability of the decoder is reduced. Thus the amount of retransmission may be reduced. The use of optional bit interleaving depends on the likely length of the burst, the number of data code words in the segments to be interleaved and the mode of error correction in the receiving equipment. Additionally the receiving equipment must be capable of de-interleaving the interleaved data. If required the data code words may be encrypted in which case an indication, for example a flag, is included in the message to indicate to the receiving equipment that the message data has been encrypted. The data code words are optionally bit interleaved before being encrypted. Figure 4 illustrates the address code word of an acknowledgement address code word ACKD to a data segment sent by the receiving equipment to the sending or transmitting equipment. The first bit has a value "1" indicating that the code word is an address code word. PFIX is the address prefix, IDENT 1 is the address of the receiving equipment acknowledging the data segment. CAT indicates that this address code word is of the category used for acknowledgement and TYPE indicates the type of acknowledgement, for example specifying whether the segment has been successfully decoded or whether a selective or non-selective retransmission of the segment is requested. IDENT 2 is the identity of the equipment which has sent the data segment. NEW has a value "0" if a non-zero segment number is being acknowledged and "1" if a segment number zero (that is the first segment of a new message) is being acknowledged. ANUM is the acknowledgement number, if NEW = 0 then ANUM = NSEG preceded by a zero and if NEW = 1 then ANUM = NMESS in each case (for the segment being acknowledged). P indicates the parity check bits for the 64 bit code word. In the case of the acknowledgement address code word requesting a selective retransmission then it is followed by a control data word as shown in Figure 5. The main field of interest is SELF which comprises selective retransmission flags indicating which source data codewords of the segment require retransmission. A single bit is allocated to each data code word; "0" indicates that no repeat is required and "1" indicates that the associated data code word is required to be repeated. The most significant bit in the SELF field corresponds to the first transmitted source data code word in the segment. When the segment contains fewer than 30 source data codewords, the retransmission information is placed in the most significant bits of the SELF field. The trailing unused bits are set to zero. The procedures of the protocol will now be described with reference to a call to an individual recipient. In operation the sender encodes the source data in a sequence of data codewords. There are 47 data bits available in each data codeword. If necessary, trailing zeros are added to the source data to complete the final data codeword. Messages occupying fewer than 30 source data codewords may be sent as a single segment. Longer messages must be subdivided and sent as a number of segments. Each segment may comprise up to 30 source data codewords. A header is appended to the beginning of each segment. The header comprises preamble reversals, the codeword synchronisation sequence SYN, the address codeword ACW and the control data codeword DCW 1. The fields in the ACW and DCW 1 are set appropriately. The message number NMESS is incremented modulo 128 for each new message that is transmitted, regardless of destination. The segment number NSEG is set to zero at the beginning of each new message and is incremented modulo 64 for each new segment that is transmitted. NSEG is not incremented for an identical repeat transmission. Optionally the CRC may be calculated and included in the control data codeword. The data codewords may also be encrypted and/or bit-interleaved. The sender should only interleave by prior arrangement with the recipient. The sender transmits a segment and waits for acknowledgement from the recipient. The TYPE field in the acknowledgement will indicate the meaning of the acknowledgement. For example, whether the segment has been successfully decoded ACKDD or whether a selective retransmission ACKDS or non-selective retransmission ACKDR is requested. After receiving an acknowledgement the sender will, as appropriate, either retransmit the segment identically, make a selective retransmission, transmit the next segment, consider the call to have been completed successfully, or abort the transaction. If an acknowledgement is not received the sender may retransmit the segment. The sender may transmit segment identical repeats up to a predetermined number of times per segment, waiting after each transmission for an acknowledgement. If a selective retransmission is requested, and the sender is incapable of selective retransmission, then the sender may retransmit the previous segment identically. If a selective retransmission is being made, the segment number NSEG is incremented. The repeat source data codewords are transmitted first in the segment, and then new source data codewords may be included, up to a total of 30 source data codewords in the segment. In the control data codeword DCW 1, NUM=NREP (Number of repeated source data codewords). Thus time can be saved by not devoting an entire segment to the retransmission of selected code words which involves the sending of another header or address code word. At the receiver, message and segment numbering are used to prevent a segment from being duplicated or enable a receiver to identify when an omission has occurred, and to prevent segments from different messages from being accepted as a single message. The receiver may also check the addresses in the address fields IDENT 1 and/or IDENT 2 if there is a possibility of receiving transmissions not directed to the particular receiver and/or receiving transmissions directed to the particular receiver but from a different sender. The timer in the receiver is started every time that a segment is accepted. The timer runs for a period related to the length of a segment. The receiver stores the value of NSEG and the latest accepted NMESS. (NMESS appears in at least the first segment of every message.) While the timer is running, the recipient may accept a segment for which NSEG=0 as starting a new message only if NMESS is different from the previously received NMESS. Otherwise, the segment may be accepted as a repeat of the initial segment of the previous message. While the timer is running, the recipient may accept a segment as a continuation of the message in progress only if NSEG is incremented by one (mod 64) over its value in the previously accepted segment. While the timer is running, the recipient may accept a segment as a repeat transmission of a continuation segment only if it has the same segment number (NSEG) as the previously accepted segment. The final segment of a message is indicated by LAST not being equal to 0. When the receiver decodes the ACW and DCW 1 of an acceptable segment, that is, a segment satisfying the aforementioned conditions and an applicable individual IDENT1, it shall decode the number of following data codewords indicated by SEGL, first decrypting the code words if CRYPT=1 and then de-interleaving the code words if INT=1. The receiver may require that all of the data codewords are decodable before acknowledging with ACKDD, or, provided that the control data codeword is decoded successfully, it may store only the decodable source data codewords and rely on assembling the remainder by use of repeat transmissions. The receiver shall send an acknowledgement to each acceptable segment. A non-selective retransmission will be requested by means of ACKDR. A selective retransmission will be requested by means of ACKDS. In the case of group calls recipients do not transmit acknowledgements. For group calls the message could be transmitted segment by segment with each segment being retransmitted up to a predetermined number of times before proceeding with the next segment. In any event message and segment numbering is adhered to. In deciding the duration of the timer period, this must be related to the duration of the predetermined number of transmissions of a segment. This decision has to take into account the length of a segment, for example an address code word plus thirty-one data code words, and the maximum number of times that the segment may be transmitted, for example eight times. Message numbering is determined on the basis of an estimation of the maximum number of messages which can be sent in the maximum timer duration, hence if one assumes that 128 (short) messages can be sent in the timer duration then the numbering sequence should be at least 0 to 127 before it is repeated again. If the number is too small then in a situation when all the message numbers have been used no new messages can be sent during the remainder of that period.

Claims: 1. A method of communicating messages comprising data code words (DCW) from a transmitter to a receiver, wherein the data code words (DCW) of each message are arranged into a segment or a plurality of segments each of predetermined length and wherein an identification (NSEG) is assigned to the segment or each segment of a sequence of segments to be transmitted, said identification (NSEG) being included in each message segment to indicate the position of the segment in the sequence, characterised in that an identification (NUM) is assigned to each message and that a code word (DCW1) identifying such message is included in the or at least one segment of each message. 2. A method as claimed in Claim 1, characterised in that short messages are treated as a single segment having its own message (NUM) and segment (NSEG) identification, both of which are transmitted. 3. A method as claimed in Claim 1, characterised in that at least the first segment (NSEG=0) of the plurality of segments includes its message identification (NMESS) when transmitted. 4. A method as claimed in any one of Claims 1 to 3, characterised in that the or each segment comprises a header including an address code word (ACW) and a plurality of concatenated data code words (DCW). 5. A method as claimed in any one of Claims 1 to 4, characterised in that the receiver transmits an acknowledgement signal (ACKD) in response to the receipt of a message segment. 6. A method as claimed in Claim 5, characterised in that the acknowledgement signal (ACKD) includes an indication (NEW) of whether the first or a subsequent segment of the same message has been received. 7. A method as claimed in Claim 5 or 6, characterised in that the receiver appends a control data word (Fig. 5) to the acknowledgement signal (ACKD) in the event of selective retransmission being requested by the receiver, the control data word identifying (SELF) which code words of a segment require retransmission 8. A method as claimed in Claim 7, characterised in that in response to the receipt of the control data word (Fig. 5) the transmitter transmits a segment comprising retransmitted data code words and new data code words. 9. A method as claimed in any one of Claims 1 to 8, characterised in that the last segment of a message to be transmitted comprises an indication (LAST) that it is the last segment. 10. A method as claimed in any one of Claims 1 to 9, characterised in that the message data is sent by bit interleaving together with an indication (INT) in the message that the data has been bit interleaved. 11. A method as claimed in Claim 10, characterised in that the degree of bit interleaving is dependent on segment length. 12. A method as claimed in any one of Claims 1 to 11, characterised in that the message data is sent encrypted together with an indication (CRYPT) in the message that the data has been encrypted. 13. A method as claimed in any one of Claims 1 to 12, characterised in that the receipt within a predetermined time period of a segment which has been assigned the same segment identification (NSEG) as a previously received segment is treated as a repeat transmission of said previously received segment. 14. A method as claimed in any one of Claims 1 to 12, characterised in that the receipt within a dynamically determined time period of a segment which has been assigned the same identification (NSEG) as a previously received segment is treated as a repeat transmission of said previously received segment. 15. A method as claimed in Claim 13 or 14, characterised in that the receipt of a message which has been assigned the same identification (NUM) as an earlier message, after the expiration of said time period is treated as a new message. 16. A method as claimed in Claim 13, 14 or 15, characterised in that the duration of said time period is related to the maximum number of times the segment may be transmitted and the length of the segment. 17. A method as claimed in any one of Claims 1 to 4, characterised in that for group calls each segment of a message is retransmitted a plurality of times to succession. 18. A receiver for use with the method as claimed in any one of Claims 1 to 17, characterised by means responsive to identifications assigned to messages (NUM) and segments (NSEG), means for sending an acknowledgement signal (ACKD) in response to receiving a segment, and means for providing an indication in a field of the acknowledgement signal as to whether the segment has been successfully decoded or as to whether a selective or non-selective retransmission is requested. 19. A receiver as claimed in Claim 18, characterised by resettable timing means responsive to the acceptance of a segment for setting a time period of a predetermined duration, and means for treating a segment which has been received within the time period and has been assigned the same segment identification (NSEG) as an already received segment as a retransmission of the already received segment. 20. A receiver as claimed in Claim 19, characterised by means for treating a segment received after the expiry of the time period but having the same identification (NUM) as an earlier received message segment, as a new message.

Inventors: MABEY, PETER JOHN PYE TELECOMMUNICATIONS LTD, MERVART, ROMAN PYE TELECOMMUNICATIONS LTD
Applicants: N.V. PHILIPS' GLOEILAMPENFABRIEKEN, PHILIPS ELECTRONIC AND ASSOCIATED INDUSTRIES LIMITED
Application year: 1986
Main classification: H04L1
IPC codes: H04L1, H04L9