Abstract:
A method of communicating between a transmitter and a receiver based on frames is provided. An error detection code is added to each frame to be transmitted by the transmitter. The frames to be transmitted by the transmitter are transmitted and the transmitted frames are received by the receiver. An error detection code is re-computed based on the received frames by the receiver. At least one frame which has been correctly received based on a comparison of the error detection code of each frame with the re-computed error detection code of each received frame is acknowledged. An error indication frame is sent by the receiver when an error is detected based on the comparison result. If a retransmission condition is detected by the transmitter by receiving an error indication frame from the receiver or if no acknowledgement frame was received by the transmitter from the receiver in a predetermined time interval, the currently transmitted frame is aborted and the transmitter inserts a trailer. As a further possibility instead of inserting a trailer, the start of retransmission can be indicated by using a retransmission indicator.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to a method of communication between a transmitter and a receiver based on frames and communication node. 
       BACKGROUND OF THE INVENTION 
       [0002]    The Mobile Industry Processor Interface alliance MIPI has defined a standard for chip-to-chip networks based on high-speed serial links, i.e. the Unified Protocol UniPro (www.mipi.org). The Unified Protocol UniPro relates to a general purpose protocol dealing with high-speed interconnect issues, e.g. like error handling, flow control, routing and arbitration. 
         [0003]    The Unified Protocol UniPro may be used as a communication protocol for a digital link e. g. between the radio frequency RF chip and baseband BB chip in electronic devices with a two-chip modem solution. Such a two-chip solution is preferably used in mobile devices. The modem solution may include 802.11 modems WiFi, video on mobile TVoM or WiMAX protocols. 
         [0004]    Within the unified protocol UniPro, error handling capabilities must be provided as for example mobile devices like mobile phones often operate in a noisy environment where various kinds of errors may occur. Such errors may include bit errors (one of the transmitted bits is inverted), burst errors (a sequence of bits is received erroneously), stuck-at errors (a sequence of bits with the same value is received), and synchronization errors (one or more bits is deleted or duplicated leading to a loss of the symbol boundary). 
         [0005]    The error rates that may occur can be relatively high, e.g. the bit error rate of the MIPI D-Phy layer is expected to be 10 −12  or in other words one bit can be erroneous in every 15 to 20 minutes. Therefore, a mechanism to recover from errors must be provided to enable a reliable communication. 
         [0006]    In UniPro, the error handling is performed within the data link layer L2. The transmission in this layer is performed based on transmission units or frames.  FIG. 1  shows a basic representation of the data frame structure according to the unified protocol UniPro. This frame comprises reserved bits RB, and a frame sequence number FSN. 
         [0007]    In every UniPro frame, a 16-bit CRC cyclic redundancy check is provided. These CRC bits are added by the transmitter of the frame. At the receiver&#39;s side, the CRC is calculated and verified to determine whether any errors have occurred during the transmission of the frame. If the CRC received by the in the frame and computed by the receiver are the same, no errors have been detected, i.e. the transmitted and received frame correspond to each other. Furthermore, a 5-bit sequence number FSN is introduced into the frame to identify the packets. If a TC frame is transmitted, a copy of the transmitted frame is stored in a replay buffer at the transmitter&#39;s end. 
         [0008]    The receiver will acknowledge a correct packet receipt to the transmitter by forwarding the sequence number of the frame in an Acknowledgement and Flow Control frame AFC. The structure of such an Acknowledgement and Flow Control Frame is depicted in  FIG. 2 . It should be noted that also multiple frames can be acknowledged at the same time if a sequence number is considered to acknowledge all frames having a sequence number equal to or less than the currently transmitted sequence number. If the transmitter has received an Acknowledgement and Flow Control Frame AFC, it can remove all frames which are being acknowledged by the AFC frame from its replay buffer. 
         [0009]    However, if the receiver detects e.g., by means of the CRC that the received frame does not correspond to the transmitted frame, it can forward a Negative Acknowledgement Frame NAC.  FIG. 3  shows a schematic representation of the structure of a Negative Acknowledgement frame NAC. The Negative Acknowledgement Frame NAC may acknowledge all correctly received frames but may signal that an error has been detected. In such a case, the receiver can remove all acknowledged frames from its replay buffer and may retransmit all unacknowledged frames. 
         [0010]    However, it may also happen that the AFC or the NAC frames are not correctly received due to errors during the transmission over the link. It should be noted that these frames are not protected by the sequence numbers. Therefore, a mechanism must be provided such that the information with respect to the sequence number is retrieved at the data-frame transmitter side. If a frame re-transmission is initiated, the AFC frames are transmitted to update any potential miscommunication in the past. Thereafter, if no positive or negative acknowledgement has been received for a long time, a replay timer triggers a retransmission and assumes that an error has occurred in the data frame or in the transmission of the AFC frame. 
         [0011]    Furthermore, it should be noted that the Unified Protocol UniPro allows a retransmission at almost any time, e.g. in-between frames, in the middle of a data frame, possibly pre-empting a lower-priority frame. However, a retransmission is not permitted in the middle of an AFC or NAC frame. Moreover, the Unified Protocol UniPro does not provide a mechanism in the receiver to detect a re-transmission. 
         [0012]    In other words, a re-transmission can start at any given time and cannot be detected by the receiver, for example the receiver cannot know if it is part of a pre-emption or a frame retransmission when a frame starts. Therefore, the receiver cannot check if a correct symbol sequence is received which may lead to a delayed error detection. Furthermore, the verification of a correctness of the receiver&#39;s implementation is very difficult as transmission errors are captured only after numerous state transitions which may lead to the need for numerous and long stimulations. 
       SUMMARY OF THE INVENTION 
       [0013]    It is therefore an object of the invention to provide a method of communication with an improved error handling capability. 
         [0014]    This object is solved by a method of communication between a transmitter and a receiver according to claim  1  and a communication node according to claim  15  and  16 . 
         [0015]    Therefore, a method of communicating between a transmitter and a receiver based on frames is provided. An error detection code is added to each frame to be transmitted by the transmitter. The frames to be transmitted by the transmitter are transmitted and the transmitted frames are received by the receiver. An error detection code is re-computed based on the received frames by the receiver. At least one frame which has been correctly received based on a comparison of the error detection code of each frame with the re-computed error detection code of each received frame is acknowledged. An error indication frame is sent by the receiver when an error is detected based on the comparison result. If a retransmission condition is detected by the transmitter by receiving an error indication frame from the receiver or if no acknowledgement frame was received by the transmitter from the receiver in a predetermined time interval, the currently transmitted frame is aborted and the transmitter inserts a trailer. 
         [0016]    Accordingly, the possibilities for a re-transmission are restricted such that the method of communicating according to the present invention becomes easier. 
         [0017]    According to an aspect of the invention, erroneous error detection code is inserted into a trailer of a frame by the transmitter in order to indicate a frame abortion. Therefore, the receiver can easily detect a frame abortion. 
         [0018]    According to a further aspect of the invention, the transmitter inserts a special code into a trailer of a frame in order to indicate a frame abortion. Here, also the detection of a frame abortion by the receiver is facilitated. 
         [0019]    According to a preferred aspect of the invention, the communication is based on a unified protocol (UniPro). 
         [0020]    According to a further aspect of the invention, the special code for frame abortion used by the transmitter is an unused escape value according to the Unified Protocol. Hence, a value already present in the Unified Protocol can be used to indicate a frame abortion. 
         [0021]    According to a further aspect of the invention, the special code used for frame abortion by the transmitter is an unused value of a control ID according to the unified protocol. 
         [0022]    According to a further aspect of the invention, the currently received frame is discarded by the receiver when the receiver detects an error or an aborted frame. 
         [0023]    According to a further aspect of the invention, each frame comprises a sequence number. The sequence number is used by the receiver to acknowledge that at least one frame is correctly received. Accordingly, the receiver can acknowledge that it has received a plurality of frames by merely using the sequence number of the last acknowledge frame. The transmitter will then know that all previously transmitted frames are correctly received. 
         [0024]    The invention also relates to a method of communicating between a transmitter and a receiver based on frames. An error detection code is added to each frame to be transmitted to the transmitter. The frames are transmitted and received by the receiver. An error detection code is re-computed by the receiver based on the received frames. At least one frame is acknowledged which has been correctly received based on a comparison of the error detection code of each frame with the re-computed error detection frame of each received frame. An error indicating frame is sent by the receiver when an error is detected based on the comparison results. If a re-transmission condition is detected by the transmitter, for example by receiving an error indicating frame from the receiver or if no acknowledgement frame from the receiver was received by the transmitter in a predetermined time interval, the start of a retransmission of frames is indicated using a retransmission indicator. Unacknowledged frames are retransmitted. 
         [0025]    The invention also relates to a communication node comprising a transmitting unit for transmitting frames, for inserting an error detection code to each frame. The inserting unit furthermore is adapted to detect a retransmission condition if an error indication frame has been received from a further communication node or if no acknowledgement frame has been received by the further communication node. If the retransmission condition is detected, a trailer is inserted to indicate a frame abortion and the unacknowledged frames are retransmitted. 
         [0026]    The invention also relates to a communication node comprising a receiving unit. The receiving unit receives transmitted frames and computes an error detection code based on the received frames. The error detection code in the received frames is compared to the re-computed error detection code. If no error is detected, at least one frame is acknowledged. If an error is detected, an error indicating frame is sent. 
         [0027]    An electronic device according to the invention may also be based on a communication of the communication nodes such that it may comprise an above transmitting unit and an above receiving unit. 
         [0028]    The invention relates to the idea to restrict the possibilities where a re-transmission can start and/or to explicitly notify the receiver if a retransmission has started. 
         [0029]    Further aspects of the invention are subject of the dependent claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0030]    Advantages and embodiments of the invention will now be described in more detail with reference to the figures. 
           [0031]      FIG. 1  shows a schematic representation of a frame structure in a Unified Protocol UniPro, 
           [0032]      FIG. 2  shows a schematic representation of a AFC frame structure in a Unified Protocol UniPro according to the prior art, 
           [0033]      FIG. 3  shows a basic representation of the NAC frame structure in a Unified Protocol UniPro according to the prior art, 
           [0034]      FIG. 4  shows a basic representation of a AFC frame according to the first embodiment, 
           [0035]      FIG. 5  shows a basic representation of a message sequence chart according to a second embodiment, 
           [0036]      FIG. 6  shows a basis representation of a message sequence chart according to a third embodiment, 
           [0037]      FIG. 7  shows a representation of a state machine of a receiver according to a fourth embodiment, 
           [0038]      FIG. 8  shows a representation of a state machine for a transmitter according to a fifth embodiment, and 
           [0039]      FIG. 9  shows a basic representation of a state machine for a transmitter according to a sixth embodiment. 
       
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
       [0040]      FIG. 4  shows a schematic representation of an AFC frame according to a first embodiment. The communication according to the first embodiment is based on the unified protocol UniPro designed by the Mobile Industry Processor Interface Alliance MIPI. The frame structure according to the first embodiment will enable an explicit notification of the receiver when a retransmission of data starts. The frame comprises a frame sequence number FSN, reserved bits RB and credit values CV. 
         [0041]    To allow an early frame termination and thereby a re-transmission of a data frame, the receiver may be explicitly notified that a re-transmission is started or will be started. Such a notification may be performed by means of special line states, escape characters or bits in any existing frames. 
         [0042]    In the Unified Protocol UniPro, AFC frames will be transmitted before a re-transmission is initiated. Accordingly, a bit in the AFC frame can be used to distinguish an AFC frame at the beginning of a re-transmission. Accordingly, the receiver only has to check for this bit in the AFC to determine whether a re-transmission is initiated. A retransmission bit RB can be used to distinguish the AFC frames. Such a retransmission bit RB may be mapped to one of the reserved bits of the AFC frame as depicted in  FIG. 4 . 
         [0043]    In addition or alternatively, a second escape character ESC_DL 2  or a new unused value of the CTRL_ID may be used for retransmission. 
         [0044]    According to a second embodiment of the invention, the points of possibilities where a re-transmission can start can be restricted to the situation when no frames are transmitted, i.e. a re-transmission may start in between two frames. On the other hand, such a solution is disadvantageous as a retransmission of data has to wait until the currently transmitted frame has been transmitted, i.e. the retransmission has to wait until the frame transmission ends. 
         [0045]    To solve this problem, a data frame termination can be forced if a retransmission of data needs to be started. 
         [0046]    The frame transmission can be initiated by sending an end-of-frame EOF symbol immediately without having to wait for an end-of-frame condition. Thereafter, an incorrect CRC is transmitted. This is performed to ensure that the artificially terminated data frame is discarded as the re-computed CRC of the received frame will not correspond to the CRC of the transmitter. The terminated frame may by completely discarded or may be at least partly buffered or stored until the rest of the frame is transmitted again or until a retransmission of the frame is initiated. 
         [0047]    Alternatively, instead of transmitting an end-of-frame symbol EoF followed by an incorrect CRC, this abrupt termination of a frame can be indicated using a second escape character (ESC_DL 2 ), or using one of the reserved values of the CTRL_ID. In both cases, a valid CRC will follow, but the receiver will know that the received data frame is only partial, and it will be discarded. It should be noted that the second escape character ESC_DL 2  can be the same or different from the previously mentioned ESC_DL 2  used for AFC. 
         [0048]      FIG. 5  shows a basic representation of a message sequence chart according to a second embodiment. Here, a message exchange between a first and second node N 1 , N 2  is depicted. Each node N 1 , N 2  comprises a transmitter Tx and a receiver Rx. A first data frame DF 1  having start of frame SoF symbol, CPortID and DeviceID symbol, several data symbols data, end of frame symbol EoF and a CRC symbol is transmitted from the first node N 1  to the second node N 2 . As the frame is correctly received, a correct CRC CCRC is calculated and an AFC together with a CRC symbol is transmitted from the second node N 2  to the first node N 1 . In the meantime, a second data frame DF 2  is transmitted from the first node N 1  to the second node N 2 . However, an erroneous CRC ECRC is calculated by the second node N 2  and the second node N 2  transmits a NAC together with a CRC to the first node N 1 . When the NAC from the second node N 2  is received by the first node N 1 , the transmission of the third data frame is aborted F 1 , for example by intentionally introducing an erroneous CRC ECRC. When the second node N 2  receives the erroneous CRC, the third frame DF 3  is discarded. The first node N 1  will flag an AFC and will start the replay sequence by sending the frame AFC 1 . Therefore, the second data frame DF 2  will be re-transmitted from the first node N 1  to the second node N 2 . If the second data frame DF 2  is correctly received and a correct CRC is calculated, the second node N 2  may forward an AFC. 
         [0049]      FIG. 6  shows a basis representation of a message sequence chart according to a third embodiment. The message sequence chart according to the third embodiment substantially corresponds to the message sequence chart according to the second embodiment. Therefore, a first data frame DF 1  is transmitted by a first node N 1  and is correctly received by a second node N 2  which then forwards an AFC to the first node N 1 . However, if the second data frame DF 2  is not correctly received by the second node N 2 , the second node N 2  will forward a NAC to the first node N 1 . If the first node N 1  receives a NAC, the frame which is currently being transmitted is aborted F 1 , abortion which is flagged to N 2  using an e.g., second End Of Frame symbol EOF 2 . The retransmission sequence is started by an AFC frame, flagged as the beginning of a frame replay. Here, the second node N 2  may receive a correct CRC CCRC but, as it receives a second end of frame symbol EoF 2 , the second node N 2  will discard the currently received frame. 
         [0050]      FIG. 7  shows a representation of a state machine of a receiver according to a fourth embodiment. In a first step R 1 , the receiver will wait for a frame. If a correct data frame is received in step R 6 , the frame is delivered in step R 2 . If an error is detected (Step R 9 ), an NAC is sent in step R 3 . If a NAC frame is received, some of the transmitted frames may be acknowledged (Step R 5 ), and a retransmission starts with the first unacknowledged frame in step R 10 . If in step R 7  a correct AFC frame is received, credits in the receiver and the sequence number will also be updated in step R 4 . 
         [0051]      FIG. 8  shows a basic representation of a state machine of a transmitter according to a fifth embodiment. In step S 1 , the transmitter TX is in the idle state when it is outside a frame and in the data frame state or transmission state (step S 11 ) when it is inside a data frame transmission. When the transmitter is in the idle state, it can send frames with the following priority, namely NAC (step S 2 ), retransmission (step S 5 ), forwarding an AFC (step S 3 ) and it may send a data frame (step S 4 ). In step S 3 , an AFC may be send but no retransmission is initiated and no NAC is sent. In step S 4 , the data frames DF are sent but no AFC is sent, no retransmission is initiated and no NAC are sent. In step S 5 , a retransmission is initiated and no NAC is sent. If in step S 2  a NAC is to be sent, the NAC will be transmitted in step S 6  and the flow will return to step S 1 . If in step S 3  an AFC is to be sent, the AFC will be transmitted in step S 7  wherein a replay flag will not be set. If in step S 4  a data frame is to be sent, a start of frame SoF symbol is transmitted in step S 8 . If in step S 5  a retransmission is initiated, in step S 9  an AFC is transmitted wherein the replay flag is set. Then the flow continues to step S 10  where the sequence number of the next frame to the last acknowledged frame is set. Accordingly, in step S 9  and S 10 , an AFC will indicate a replay or retransmission of a data frame. It should be noted that a AFC and an NAC frame are not pre-emptable, accordingly they are depicted as an atomic block. However, data frames may be pre-empted by NAC or AFC frames. In the case of a link using multiple traffic classes, a data frame may also be preempted by a data frame with a higher priority. After a NAC or AFC frame, a data frame will continue with a COF symbol. 
         [0052]    If a retransmission of a frame is required in the middle of the frame transmission, the frame will be aborted and a retransmission will start. The retransmission may also carry a retransmission indication, namely the replay flag. 
         [0053]    If the transmitter is in the data frame state (step S 11 ) and if a NAC is to be sent in step S 12 , the flow will continue to step S 16  where a NAC is transmitted. Thereafter, the flow will continue to step S 20  where a COF symbol is transmitted. 
         [0054]    In step S 13 , an AFC is to be sent (no NAC is sent and no retransmission is initiated) the AFC is transmitted with a replay flag which is not set. Thereafter, the flow will continue to step S 21  and a COF symbol is transmitted. 
         [0055]    If in step S 14  a data frame is to be transmitted (no AFC and no NAC is transmitted and no retransmission is initiated), the flow will continue to step S 18  where it is determined whether the end of the packet has been reached. If the end of the packet is not present, a data symbol will be transmitted in step S 22 . However, if the end of packet has been reached, an EOF end of frame symbol is transmitted in step S 23  and the flow will continue to step S 27  where a CRC is transmitted. 
         [0056]    If in step S 15  a retransmission is initiated and no NAC is sent, the flow may continue to step S 19  where an EOF end of frame symbol is transmitted. The flow will then continue to step S 24  where an erroneous CRC is transmitted. Accordingly, the steps S 19  and S 24  will be used to abort the frame. After step S 24 , the flow will continue to step S 25  where an AFC is transmitted wherein the replay flag is set. After step S 25  the flow will continue to step S 26  where the sequence number of the next frame is set to the last acknowledged frame. Accordingly, in the steps S 25  and S 26 , the AFC is used to indicate a replay. 
         [0057]      FIG. 9  shows a basic representation of a state machine of a transmitter according to a sixth embodiment. The state machine according to the sixth embodiment substantially corresponds to the state machine according to the fifth embodiment, merely the steps S 19 , S 24 , S 25  and S 26  are replaced by the steps S 30 -S 33 . Accordingly, if in step S 15  a retransmission is initiated, the flow will continue to step S 30  where a second EOF 2  end of frame symbol is transmitted. The flow will then continue to step S 31  where a CRC is transmitted. Accordingly, the steps S 30  and S 31  will be used to abort the frame. After step S 31 , the flow will continue to step S 32  (which substantially corresponds to the step S 25  in  FIG. 8 ). Thereafter, the flow will continue to step S 33  which substantially corresponds to the step S 26  in  FIG. 8 . 
         [0058]    It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. In the device claim enumerating several means, several of these means can be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. 
         [0059]    Furthermore, any reference signs in the claims shall not be constrained as limiting the scope of the claims.