Certain embodiments of the invention may be found in a method and system for using data from a failed cyclic redundancy check (CRC) block to determine whether retransmission of data packets should be performed. Certain aspects of the invention may comprise determining a sequence number of a received packet with a failed cyclic redundancy check (CRC). A request may be communicated to a sending station to resend the received packet based on the determined sequence number. The received packet with a failed CRC may be detected, if an error flag is set in the received packet. A negative acknowledgement (NACK) packet may be communicated to request the sending station to resend the received packet.
The processor 104 may comprise, for example, an RF integrated circuit (RFIC) or RF front end (RFFE). The processor 104 may be enabled to handle processing of VHF/UHF broadcast channel and/or a cellular channel. The transmitter 106 may comprise suitable logic, circuitry and/or code that may be enabled to modulate an information signal to a suitable carrier frequency and transmit the information signal to a receiving station, for example, receiving station 152. The receiver 110 may comprise suitable logic, circuitry and/or code that may be enabled to receive an information signal and down-convert the received information signal into intermediate frequency (IF) signals. The memory 108 may comprise suitable logic, circuitry and/or code that may be enabled to store and transfer data to the processor 104. The processor 104 may be enabled to receive information from the receiver 110 and decode the received information. During data transmission, the processor 104 may be enabled to code information to be transmitted using a particular coding algorithm. The sending station 102 may be a wireless station or a wired station. The sending station 102 may be enabled to transmit and receive data packets or information signals via a wired medium or a wireless medium.
The processor 154 may comprise, for example, an RF integrated circuit (RFIC) or RF front end (RFFE). In this regard, the processor 154 may comprise at least one receiver front end (RFE) circuit. In an embodiment of the invention, a single RFIC may comprise a plurality of RFE processing circuits, each of which may be enabled to process a particular cellular channel. Accordingly, a single RFIC comprising a plurality of cellular RFE processing circuits may be enabled to handle a plurality of cellular channels.
The processor 154 may be enabled to compute the CRC value of the received data packets. A CRC may be computed for a group or block of bits referred to as frames. The computed CRC may then be appended to each frame for which a CRC is computed and the frame with the CRC may be transmitted. The appended CRC may be referred to as a frame check sequence (FCS).
The transmitter 156 may comprise suitable logic, circuitry and/or code that may be enabled to modulate an information signal to a suitable carrier frequency and transmit the information signal to a base station, for example, sending station 102. The receiver 160 may comprise suitable logic, circuitry and/or code that may be enabled to receive an information signal from a base station, for example, a sending station 102 and down-convert the received information signal into intermediate frequency (IF) signals. The memory 158 may comprise suitable logic, circuitry and/or code that may be enabled to store and transfer data to the processor 154. The receiving station 152 may be a wireless station or a wired station. The receiving station 152 may be enabled to transmit and receive data packets or information signals via a wired medium or a wireless medium.
The header 204 may comprise a portion of the radio link packet 200 that may be utilized for indicating to a receiving station 152 when a particular packet is addressed to that receiving station 152, the type of packet, a sequential numbering of the packet to order the data packet stream, and/or the manner in which the packet may be routed internally to that receiving station 152, for example.
The sync sequence 206 may comprise a portion of the radio link packet 200 that may be utilized to synchronize the contents of the payload 208. This synchronization may be necessary for cases when the payload 208 may be modulated utilizing a different scheme than for other portions of the radio link packet 200. The payload 208 may comprise a portion of the radio link packet 200 that may be utilized to transport user information.
In step 408, the frame check sequence may be extracted from the received information and a CRC value may be computed for the received data packet (CRC 2). In step 410, the calculated CRC value of the received data packet (CRC 2) may then be compared with the CRC value of the transmitted data packet or frame check sequence (CRC 1) and if there is a mismatch, then the received data packet may be in error. If the CRC of the received data packet (CRC 2) is equal to the frame check sequence or CRC value of the transmitted data packet (CRC 1), control passes to step 412. In step 412, a CRC pass status may be indicated for the received packet. Control then passes to end step 414.
If the CRC of the received data packet (CRC 2) is not equal to the frame check sequence or CRC of the transmitted data packet (CRC 1), control passes to step 416. In step 416, an error flag in the CRC field 308 may be set indicating a CRC fail status for the received data packet. In step 420, it may be determined whether a CRC pass status has been detected for a later received data packet or if a time out period has occurred. If a CRC pass status has been detected for a later received data packet or if a time out period has occurred, control passes to step 428. If a CRC pass status has not been detected for a later received data packet or if a time out period has not occurred, control passes to step 424. In step 424, the sequence number of the corresponding received data packet may be determined. In step 426, a sending station, for example, sending station 102 may be requested to resend the corresponding received data packet based on the determined sequence number. In step 428, a negative acknowledgement (NACK) packet may be communicated to the sending station 102 to request resending the corresponding received data packet. Control then passes to end step 414.
In accordance with an embodiment of the invention, a method and system for using data from a failed cyclic redundancy check (CRC) block to determine whether retransmission of data packets should occur may comprise at least one processor 154 that may be enabled to determine a sequence number of a received packet 200 with a failed cyclic redundancy check (CRC). The processor 154 may enable communication of a request to a sending station 102 to resend the received packet 200 based on the determined sequence number. The processor 154 may enable determining whether an error flag is set in the received packet 200 based on a calculated CRC value for the received packet 200. The processor 154 may enable detection of the received packet 200 with a failed CRC, if the error flag is set in the received packet 200. The processor 154 may enable communication of a negative acknowledgement (NACK) packet to request the sending station 102 to resend the received packet 200. The processor 154 may enable communication of the request prior to a time out period. The processor 154 may enable communication of the request prior to receiving a CRC pass from the sending station 102.
In an alternate embodiment of the invention, a NACK packet may be transmitted to the sending station 102 for each of the data packets received after receiving the data packet with the failed CRC.
The sending station 102 may be a wireless station or a wired station. The received packet 200 may be received at a wired receiver or a wireless receiver, for example, the receiving station 152. In accordance with an embodiment of the invention, the received packet 200 may be communicated and received at the data link layer. For example, there may be asynchronous transmission between the serial port of a computer or terminal and a modem, file transfer protocols, or synchronous transmission of contiguous blocks of data, with both sending and receiving stations synchronized to each other.
Another embodiment of the invention may provide a machine-readable storage, having stored thereon, a computer program having at least one code section executable by a machine, thereby causing the machine to perform the steps as described above for using data from a failed cyclic redundancy check (CRC) block to determine retransmission of data packets.
Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.