A duplex wireless intercom method and device based on LoRa technology

By constructing a logic design in LoRa technology that simultaneously listens, triggers wake-up, intelligently sends, and coordinates transmission and reception, the problems of untimely communication and data collision in LoRa half-duplex intercom are solved, achieving an efficient full-duplex communication experience.

CN122137516BActive Publication Date: 2026-08-25SHENZHEN JIMIAO TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202610479615.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-04-13
Publication Date
2026-08-25
Estimated Expiration
2046-04-13

AI Technical Summary

Technical Problem

In half-duplex wireless intercom using LoRa technology, users need to wait for system confirmation, which leads to untimely communication. Existing methods have not effectively solved the problem of data collision and loss caused by both parties sending data simultaneously.

Method used

By constructing a logical design that simultaneously listens, triggers wake-up, intelligently sends, and coordinates sending and receiving, the terminal node dynamically adjusts its receiving and listening parameters after detecting a trigger word, notifies the relay node to temporarily store downlink data, and intelligently matches the sending method to avoid data collisions and loss.

Benefits of technology

It significantly reduces invalid waiting and retransmission time caused by data conflicts, improves the timeliness of communication and channel utilization, and provides a smooth and natural full-duplex intercom experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122137516B_ABST
    Figure CN122137516B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of wireless communication, in particular to a duplex wireless intercom method and equipment based on LoRa technology, which comprises the following steps: simultaneously performing receiving monitoring and voice monitoring; when a trigger word is found in the voice monitoring, changing receiving monitoring parameters and notifying a relay node to temporarily store data; when a temporary storage confirmation notification of the relay node is received, starting voice receiving; according to the received voice data, matching a corresponding sending mode, and sending the voice data to the relay node according to the matched sending mode; after the voice data is sent, notifying the relay node to perform downlink data transmission and enabling receiving monitoring; when a downlink transmission confirmation notification of the relay node is received, closing data sending and changing receiving monitoring parameters; and receiving data forwarded by the relay node and converting and playing the data. Through the logical design of simultaneous monitoring-triggered wake-up-intelligent sending-collaborative receiving and sending, the duplex communication experience on the LoRa low-power wide-area network technology is realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of wireless communication technology, and in particular to a full-duplex wireless intercom method and device based on LoRa technology. Background Technology

[0002] LoRa Long Range is a long-range, low-power digital wireless voice communication solution based on LoRa spread spectrum modulation technology. Unlike traditional walkie-talkies (such as DMR and P25) or mobile networks, it focuses on professional intercom needs such as ultra-long range, no data usage, self-organizing network, and long standby time.

[0003] In half-duplex LoRa, the timing of a device's transmission and reception is not arbitrary but strictly controlled by a set of explicit rules or protocols. The essence of these rules can be summarized as: "actively transmit, wait for the opportune moment to receive," with all communication originating from the device's proactive reporting. If two devices transmit simultaneously on a half-duplex channel, their signals will collide at the physical layer, leading to information loss. To address this issue, at the user level, experienced users will press the listen button (or observe the "busy" indicator on the walkie-talkie) before pressing the PTT button to listen for other devices on the channel. After each conversation, they will say a clear closing phrase (such as "over") to notify others that they have finished speaking and the channel is now idle. At the system level, some LoRa devices will quickly listen to the channel before transmitting. If a signal is detected, they will wait a short period before attempting to transmit.

[0004] However, neither method fundamentally solves the problem; they only reduce the probability of information conflicts. In scenarios where frequent communication is required, both methods can lead to delays in communication, requiring time to be spent waiting for system confirmation, thus reducing the timeliness of communication. Summary of the Invention

[0005] Therefore, it is necessary to provide a full-duplex wireless intercom method and device based on LoRa technology to address the above-mentioned problems.

[0006] This invention is implemented as follows: a full-duplex wireless intercom method based on LoRa technology, applied to a terminal node, comprising: S1. Simultaneously perform receiving and voice monitoring; S2. When a trigger word is detected by voice monitoring, the receiving monitoring parameters are changed and the relay node is notified to temporarily store the data. S3. Upon receiving the temporary storage confirmation notification from the relay node, voice reception is enabled; S4. Match the corresponding sending method according to the received voice data, and send the voice data to the relay node according to the matched sending method so that the relay node forwards the voice data to the target node; S5. After the voice data is sent, notify the relay node to transmit downlink data and enable receiver monitoring. S6. Upon receiving the downlink transmission confirmation notification from the relay node, stop data transmission and change the receive monitoring parameters; S7: Receive data forwarded by the relay node, convert it, and play it.

[0007] In one embodiment, the present invention provides a full-duplex wireless intercom device based on LoRa technology, the full-duplex wireless intercom device based on LoRa technology including a LoRa module and a control module; The LoRa module is used for data reception and transmission; The control module is connected to the LoRa module and is used to control the operation of the LoRa module by executing the full-duplex wireless intercom method based on LoRa technology as described in any embodiment of the present invention.

[0008] The full-duplex wireless intercom method based on LoRa technology provided in this invention achieves a near-full-duplex communication experience on LoRa, a low-power wide-area network technology, by constructing a logical design of simultaneous listening, trigger wake-up, intelligent transmission, and collaborative transmission and reception. Its core advantage lies in the fact that after the user speaks the trigger word, this method actively notifies the relay node to temporarily store downlink data and intelligently matches the transmission method for uplink voice data, fundamentally avoiding data collisions and loss caused by simultaneous data transmission from both communicating parties (or with the relay node). This event-driven collaborative mechanism significantly reduces the invalid waiting and retransmission time caused by data conflicts, greatly improving the timeliness of communication and channel utilization, and providing users with a smooth and natural full-duplex intercom experience. Attached Figure Description

[0009] Figure 1 A flowchart of a full-duplex wireless intercom method based on LoRa technology provided in one embodiment; Figure 2 This is a structural block diagram of a full-duplex wireless intercom device based on LoRa technology, provided in one embodiment. Detailed Implementation

[0010] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.

[0011] It is understood that the terms "first," "second," etc., used in this invention may be used to describe various elements, but unless otherwise specified, these elements are not limited by these terms. These terms are used only to distinguish one element from another.

[0012] like Figure 1 As shown, in one embodiment, the present invention proposes a full-duplex wireless intercom method based on LoRa technology, applied to a terminal node, which may specifically include the following steps: S1. Simultaneously perform receiving and voice monitoring; S2. When a trigger word is detected by voice monitoring, the receiving monitoring parameters are changed and the relay node is notified to temporarily store the data. S3. Upon receiving the temporary storage confirmation notification from the relay node, voice reception is enabled; S4. Match the corresponding sending method according to the received voice data, and send the voice data to the relay node according to the matched sending method so that the relay node forwards the voice data to the target node; S5. After the voice data is sent, notify the relay node to transmit downlink data and enable receiver monitoring. S6. Upon receiving the downlink transmission confirmation notification from the relay node, stop data transmission and change the receive monitoring parameters; S7: Receive data forwarded by the relay node, convert it, and play it.

[0013] In this embodiment, the method aims to provide an efficient full-duplex communication solution for LoRa wireless intercom systems, fundamentally solving the problem of low communication efficiency and susceptibility to data collisions and loss caused by the inability to simultaneously "speak" and "listen" in traditional half-duplex intercoms. In standby mode, the terminal node (such as a walkie-talkie) performs two tasks simultaneously: first, continuously monitoring the signals transmitted through the wireless channel (i.e., receiving and monitoring); and second, monitoring local voice input through modules such as a microphone. This ensures the node is always ready to respond, neither missing any downlink data from relay nodes nor ignoring the user's speaking intent. Simultaneously, local monitoring consumes minimal power and does not significantly impact device battery life. When the voice monitoring module recognizes a preset "trigger word" spoken by the user (e.g., "start a call," "call someone," etc.), the node immediately changes its receiving and monitoring parameters (e.g., adjusting the receiving window or spreading factor) to prepare for receiving subsequent voice data. Simultaneously, it sends a notification to the relay node responsible for forwarding data in the network, requesting it to temporarily buffer the downlink data destined for it. The purpose of this step is to prepare for upcoming voice reception and potential downlink data conflicts before the user begins speaking. Subsequently, after the relay node successfully receives the temporary storage notification, it returns a confirmation notification to its local terminal node. Upon receiving this confirmation, the node officially opens the voice receiving channel and begins receiving voice data streams from the microphone. Then, based on the characteristics of the received voice data (such as data size and intermittency), the node intelligently matches the most suitable transmission method and sends the voice data to the relay node in this way. The relay node is responsible for ultimately forwarding the data to the target node in the call. The purpose of this step is to dynamically adjust the transmission strategy, ensuring real-time voice transmission while minimizing conflicts with downlink data. Once all local voice data has been transmitted, the node notifies the relay node again, informing it that it can begin transmitting the previously temporary downlink data, and simultaneously enables its own receiving and monitoring function to prepare for receiving data. Finally, upon receiving the downlink transmission confirmation notification from the relay node, the node completely closes the data transmission channel, restores the receiving and monitoring parameters to the set state, and then begins receiving data forwarded by the relay node from the other end of the call, converting this data into audio signals for playback.

[0014] The full-duplex wireless intercom method based on LoRa technology provided in this invention achieves a near-full-duplex communication experience on LoRa, a low-power wide-area network technology, by constructing a logical design of simultaneous listening, trigger wake-up, intelligent transmission, and collaborative transmission and reception. Its core advantage lies in the fact that after the user speaks the trigger word, this method actively notifies the relay node to temporarily store downlink data and intelligently matches the transmission method for uplink voice data, fundamentally avoiding data collisions and loss caused by simultaneous data transmission from both communicating parties (or with the relay node). This event-driven collaborative mechanism significantly reduces the invalid waiting and retransmission time caused by data conflicts, greatly improving the timeliness of communication and channel utilization, and providing users with a smooth and natural full-duplex intercom experience.

[0015] In one embodiment of the present invention, step S2, changing the receiving monitoring parameters and notifying the relay node to temporarily store data, includes: Determine the amount of data in the temporary notification and calculate the time t1 required to send the temporary notification based on the current sending rate. Adjust the duty cycle of the receiving time slot according to the duration t1 to keep the listening period unchanged and make the intermittent time slot longer than the duration t1; During the intermittent time slot, a temporary notification is sent to the relay node. After the notification is sent, the duty cycle of the receiving time slot is set to 1 to maintain full-cycle receiving and listening for several cycles.

[0016] In this embodiment, the specific implementation of "notifying the relay node" in step S2 is defined. First, the terminal node calculates the data size of a "temporary notification" instruction (e.g., the instruction consists of 20 bytes). Then, based on the current transmission rate of the LoRa module (e.g., with a spreading factor SF=7 and a bandwidth of 125kHz, the transmission rate is approximately 5.47kbps), the time t1 required to transmit these 20 bytes is calculated. The calculation formula is: t1 = (data size) / (data size) 8) / Transmission rate = (20 8) / 5470 ≈ 0.0292 seconds, or approximately 29.2 milliseconds. Next, the node adjusts the duty cycle of its receive time slot. For example, the original listening period was 100 milliseconds, with the receive time slot occupying 20 milliseconds and the interval time slot occupying 80 milliseconds. To send the temporary notification completely within the interval time slot, the length of the interval time slot needs to be greater than t1 (29.2 milliseconds). Therefore, the duty cycle can be adjusted to a receive time slot of 10 milliseconds and an interval time slot of 90 milliseconds. The listening period remains 100 milliseconds, but the 90 millisecond interval time slot is much longer than 29.2 milliseconds, satisfying the sending condition (preferably, the interval time slot should be slightly longer than t1, allowing for a wider receive time slot while completing the sending task; for example, the interval time slot could be 1-2 times t1 rounded up). Then, the node sends the temporary notification instruction to the relay node within the adjusted interval time slot. After transmission is complete, to ensure immediate receipt of acknowledgment from the relay node, the node sets the duty cycle of the receive time slot to 1, meaning it is listening for 100% of the time. This full-cycle listening state continues for several cycles (e.g., three 100-millisecond cycles). The purpose of this is to cleverly "squeeze out" a continuous time window to send uplink notifications by dynamically adjusting the receive time slots, without changing the overall communication cycle length or affecting regular downlink data reception. Immediately after transmission, it switches to full-time receive mode to wait for acknowledgment with the highest response speed, ensuring reliable notification transmission while minimizing interference with the original listening task. It should be noted that, unlike the time-division communication of typical full-duplex communication modules, for LoRa modules, the intermittent time slots and receive time slots are essentially achieved by switching the same module in different operating states. LoRa modules themselves do not have time-division communication functionality (otherwise, there wouldn't be the problem of not being able to send and receive simultaneously). This invention creates the communication cycle by switching between different operating states; LoRa technology itself does not have a defined cycle.

[0017] In one embodiment of the present invention, step S4, matching the corresponding transmission method according to the received voice data, includes: The speech data is segmented according to the discontinuous distribution of the speech data; Calculate the data volume of each segment and determine whether there is at least one segment whose data volume reaches a first set value; If not, enable intermittent transmission mode: adjust the duty cycle of the receive time slot to send segmented data to the relay node using the intermittent time slot; If so, the voice data is scored based on the number and distribution of segments that reach the first set value, and it is determined whether the score reaches the second set value. If the score reaches the second set value, activate simplex mode: disable receiver monitoring and send segmented data to the relay node; If the score does not reach the second set value, half-duplex mode is activated: the half-duplex cycle is set so that each half-duplex cycle includes a receive time slot and a send time slot, and the segmented data is sent to the relay node in the send time slot.

[0018] In this embodiment, the specific decision logic for "matching the transmission method" in step S4 is elaborated, introducing an intelligent mode switching mechanism based on voice data segmentation and scoring. First, the terminal node segments the continuous voice stream into multiple meaningful voice segments (e.g., a sentence or phrase separated by pauses) based on silence segments in the voice signal. Then, the data size of each voice segment is calculated. A first set value can be an empirical threshold, such as 500 bytes. If the data size of all segments is less than 500 bytes, it indicates that the user's speech is short and fragmented. At this time, the node activates "intermittent transmission mode": similar to sending temporary notifications, it dynamically adjusts the duty cycle of the receiving time slots, utilizing the intermittent time slots in the listening cycle to send these small-data-size voice segments one by one. This sends the voice while retaining most of the time for downlink reception. Conversely, if at least one segment has a data size of 500 bytes or more, it indicates that the user has a relatively long continuous speech. At this time, the node initiates a more complex scoring mechanism. The scoring mechanism comprehensively considers the number of all "long segments" (segments with a data volume ≥ 500 bytes) and their distribution on the timeline (whether they are concentrated together or scattered). The scoring algorithm outputs a total score, for example, ranging from 0 to 100. A second setting value can be set to 80. If the score reaches 80 or above, it indicates that the current voice data is characterized by being "continuous, large in volume, and concentrated." At this time, the node will switch to "simplex mode": completely shutting down reception and using all wireless resources to send all voice data to the relay node at high speed and continuously. Although this mode temporarily interrupts downlink reception, it can complete the uplink voice transmission as quickly as possible, freeing up time for subsequent downlink transmission. If the score does not reach 80, it indicates that although the voice data contains long segments, it still has a certain degree of discontinuity or dispersion, and full simplex is not efficient. At this time, the node will switch to "half-duplex mode": setting a fixed half-duplex cycle, each cycle containing one receive time slot and one transmit time slot, and the node only sends data in the transmit time slot. The purpose of this decision-making mechanism is to dynamically find the optimal balance between "keeping receiving and listening" and "sending data at full speed" by quantitatively analyzing the user's speech patterns, so that the sending method can always adapt to the current voice characteristics, thereby maximizing the overall efficiency of full-duplex communication while ensuring smooth call.

[0019] In one embodiment of the present invention, segmenting the speech data according to the discontinuous distribution of the speech data includes: A two-dimensional window consisting of the interval duration and signal strength is set on the time-signal strength coordinate axis. The two-dimensional window consists of two rectangles whose bottom edges coincide with the time axis, and the midpoints of the bottom edges of the two rectangles coincide. The two-way window is moved along the time axis. If any continuous segment of the speech data curve falls completely within either of the two rectangles, the speech data of that continuous segment is removed, thus segmenting the speech data.

[0020] This embodiment provides a specific graphical window-based method for speech data segmentation, which can intelligently identify and remove silent or weak signal segments in speech. A coordinate system is set with time as the horizontal axis and signal strength as the vertical axis, within which the waveform of the speech data is plotted. A special "two-way window" is defined, consisting of two rectangles whose bottom edges are flush with the time axis and whose midpoints coincide. For example, the widths (interval durations) of the two rectangles can be set to 0.2 seconds and 0.5 seconds, and their heights (signal strength thresholds) to -30dB and -40dB, respectively. Then, this two-way window is moved progressively along the time axis from the starting point of the speech data. At each step of the movement, the waveform of the speech data is examined. If a continuous segment of the curve has a signal strength lower than the height of a rectangle at all points, and the duration of this segment falls entirely within the width of that rectangle, then this segment is determined to be an "invalid speech segment" (e.g., background noise or short pauses). After removing these invalid continuous segments from the original speech data, what remains are the segmented, valid speech data segments. For example, a speech phrase like "Hello [0.3-second pause, signal strength -35dB] Are you there?" will have a 0.3-second pause that falls within a rectangle with a width of 0.5 seconds and a height of -40dB (because 0.3 < 0.5 and -35 > -40). Therefore, this pause is removed, and the speech is segmented into "Hello" and "Are you there?". The purpose of this method is to more accurately and flexibly identify and remove silent segments in speech through a two-dimensional window with dual thresholds (duration and intensity). Compared to a single fixed duration or fixed intensity judgment, it can more accurately reflect the complex characteristics of real speech, providing a more reliable data foundation for subsequent transmission mode decisions.

[0021] In this embodiment, specifically, rectangle 1: assuming a short base width (interval duration) (e.g., 0.2 seconds) and a high height (signal strength threshold) (e.g., -30dB), it is used to identify short but relatively high-intensity invalid segments, such as brief echoes after plosive sounds or slight electronic noise. Although these sounds are not extremely low in intensity, their duration is very short and can be safely considered as "negligible gaps" in speech. Rectangle 2: assuming a longer base width (e.g., 0.5 seconds) and a lower height (e.g., -40dB), it is used to identify longer-duration invalid segments with extremely low signal strength, such as true silence or far-field ambient noise.

[0022] In one embodiment of the present invention, the scoring based on the number and distribution of segmented data that reach a first set value includes: Using the segmented data that reaches the first set value as the dividing point, the audio data is grouped according to the time sequence of each segment of audio data, so that each group of audio data includes at least one segment of audio data and the data volume of the first or last segment of audio data in each group reaches the first set value. Calculate the sum of the scores for each segment and the overall score, and then take the arithmetic mean of the two to obtain the total score.

[0023] In this embodiment, the aforementioned "scoring mechanism" is specifically defined, clarifying how to quantify the concentration of speech data based on "long segments" as anchor points. Assuming a first setpoint of 500 bytes, the speech data is divided into 5 segments, arranged chronologically as follows: A (200 bytes), B (600 bytes), C (100 bytes), D (700 bytes), and E (300 bytes). Here, B and D are "long segments" with a data size of 500 bytes. First, the sequence is grouped using B and D as "dividing points." The grouping rule is that each group must contain at least one segment, and the first or last segment of the group must be a long segment. Following this rule, we can divide the data into two groups: Group 1: A, B; Group 2: C, D, E. Next, the "segment score" for each group is calculated. The segment score measures the fluctuation in data volume within the group. Then, an "overall score" is calculated. Finally, the total score = the sum of the segment scores of all segments + the overall score. The sum of segment scores reflects the concentration of data within each segment, while the overall score reflects the temporal dispersion of each segment. A higher overall score indicates that long segments are concentrated on the timeline (lower overall score) and that the amount of data within each group fluctuates greatly (higher segment score), thus indicating a "continuous, non-uniform" speaking pattern, suitable for switching to singleton mode. The purpose of this scoring mechanism is to quantify the abstract "data distribution" characteristics into a calculable value, transforming mode switching decisions from subjective judgment to objective calculation, thereby improving the accuracy and consistency of decisions.

[0024] In this embodiment, specifically, after segmentation processing, a total of M speech segments are obtained, numbered 1, 2, ..., M in chronological order. The data size of each segment is size. i (Unit: bytes), the first set value is denoted as TH (e.g., 500 bytes). Define a long segment set: L={i|size i ≥TH} The number of long segments is K = |L|. If K = 0, the score is directly 0 (no scoring process is needed if there are no long segments). All segments are traversed in chronological order, and consecutive long segments (i.e., temporally adjacent with no other long segments in between) and their short segments are grouped together. The specific algorithm is as follows: Initialize group index Gg = 1, current group Gg = |L|. Scan segments i = 1 to M sequentially: If segment i is a long segment: If the current group is empty, create a new group Gg, and group segment i... i Add the segments to the current group Gg; continue scanning forward, adding subsequent short segments (until the next long segment is encountered) to the same group Gg; when the next long segment is encountered, close the current group, g←g+1, and start a new group with the aforementioned long segment. After the scan is complete, if the last group is not empty, use it as the Gth group. Finally, G groups are obtained, each containing at least one long segment, and the first or last segment of each group must be a long segment.

[0025] Specific scoring method: For the j-th group (j=1,2,…,G), let the sum of the data size of all long segments in this group be: The total data volume of all long segments is: The segment score for group j is defined as follows: Multiplying the square of the proportion of long data segments within a group by 100 amplifies the concentration effect. The larger the amount of long data segments concentrated in the same group, the stronger the sum of that group's data. j The larger the score j The higher the score, the better. The overall score measures the dispersion of each group along the time axis. The time interval between two adjacent groups is defined as follows: Let the timestamp of the last segment of the j-th group be end. j The timestamp of the first segment in the (j+1)th group is start. j+1 The interval is: d j =start j+1 -end j(j=1,2,…,G−1) The sum of all intervals is Let the total duration of the entire speech data be Ttotal (from the first segment to the last segment), and the overall score be defined as: When the groups are closely connected in time (i.e., long segments appear consecutively), D is small, and overall is close to 100; when the groups are separated by long periods of silence (i.e., long segments are scattered), D... D The total score is close to Ttotal, and the overall score is close to 0. The total score is the arithmetic mean of the sum of all segment scores and the overall score, to ensure that the final score falls within the range of 0 to 100. If K=1 (there is only one long segment), then G=1. Since D=0 and overall=100, total_score=100, indicating complete concentration.

[0026] If all long segments are perfectly uniformly distributed (each long segment forms its own group, and the intervals between groups are uniform and equal to the total duration), then The overall score is close to 0, and the total score is close to 50 / G, which is relatively small, indicating low scores when distributed.

[0027] In one embodiment of the present invention, the step of setting a half-duplex cycle such that each half-duplex cycle includes a receive time slot and a transmit time slot, and sending segmented data to a relay node within the transmit time slot, includes: Calculate the time t2 required to send the largest segment of voice data based on the current sending rate. Multiply the obtained time t2 by a set coefficient to get the half-duplex period T, where the duration of the sending time slot is not less than t2. Before the start of each half-duplex cycle, the time t3 required to send the first few segments of voice data is calculated according to the time sequence of each segment of voice data. The maximum value N of the number of voice data segments under the condition that t3≤t2 is taken, and the first N segments of voice data are sent to the relay node. The duration of the transmission time slot is not less than t3 and the half-duplex cycle T remains unchanged.

[0028] In this embodiment, the period setting and data transmission strategy under "half-duplex mode" are described in detail. First, the terminal node identifies the segment with the largest data size among all voice segments, assuming this data size is MaxBytes. Based on the current transmission rate Rate, the time t2 required to transmit this maximum data size is calculated as: t2 = (MaxBytes) / ... 8) / Rate. Then, multiply t2 by a set coefficient (e.g., 1.5 or 2) to obtain a fixed half-duplex period T. For example, if t2 is calculated to be 100 milliseconds, and the coefficient is 1.5, then T = 150 milliseconds. Simultaneously, it is stipulated that the transmission time slot duration within each half-duplex period must be at least equal to t2 (100 milliseconds), and the reception time slot is T - transmission time slot = 50 milliseconds. Next, before the start of each half-duplex period, the node will attempt to calculate the total time t3 required to continuously transmit the first K segments of voice data, starting from the first segment that has not yet been transmitted, according to the original time sequence of the voice segments. For example, segment 1 requires 30 milliseconds, segment 2 requires 40 milliseconds, and segment 3 requires 40 milliseconds. Transmitting segment 1+2 requires 70 milliseconds, which is less than t2 (100 milliseconds); transmitting segment 1+2+3 requires 110 milliseconds, which is greater than t2 (100 milliseconds). Therefore, the maximum number of segments N satisfying t3 ≤ t2 is 2. Therefore, the node will package and send fragment 1 and fragment 2 to the relay node in one go within the transmission slot of this half-duplex cycle. Although sending these two segments actually only takes 70 milliseconds, the duration of the transmission slot will still remain at least 100 milliseconds, with the extra 30 milliseconds used for filling or idle time. Importantly, the half-duplex cycle T (150 milliseconds) is fixed, which means that after the transmission slot ends, a 50-millisecond reception slot will inevitably follow, used to listen for possible acknowledgments or downlink data sent by the relay node. The purpose of this design is to ensure that each transmission is completed within the reserved transmission slot (even if the amount of data packaged fluctuates) through a fixed cycle and dynamic packaging, while also leaving a regular reception window for downlink data. This avoids the problems of disordered transmission and unpredictable channel occupancy time caused by data fragments of varying sizes, enabling uplink and downlink communication to alternate at a stable and predictable rhythm in half-duplex mode, significantly reducing the risk of data collisions.

[0029] In one embodiment of the present invention, step S5, which involves notifying the relay node to perform downlink data transmission and enabling receiver monitoring, includes: Determine the amount of data requested for transmission, and calculate the time t4 required to send the transmission request based on the current sending rate; Adjust the transmission time slot according to the duration t4 so that the transmission time slot is greater than t4 and the communication period has the maximum duration. Repeat the transmission request several times. After the transmission is completed, set the duty cycle of the receive time slot to 1 to maintain full-cycle reception and listening for several cycles.

[0030] In this embodiment, the specific operation of "notifying the relay node to perform downlink data transmission" in step S5 is defined, emphasizing the reliability of the notification and the priority of subsequent reception. After the terminal node finishes sending uplink voice data, it needs to notify the relay node that it can start sending the previously stored downlink data. First, the node calculates the data size of a "downlink transmission request" instruction and, combined with the current transmission rate, calculates the time t4 required to send the request. For example, if the instruction is 10 bytes and the transmission rate is 5.47 kbps, then t4 ≈ (10... 8) / 5470 ≈ 14.6 milliseconds. Then, the node adjusts its communication strategy, changing the length of the transmission slot to slightly longer than t4 (e.g., setting it to 20 milliseconds) and simultaneously extending the entire communication cycle to the maximum allowed duration (e.g., setting the cycle to several seconds within the LoRaWAN specification's limits). This is to create a transmission window that is as long as possible with low interference. Next, the node will repeatedly transmit this "downlink transmission request" several times within the adjusted transmission slot, for example, three times. The purpose of repeated transmission is to utilize redundancy to combat potential channel interference, ensuring that the relay node can correctly receive at least one of the requests. After transmission, the node immediately sets the duty cycle of the receive slot to 1, entering a full-cycle, uninterrupted receive listening state, which will continue for several cycles (e.g., five maximum cycles). The purpose of this design is to notify the relay node to start downlink transmission with the highest reliability by maximizing the sending window and repeating the sending mechanism; then immediately switch to full-time listening to ensure that no downlink data packets sent by the relay node are missed, thereby achieving a seamless and reliable switch from the two stages of "uplink sending" to "downlink receiving".

[0031] In one embodiment of the present invention, the relay node is generated through the following steps: Any node, based on the communication records within a set time period, records the IDs of the nodes that directly communicate with it, generates a direct connection list, and broadcasts the direct connection list. Upon receiving a direct connection list from another node, determine whether it is the first time the direct connection list of that node has been received. If yes, save and broadcast the received direct connection list; otherwise, save the received direct connection list locally. Based on preset rules, determine the role of this node and other nodes directly connected to this node from all received direct connection lists.

[0032] In this embodiment, during the initialization phase, each node in the network (e.g., each walkie-talkie) records the IDs of all nodes it has successfully communicated with directly within a set time period (e.g., the past 5 minutes), forming its own "direct connection list." For example, node A's direct connection list might be [B, C], indicating that A has communicated directly with B and C via wireless signals. Then, each node broadcasts its direct connection list to all other nodes in the network. When a node (e.g., node A) receives a direct connection list from another node (e.g., node D), it checks if it has previously received such a list from node D. If it's the first time receiving it, node A not only saves the list but also rebroadcasts it—a process similar to flooding, designed to rapidly propagate each node's direct connection list information throughout the network. If it's not the first time receiving it (e.g., node D's list has already been processed), node A simply saves the list without rebroadcasting it to avoid broadcast storms. Once each node has collected a list of direct connections from all (or most) other nodes, it possesses a connectivity graph of the entire network. Finally, each node independently runs the same pre-defined rules (e.g., a graph-based election algorithm) to calculate its role (whether a regular terminal node or a relay node) based on this global connectivity graph, and if it is a relay node, which other nodes it should connect to directly. This self-organizing approach aims to dynamically elect the optimal relay node and construct a reasonable network topology without manual configuration or reliance on a central server, relying solely on inter-node announcements and local computation. This makes the system highly robust and adaptable, particularly suitable for emergency communication or temporary networking scenarios.

[0033] In one embodiment of the present invention, determining the role of the current node and other nodes directly connected to the current node from all received direct connection lists according to preset rules includes: Each node obtains an undirected graph G=(V,E) based on the collected list of direct connections, where V is the set of IDs of all nodes and E is the direct communication relationship; Initialize the set of relay nodes D=∅ and the set of covered nodes C=∅, and repeat the following steps until C=V: Among the uncovered nodes V and C, select the node v with the highest degree in the original graph; if the degrees are the same, select the node with the lowest ID. Add v to D, and add v and all its adjacent nodes to C.

[0034] In this embodiment, a specific preset rule is provided to determine the set of transit nodes. First, each node constructs an undirected graph G locally based on all the directly connected lists it has collected. Each vertex V in the graph represents a node ID in the network, and each edge E represents a direct communication relationship between two nodes (i.e., they appear in each other's directly connected lists). For example, there are 5 nodes 1, 2, 3, 4, 5, with edges (1,2), (1,3), (2,3), (2,4), (3,5). Then, the nodes begin a selection process: initializing an empty set of transit nodes D and an empty set of covered nodes C. The first step is to select the node with the largest degree (i.e., the number of connected edges) in the original graph G from all uncovered nodes (initially V{1,2,3,4,5}). Node 2 has a degree of 3 (connecting 1,3,4), node 3 has a degree of 3 (connecting 1,2,5), node 1 has a degree of 2, node 4 has a degree of 1, and node 5 has a degree of 1. Assuming the degrees are the same, the node with the smallest ID is selected, so node 2 is selected. Node 2 is added to D, and node 2 and all its adjacent nodes (1,3,4) are added to C. At this time, C={1,2,3,4}, and D={2}. In the second step, from the remaining uncovered nodes V\C={5}, the node with the largest degree is selected, which is node 5. Node 5 is added to D, and node 5 and its adjacent nodes (3) are added to C. Now C={1,2,3,4,5}=V. The loop ends. The final set of transit nodes is D={2,5}. Each node performs the same calculation and obtains the same result. Then, each node can determine its role based on this result: if its ID is in D, then it is a transit node and needs to establish a direct connection with other nodes in D; if it is not in D, then it is a normal terminal node and needs to find a node in D that is connected to it by an edge as its superior transit node. The purpose of this mechanism is to use a deterministic, distributed computing algorithm to cover the entire network at the lowest cost (the fewest number of relay nodes), ensuring that any ordinary node can communicate directly with at least one relay node, thereby providing a stable and efficient forwarding service for the entire network.

[0035] like Figure 2 As shown, in one embodiment of the present invention, a full-duplex wireless intercom device based on LoRa technology is also provided, the full-duplex wireless intercom device based on LoRa technology includes a LoRa module and a control module; The LoRa module is used for data reception and transmission; The control module is connected to the LoRa module and is used to control the operation of the LoRa module by executing the full-duplex wireless intercom method based on LoRa technology as described in any of the above embodiments.

[0036] In this embodiment, the aforementioned method implementation is concretized as a physical device. The core components of this device include a LoRa module and a control module. The LoRa module is the hardware responsible for the underlying wireless communication. It follows LoRa modulation technology and can achieve long-distance, low-data-rate data transmission and reception under low-power conditions. The control module can be a microcontroller (MCU) or a digital signal processor (DSP), which connects to the LoRa module via interfaces such as SPI and UART. The control module internally contains computer program code implementing any of the above method implementations. During operation, the control module follows the logic steps S1 to S7, monitoring the voice input and the LoRa module's reception status in real time, dynamically controlling parameters such as the LoRa module's transmission and reception timing, spreading factor, and transmit power, as well as handling signaling interactions with relay nodes. Through this tight integration of hardware and software, the intercom method is implemented as a practically usable terminal product, enabling ordinary LoRa nodes to possess intelligent full-duplex communication capabilities, greatly improving the practicality and user experience of LoRa technology in voice intercom scenarios.

[0037] The embodiments described above are merely illustrative of several implementations of the present invention, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of the present invention, and these modifications and improvements all fall within the scope of protection of the present invention. Therefore, the scope of protection of this patent should be determined by the appended claims.

Claims

1. A full-duplex wireless intercom method based on LoRa technology, applied to a terminal node, characterized in that, The LoRa-based full-duplex wireless intercom method includes: S1. Simultaneously perform receiving and voice monitoring; S2. When a trigger word is detected by voice monitoring, the receiving monitoring parameters are changed and the relay node is notified to temporarily store the data. S3. Upon receiving the temporary storage confirmation notification from the relay node, voice reception is enabled; S4. Match the corresponding sending method according to the received voice data, and send the voice data to the relay node according to the matched sending method so that the relay node forwards the voice data to the target node; S5. After the voice data is sent, notify the relay node to transmit downlink data and enable receiver monitoring. S6. Upon receiving the downlink transmission confirmation notification from the relay node, stop data transmission and restore the receive monitoring parameters to the set state; S7. Receive data forwarded by the relay node, convert it, and play it. In step S2, the receive monitoring parameters are changed and the relay node is notified to temporarily store the data, including: Determine the amount of data in the temporary notification and calculate the time t1 required to send the temporary notification based on the current sending rate. Adjust the duty cycle of the receiving time slot according to the duration t1 to keep the listening period unchanged and make the intermittent time slot longer than the duration t1; During the intermittent time slot, a temporary notification is sent to the relay node. After the notification is sent, the duty cycle of the receiving time slot is set to 1 to maintain full-cycle receiving and listening for several cycles. In step S4, the corresponding transmission method is matched based on the received voice data, including: The speech data is segmented according to the discontinuous distribution of the speech data; Calculate the data volume of each segment and determine whether there is at least one segment whose data volume reaches a first set value; If not, enable intermittent transmission mode: adjust the duty cycle of the receive time slot to send segmented data to the relay node using the intermittent time slot; If so, the voice data is scored based on the number and distribution of segments that reach the first set value, and it is determined whether the score reaches the second set value. If the score reaches the second set value, activate simplex mode: disable receiver monitoring and send segmented data to the relay node; If the score does not reach the second set value, half-duplex mode is activated: the half-duplex cycle is set so that each half-duplex cycle includes a receive time slot and a send time slot, and the segmented data is sent to the relay node in the send time slot. In step S5, notifying the relay node to perform downlink data transmission and enabling receiver listening includes: Determine the amount of data requested for transmission, and calculate the time t4 required to send the transmission request based on the current sending rate; Adjust the transmission time slot according to the duration t4 so that the transmission time slot is greater than t4 and the communication period has the maximum duration. Repeat the transmission request several times. After the transmission is completed, set the duty cycle of the receive time slot to 1 to maintain full-cycle reception and listening for several cycles.

2. The full-duplex wireless intercom method based on LoRa technology according to claim 1, characterized in that, The step of segmenting the speech data according to the discontinuous distribution of the speech data includes: A two-dimensional window consisting of the interval duration and signal strength is set on the time-signal strength coordinate axis. The two-dimensional window consists of two rectangles whose bottom edges coincide with the time axis, and the midpoints of the bottom edges of the two rectangles coincide. The two-way window is moved along the time axis. If any continuous segment of the speech data curve falls completely within either of the two rectangles, the speech data of that continuous segment is removed, thus segmenting the speech data.

3. The full-duplex wireless intercom method based on LoRa technology according to claim 1, characterized in that, The scoring based on the number and distribution of segmented data that reach a first set value includes: Using the segmented data that reaches the first set value as the dividing point, the audio data is grouped according to the time sequence of each segment of audio data, so that each group of audio data includes at least one segment of audio data and the data volume of the first or last segment of audio data in each group reaches the first set value. Calculate the sum of the scores for each segment and the overall score, and then take the arithmetic mean of the two to obtain the total score.

4. The full-duplex wireless intercom method based on LoRa technology according to claim 1, characterized in that, The half-duplex cycle is configured such that each half-duplex cycle includes a receive time slot and a transmit time slot, and segmented data is sent to the relay node within the transmit time slot, including: Calculate the time t2 required to send the largest segment of voice data based on the current sending rate. Multiply the obtained time t2 by a set coefficient to get the half-duplex period T, where the duration of the sending time slot is not less than t2. Before the start of each half-duplex cycle, the time t3 required to send the first few segments of voice data is calculated according to the time sequence of each segment of voice data. The maximum value N of the number of voice data segments under the condition that t3≤t2 is taken, and the first N segments of voice data are sent to the relay node. The duration of the transmission time slot is not less than t3 and the half-duplex cycle T remains unchanged.

5. The full-duplex wireless intercom method based on LoRa technology according to claim 1, characterized in that, The relay node is generated through the following steps: Any node, based on the communication records within a set time period, records the IDs of the nodes that directly communicate with it, generates a direct connection list, and broadcasts the direct connection list. Upon receiving a direct connection list from another node, determine whether it is the first time the direct connection list of that node has been received. If yes, save and broadcast the received direct connection list; otherwise, save the received direct connection list locally. Based on preset rules, determine the role of this node and other nodes directly connected to this node from all received direct connection lists.

6. The full-duplex wireless intercom method based on LoRa technology according to claim 5, characterized in that, The step of determining the role of this node and other nodes directly connected to this node from all received direct connection lists according to preset rules includes: Each node obtains an undirected graph G=(V,E) based on the collected list of directly connected nodes. , Where V is the set of IDs of all nodes, and E represents the direct communication relationships; Initialize the set of relay nodes D=∅ and the set of covered nodes C=∅, and repeat the following steps until C=V: Among the uncovered nodes V and C, select the node v with the highest degree in the original graph; if the degrees are the same, select the node with the lowest ID. Add v to D, and add v and all its adjacent nodes to C.

7. A full-duplex wireless intercom device based on LoRa technology, characterized in that, The LoRa-based full-duplex wireless intercom device includes a LoRa module and a control module. The LoRa module is used for data reception and transmission; The control module is connected to the LoRa module and is used to control the operation of the LoRa module by executing the full-duplex wireless intercom method based on LoRa technology as described in any one of claims 1-6.

Citation Information

Patent Citations

  • Data processing method and device

    CN110831132A

  • Full duplex LoRa gateway supporting LoRaWAN protocol

    CN111315041A