CN108011697B - Data exchange communication method between non-contact card and terminal - Google Patents

Data exchange communication method between non-contact card and terminal Download PDF

Info

Publication number
CN108011697B
CN108011697B CN201711243910.2A CN201711243910A CN108011697B CN 108011697 B CN108011697 B CN 108011697B CN 201711243910 A CN201711243910 A CN 201711243910A CN 108011697 B CN108011697 B CN 108011697B
Authority
CN
China
Prior art keywords
state
state machine
block
data
ending
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711243910.2A
Other languages
Chinese (zh)
Other versions
CN108011697A (en
Inventor
李滨滨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vanstone Electronic Beijing Co Ltd
Original Assignee
Vanstone Electronic Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vanstone Electronic Beijing Co Ltd filed Critical Vanstone Electronic Beijing Co Ltd
Priority to CN201711243910.2A priority Critical patent/CN108011697B/en
Publication of CN108011697A publication Critical patent/CN108011697A/en
Application granted granted Critical
Publication of CN108011697B publication Critical patent/CN108011697B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/189Transmission or retransmission of more than one copy of a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive or capacitive transmission systems
    • H04B5/70Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
    • H04B5/72Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes for local intradevice communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive or capacitive transmission systems
    • H04B5/70Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
    • H04B5/77Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes for interrogation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1858Transmission or retransmission of more than one copy of acknowledgement message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

The invention discloses a data exchange communication method between a non-contact card and a terminal, and relates to the field of electronic communication. The method for exchanging data between the terminal and the non-contact card is realized based on a state machine, and specifically comprises the following steps: the method for exchanging data between the terminal and the non-contact card is realized based on a state machine, and specifically comprises the following steps: initializing variables, and setting a state machine to be I-BLOCK; judging the state of the state machine, and then finishing data exchange in the state; in the variable initialization process, a first variable is added and recorded as a flag bit, the flag bit is NAD or CID, and a second variable is added and used for recording the total length of data to be sent. The invention adopts a state machine mode to control each link, and realizes data processing and abnormal condition processing of I, R, S and other blocks.

Description

Data exchange communication method between non-contact card and terminal
Technical Field
The invention relates to the field of electronic communication, in particular to a data exchange communication method between a non-contact card and a terminal.
Background
In daily life, smart cards and financial cards with non-connection functions are more and more common, and the application range is wider and wider. The communication between the existing terminal and the non-contact card is complex and redundant, so how to simplify the communication between the terminal and the non-contact card and how to avoid the problem that the communication between the terminal and the non-contact card is complex and difficult to maintain is a difficult problem that the field content needs to be overcome.
Disclosure of Invention
The present invention is directed to a method for data exchange communication between a contactless card and a terminal, so as to solve the foregoing problems in the prior art.
In order to achieve the above object, the data exchange communication method between a contactless card and a terminal according to the present invention is implemented based on a state machine, and the method specifically includes: initializing variables, and setting a state machine to be I-BLOCK; judging the state of the state machine, and then finishing data exchange in the state; in the variable initialization process, a first variable is added and recorded as a flag bit, the flag bit is NAD or CID, and a second variable is added and used for recording the total length of data to be sent.
Preferably, when the state machine is in the I-BLOCK state, the data packet to be exchanged is set, and the state machine is set to TRARCV after the data packet is set, more specifically:
a11, judging whether the received data block is a chain block; if yes, putting the PCB code of the initial tape chain transmission I block into the start field of the data block, and entering A12; if not, putting the PCB code without the chain transmission I block into the start field of the data block, and entering A13;
a12, judging whether the terminal supports CID,
if CID is supported, adding CID data into a start field of the data packet, then judging whether NAD exists in the data block, if so, adding NAD data into the start field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, subtracting one frame from the total length of the data to be sent, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data packet does not support CID, directly judging whether NAD exists in the data block, if so, adding NAD data into a starting field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, subtracting one frame from the total length of the data to be sent, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
a13, judging whether the terminal supports CID,
if CID is supported, adding CID data into a start field of the data packet, then judging whether NAD exists in the data block, if so, adding NAD data into the start field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, setting the total length of the data to be sent to zero, setting a state machine to be TRARCV, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data block does not support CID, judging whether NAD exists in the data block, if so, adding NAD data into a starting field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, setting the total length of the data to be sent to zero, setting a state machine to be TRARCV, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
Preferably, when the state machine is in the TRARCV state, the timeout time of the contactless card is updated, the data block of the packaged data to be exchanged is sent to the contactless card, and meanwhile, the data block returned by the contactless card is received:
when the received data BLOCK has abnormality, the abnormality comprises one or more of parity check, CRC, overtime and CODERR, re-receiving is started, if the retransmission times or error retransmission times of the S BLOCK is more than 2, the state machine is set to be RCVINV-BLOCK, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the retransmission times or the error retransmission times of the S BLOCK is less than or equal to 2 times, judging whether the received abnormal data is a chain BLOCK, if so, closing the retransmission request of the last BLOCK, setting the state machine as ACK-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, starting the retransmission request of the last BLOCK, setting the state machine as NACK-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
when the received data block has no abnormality, wherein the abnormality includes one or more of parity check, CRC, timeout and CODERR, the type of the received data block is judged: if the data BLOCK type is I BLOCK, resetting the error count to 0, closing the last BLOCK retransmission request, setting the state machine to REV I-BLOCK, ending the data interaction of the current data BLOCK and continuously judging the state of the state machine; if the data BLOCK type is R BLOCK, resetting the error count to 0, closing the last BLOCK retransmission request, setting the state machine to REVR-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the data BLOCK type is S BLOCK, judging whether the last BLOCK is retransmitted or not, if so, sending the retransmission count of the S BLOCK to be increased once, setting the state machine as REV S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, sending the S BLOCK retransmission count clear 0, setting the state machine as REV S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the data BLOCK type does not belong to any one of the I BLOCK, the R BLOCK and the S BLOCK, the received data BLOCK is an error data BLOCK, the state machine is set to be RCVINV-BLOCK, and the current state is finished; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
Preferably, when the state machine is in an ACK-BLOCK state or a NACK-BLOCK state, the data packet to be interacted is an R BLOCK, if the terminal supports CID, add CID data to a start field of the data packet, set the state machine to TRARCV, and end the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the terminal does not support CID, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
Preferably, when the state machine is in the S-BLOCK state, the data packet to be interacted is an S BLOCK, the data of the information field is added to the data packet, the state machine is set to TRARCV, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
Preferably, when the state machine is in the REV I-BLOCK state, it is determined whether the BLOCK sequence number of the currently received data BLOCK is correct, and if not, the state machine is set to REV INV-BLOCK; if yes, judging whether the current received data block is a chain block, if not, judging whether the current received data block is a NON-EVENT, setting the state machine to be a NON-EVENT, updating the serial number of the data block, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the current state is the link BLOCK, setting the state machine to be ACK-BLOCK, storing the data of the currently received data BLOCK to a cache, updating the serial number of the data BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
Preferably, when the state machine is in the REV R-BLOCK state, the flag for determining whether the header of the received data BLOCK is NAK or ACK,
if NAK is detected, the current transmitted data is wrong, the state machine is set to REV INV-BLOCK, and the current state is finished; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data block is ACK, judging whether the block sequence number of the data block is correct,
if not, updating the error retransmission count number, judging whether the retransmission count exceeds the limit, if so, setting the state machine to REV INV-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the current state is not beyond the limit, setting the state machine to be I-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the current I-BLOCK is correct, judging whether the current I-BLOCK is a chain BLOCK, if the current I-BLOCK is the chain BLOCK, updating the serial number of the data BLOCK, clearing the retransmission times to be 0, setting the state machine to be the I-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, setting the state machine to REV INV-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
Preferably, when the state machine is in the REV S-BLOCK state, it is determined whether the header of the received data BLOCK is an S BLOCK,
if not, setting REV INV-BLOCK by the state machine, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if yes, judging whether the information domain of the S BLOCK is correct, if yes, updating the receiving overtime count, setting the state machine to be S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, setting REVINV-BLOCK by the state machine, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
More preferably, the information field of the S block is that the S block information field is greater than 0 and equal to or less than 63.
Preferably, when the state machine is in the REV INV-BLOCK state, the terminal resets the contactless card and sets the state machine to NON-EVENT, ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
The invention has the beneficial effects that:
the invention overcomes the defects in the prior art. And controlling each link by adopting a state machine mode. And implementing the code according to the preset specification requirement. Data processing and exception handling for blocks such as I, R, S are achieved.
The method of the invention is easy to understand, maintain and manage, the state machine controls the interaction process, and the adjustment is carried out according to the data fed back by the non-contact card, so that the method is clear in order and easy to understand and maintain. The abnormal processing and normal data interaction logic realization of each link can be fully ensured.
Drawings
Fig. 1 is a general schematic flow chart of a data exchange communication method between a contactless card and a terminal;
FIG. 2 is a first partial flow diagram of FIG. 1;
FIG. 3 is a second partial flow diagram of FIG. 1;
FIG. 4 is a third partial flow diagram of FIG. 1
FIG. 5 is a schematic diagram of the communication flow between the class A contactless card and the terminal in ISO 14443;
FIG. 6 is a schematic diagram of the communication flow between a class B contactless card and a terminal in ISO 14443;
FIG. 7 is a data format of any one of the data blocks of FIG. 1;
FIG. 8 is a PCB encoding table for an I block;
FIG. 9 is a PCB encoding table for the R block;
FIG. 10 is a PCB code table for S (WTX) blocks.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the present invention is further described in detail below with reference to the accompanying drawings. It should be understood that the detailed description and specific examples, while indicating the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention.
Fig. 1 is the most central part of this patent. The method is an implementation mode of the data exchange between the terminal and the card and the exception handling. When the terminal is to send the instruction, the interface is called to exchange data.
FIG. 5 is a schematic diagram of the communication flow between the class A contactless card and the terminal in ISO 14443;
fig. 6 is a schematic diagram of a communication flow between a class B contactless card and a terminal in ISO 14443.
Fig. 7 shows the data format of the data block in the process of fig. 1. The protocol control bytes pcb (protocol control byte) have different data and represent different data blocks. The specific format is shown in fig. 8, 9 and 10.
For the chinese meaning of the english abbreviations referred to in this application:
I-BLOCK: the I-block packs the state.
ACK-BLOCK: r block group packet status containing a positive acknowledgement.
NACK-BLOCK; r block group packet status containing negative acknowledgments.
S-BLOCK; the block group package state is managed.
TRARCV: transmit and receive states.
RCVI-BLOCK: processing receives the I block state.
RCVR-BLOCK: the R block state is processed.
RCVS-BLOCK: the block state is processed S.
RCVINV-BLOCK: the invalid block state is processed.
NON-EVENT: an invalidating event.
I block: and the data transmission block comprises a data field.
And R block: the response block is divided into a correct reception response and an incorrect reception response.
And S block: one with a byte data field to wait for a delay request and the other with a DESELECT command without a data field.
CID: a card identifier.
NAD: a node address field.
CODE ERR: the code is erroneous.
CRC: and (4) cyclic redundancy check.
ACK positive acknowledgement, english full name: positive ACKnowledgement.
NAK negative acknowledgement, english full name: a Negative AcKnowledgement.
EDC: error detection code, english full name: error Detection Code.
REQA instruction: request command, type a, english full name: request Command, Type A.
REQB instruction: request command, type B, english full name: request Command, Type B.
WUPA instructions: type APICC wake-up command, english full name: Wake-UP Command, Type A.
WUPB instructions: type B PICC wake-up command, english full name: Wake-UP Command, Type B.
ATQA instruction: request-response, type a, english full name: answer To Request, Type A.
ATQB instruction: request-response, type B, english full name: answer To Request, Type B.
UID: unique identifier, english full name: unique Identifier, Type a.
SEL: selection command, English full name: SELect code, Type A.
ATTRIB: PICC selects the order, and English is full-name: PICC selection command, Type B.
A SAK instruction; selection confirmation, English full name: select Acknowledge, Type A.
The RATS instruction: selecting a response request, English full name: request for Answer To Select.
ATS instruction: selecting response, English full name: answer To Select.
PPS process: protocol and parameter selection, English full name: protocol and Parameter Selection.
DESLECT instruction: cancel select command, english full name: deSELect code, Type a.
IDLE state: an idle state.
Example 1
Referring to fig. 1, in the data exchange communication method between the contactless card and the terminal according to this embodiment, the exchange data between the terminal and the contactless card is implemented based on a state machine, and the method specifically includes:
initializing variables, and setting a state machine to be I-BLOCK; judging the state of the state machine, and then finishing data exchange in the state;
in the variable initialization process, a first variable is added and recorded as a flag bit, the flag bit is NAD or CID, and a second variable is added and used for recording the total length of data to be sent. The flag bit records the current communication mode.
(1) Referring to fig. 1 and 2, when the state machine is in I-BLOCK mode, a data packet is to be exchanged, and the state machine sets TRARCV after the data packet, more specifically:
a11, judging whether the received data block is a chain block; if yes, putting the PCB code of the initial tape chain transmission I block into the start field of the data block, and entering A12; if not, putting the PCB code without the chain transmission I block into the start field of the data block, and entering A13;
a12, judging whether the terminal supports CID,
if CID is supported, adding CID data into a start field of the data packet, then judging whether NAD exists in the data block, if so, adding NAD data into the start field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, subtracting one frame from the total length of the data to be sent, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data packet does not support CID, directly judging whether NAD exists in the data block, if so, adding NAD data into a starting field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, subtracting one frame from the total length of the data to be sent, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
a13, judging whether the terminal supports CID,
if CID is supported, adding CID data into a start field of the data packet, then judging whether NAD exists in the data block, if so, adding NAD data into the start field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, setting the total length of the data to be sent to zero, setting a state machine to be TRARCV, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data block does not support CID, judging whether NAD exists in the data block, if so, adding NAD data into a starting field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, setting the total length of the data to be sent to zero, setting a state machine to be TRARCV, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
(2) Referring to fig. 1 and 3, when the state machine is in the TRARCV mode, the timeout time of the contactless card is updated, the data block of the packaged data to be exchanged is sent to the contactless card, and the data block returned by the contactless card is received:
when the received data BLOCK has abnormality, the abnormality comprises one or more of parity check, CRC, overtime and CODE ERR, re-receiving is started, if the retransmission times or error retransmission times of the S BLOCK is more than 2, the state machine is set to be RCVINV-BLOCK, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the retransmission times or the error retransmission times of the S BLOCK is less than or equal to 2 times, judging whether the received abnormal data is a chain BLOCK, if so, closing the retransmission request of the last BLOCK, setting the state machine as ACK-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, starting the retransmission request of the last BLOCK, setting the state machine as NACK-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
when the received data block has no abnormality, wherein the abnormality includes one or more of parity check, CRC, timeout and CODERR, the type of the received data block is judged: if the data BLOCK type is I BLOCK, resetting the error count to 0, closing the last BLOCK retransmission request, setting the state machine to REV I-BLOCK, ending the data interaction of the current data BLOCK and continuously judging the state of the state machine; if the data BLOCK type is R BLOCK, resetting the error count to 0, closing the last BLOCK retransmission request, setting the state machine to REV R-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the data BLOCK type is S BLOCK, judging whether the last BLOCK is retransmitted or not, if so, sending the retransmission count of the S BLOCK to be increased once, setting the state machine as REV S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, sending the S BLOCK retransmission count clear 0, setting the state machine as REV S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the data BLOCK type does not belong to any one of the I BLOCK, the R BLOCK and the S BLOCK, the received data BLOCK is an error data BLOCK, the state machine is set to be RCVINV-BLOCK, and the current state is finished; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
(3) Referring to fig. 1 and 2, when the state machine is in an ACK-BLOCK mode, a packet to be interacted is an R BLOCK, if the terminal supports CID, CID data is added to a start field of the packet, the state machine is set to TRARCV, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the terminal does not support CID, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
(4) Referring to fig. 1 and 2, when the state machine is in a NACK-BLOCK mode, a packet to be interacted is an R BLOCK, if the terminal supports CID, CID data is added to a start field of the packet, the state machine is set to TRARCV, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the terminal does not support CID, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
(5) Referring to fig. 1 and 2, when the state machine is in the S-BLOCK mode, a data packet to be interacted is an S BLOCK, data of an information field is added to the data packet, the state machine is set to TRARCV, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
(6) Referring to fig. 1 and 4, when the state machine is in the REV I-BLOCK mode, it is determined whether the BLOCK sequence number of the currently received data BLOCK is correct, and if not, the state machine is set to REV INV-BLOCK; if yes, judging whether the current received data block is a chain block, if not, judging whether the current received data block is a NON-EVENT, setting the state machine to be a NON-EVENT, updating the serial number of the data block, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the current state is the link BLOCK, setting the state machine to be ACK-BLOCK, storing the data of the currently received data BLOCK to a cache, updating the serial number of the data BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
(7) Referring to fig. 1 and 4, when the state machine is in REV R-BLOCK mode, it determines whether the header of the received data BLOCK is a NAK or ACK flag,
if NAK is detected, the current transmitted data is wrong, the state machine is set to REV INV-BLOCK, and the current state is finished; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data block is ACK, judging whether the block sequence number of the data block is correct,
if not, updating the retransmission count of the BLOCK I, judging whether the retransmission count exceeds the limit, if so, setting the state machine to REV INV-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the current state is not beyond the limit, setting the state machine to be I-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the current I-BLOCK is correct, judging whether the current I-BLOCK is a chain BLOCK, if the current I-BLOCK is the chain BLOCK, updating the serial number of the data BLOCK, clearing the retransmission times to be 0, setting the state machine to be the I-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, setting the state machine to REV INV-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
(8) Referring to fig. 1 and 4, when the state machine is in REV S-BLOCK mode, it is determined whether the header of the received data BLOCK is an S BLOCK,
if not, setting REV INV-BLOCK by the state machine, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if yes, judging whether the information domain of the S BLOCK is correct, if yes, updating the receiving overtime count, setting the state machine to be S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, setting REV INV-BLOCK by the state machine, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
And the information field of the S block is that the information field of the S block is more than 0 and less than or equal to 63.
(9) Referring to fig. 1 and 4, when the state machine is in REV INV-BLOCK mode, the terminal resets the contactless card and sets the state machine to NON-EVENT, ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
In the present embodiment, the "total length count of data to be transmitted" here represents a count value. The count value is required to record the data that needs to be transmitted. Since a packetized transmission is needed when the incoming data is larger than the sending capacity of one data packet. This amount is used to count the number of bytes that still need to be sent. Meanwhile, the incoming data is larger than one frame length, so that packet transmission is required, and therefore, for the operation of band link transmission, a band link transmission mark needs to be added in each packet data packet, and each data block forming the data packet has a link transmission mark before forming the data packet, namely the data block is the link block. If the data to be sent can be sent out by using one group packet, the data to be sent does not need to be provided with a link transmission mark.
When entering the step of entering the data exchange state of the data to be exchanged, i.e. exchanging the data part shown in fig. 2 and 3, i.e. starting a new data exchange, the total length of data to be sent count needs to be set to the length of the incoming data. The more detailed explanation is: when data exchange is started, the length of data to be transmitted is obtained, so that after the data to be transmitted is initialized, the length of the data to be transmitted is the length of the data to be transmitted.
In this embodiment, the description of the second variable in the variable initialization process is as follows: assuming a total length a of data to be sent in an initialization process, if the total length a of the data to be sent is greater than a frame length, the data to be sent cannot be sent as a data packet, so that the data to be sent is divided into n data units, each data unit is packed to obtain a data packet, and the data packet is sent, wherein the length of each data packet is equal to the length of each data unit +1 byte of PCB +2 bytes of end field + optional field, and the optional field is NAD or CID; when the sub-packet transmission is carried out, subtracting one frame from the total length A of the data to be transmitted in the initialization process; one frame represents the length of the data units contained in the correct data packet. And if the total length A of the data to be sent is less than the frame length, performing no subpackage operation, and resetting the total length of the data to be sent to be zero in the initialization process.
Referring to fig. 5, a communication method between a class a contactless card and a terminal in ISO14443-4 includes:
s11, the terminal activates the electromagnetic field by itself, waits for the non-contact card to approach the terminal, then initiates a transaction communication request to the non-contact card in the form of REQA instruction or WUPA instruction, and the non-contact card responds with ATQA instruction after receiving the REQA instruction or WUPA instruction;
s12, when the instruction carried in the response received by the terminal is reasonable, the anti-collision circulating operation is started to obtain the UID of the non-contact card for response, meanwhile, the terminal sends the SEL instruction to the non-contact card which returns the UID, and after the non-contact card which returns the UID correctly receives the SEL instruction, the SEL instruction is responded by the SAK instruction;
s13, the terminal judges whether the non-contact card sending the response command SAK meets the preset standard requirement or not according to the received response command SAK, if so, the terminal sends a RATS command to the non-contact card, and the non-contact card sends an ATS command to the terminal after receiving the RATS command;
s14, the terminal judges whether to carry out PPS process according to the received ATS instruction, if yes, the terminal negotiates with the non-contact card to obtain a communication parameter, then carries out PPS process, and enters S5 after the PPS process is finished; if not, go directly to S5;
and S15, the terminal enters a data exchange stage, sends a DESLECT instruction to remove the non-contact card after finishing exchanging data, enters an IDLE state after the non-contact card receives the DESLECT instruction, and waits for the next time when the terminal initiates a request of transaction communication.
The interactive data phase of step S5 employs the method described in example 1.
Referring to fig. 6, a schematic diagram of a communication flow between a class B contactless card and a terminal in ISO14443 includes:
s21, the terminal automatically activates an electromagnetic field, waits for the non-contact card to approach the terminal, then initiates a transaction communication request to the non-contact card in the form of a REQB instruction or a WUPB instruction, and the non-contact card responds with an ATQB instruction after receiving the REQB instruction or the WUPB instruction; if the execution is correct, the operation of S22 is executed, if the operation is not successful, the operation returns to S21, and the command for waking up the card is re-sent. If the timing time is exceeded, the process is exited;
s22, the terminal sends an atterb instruction to activate the card, if the card responds to the operation instruction correctly, the operation flow is exited if the card enters S23 errors; if the error occurs and the retry frequency is less than 3 times, repeating the operation of S22, otherwise, exiting the process;
s23, the terminal enters the exchange data phase. And after the operation is finished, exiting the flow.
Wherein. The interactive data phase uses the method described in example 1.
By adopting the technical scheme disclosed by the invention, the following beneficial effects are obtained:
the invention overcomes the defects in the prior art. And controlling each link by adopting a state machine mode. And implementing the code according to the preset specification requirement. Data processing and exception handling for blocks such as I, R, S are achieved.
The method of the invention is easy to understand, maintain and manage, the state machine controls the interaction process, and the adjustment is carried out according to the data fed back by the non-contact card, so that the method is clear in order and easy to understand and maintain. The abnormal processing and normal data interaction logic realization of each link can be fully ensured.
The foregoing is only a preferred embodiment of the present invention, and it should be noted that, for those skilled in the art, various modifications and improvements can be made without departing from the principle of the present invention, and such modifications and improvements should also be considered within the scope of the present invention.

Claims (9)

1. A data exchange communication method between a non-contact card and a terminal is characterized in that the exchange data between the terminal and the non-contact card is realized based on a state machine, and the method specifically comprises the following steps:
initializing variables, and setting a state machine to be I-BLOCK; judging the state of the state machine, and then finishing data exchange in the state;
in the variable initialization process, adding a first variable as a flag bit, wherein the flag bit is NAD or CID, and adding a second variable for recording the total length of data to be sent;
when the state machine is in the I-BLOCK state, a data packet to be interacted is packaged, and the state machine is set to TRARCV after the data packet is packaged, and more specifically:
a11, judging whether the received data block is a chain block; if yes, putting the PCB code of the initial tape chain transmission I block into the start field of the data block, and entering A12; if not, putting the PCB code without the chain transmission I block into the start field of the data block, and entering A13;
a12, judging whether the terminal supports CID,
if CID is supported, adding CID data into a start field of the data packet, then judging whether NAD exists in the data block, if so, adding NAD data into the start field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, subtracting one frame from the total length of the data to be sent, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data packet does not support CID, directly judging whether NAD exists in the data block, if so, adding NAD data into a starting field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, subtracting one frame from the total length of the data to be sent, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
a13, judging whether the terminal supports CID,
if CID is supported, adding CID data into a start field of the data packet, then judging whether NAD exists in the data block, if so, adding NAD data into the start field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, setting the total length of the data to be sent to zero, setting a state machine to be TRARCV, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data block does not support CID, judging whether NAD exists in the data block, if so, adding NAD data into a starting field of the data packet, and then setting an information field in the data packet to obtain the data packet; if not, directly setting an information field in the data packet to obtain the data packet; after the data packet is obtained, setting the total length of the data to be sent to zero, setting a state machine to be TRARCV, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
2. The data exchange communication method between the contactless card and the terminal according to claim 1, wherein when the state machine is in a TRARCV state, the timeout time of the contactless card is updated, the packed data block of data to be exchanged is sent to the contactless card, and simultaneously the data block returned by the contactless card is received:
when the received data BLOCK has abnormality, the abnormality comprises one or more of parity check, CRC, overtime and CODE ERR, re-receiving is started, if the retransmission times or error retransmission times of the S BLOCK is more than 2, the state machine is set to be RCVINV-BLOCK, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the retransmission times or the error retransmission times of the S BLOCK is less than or equal to 2 times, judging whether the received abnormal data is a chain BLOCK, if so, closing the retransmission request of the last BLOCK, setting the state machine as ACK-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, starting the retransmission request of the last BLOCK, setting the state machine as NACK-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
when the received data block has no abnormality, wherein the abnormality comprises one or more of parity check, CRC, timeout and CODE ERR, judging the type of the received data block: if the data BLOCK type is I BLOCK, resetting the error count to 0, closing the last BLOCK retransmission request, setting the state machine to REVI-BLOCK, ending the data interaction of the current data BLOCK, and continuously judging the state of the state machine; if the data BLOCK type is R BLOCK, resetting the error count to 0, closing the last BLOCK retransmission request, setting the state machine to REV R-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the data BLOCK type is S BLOCK, judging whether the last BLOCK is retransmitted or not, if so, sending the retransmission count of the S BLOCK to be increased once, setting the state machine as REV S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, sending the S BLOCK retransmission count clear 0, setting the state machine as REV S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the data BLOCK type does not belong to any one of the I BLOCK, the R BLOCK and the S BLOCK, the received data BLOCK is an error data BLOCK, the state machine is set to be RCVINV-BLOCK, and the current state is finished; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
3. The data exchange communication method between the contactless card and the terminal according to claim 1,
when the state machine is in an ACK-BLOCK state or a NACK-BLOCK state, the data packet to be interacted is an R BLOCK, if the terminal supports CID, CID data is added into a start field of the data packet, the state machine is set to TRARCV, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the terminal does not support CID, setting the state machine as TRARCV, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
4. The data exchange communication method between the contactless card and the terminal according to claim 1, characterized in that, when the state machine is in S-BLOCK state, the data packet to be interacted is an S BLOCK, the data of the information field is added to the data packet, the state machine is set to TRARCV, and the current state is ended; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
5. The data exchange communication method between the contactless card and the terminal according to claim 1,
when the state machine is in the REV I-BLOCK state, judging whether the BLOCK sequence number of the currently received data BLOCK is correct, if not, setting the state machine as REVINV-BLOCK; if yes, judging whether the current received data block is a chain block, if not, judging whether the current received data block is a NON-EVENT, setting the state machine to be a NON-EVENT, updating the serial number of the data block, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the current state is the link BLOCK, setting the state machine to be ACK-BLOCK, storing the data of the currently received data BLOCK to a cache, updating the serial number of the data BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
6. The data exchange communication method between the contactless card and the terminal according to claim 1,
when the state machine is in REV R-BLOCK state, the flag of whether the data header of the received data BLOCK is NAK or ACK is judged,
if NAK is detected, the current transmitted data is wrong, the state machine is set to REV INV-BLOCK, and the current state is finished; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the data block is ACK, judging whether the block sequence number of the data block is correct,
if not, updating the error retransmission count number, judging whether the retransmission count exceeds the limit, if so, setting the state machine to REV INV-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if the current state is not beyond the limit, setting the state machine to be I-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if the current I-BLOCK is correct, judging whether the current I-BLOCK is a chain BLOCK, if the current I-BLOCK is the chain BLOCK, updating the serial number of the data BLOCK, clearing the retransmission times to be 0, setting the state machine to be the I-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, setting the state machine to REVINV-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
7. The data exchange communication method between the contactless card and the terminal according to claim 1,
when the state machine is in REV S-BLOCK state, judging whether the data head of the received data BLOCK is S BLOCK or not,
if not, setting REVINV-BLOCK by the state machine, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine;
if yes, judging whether the information domain of the S BLOCK is correct, if yes, updating the receiving overtime count, setting the state machine to be S-BLOCK, and ending the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the judging state machine; if not, setting REV INV-BLOCK by the state machine, and finishing the current state; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
8. The method according to claim 7, wherein the information field of the S block is that the S block information field is greater than 0 and equal to or less than 63.
9. The data exchange communication method between the contactless card and the terminal according to claim 1,
when the state machine is in the REV INV-BLOCK state, the terminal resets the NON-contact card and sets the state machine to NON-EVENT, and the current state is finished; judging whether the state machine is in an invalid state or not, and if so, ending the state machine; if not, returning to the state of the state machine.
CN201711243910.2A 2017-11-30 2017-11-30 Data exchange communication method between non-contact card and terminal Active CN108011697B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711243910.2A CN108011697B (en) 2017-11-30 2017-11-30 Data exchange communication method between non-contact card and terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711243910.2A CN108011697B (en) 2017-11-30 2017-11-30 Data exchange communication method between non-contact card and terminal

Publications (2)

Publication Number Publication Date
CN108011697A CN108011697A (en) 2018-05-08
CN108011697B true CN108011697B (en) 2020-09-18

Family

ID=62055804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711243910.2A Active CN108011697B (en) 2017-11-30 2017-11-30 Data exchange communication method between non-contact card and terminal

Country Status (1)

Country Link
CN (1) CN108011697B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613159A (en) * 1992-04-08 1997-03-18 Innovatron Industries S.A. Contact-free data exchange between a terminal and modular portable set having two different protocols for exchange which is selected based on portable set type
CN1957361A (en) * 2004-05-24 2007-05-02 松下电器产业株式会社 Reader/writer secure module access control method
CN101783040A (en) * 2008-12-23 2010-07-21 深圳市莫廷影像技术有限公司 Smart card swipe machine and information exchange method
CN101969393A (en) * 2010-10-27 2011-02-09 四川省绵阳西南自动化研究所 Protocol converter for FlexRay bus and PC104 bus
CN102685722A (en) * 2011-03-17 2012-09-19 株式会社东芝 Ic card
CN104426572A (en) * 2013-09-11 2015-03-18 中兴通讯股份有限公司 Method and system for multiplexing radio-frequency front end
CN106559739A (en) * 2016-09-28 2017-04-05 深圳成谷科技有限公司 It is suitable to the lightweight data transmission method of Bluetooth Low Energy wireless communication system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI579784B (en) * 2016-03-30 2017-04-21 Non-contact wafer card reader with hybrid multi-core parallel verification processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613159A (en) * 1992-04-08 1997-03-18 Innovatron Industries S.A. Contact-free data exchange between a terminal and modular portable set having two different protocols for exchange which is selected based on portable set type
CN1957361A (en) * 2004-05-24 2007-05-02 松下电器产业株式会社 Reader/writer secure module access control method
CN101783040A (en) * 2008-12-23 2010-07-21 深圳市莫廷影像技术有限公司 Smart card swipe machine and information exchange method
CN101969393A (en) * 2010-10-27 2011-02-09 四川省绵阳西南自动化研究所 Protocol converter for FlexRay bus and PC104 bus
CN102685722A (en) * 2011-03-17 2012-09-19 株式会社东芝 Ic card
CN104426572A (en) * 2013-09-11 2015-03-18 中兴通讯股份有限公司 Method and system for multiplexing radio-frequency front end
CN106559739A (en) * 2016-09-28 2017-04-05 深圳成谷科技有限公司 It is suitable to the lightweight data transmission method of Bluetooth Low Energy wireless communication system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Identification cards-Contactless integrated circuit(s) cards - Proximity cards-Part 4: Transmission protocol";ISO;《ISO/IEC FDIS 14443-4》;20000713;1-10 *

Also Published As

Publication number Publication date
CN108011697A (en) 2018-05-08

Similar Documents

Publication Publication Date Title
EP1762059B1 (en) Method of, and system for, communicating data, and a station for transmitting data
CN100366029C (en) Communication controller, host-side controller, communication equipment, communication system and method
CN104782072B (en) Using the system and method for hybrid automatic repeat-requests agreements such as reliably stopping
EP1681814B1 (en) Wireless identification protocol with confirmation of successful transmission
US8351356B2 (en) Data communication system, communication device, and communication method
CN103716133A (en) Method for preventing data loss
CN113132063B (en) Physical layer retransmission control method
US9706435B2 (en) Method and system for dynamically changing upper bound on data packet size in wireless communication networks
US9491269B2 (en) Uplink transmission rate in a wireless communication device
EP2589176B1 (en) Methods and devices for performing an automatic repeat request reset in a wireless communication environment
CN108011697B (en) Data exchange communication method between non-contact card and terminal
JP7210867B2 (en) Acknowledgment packet transmission method and communication device
US9769704B2 (en) Methods for accessing to base station that uses sack mechanism and apparatuses using the same
CA2784985C (en) Apparatus and method of communicating automatic repeat request (arq) feedback in a wireless communication network
CN103873192A (en) Data processing method and device
CN113760808A (en) Power supply primary and secondary serial port communication method, system and storage medium
WO2022147831A1 (en) Communication method and communication apparatus
CN117171083B (en) NAK-based system for adaptively repairing PCIE interface interconnection link
CN115514457A (en) Wireless Internet of things control channel communication method, system, device and medium
WO2023004702A1 (en) Transmission rate determination method and communication apparatus
WO2021063299A1 (en) Data transmission method, base station, terminal, system, and computer-readable storage medium
EP2405627B1 (en) Method for operating a remote procedure call handler in a client and a server and computer system comprising the same
WO2022086798A1 (en) Repeated in sequence packet transmission for checksum comparison
CN116114199A (en) Message retransmission method and device
JPS59168537A (en) Control system of communication controller

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant