Abstract: Embodiments of the present disclosure disclose a system (102) and methods (400; 500) for unmanned aerial vehicle (112) and ground control system (GCS) (114). The system creates a start byte of a data frame based on a High-Level Data Link Control (HDLC) protocol layer augmented between a MAVlink protocol layer and a radio module. Further, the system determines an HDLC escape byte of the data frame. The system adds an inverted byte in the HDLC escape byte and further adds a first set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes. The system inputs data bytes including actual data to the data frame. Further, the system adds a second set of CRC bytes and a third set of CRC bytes to corresponding CRC bytes in the data frame. The system creates a stop byte in the data frame, thereby allowing transmission of the data frame through radio module. Figure of Abstract: FIG. 1
DESC:TECHNICAL FIELD
[0001] The present disclosure relates generally to communication systems for unmanned aerial vehicles (UAVs) and ground control stations (GCSs).
BACKGROUND
[0002] Typically, unmanned aerial vehicles (UAVs) are fully autonomous and fly without pilots. The UAVs can be remotely controlled from a ground control station (GCS) based on a pre-programmed system, or can autonomously fly. To control the UAVs by using the GCSs, a communication protocol plays a crucial role for establishing a communication link between the UAV and a respective GCS apparatus. The most widely used application communication protocol for remote communication between the UAVs and GCSs is a micro air vehicle link (MAVlink) protocol. The MAVlink protocol is generally used to communicate between many different UAVs, ground control stations (GCSs), and other nodes over varied and challenging communication channels having high latency or noise. The MAVlink protocol provides methods for detecting packet drops, packet corruption, and for packet authentication. However, the main disadvantage of the MAVlink protocol is lacking the capability of asynchronous framing, i.e., the start of a new packet of data can be detected irrespective of previously arrived packets, and will waste a perfectly good data packet to satisfy its MAVlink parser state machine, if any bytes from the previous data packet were lost. This unnecessary wastage brings in further inefficiencies to remote communication where packet drops happen frequently, leading to increasingly unreliable communication link.
[0003] CN110413006A titled “Unmanned Aerial Vehicle (UAV) Formation Networking System and Method based on 5G Communication” discloses a networking system which includes an UAV, an UAV flight control system, a Real Time Kinematic (RTK) -big Dipper/Global Positioning System (GPS) module, an inertial navigation unit (IMU) module, a 5G communication module, a ground control system and a ground 5G base station. The UAV flight control system, the RTK-big Dipper/GPS module, the IMU inertial navigation module and the 5G communication module are installed on the UAV. The 5G communication module on the unmanned aerial vehicle receives an instruction sent by a ground control system. The unmanned aerial vehicle self-adaptive networking is carried out, and idle nodes are searched. The data such as flight control, positioning and the like are exchanged between single machines, and thereafter sending the message to a ground control terminal and carrying out cluster control.
[0004] CN105913692B titled “Method and System for Monitoring Service of Flying” discloses the features of obtaining the position and tracking information of the unmanned aerial vehicle through the black box of the low-altitude flying aircraft, and after relevant processing, the unmanned aerial vehicle air traffic control system tracks information around the UAV, and sends the tracked information to the UAV ground control station.
[0005] TW202209844A titled “Methods of using Certificate-based Security with Drone Identity and Broadcasting” discloses enabling broadcast communications security, enabling the authentication of broadcast communications, enabling asymmetric authentication and integrity protection of small size messages, such as one or more signed messages totaling a length of 250 bytes or less, supporting cryptographic signing of beacon type messages using certificates, generating a beacon type message, cryptographically signing the beacon type message at least in part using a certificate to generate a signed beacon message, and sending the signed beacon type message in one or more broadcast transmissions in conjunction with, or independently of, certificate information used to verify the signed beacon message.
[0006] US20210088337A1 titled “System and method for Service Oriented Cloud based Management of Internet of Drones” discloses an Internet protocol-based unmanned aerial vehicle (UAV) management system and method that includes the features of storing a plurality of pre-planned missions, controlling communication between the UAV and a user computer, mapping the UAV to the virtual UAV, assigning a mission to include multiple waypoints, and allocating the task at the multiple waypoints. Dynamic mission planning of the assigned mission is performed to generate planned paths for performing the task. Operation of the UAV is controlled by way of the corresponding virtual UAV including receiving messages and commands for the mission from the user computer, sending control commands to the UAV, receiving data signals from the UAV, and transmitting location and status of performance of the task for the UAV. The cloud-based service performs image processing using the received data signals.
[0007] Therefore, there is a need for an invention which solves the above defined problems and provides a communication system and method for unmanned aerial vehicles (UAVs) and ground control stations that removes the unnecessary wastage of data packets and increases the communication efficiency within the whole system of UAV and GCS.
SUMMARY
[0008] An aspect of the present invention is to address at least the above-mentioned problems and/or disadvantages and to provide at least the advantages described below.
[0009] Accordingly, in one aspect of the present disclosure, a method for communication between an unmanned aerial vehicle (UAV) and ground control station (GCS) is disclosed. The method performed by a system includes creating a start byte of a data frame based at least on a High-Level Data Link Control (HDLC) protocol layer. The method includes determining, by the system, an HDLC escape byte among one or more read bytes of the data frame. Further, the method includes adding an inverted byte in the HDLC escape byte of the data frame, in response to determining the HDLC escape byte. The method includes adding a first set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame. The method further includes inputting one or more data bytes comprising actual data to the data frame and adding a second set of cyclic redundancy check (CRC) bytes and a third set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame. The method includes creating a stop byte in the data frame, thereby allowing transmission of the data frame through the radio module.
[0010] Accordingly, in another aspect of the present disclosure, a system is disclosed. The system includes a radio module and a processing unit communicably coupled to the radio module. The processing unit is configured to execute machine readable instructions to cause the system to at least create a start byte of a data frame based at least on a High-Level Data Link Control (HDLC) protocol layer. The system is configured to determine an HDLC escape byte among one or more read bytes of the data frame. Further, the system is configured to add an inverted byte in the HDLC escape byte of the data frame, in response to determining the HDLC escape byte. The system is configured to add a first set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame. The system is further configured to input one or more data bytes comprising actual data to the data frame and add a second set of cyclic redundancy check (CRC) bytes and a third set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame. The system is configured to create a stop byte in the data frame, thereby allowing transmission of the data frame through the radio module.
[0011] Accordingly, in another aspect of the present disclosure, a method for communication between an unmanned aerial vehicle (UAV) and ground control station (GCS) is disclosed. The method performed by a system includes determining receipt of the data frame via a High-Level Data Link Control (HDLC) protocol layer. Further, receipt of the data frame is detected based at least on a start byte and a stop byte of the data frame. A first data buffer is created based at least on detecting the start byte of the data frame. The method includes computing cyclic redundancy check (CRC) bytes corresponding to the data frame. Further, the method includes extracting High-Level Data Link Control (HDLC) payload to a second data buffer based at least on successful validation of the cyclic redundancy check (CRC) bytes and storing a subsequent data byte of the second data buffer to a third data buffer. The method includes extracting the subsequent data byte based at least on determining whether the subsequent data byte is an HDLC escape byte and storing the subsequent data byte to a third data buffer. The method includes transmitting the third data buffer to an application layer. The third data buffer is transmitted to the application layer upon determining whether recursion through the second data buffer is complete.
[0012] Accordingly, in another aspect of the present disclosure, a system is disclosed. The system includes a radio module and a processing unit communicably coupled to the radio module. The processing unit is configured to execute machine readable instructions to cause the system to at least determine receipt of the data frame via a High-Level Data Link Control (HDLC) protocol layer. Further, receipt of the data frame is detected based at least on a start byte and a stop byte of the data frame. A first data buffer is created based at least on detecting the start byte of the data frame. The system is configured to compute cyclic redundancy check (CRC) bytes corresponding to the data frame. Further, the system is configured to extract High-Level Data Link Control (HDLC) payload to a second data buffer based at least on successful validation of the cyclic redundancy check (CRC) bytes and store a subsequent data byte of the second data buffer to a third data buffer. The system is configured to extract the subsequent data byte based at least on determining whether the subsequent data byte is an HDLC escape byte and store the subsequent data byte to a third data buffer. The system is configured to transmit the third data buffer to an application layer. The third data buffer is transmitted to the application layer upon determining whether recursion through the second data buffer is complete.
BRIEF DESCRIPTION OF ACCOMPANYING DRAWINGS
[0013] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and modules.
[0014] FIG. 1 illustrates a schematic representation of an environment, in accordance with an embodiment of the present disclosure;
[0015] FIG. 2 illustrates a flowchart depicting one or more steps performed at a transmission end, in accordance with an embodiment of the present disclosure;
[0016] FIGS. 3A and 3B, collectively, represent a flowchart depicting one or more steps performed at a receiving end, in accordance with an embodiment of the present disclosure;
[0017] FIG. 4 is a flow diagram depicting a method implemented at transmitting end for communication between the UAV and the GCS, in accordance with an embodiment of the present disclosure; and
[0018] FIG. 5 is a flow diagram depicting a method implemented at receiving end for communication between the UAV and the GCS, in accordance with an embodiment of the present disclosure.
[0019] It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative methods embodying the principles of the present disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
DETAILED DESCRIPTION
[0001] The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of exemplary embodiments of the invention as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the invention. In addition, descriptions of well-known functions and constructions are omitted for clarity and conciseness.
[0002] The terms and words used in the following description and claims are not limited to the bibliographical meanings but are merely used by the inventor to enable a clear and consistent understanding of the invention. Accordingly, it should be apparent to those skilled in the art that the following description of exemplary embodiments of the present invention are provided for illustration purpose only and not for the purpose of limiting the invention as defined by the appended claims and their equivalents.
[0003] It is to be understood that the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a component surface” includes reference to one or more of such surfaces. References in the specification to “one embodiment” or “an embodiment” mean that a particular feature, structure, characteristic, or function described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
[0020] By the term “substantially” it is meant that the recited characteristic, parameter, or value need not be achieved exactly, but that deviations or variations, including for example, tolerances, measurement error, measurement accuracy limitations and other factors known to those of skill in the art, may occur in amounts that do not preclude the effect the characteristic was intended to provide.
[0021] Figures discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way that would limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged communications system. The terms used to describe various embodiments are exemplary. It should be understood that these are provided to merely aid the understanding of the description, and that their use and definitions in no way limit the scope of the invention. Terms first, second, and the like are used to differentiate between objects having the same terminology and are in no way intended to represent a chronological order, unless where explicitly stated otherwise. A set is defined as a non-empty set including at least one element.
[0022] In the following description, for purpose of explanation, specific details are set forth in order to provide an understanding of the present disclosure. It will be apparent, however, to one skilled in the art that the present disclosure may be practiced without these details. One skilled in the art will recognize that embodiments of the present disclosure, some of which are described below, may be incorporated into a number of systems. However, the systems and methods are not limited to the specific embodiments described herein. Further, structures and devices shown in the figures are illustrative of exemplary embodiments of the presently disclosure and are meant to avoid obscuring of the presently disclosure.
[0023] In an embodiment, the present disclosure discloses a communication system for unmanned aerial vehicles (UAVs) and ground control stations (GCSs) and method thereof, which increases the efficiency of communication between the UAV and GCS by using a High-level Data Link Control (HDLC) protocol. In an embodiment, the communication system for unmanned aerial vehicles (UAVs) and ground control stations (GCSs) and method thereof, provides asynchronous framing into the communication system. This is done by adding a layer of HDLC protocol between a MAVlink layer and the radio module at the GCS and the UAV.
[0024] Various embodiments of the present disclosure are further described with reference to FIG. 1 and FIG. 5.
[0025] FIG. 1 illustrates a schematic representation of an environment (100), in accordance with an embodiment of the present disclosure. Although the environment (100) is depicted to include one or a few components, modules, or devices arranged in a particular arrangement in the present disclosure, it should not be taken to limit the scope of the present disclosure. The environment (100) includes a communication system (102) (hereinafter interchangeably referred to as “the system (102)).
[0026] In an embodiment, the communication system (102) can be implemented in an unmanned aerial vehicle (UAV) (112) and a ground control station (GCS) (114) (as shown in FIG. 1). The communication system (102) implemented in both the UAV (112) and the GCS (114) facilitates communication between the UAV (112) and the GCS (114) which will be explained further in detail.
[0027] The system (102) includes a processing unit (104) and a radio module (110). The system (102) also includes a MAVlink protocol layer (106) and HDLC protocol layer (108) added between the processing unit (102) and the radio module (110). In an embodiment, the processing unit (102), the radio module (110), the MAVlink protocol layer (106), and the HDLC protocol layer (108) may be implemented in the UAV (112) or the GCS (114). In an embodiment, the system (102) may be configured to add a layer of implementation of the HDLC protocol (108) between the default MAVlink protocol layer (106) and the radio module (110), which is responsible for putting the data over the air by radio. The HDLC protocol layer (108) has features of only asynchronous framing and Cyclic Redundancy Checks (CRC) to reduce the overhead over the application data to be minimum.
[0028] In one embodiment, the processing unit (104) includes suitable logic, circuitry, and/or interfaces to execute computer readable instructions for enabling communication between the UAV (112) and the GCS (114). Examples of the processor (104) include, but are not limited to, an application-specific integrated circuit (ASIC) processor, a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a field-programmable gate array (FPGA), and the like.
[0029] In an embodiment, the system (102) includes a transmission end and a receiving end. In one case, the transmission end may include the processing unit (such as the processing unit (104)) of the UAV (112), along with the respective radio module (such as the radio module (110)) and the MAVlink and HDLC protocol layers, and the receiving end may include the processing unit (such as the processing unit (104)) of the GCS (114) along with the respective radio module (such as the radio module (110)) and the MAVlink and HDLC protocol layers. In another case, the transmission end may include the processing unit (such as the processing unit (104)) of the GCS (114), along with the respective radio module (such as the radio module (110)) and the MAVlink and the HDLC protocol layers, and the receiving end may include the processing unit (such as the processing unit (104)) of the UAV (112) along with the respective radio module (such as the radio module (110)) and the MAVlink and HDLC protocol layers.
[0030] It is to be noted that certain characters are used as markers for frame start and frame end, with only 2 bytes for Cyclic Redundancy Checks (CRCs) making the fixed overhead to just 4 bytes. With this approach, it is important that the actual application data and CRC bytes do not contain any of the framing characters for the framing to work. This is achieved by ‘Escaping’ the data byte. For escaping an application data byte, an eXclusive OR (XOR) inverted byte of the data byte is added after the data byte into the HDLC data stream. Further, CRC is continuously calculated for each of the bytes added to the HDLC data packet. The 2-byte CRC is then added to the HDLC packet, followed by the STOP character of the HDLC packet. With this, the HDLC frame becomes complete and ready to be transmitted. Upon receipt, an HDLC parser machine will follow the same steps mentioned but in reverse order, to fetch the original application data, i.e., the MAVlink data. Firstly, the parser state machine will detect a new HDLC packet when it sees the START byte. Upon receipt of START byte, the state machine will wait for the whole data to arrive until the STOP byte, and then verify the HDLC packet data with its CRC. Upon successful validation of the CRC, the state machine will read the payload bytes, extracting the Escape bytes by performing XOR inversion again. The non-escape usual bytes are extracted as is. If between an HDLC packet, a new HDLC frame start is detected, the whole HDLC parser state machine is reset and the state machine starts again. It is understood that the state machine is operable between a reset state and a normal state based at least on the start byte and the cyclic redundancy check (CRC) bytes of the data frame. In this way, the system (102) provides the capability of asynchronous framing and frame detection.
[0031] Referring to FIG. 2 in conjunction with FIG. 1, a flowchart representing one or more steps performed at the transmission end is illustrated. The various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or by an apparatus such as the system (102).
[0032] At (202), the system (102) adds a START byte in a data frame based at least on HDLC protocol layer (108). At (204), the system (102) reads next byte from an application data packet.
[0033] At (206), the system (102) checks whether the read byte is an HDLC Escape byte. In particular, the data frame includes one or more data bytes. The system (102) determines the HDLC escape byte among the one or more read bytes of the data frame by reading each byte in the data frame.
[0034] In one scenario, if the read byte is not the HDLC Escape byte, the system (102) adds actual data byte to the HDLC stream (i.e., the data frame) (see, 208). Thereafter, the system (102) calculates CRC (see, 210), and step (XXX) is performed.
[0035] In another scenario, if the read byte is the HDLC Escape byte, the system (102) performs XOR inversion of byte (see, 212). Thereafter, the system (102) adds an inverted byte in the HDLC escape byte of the data frame (see, 214). The inverted byte corresponds to exclusive OR (XOR) inverted data byte.
[0036] At (216), the system (102) calculates CRC (i.e., a first set of cyclic redundancy check (CRC) bytes) and adds the first set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame.
[0037] At (218), the system (102) adds actual data byte to the HDLC stream (i.e., the data frame). In other words, the system (102) adds one or more data byte including actual data to the data frame.
[0038] At (220), the system (102) calculates CRC (i.e., a second set of cyclic redundancy check (CRC) bytes) and adds the second set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame. It is to be noted that the secondary CRC bytes are added to the corresponding CRC bytes upon inputting the actual data in the data frame.
[0039] At (222), the system (102) checks whether reading of the whole application data packet is finished or not. If not, the system (102) repeats the process from the step (204). Else the system (102) adds CRC bytes (i.e., a third set of cyclic redundancy check (CRC) bytes) in the data frame (see, 224). In other words, the third set of cyclic redundancy check (CRC) bytes are added to the corresponding CRC bytes based upon determining whether reading of each data byte in the data frame is completed.
[0040] At (226), the system (102) adds STOP bytes in the data frame. Further, the data frame can be transmitted to the receiving end through the radio module.
[0041] Referring to FIGS. 3A and 3B in conjunction with FIG. 1, a flowchart representing one or more steps performed at the receiving end is illustrated. The various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or by an apparatus such as the system (102).
[0042] At (302), the system (102) reads next byte in the frame. At (304), the system (102) appends/stores the byte to a first data buffer. In other words, the system (102) determines receipt of the data frame via the High-Level Data Link Control (HDLC) protocol layer. The system (102) determines the receipt of the data frame based at least on a start byte and a stop byte of the data frame. Thereafter, the system (102) creates the first data buffer based at least on detecting the start byte of the data frame.
[0043] At (306), the system (102) checks whether the appended byte is a START byte. If yes, the system (102) again checks whether the START byte was already received in the frame or not (see, 308). If the START byte is already received, the system (102) resets a state machine (see, 310), and then discards data buffers (see, 312). If the START byte is not received at step (308), the system (102) updates the state machine (see, 314).
[0044] Further, if the system (102) determines the STOP byte, if the byte is not the START byte (see, 316). Thereafter, the system (102) calculates CRC (see, 318). The CRC bytes may include the first set of CRC bytes, the second set of CRC bytes, and the third set of CRC bytes.
[0045] At (320), the system (102) checks whether the calculated CRC is valid. In one scenario, if the CRC is valid, the system (102) copies HDLC payload to a second data buffer (see, 322). In other words, the system (102) extracts High-Level Data Link Control (HDLC) payload to the second data buffer based at least on successful validation of the cyclic redundancy check (CRC) bytes. In another scenario, if the CRC is invalid, the system (102) resets a state machine (see, 324) and then discards data buffers (see, 326).
[0046] At (328), the system (102) reads the next byte from the second data buffer. At (330), the system (102) appends/stores the byte to a third data buffer. In other words, the system (102) reads a subsequent data byte of the second data buffer and stores the subsequent data byte of the second data buffer to a third data buffer.
[0047] At (332), the system (102) checks whether the byte is an ESCAPE byte. In one scenario, if the subsequent byte is determined as the ESCAPE byte, the system (102) performs XOR inversion of the byte (see, 334). Thereafter, the system (102) appends the byte to the third data buffer (see, 334). In other words, the subsequent data byte is extracted by performing exclusive OR (XOR) inversion of the subsequent data byte. In another scenario, if the byte is not the ESCAPE byte, the system (102) directly adds the stored byte with the appended byte. Thereafter, the system (102) checks again whether recursion through the whole second data buffer has finished (see, 336). At (338), the system (102) sends application data third buffer to an application layer. In other words, the system (102) transmits the third data buffer to the application layer. The third data buffer is transmitted to the application layer upon determining whether recursion through the second data buffer is complete.
[0048] At (340), the system (102) further checks whether the next byte is received in the data frame and repeats the whole process from the step (302) by using the results of the addition of steps (310), (312), (326), and (338).
[0049] FIG. 4 is a flow diagram depicting a method (400) implemented at transmitting end for communication between the UAV (112) and the GCS (114), in accordance with an embodiment of the present disclosure. The various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or by an apparatus such as the system (102). The method (400) starts at (402).
[0050] At operation (402), the method (400) includes creating, by the system (102), a start byte of a data frame based at least on a High-Level Data Link Control (HDLC) protocol layer. In an embodiment, the HDLC protocol layer is augmented between a MAVlink protocol layer and a radio module.
[0051] At operation (404), the method (400) includes determining, by the system (102), an HDLC escape byte among one or more read bytes of the data frame.
[0052] At operation (406), the method (400) includes in response to determining the HDLC escape byte, adding, by the system (102), an inverted byte in the HDLC escape byte of the data frame.
[0053] At operation (408), the method (400) includes upon adding the inverted byte, adding, by the system (102), a first set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame.
[0054] At operation (410), the method (400) includes inputting, by the system (102), one or more data bytes comprising actual data to the data frame.
[0055] At operation (412), the method (400) includes adding, by the system (102), a second set of cyclic redundancy check (CRC) bytes and a third set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame.
[0056] At operation (414), the method (400) includes creating, by the system (102), a stop byte in the data frame, thereby allowing transmission of the data frame through the radio module.
[0057] FIG. 5 is a flow diagram depicting a method (500) implemented at receiving end for communication between the UAV (112) and the GCS (114), in accordance with an embodiment of the present disclosure. The various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or by an apparatus such as the system (102). The method (500) starts at (502).
[0058] At operation (502), the method (500) includes determining, by the system (102), receipt of the data frame via a High-Level Data Link Control (HDLC) protocol layer. In an embodiment, the HDLC protocol layer is augmented between a radio module and a MAVlink protocol layer. The receipt of the data frame is detected based at least on a start byte and a stop byte of the data frame. Further, a first data buffer is created based at least on detecting the start byte of the data frame.
[0059] At operation (504), the method (500) includes computing, by the system (102), cyclic redundancy check (CRC) bytes (i.e., the first set of CRC set of bytes, the second set of CRC bytes and the third set of CRC bytes) corresponding to the data frame.
[0060] At operation (506), the method (500) includes extracting, by the system (102), High-Level Data Link Control (HDLC) payload to a second data buffer based at least on successful validation of the cyclic redundancy check (CRC) bytes.
[0061] At operation (508), the method (500) includes storing, by the system (102), subsequent data byte of the second data buffer to a third data buffer.
[0062] At operation (510), the method (500) includes extracting, by the system (102), the subsequent data byte based at least on determining whether the subsequent data byte is an HDLC escape byte.
[0063] At operation (512), the method (500) includes storing, by the system (102), the subsequent data byte to a third data buffer.
[0064] At operation (514), the method (500) includes transmitting, by the system (102), the third data buffer to an application layer. The third data buffer is transmitted to the application layer upon determining whether recursion through the second data buffer is complete.
[0065] The various embodiments described above are specific examples of a single broader invention. Any modifications, alterations or the equivalents of the above-mentioned embodiments pertain to the same invention as long as they are not falling beyond the scope of the invention as defined by the appended claims. It will be apparent to a skilled person that the embodiments described above are specific examples of a single broader invention which may have greater scope than any of the singular descriptions taught. There may be many alterations made in the invention without departing from the scope of the invention.
[0066] Figures are merely representational and are not drawn to scale. Certain portions thereof may be exaggerated, while others may be minimized. Figures illustrate various embodiments of the invention that can be understood and appropriately carried out by those of ordinary skill in the art.
[0067] In the foregoing detailed description of embodiments of the invention, various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the invention require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the detailed description of embodiments of the invention, with each claim standing on its own as a separate embodiment.
,CLAIMS:
1. A method (400) for communication between an unmanned aerial vehicle (UAV) (112) and ground control station (GCS) (114), comprising:
creating (402), by a system (102), a start byte of a data frame based at least on a High-Level Data Link Control (HDLC) protocol layer (108) ;
determining (404), by the system (102), an HDLC escape byte among one or more read bytes of the data frame;
in response to determining the HDLC escape byte, adding (406), by the system (102), an inverted byte in the HDLC escape byte of the data frame;
upon adding the inverted byte, adding (408), by the system (102), a first set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame;
inputting (410), by the system (102), one or more data bytes comprising actual data to the data frame;
adding (412), by the system (102), a second set of cyclic redundancy check (CRC) bytes and a third set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame; and
creating (414), by the system (102), a stop byte in the data frame, thereby allowing transmission of the data frame through the radio module (110).
2. The method (400) as claimed in claim 1, wherein adding the inverted data byte further comprises implementing (212), by the system (102), exclusive OR (XOR) inversion of the determined HDLC escape byte, wherein the inverted byte corresponds to exclusive OR (XOR) inverted data byte.
3. The method (400) as claimed in claim 1, wherein,
the second set of CRC bytes are added to the corresponding CRC bytes upon inputting the actual data in the data frame, and
the third set of cyclic redundancy check (CRC) bytes are added to the corresponding CRC bytes based upon determining whether reading of each data byte in the data frame is completed.
4. The method (400) as claimed in claim 1, wherein the HDLC protocol layer (108) is augmented between a MAVlink protocol layer (106) and a radio module (110), and wherein the HDLC protocol layer (108) facilitates asynchronous framing for generating the data frame.
5. A system (102), comprising:
a radio module (110); and
a processing unit (104) communicably coupled to the radio module (110), the processing unit (104) configured to execute machine readable instructions to cause the system (102) to at least:
create (402) a start byte of a data frame based at least on a High-Level Data Link Control (HDLC) protocol layer (108),
determine (404) an HDLC escape byte among one or more read bytes of the data frame,
in response to determining the HDLC escape byte, add (406) an inverted byte in the HDLC escape byte of the data frame,
upon adding the inverted byte, add (408) a first set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame,
input (410) one or more data bytes comprising actual data to the data frame,
add (412) a second set of cyclic redundancy check (CRC) bytes and a third set of cyclic redundancy check (CRC) bytes to corresponding CRC bytes in the data frame, and
create (414) a stop byte in the data frame, thereby allowing transmission of the data frame through the radio module (110).
6. The system (102) as claimed in claim 5, wherein the HDLC protocol layer (108) is augmented between a MAVlink protocol layer (106) and a radio module (110), and wherein the HDLC protocol layer (108) facilitates asynchronous framing for generating the data frame.
7. A method (500) for communication between an unmanned aerial vehicle (UAV) (112) and ground control station (GCS) (114), comprising:
determining (502), by the system (102), receipt of the data frame via a High-Level Data Link Control (HDLC) protocol layer (108), wherein receipt of the data frame is detected based at least on a start byte and a stop byte of the data frame, and wherein a first data buffer is created based at least on detecting the start byte of the data frame;
computing (504), by the system (102), cyclic redundancy check (CRC) bytes corresponding to the data frame;
extracting (506), by the system (102), High-Level Data Link Control (HDLC) payload to a second data buffer based at least on successful validation of the cyclic redundancy check (CRC) bytes;
storing (508), by the system (102), a subsequent data byte of the second data buffer to a third data buffer;
extracting (510), by the system (102), the subsequent data byte based at least on determining whether the subsequent data byte is an HDLC escape byte;
storing (512), by the system (102), the subsequent data byte to a third data buffer; and
transmitting (514), by the system (102), the third data buffer to an application layer, wherein the third data buffer is transmitted to the application layer upon determining whether recursion through the second data buffer is complete.
8. The method (500) as claimed in claim 7, wherein the subsequent data byte is extracted by implementing exclusive OR (XOR) inversion of the subsequent data byte.
9. The method (500) as claimed in claim 7, wherein a state machine is operable between a reset state and a normal state based at least on the start byte and the cyclic redundancy check (CRC) bytes of the data frame.
10. The method (500) as claimed in claim 7, wherein the HDLC protocol layer (108) is augmented between a MAVlink protocol layer (106) and a radio module (110), and wherein the HDLC protocol layer (108) facilitates asynchronous frame detection of the data frame.
11. A system (102), comprising:
a radio module (110); and
a processing unit (104) communicably coupled to the radio module (110), the processing unit (104) configured to execute machine readable instructions to cause the system (102) to at least:
determine (502) receipt of the data frame via a High-Level Data Link Control (HDLC) protocol layer (108), wherein receipt of the data frame is detected based at least on a start byte and a stop byte of the data frame, and wherein a first data buffer is created based at least on detecting the start byte of the data frame,
compute (504) cyclic redundancy check (CRC) bytes corresponding to the data frame,
extract (506) High-Level Data Link Control (HDLC) payload to a second data buffer based at least on successful validation of the cyclic redundancy check (CRC) bytes,
store (508) a subsequent data byte of the second data buffer to a third data buffer,
extract (510) the subsequent data byte based at least on determining whether the subsequent data byte is an HDLC escape byte,
store (512) the subsequent data byte to a third data buffer, and
transmit (514) the third data buffer to an application layer, wherein the third data buffer is transmitted to the application layer upon determining whether recursion through the second data buffer is complete.
12. The system (102) as claimed in claim 11, wherein the HDLC protocol layer (108) is augmented between a MAVlink protocol layer (106) and a radio module (110), and wherein the HDLC protocol layer (108) facilitates asynchronous frame detection of the data frame.
| # | Name | Date |
|---|---|---|
| 1 | 202241041339-PROVISIONAL SPECIFICATION [19-07-2022(online)].pdf | 2022-07-19 |
| 2 | 202241041339-FORM FOR STARTUP [19-07-2022(online)].pdf | 2022-07-19 |
| 3 | 202241041339-FORM FOR SMALL ENTITY(FORM-28) [19-07-2022(online)].pdf | 2022-07-19 |
| 4 | 202241041339-FORM 1 [19-07-2022(online)].pdf | 2022-07-19 |
| 5 | 202241041339-EVIDENCE FOR REGISTRATION UNDER SSI(FORM-28) [19-07-2022(online)].pdf | 2022-07-19 |
| 6 | 202241041339-EVIDENCE FOR REGISTRATION UNDER SSI [19-07-2022(online)].pdf | 2022-07-19 |
| 7 | 202241041339-FORM-26 [20-09-2022(online)].pdf | 2022-09-20 |
| 8 | 202241041339-Proof of Right [28-11-2022(online)].pdf | 2022-11-28 |
| 9 | 202241041339-STARTUP [19-07-2023(online)].pdf | 2023-07-19 |
| 10 | 202241041339-OTHERS [19-07-2023(online)].pdf | 2023-07-19 |
| 11 | 202241041339-FORM28 [19-07-2023(online)].pdf | 2023-07-19 |
| 12 | 202241041339-FORM-9 [19-07-2023(online)].pdf | 2023-07-19 |
| 13 | 202241041339-FORM-8 [19-07-2023(online)].pdf | 2023-07-19 |
| 14 | 202241041339-FORM FOR STARTUP [19-07-2023(online)].pdf | 2023-07-19 |
| 15 | 202241041339-FORM 3 [19-07-2023(online)].pdf | 2023-07-19 |
| 16 | 202241041339-FORM 18A [19-07-2023(online)].pdf | 2023-07-19 |
| 17 | 202241041339-ENDORSEMENT BY INVENTORS [19-07-2023(online)].pdf | 2023-07-19 |
| 18 | 202241041339-DRAWING [19-07-2023(online)].pdf | 2023-07-19 |
| 19 | 202241041339-CORRESPONDENCE-OTHERS [19-07-2023(online)].pdf | 2023-07-19 |
| 20 | 202241041339-COMPLETE SPECIFICATION [19-07-2023(online)].pdf | 2023-07-19 |
| 21 | 202241041339-FER.pdf | 2024-01-04 |
| 22 | 202241041339-FER_SER_REPLY [03-05-2024(online)].pdf | 2024-05-03 |
| 23 | 202241041339-DRAWING [03-05-2024(online)].pdf | 2024-05-03 |
| 24 | 202241041339-COMPLETE SPECIFICATION [03-05-2024(online)].pdf | 2024-05-03 |
| 25 | 202241041339-CLAIMS [03-05-2024(online)].pdf | 2024-05-03 |
| 26 | 202241041339-US(14)-HearingNotice-(HearingDate-01-07-2024).pdf | 2024-06-03 |
| 27 | 202241041339-Correspondence to notify the Controller [25-06-2024(online)].pdf | 2024-06-25 |
| 28 | 202241041339-FORM-26 [27-06-2024(online)].pdf | 2024-06-27 |
| 29 | 202241041339-Written submissions and relevant documents [15-07-2024(online)].pdf | 2024-07-15 |
| 30 | 202241041339-FORM FOR SMALL ENTITY [15-07-2024(online)].pdf | 2024-07-15 |
| 31 | 202241041339-EVIDENCE FOR REGISTRATION UNDER SSI [15-07-2024(online)].pdf | 2024-07-15 |
| 32 | 202241041339-PatentCertificate31-07-2024.pdf | 2024-07-31 |
| 33 | 202241041339-IntimationOfGrant31-07-2024.pdf | 2024-07-31 |
| 1 | 1339E_21-11-2023.pdf |