Active Cross-Technology Neighbor Discovery

X-Disco allows Wi-Fi devices to discover ZigBee neighbors via software updates, overcoming communication barriers and protocol limitations, enhancing network performance by facilitating cooperative communication.

JP7721008B2Active Publication Date: 2025-08-08MITSUBISHI ELECTRIC CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024546008
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-03-31
Filing Date
2023-02-02
Publication Date
2025-08-08
Estimated Expiration
2043-02-02

AI Technical Summary

Technical Problem

Existing inter-technology neighbor discovery methods are impractical for discovering heterogeneous neighbors in IoT networks due to the inability of devices using different wireless communication technologies to communicate, requiring hardware/firmware modifications, and lack of protocols for accurate neighbor discovery.

Method used

The X-Disco method enables Wi-Fi devices to discover ZigBee neighbors through software-only updates, using emulated ZigBee packets and symbol-level decoding, allowing bidirectional communication without modifying ZigBee devices, and providing a protocol for active neighbor discovery.

Benefits of technology

Accurately and efficiently discovers ZigBee neighbors, reducing interference and improving network performance in IoT networks by enabling cooperative communication between Wi-Fi and ZigBee devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007721008000010
    Figure 0007721008000010
  • Figure 0007721008000011
    Figure 0007721008000011
  • Figure 0007721008000012
    Figure 0007721008000012
Patent Text Reader

Abstract

A computer-implemented method for discovering disparate neighbors in a coexisting IoT network including at least one Wi-Fi device and at least one of a Zigbee coordinator, a ZigBee router, and a ZigBee end device is provided. The method includes generating a broadcast packet such that the broadcast packet emulates a ZigBee broadcast frame, and transmitting the emulated broadcast packet using a transceiver of the at least one Wi-Fi device according to a cross-technology communication (CTC) method, where the emulated broadcast packet is configured to trigger at least one of the Zigbee coordinator and the ZigBee router that receive the emulated broadcast packet to rebroadcast the received packet. The method also includes generating a unicast packet, such that the unicast packet emulates a ZigBee address request frame, and transmitting the emulated unicast packet using a transceiver of the at least one Wi-Fi device according to a CTC method, wherein the emulated unicast packet is configured to trigger at least one of a Zigbee coordinator, a ZigBee router, and a ZigBee end device that receives the emulated unicast packet to respond with a ZigBee address response frame, and the method further includes determining that the at least one ZigBee end device is a neighbor of the at least one Wi-Fi device if the scanned address response frame is transmitted by the at least one ZigBee end device.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates generally to neighbor discovery in wireless communication networks, and more particularly to discovering heterogeneous neighbors in coexisting IoT networks. [Background technology]

[0002] Internet of Things (IoT) applications are growing rapidly. A wide range of wireless communication technologies have been developed to support these diverse applications. For example, IEEE 802.11 and IEEE 802.15.4 are two commonly referenced standard families. Both the 802.11 and 802.15.4 standards are designed to operate in the 2.4 GHz and sub-1 GHz bands, and the 802.11 standard can also operate in the 5 GHz, 6 GHz, and millimeter wave bands. When co-located heterogeneous wireless networks, such as an 802.11 network and an 802.15.4 network, operate in overlapping or shared frequency bands, one network becomes an interference network to the other. However, the problem is that these networks cannot communicate, so one network is unaware of the existence of the other network. As new heterogeneous wireless technologies emerge, interference between wireless networks using different communication technologies becomes a significant challenge.

[0003] In general, interference can be divided into in-technology interference and cross-technology interference.

[0004] Intra-technology interference occurs when co-located devices using the same wireless communication technology, e.g., two Wi-Fi® devices, transmit simultaneously in overlapping or shared frequency bands. These devices may be in the same network or may belong to different networks.

[0005] Inter-technology interference occurs when co-located devices using different wireless communication technologies, such as Wi-Fi devices and ZigBee, transmit simultaneously in overlapping or shared frequency bands. Typically, these devices using different communication technologies belong to different networks.

[0006] Therefore, neighbors of a network device can be divided into two classes: intra-technology (homogeneous) neighbors and inter-technology (heterogeneous) neighbors.

[0007] Intra-technology neighbors are nearby devices that use the same communication technology as the device in question. That is, the two devices can communicate. For example, a Wi-Fi device can communicate with another Wi-Fi device.

[0008] An inter-technology neighbor is a nearby device that uses a different communication technology than the device in question. That is, the two devices cannot communicate. For example, a Wi-Fi device cannot communicate with a ZigBee device.

[0009] There are two categories of interference mitigation approaches: coordinated approaches and distributed approaches.

[0010] The coordinated approach is a feasible solution for mitigating intra-technology interference because devices can communicate with each other and some devices, such as Wi-Fi APs, can act as coordinators to mitigate interference. It can also be applied to mitigate inter-technology interference, for example, by using multi-mode devices, such as smart hubs, that can communicate using multiple communication technologies to coordinate heterogeneous wireless devices for interference reduction. However, due to the requirements of multi-mode devices, this approach is suitable for hotspots and office buildings but is impractical for large-scale outdoor IoT applications, such as smart utilities and smart cities.

[0011] In a distributed approach, network devices autonomously manage interference control without a coordinator. This approach is feasible for mitigating intra-technology interference. It is also applicable to mitigating inter-technology interference, and is particularly suitable for large-scale outdoor IoT applications due to its low cost and ease of deployment. However, a key challenge is how network devices learn about the existence of inter-technology neighbors, i.e., how to discover inter-technology neighbors. Therefore, inter-technology neighbor discovery becomes an essential step for mitigating inter-technology interference.

[0012] In principle, neighbor discovery is the discovery of neighbors that exist but are not yet known by the discovering device. In other words, the discovering device knows nothing about the discovered neighbor. However, some existing neighbor discovery mechanisms are based on prior knowledge of neighbors. For example, neighbor discovery in IP protocols and device discovery in ZigBee protocols use one type of neighbor's pre-known address to obtain another type of neighbor's address. Taking IP neighbor discovery as an example, a discovering device A pre-knows the IP address of neighbor B and wants to know neighbor B's link address. In this case, device A sends a neighbor solicitation message to device B. Upon receiving the solicitation message from device A, device B replies with a neighbor advertisement message to device A, which includes device B's link address. Upon receiving the neighbor advertisement message, device A obtains device B's link address. These mechanisms make three assumptions: (i) device A knows the existence of device B, (ii) device A knows one type of address of device B, and (iii) device A and device B can communicate.

[0013] It is easier to discover intra-technology neighbors because the discovering device can communicate with the neighbors. Intra-technology neighbor discovery has been widely studied in wireless networks such as Wi-Fi and ZigBee networks. The intra-technology neighbor discovery design works well because neighbor discovery occurs between devices that can communicate. Summary of the Invention [Problem to be solved by the invention]

[0014] However, discovering inter-technology neighbors is extremely difficult because inter-technology devices cannot communicate with each other due to incompatible PHY layers. There are existing inter-technology neighbor discovery methods that use cross-technology communication (CTC) technology. However, these methods either assume that neighbors are CTC-capable or can only perform one-way inter-technology message transmission, or require modifications to the device's communication capabilities, which are impractical for already deployed devices. Most importantly, existing methods do not provide a protocol for inter-technology neighbor discovery.

[0015] Therefore, it is desirable to provide an inter-technology neighbor discovery method for actively and accurately discovering inter-technology neighbors via bidirectional communication without requiring hardware / firmware modifications. [Means for solving the problem]

[0016] Some embodiments of the present invention are based on the recognition that inter-technology neighbor discovery is very important for emerging IoT networks, where multiple networks using different wireless communication technologies coexist, compete for limited spectrum, and therefore interfere with each other. Therefore, it is crucial for network devices to discover inter-technology neighboring devices and cooperate with these devices to reduce mutual interference and improve network performance. However, existing neighbor discovery mechanisms are designed to discover homogeneous neighbors, and a discovering device can communicate with the discovered neighbors due to the use of the same communication technology.

[0017] It is an objective of various embodiments of the present invention to provide an inter-technology neighborhood discovery method for discovering inter-technology neighbors. To that end, some embodiments of the present invention provide an inter-technology neighborhood discovery method, named X-Disco, that enables Wi-Fi devices to discover ZigBee neighbors via bidirectional inter-technology communication.

[0018] Some embodiments are based on the recognition that it is impractical or even impossible to modify the communication capabilities of commercial devices, especially devices that are already deployed and in use. As a result, neighbor discovery techniques that require modifications to communication protocols are not feasible in practical applications.

[0019] An objective of various embodiments of this invention is to provide a software-only solution for discovering inter-technology neighbors. As such, X-Disco is a software-only solution that allows generic Wi-Fi devices to discover generic ZigBee neighbors with no modifications to the ZigBee device, only a software update to the Wi-Fi device.

[0020] Some embodiments of the present invention are based on the recognition that network devices only decode received signals modulated using a compatible modulation scheme and discard any signals they do not understand. For example, because Wi-Fi and ZigBee have different modulation schemes and different packet formats, a Wi-Fi device would not decode a ZigBee signal. Similarly, a ZigBee device would not decode a Wi-Fi signal. Therefore, to decode an inter-technology signal, the transmitter must modulate the signal according to the receiver's protocol, or the receiver needs a new method for decoding the inter-technology signal.

[0021] An objective of various embodiments of this invention is to provide a method for decoding inter-technology signals by an inter-technology device. To this end, X-Disco enables a Wi-Fi device to transmit emulated ZigBee packets to a ZigBee neighbor, allowing the ZigBee neighbor to decode the emulated packets. X-Disco also provides a ZigBee signature extraction method to enable the Wi-Fi device to decode the ZigBee packets. As a result, X-Disco realizes bidirectional communication between a Wi-Fi device and a ZigBee device for inter-technology neighbor discovery.

[0022] Therefore, some embodiments of the present invention enable a Wi-Fi device to transmit emulated packets constructed according to the ZigBee protocol, allowing the ZigBee device to decode the packets transmitted by the Wi-Fi device. Some embodiments of the present invention also provide a symbol-level ZigBee signal extraction method so that the Wi-Fi device can decode the ZigBee packets transmitted by the ZigBee device. The ZigBee symbols are decoded by comparing the similarity of the received symbols with provided template symbols.

[0023] Some embodiments of the present invention are based on the recognition that there are protocols for intra-technology neighbor discovery. However, there are no protocols for inter-technology neighbor discovery. Therefore, there is a need to provide a protocol for inter-technology neighbor discovery.

[0024] Therefore, some embodiments of the present invention provide an inter-technology neighbor discovery protocol compatible with communication protocols used by inter-technology devices, which provides step-by-step instructions to instruct Wi-Fi devices to actively initiate a ZigBee neighbor discovery process by sending emulated ZigBee broadcast packets, to discover surrounding ZigBee coordinators and routers via decoding information contained in the rebroadcast packets, to obtain ZigBee end device information from ZigBee coordinators and routers via exchanges of ZigBee neighbor discovery request frames and ZigBee neighbor discovery response frames, and to determine whether ZigBee end devices are neighbors of the Wi-Fi device via exchanges of ZigBee IEEE address request frames and ZigBee IEEE address response frames.

[0025] According to some embodiments of the present invention, a computer-implemented method is provided for discovering heterogeneous neighbors in a coexisting IoT network, the IoT network including at least one Wi-Fi device and at least one of a Zigbee coordinator, a ZigBee router, and a ZigBee end device. In this case, the method uses a processor coupled to a memory storing instructions implementing the method, the instructions, when executed by the processor, performing steps of the method, the steps including: generating a broadcast packet such that the broadcast packet emulates a ZigBee broadcast frame; and transmitting the emulated broadcast packet using a transceiver of the at least one Wi-Fi device according to a Cross-Technology Communication (CTC) method, the emulated broadcast packet being configured to trigger at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device that receives the emulated broadcast packet to rebroadcast the received packet; the steps further including switching a status of the at least one Wi-Fi device to a spectrum scanning mode to scan for the rebroadcast packet from at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device;The method includes: decoding the scanned rebroadcast packet to obtain an ID and a network address; generating a unicast packet such that the unicast packet emulates a ZigBee address request frame having a destination address set to a network address of at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device; and transmitting the emulated unicast packet using a transceiver of the at least one Wi-Fi device according to a CTC method, wherein the emulated unicast packet is configured to trigger at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device that receives the emulated unicast packet to transmit a ZigBee address response frame; and ZigBee end devices; decoding the scanned ZigBee address response frame to obtain a network address of a ZigBee end device associated with the ZigBee coordinator or ZigBee router that transmitted the ZigBee address response frame; switching the status of the at least one Wi-Fi device to spectrum scanning mode to scan for an address response frame from the at least one ZigBee end device; and determining that the at least one ZigBee end device is a neighbor of the at least one Wi-Fi device if the scanned address response frame is transmitted by the at least one ZigBee end device.

[0026] Some embodiments of the present invention also provide a communication device (Wi-Fi device) for discovering heterogeneous neighbors in a coexisting IoT network including at least one Wi-Fi device and at least one of a Zigbee coordinator, a ZigBee router, and a ZigBee end device. The communication device may include a transceiver configured to transmit and receive broadcast packets to communicate with at least one of the Zigbee coordinator, the ZigBee router, and the ZigBee end device over a wireless channel; a memory configured to store a computer-implemented method for discovering heterogeneous neighbors in a coexisting IoT network including at least one Wi-Fi device and at least one of the Zigbee coordinator, the ZigBee router, and the ZigBee end device; and a processor configured to execute the computer-implemented method. The method provides the processor coupled to the memory storing instructions implementing the method. The processor executes steps of the instructions, the steps including: generating a broadcast packet such that the broadcast packet emulates a ZigBee broadcast frame; and transmitting the emulated broadcast packet using a transceiver of the at least one Wi-Fi device according to a Cross-Technology Communication (CTC) method, the emulated broadcast packet being configured to trigger at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device that receives the emulated broadcast packet to rebroadcast the received packet; the steps further include switching a status of the at least one Wi-Fi device to a spectrum scanning mode to scan for the rebroadcast packet from at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device;and ZigBee end devices; generating a unicast packet such that the unicast packet emulates a ZigBee address request frame having a destination address set to a network address of at least one of the Zigbee coordinator, the ZigBee router, and the ZigBee end devices; and transmitting the emulated unicast packet using a transceiver of the at least one Wi-Fi device according to a CTC method, wherein the emulated unicast packet is configured to trigger at least one of the Zigbee coordinator, the ZigBee router, and the ZigBee end devices that receives the emulated unicast packet to transmit a ZigBee address response frame, the steps further comprising: and the ZigBee end device, and the ZigBee end device, and the ZigBee end device, and the ZigBee end device, and the ZigBee coordinator or ZigBee router ...

[0027] Some embodiments of the present invention are based on the recognition that passive inter-technology neighbor discovery methods are inaccurate and inefficient in discovering inter-technology neighbors due to the fact that many low-power devices, such as ZigBee devices, are battery-powered. Such devices sleep most of the time to extend battery life. Even when a low-power device wakes up, it may not transmit. For example, a smart meter may transmit every 15 minutes or more. Therefore, it is possible that such devices may be overlooked. Furthermore, during passive listening, the discovering device may not be able to transmit, which may cause unacceptably long delays for Wi-Fi transmissions.

[0028] Therefore, X-Disco is an active cross-technology neighbor discovery method that allows Wi-Fi devices to actively trigger ZigBee neighbors to respond, which accelerates the discovery process and increases discovery accuracy.

[0029] The presently disclosed embodiments are further described with reference to the accompanying drawings. The drawings shown are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the presently disclosed embodiments. [Brief explanation of the drawings]

[0030] [Figure 1] 1 is a schematic diagram of coexisting Wi-Fi and ZigBee networks according to an embodiment of the present invention; [Figure 2] FIG. 1 illustrates an exemplary packet transmission collision in coexisting Wi-Fi and ZigBee networks. [Figure 3] 1 is a diagram illustrating an example of a ZigBee network including a ZigBee coordinator, a ZigBee router, and a ZigBee end device according to an embodiment of the present invention. [Figure 4] FIG. 1 illustrates a ZigBee protocol stack architecture. [Figure 5] FIG. 1 illustrates a ZigBee frame architecture. [Figure 6A] FIG. 1 illustrates the general IEEE 802.15.4-2003 physical layer data unit format adopted by the ZigBee specification. [Figure 6B] 6B illustrates a ZigBee-specific configuration of a preamble field for the IEEE 802.15.4-2003 physical layer data unit shown in FIG. 6A. [Figure 6C] 6B illustrates a ZigBee-specific configuration of the start-of-frame delimiter (SFD) field for the IEEE 802.15.4-2003 physical layer data unit shown in FIG. 6A. [Figure 7A] FIG. 1 illustrates the general IEEE 802.15.4-2003 MAC frame format adopted by the ZigBee specification. [Figure 7B] FIG. 7B illustrates the format of the frame control field shown in FIG. 7A. [Figure 7C] FIG. 2 illustrates a particular configuration of a frame control field for a data frame in accordance with an embodiment of the present invention. [Figure 8A] FIG. 1 illustrates a typical ZigBee network layer frame format. [Figure 8B] FIG. 8B illustrates the format of the frame control field shown in FIG. 8A. [Figure 8C] FIG. 2 illustrates a particular configuration of a frame control field for a data frame in accordance with an embodiment of the present invention. [Figure 9A] FIG. 1 illustrates a general ZigBee application support sublayer (APS) frame format. [Figure 9B] FIG. 9B illustrates the format of the frame control field shown in FIG. 9A. [Figure 9C] FIG. 1 illustrates a typical ZigBee APS data frame format. [Figure 9D] FIG. 2 illustrates a specific configuration of a frame control field for an APS data frame in accordance with an embodiment of the present invention. [Figure 10A] FIG. 1 is a diagram illustrating a ZigBee IEEE address request frame format. [Figure 10B] FIG. 1 is a diagram illustrating a ZigBee IEEE address response frame format. [Figure 11] FIG. 2 illustrates an active ZigBee neighbor discovery protocol by Wi-Fi devices using inter-technology communication according to an embodiment of the present invention. [Figure 12] FIG. 1 illustrates the basic operation of an X-Disco device according to an embodiment of the present invention (the X-Disco device first searches for surrounding ZigBee coordinators and routers in step (a), and then retrieves ZigBee neighbor information in step (b)). [Figure 13] FIG. 1 illustrates the physical layer operation of a ZigBee transmitter. [Figure 14] FIG. 1 illustrates a mapping from ZigBee symbols to chip sequences. [Figure 15] FIG. 1 illustrates a baseband (I / Q) signal of a ZigBee symbol "0" (quadrature phase delayed by 0.5 μs, four 3.2 μs non-gray segments from a Wi-Fi spectrum scan fed into the FFT magnitude calculation, and the gray segments omitted) in accordance with an embodiment of the present invention. [Figure 16] FIG. 2 illustrates how a Wi-Fi device functions in spectrum scanning mode, according to an embodiment of the present invention. [Figure 17] FIG. 4 illustrates the similarity between FFT groups of different ZigBee symbols according to an embodiment of the present invention. [Figure 18] 2 illustrates an example of functional elements of a Wi-Fi device and a ZigBee device in inter-technology proximity discovery, according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0031] The following description provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of exemplary embodiments will provide those skilled in the art with an enabling description for implementing one or more exemplary embodiments. Various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the disclosed subject matter as set forth in the appended claims.

[0032] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by those skilled in the art that the embodiments may be practiced without these specific details. For example, systems, processes, and other elements in the disclosed subject matter may be shown as components in block diagram form to avoid obscuring the embodiments in unnecessary detail. In other instances, well-known processes, structures, and techniques may be shown without unnecessary detail to avoid obscuring the embodiments. Also, the same reference numbers and names in the various drawings refer to the same elements.

[0033] Also, particular embodiments may be described as a process, which is depicted as a flowchart, flow diagram, data flow diagram, structure diagram, or block diagram. While a flowchart may describe operations as a sequential process, many of the operations may occur in parallel or simultaneously. Additionally, the order of operations may be rearranged. A process may terminate when its operations are completed, but may have additional steps not described or included in the drawings. Moreover, not all operations in any specifically described process may occur in all embodiments. A process may correspond to a method, function, procedure, subroutine, subprogram, etc. When a process corresponds to a function, the end of the function may correspond to the function returning to the calling function or main function.

[0034] Furthermore, embodiments of the disclosed subject matter may be implemented, at least in part, manually or automatically. The manual or automatic implementation may be performed or at least assisted through the use of machine, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored on a machine-readable medium. A processor may perform the necessary tasks.

[0035] There are many different wireless communication technologies. The embodiments of the present invention take Wi-Fi technology and ZigBee technology as exemplary wireless technologies to illustrate heterogeneous neighbor discovery via inter-technology communication. However, the provided inter-technology neighborhood discovery technique can be applied to other wireless technologies. In the present invention, a Wi-Fi device actively discovers its ZigBee neighbors. No modifications are required for ZigBee devices. In other words, the invented method can be directly applied to discover commercial ZigBee devices. Only a minor software update is needed for the Wi-Fi device. The need for technology neighbor discovery

[0036] It is important to note that network layer technologies cannot perform physical layer functions. As a result, traditional network layer neighbor discovery mechanisms cannot discover heterogeneous neighbors. Therefore, physical layer technologies are required to discover heterogeneous neighbors. Therefore, inter-physical layer technology communication can be developed to discover heterogeneous neighbors.

[0037] Physical Technology Communication (CTC) is an emerging technique that enables direct communication between different wireless technologies, such as Wi-Fi and ZigBee. It is a promising approach for efficient coordination and collaboration to mitigate interference between coexisting heterogeneous wireless systems. It can provide a new direction for neighbor discovery, and can discover neighbor types, neighbor numbers, and neighbor locations.

[0038] Existing physical-layer CTC (PHY-CTC) can achieve high data rates. However, the communication function modification requirement makes the channel incompatible with commercial devices, making it difficult to deploy in current wireless systems. Therefore, the PHY-CTC needs to be compatible with commercial devices; that is, no hardware / firmware modifications are required for commercial devices. An embodiment of the present invention provides a PHY-CTC between Wi-Fi technology and ZigBee technology for inter-technology proximity discovery. Basic features of ZigBee

[0039] Instead of using the standard IP protocol, ZigBee defines its own network protocol using the IEEE 802.15.4 MAC and PHY protocols. For example, ZigBee uses 16-bit network addresses instead of IP addresses. In addition to short addresses, ZigBee uses 64-bit IEEE addresses. The ZigBee protocol defines its own device discovery mechanism instead of using the IP neighbor discovery mechanism. To support sleeping devices in device discovery, ZigBee also defines a primary discovery cache device. Most importantly, ZigBee defines a passive ACK mechanism for data broadcast communication.

[0040] However, ZigBee device discovery is based on IP neighbor discovery. More specifically, a searching device knows the 16-bit network address or 64-bit IEEE address of a neighbor and wants to know the 64-bit IEEE address or 16-bit network address of its neighbor. In other words, instead of discovering unknown neighbors, the mechanism uses one type of address of a known neighbor to obtain another type of address. The NWK_addr_req frame is used to obtain the 16-bit network address of a neighboring device using the neighboring device's known IEEE address. The destination addressing for this frame can be unicast or broadcast to all devices with macRxOnWhenIdle=true. The IEEE_addr_req frame is used to obtain the 64-bit IEEE address of a neighboring device using the neighboring device's known 16-bit network address. The destination addressing for this frame must be unicast. As a result, neighbor discovery in ZigBee is still address acquisition, not neighbor discovery. At the network layer, the ZigBee device discovery mechanism cannot discover heterogeneous neighbors.

[0041] Primary discovery cache devices, such as ZigBee coordinators and ZigBee routers, are useful in device discovery. These devices are themselves discoverable and provide services for uploading and storing discovery information on behalf of sleeping ZigBee end devices. In addition, these devices respond to discovery requests on behalf of sleeping ZigBee end devices. Each primary discovery cache device must be either a ZigBee router or a ZigBee coordinator. In each ZigBee network consisting of sleeping ZigBee end devices, some ZigBee routers or ZigBee coordinators may be designated as primary discovery cache devices. ZigBee end devices that intend to sleep may upload and store their network addresses, IEEE addresses, etc. on primary discovery cache devices selected by the ZigBee end devices to allow device discovery operations on behalf of these sleeping devices. ZigBee coordinators and routers designated as primary discovery cache devices shall respond to discovery requests on behalf of sleeping ZigBee end devices.

[0042] An important feature in ZigBee is the passive ACK mechanism for broadcast data frames. When a ZigBee coordinator or router receives a broadcast data frame, instead of sending a MAC-level ACK, it will rebroadcast the received data frame. This rebroadcast acts as a passive ACK. This feature will be used by embodiments of the present invention to allow Wi-Fi devices to discover ZigBee neighbors.

[0043] Based on their functions, ZigBee devices are classified into three categories: 1) ZigBee Coordinator: an IEEE 802.15.4 PAN coordinator that manages a ZigBee network; 2) ZigBee Router: an IEEE 802.15.4 full function device (FFD) that participates in a ZigBee network but is not a ZigBee coordinator, but can act as an IEEE 802.15.4 coordinator within its personal working space and can route messages between devices and supporting associations; and 3) ZigBee End Device: an IEEE 802.15.4 reduced function device (RFD) or FFD that participates in a ZigBee network but is neither a ZigBee coordinator nor a ZigBee router. Active ZigBee Neighbor Discovery Protocol

[0044] In this invention, Wi-Fi technology and ZigBee technology are used as exemplary technologies to explain active heterogeneous neighbor discovery via inter-technology communication (CTC) mechanism. In active heterogeneous neighbor discovery, a Wi-Fi device, such as a Wi-Fi AP or a Wi-Fi station, actively searches for nearby ZigBee devices, and the ZigBee devices can be ZigBee coordinators, or ZigBee routers, or ZigBee end devices.

[0045] 1 shows an example of coexisting Wi-Fi and ZigBee networks. The Wi-Fi network consists of a Wi-Fi access point (AP) 100 and a Wi-Fi station 110. The Wi-Fi network communicates using a Wi-Fi link 120. The ZigBee network consists of a ZigBee personal area network coordinator (PANC) 130 and a ZigBee node 140. The ZigBee network communicates using a ZigBee link 150 that is different from the Wi-Fi link 120.

[0046] Coexistence of Wi-Fi and ZigBee networks refers to the two networks co-locating and operating on overlapping or shared frequency bands. Therefore, when the two networks transmit simultaneously, transmission collisions may occur. Figure 2 shows an example in which a transmission from a Wi-Fi station 110 to a Wi-Fi AP 100 collides with a transmission from a ZigBee node 140 to a ZigBee PANC 130. Thus, the two networks interfere with each other. Therefore, it is crucial that the two networks can cooperate with each other to mitigate mutual interference.

[0047] A wireless network may be a multi-hop network, which is typical for a ZigBee network because ZigBee devices have a shorter communication range. Figure 3 shows a typical ZigBee network consisting of a ZigBee coordinator 130, a ZigBee node 140, and a ZigBee router 300. The ZigBee router extends the network, relays data, and performs some of the coordinator functions. Most importantly, both the ZigBee coordinator and router perform passive ACK for broadcasted data frames by rebroadcasting received data frames, cache information of associated end devices, and respond to device discovery requests on behalf of sleeping end devices.

[0048] 4 shows the ZigBee protocol stack architecture, which includes an application layer 400, a network (NWK) layer 410, a MAC layer 420, and a PHY layer 430. The application layer 400 is composed of two sublayers. The first sublayer is the application object layer, which consists of an application framework 401 and a ZigBee device object (ZDO) 402. The second sublayer is the application support sublayer (APS) 403. ZigBee defines its own network layer 410. The MAC layer 420 adopts IEEE 802.15.4 MAC, and the PHY layer 430 adopts IEEE 802.15.4 PHY. Each layer defines its own frame format.

[0049] Figure 5 shows the ZigBee frame architecture, starting from the PHY layer frame format to the application layer frame. As shown in Figure 6A, a ZigBee PHY layer frame 600 includes a synchronization header (SHR) field, a PHY header (PHR) field, and a PHY payload field. The PHY payload includes a MAC layer frame 700, which includes a MAC header (MHR) field, a MAC payload field, and a MAC footer (MFR) field, as shown in Figure 7A. The MAC payload includes a network layer frame 800, which includes a network header (NWK header) field and a network payload (NWK payload) field, as shown in Figure 8A. Similarly, the NWK payload includes an application layer frame 900, which includes an APS header field and an APS payload field, as shown in Figure 9A.

[0050] To achieve inter-technology communication between Wi-Fi and ZigBee, a probing Wi-Fi device needs to perform physical layer inter-technology communication (PHY-CTC) with a ZigBee device. To do so, a specific frame structure is required. The present invention provides such a frame structure.

[0051] FIG. 6A shows a general IEEE 802.15.4-2003 PHY layer frame format 600 adopted by ZigBee. The PHY frame 600 consists of a synchronization header (SHR) field 610, a PHY header (PHR) field 620, and a PHY payload field 630. The ZigBee protocol specifies 4-bit symbols; that is, a ZigBee symbol is 4 bits in length. The SHR field 610 includes a 4-octet preamble field 640 and a 1-octet SFD (Start of Frame Delimiter) field 650. ZigBee defines the preamble field 640 as eight 4-bit ZigBee symbols 0 as shown in FIG. 6B. In other words, the 4-octet preamble field is set to 0. Figure 6C shows the ZigBee configuration of the SFD field 650, which is set to two ZigBee symbols A and 0 as shown in Figure 6C. The PHR field 620 is one octet and is divided into a 7-bit frame length field and a 1-bit reserved field. The frame length field is dynamically configured based on the actual frame length, and the reserved field is set to 0. The PHY payload field 630 contains a variable-length PHY service data unit (PSDU), which contains the IEEE 802.15.4-2003 MAC frame shown in Figure 7A.

[0052] 7A shows a general IEEE 802.15.4-2003 MAC frame format 700 adopted by ZigBee. The MAC data frame 700 consists of an MHR (MAC Header) field 710, a MAC Payload field 720, and an MFR (MAC Footer) field 730. The MHR field 710 includes a 2-octet Frame Control field 740, a 1-octet Sequence Number field, and a variable-length addressing field that, depending on the configuration of the Frame Control field, may include a 0 / 2-octet Destination PAN Identifier, a 0 / 2 / 8-octet Destination Address, a 0 / 2 / 8-octet Source PAN Identifier, and a 0 / 2 / 8-octet Source Address.

[0053] The format of Frame Control 740 is identified at 750 in Figure 7B and is further divided into nine fields. Depending on the frame type, there are different configurations for the fields shown in Figure 7B. To perform heterogeneous neighbor discovery, the present invention provides a data frame configuration 760 shown in Figure 7C. The 3-bit Frame Type field is set to 001 to indicate a data frame, the 1-bit Security Enable field is set to 0 to indicate that security is not enabled, the 1-bit Frame Pending field is set to 0 to indicate that there are no pending frames, the 1-bit Ack Request field is set to 0 to indicate that there is no MAC acknowledgement request, the 1-bit Intra PAN field is set to 1 to indicate that the frame is being sent within the same network, the 3-bit Reserved field is set to 000 by default, the 2-bit Destination Addressing Mode field is set to 10 to indicate that a 16-bit network address is used, the 2-bit Reserved field is set to 00, and the 2-bit Source Addressing Mode field is set to 00 to indicate that a source address is not included. It is important to point out that Wi-Fi transmitters do not require MAC layer acknowledgment so that ZigBee's passive ACK mechanism can be used, and that Wi-Fi transmitters are not ZigBee nodes and therefore do not have ZigBee addresses.

[0054] The one-octet sequence number field starts at 0 and increments with each transmission. Because the two-bit destination addressing mode field is set to 10, the two-octet destination PAN identifier is set to 0xFFFF to indicate a broadcast PAN identifier, and the two-octet destination address is set to the 16-bit broadcast address 0xFFFF. Also, because the two-bit source addressing mode field is set to 00, the source PAN identifier and source address are not included. The two-octet MFR field contains a frame check sequence (FCS), which is dynamically calculated at frame construction time. Finally, the variable-length MAC payload field contains the ZigBee network frame 800, which may be a data frame by the MAC layer, or a MAC layer control frame, or a MAC layer command frame, as shown in FIG. 8A.

[0055] 8A shows a general ZigBee network (NWK) frame format 800, which consists of an NWK header field 810 and a payload field 820. The NWK header 810 in turn consists of nine fields: a 2-octet frame control 830, a 2-octet destination address, a 2-octet source address, a 1-octet Radius, a 1-octet sequence number, 0 / 8 octets of destination IEEE address, 0 / 8 octets of source IEEE address, 0 / 1 octet of multicast control, and a variable length source-routed subframe.

[0056] The format of the Frame Control 830 is specified in Figure 8B, which is further divided into ten fields 840. Depending on the frame type, there are different configurations for the fields shown in Figure 8B. To perform heterogeneous neighbor discovery, the present invention provides a data frame configuration 850 shown in Figure 8C. The 2-bit frame type field is set to 00 to indicate a data frame, the 3-bit protocol version field is set to 001 to indicate the original version, the 2-bit route discovery field is set to 00 to indicate route discovery suppression, the 1-bit multicast flags field is set to 0 to indicate a broadcast frame, the 1-bit security field is set to 0 to indicate no security enablement, the 1-bit source route field is set to 0 to indicate no source route, the 1-bit destination IEEE address field is set to 0 to indicate no IEEE address is included, the 1-bit source IEEE address field is set to 0 to indicate no source IEEE address is included, the 1-bit end device initiator field is set to 0 to indicate no network parent information is included, and the 2-bit reserved field is set to 00 by default.

[0057] The two-octet destination address field is set to 0xFFFF for broadcast frames or to a specific address for unicast frames. Because Wi-Fi devices do not have ZigBee network addresses, the two-octet source address field is set to 0xFFFF. The one-octet radius field is set to 1 for broadcast data frames so that ZigBee coordinators and routers will rebroadcast the data frame, or to 0 so that the frame is not rebroadcast. The one-octet sequence number field starts at 0 and increments by 1 for each additional transmission. The destination IEEE address and source IEEE address are not included because both are set to 0 in the frame control field 830. Because this is a broadcast frame, the multicast control field is not included. The source route field is set to 0 in the frame control 830 so that a source-routed subframe is not included. Finally, the frame payload includes a ZigBee Application Support Sublayer (APS) frame 900, which can be considered a data frame according to the NWK layer as shown in FIG. 9A, or an NWK layer data frame, or an NWK layer command frame.

[0058] Figure 9A shows a general ZigBee APS frame format 900, which includes an APS header field 910 and an APS payload field 920. The APS header field includes a one-octet frame control field 930, a variable-length addressing field, a one-octet APS counter, and a 0 / variable-length extension header. The frame control field 930 is shown in Figure 9B, and includes a two-bit frame type that is 00 for data, 01 for command, 10 for acknowledgement, and 11 for inter-PAN APS. The two-bit delivery mode is 00 for normal unicast delivery, 01 for spare, 10 for broadcast, and 11 for group addressing. The one-bit Ack Format field is set to 0 for data frame acknowledgement and 1 for APS command frame acknowledgement. The one-bit security field is set to 0 for no security and 1 for security. The 1-bit Ack Request field is set to 1 for an acknowledgment request, or 0 for no acknowledgment. This subfield is set to 0 for all frames that are broadcast or multicast. The 1-bit Extension Header Present field is set to 1 if an extension header is included, or 0 if no extension header is present.

[0059] The addressing field consists of a 0 / 1 octet destination endpoint that identifies the endpoint to which the frame is ultimately to be received, a 0 / 2 octet group address that exists only for group distribution, a 0 / 2 octet cluster identifier that identifies the identifier of the cluster to which the frame pertains, a 0 / 2 octet profile identifier that identifies the ZigBee profile identifier for which the frame is intended, and a 0 / 1 octet source endpoint that identifies the endpoint from which the frame originally originated.

[0060] The one-octet APS Counter field starts at 0 and increments by 1 with each new transmission. The Extension Header contains the Extension Header Subframe if the Extension Header present is 1, otherwise it is absent. Finally, the variable-length APS Payload field 920 contains the frame payload.

[0061] The APS frame 900 may be simplified depending on the frame type. For example, for a data frame, the APS frame 900 is simplified to a data frame 940 as shown in FIG. 9C. For the purpose of heterogeneous neighbor discovery, the present invention provides a configuration 950 of the frame control field 930 for a data frame as shown in FIG. 9D. The destination endpoint is set to 0xFF so that the frame is delivered to all endpoints. No group address is included because the delivery mode is 00. The cluster identifier is set to 0x0001 for IEEE_addr_req frames. The profile identifier is set to public ID 0x0107 for telecommunications applications. The source endpoint is set to 0x01 to indicate that the frame originated from an application running on that endpoint. The APS counter starts at 0 and increments by 1 with each new transmission. No extension header is included because the extension header present bit is set to 0. For heterogeneous neighbor discovery, the frame payload includes an IEEE address request IEEE_addr_req service command as shown in FIG. 10A.

[0062] Figure 10A shows the format of the IEEE_addr_req command 1000, which consists of a two-octet NWKAddrOfInterest field, a one-octet RequestType, and a one-octet StartIndex. The NWKAddrOfInterest field can be set to the network address of the ZigBee coordinator or router. The RequestType field is set to 0x01 to indicate an extended response is required, which means that the ZigBee coordinator or router will send back in a ZigBee IEEE_addr_rsp frame its own IEEE address and a list of 16-bit network addresses of end devices associated with the ZigBee coordinator or router. The start of StartIndex is set to 0 to include all network addresses.

[0063] For the construction of MAC header 710, the destination PAN identifier is set to the PAN identifier obtained by the ZigBee coordinator or router from the rebroadcast data frame, the destination address is set to the 16-bit network address of the ZigBee coordinator or router obtained from the rebroadcast data frame, the source PAN identifier is set to the same as the destination PAN identifier, and the source address is set to an arbitrary 16-bit address different from the destination address. This is because Wi-Fi devices scan all ZigBee transmissions, so the source address does not matter.

[0064] In response to receiving an IEEE_addr_req command, the recipient will send back an IEEE Address Response (IEEE_addr_rsp) service frame as shown in FIG. 10B.

[0065] FIG. 10B shows the format of the IEEE_addr_rsp frame 1010. The 1-octet Status field indicates whether the requested information is included; the 8-octet IEEEAddrRemoteDev is the IEEE address of the ZigBee coordinator or router to which the IEEE_addr_req command is sent; the 2-octet NWKAddrRemoteDev is the network address of the ZigBee coordinator or router to which the IEEE_addr_req command is sent; the 0 / 1-octet NumberAssocDev indicates the number of ZigBee end devices associated with the ZigBee coordinator or router; this field is included if the status is successful; the 0 / 1-octet StartIndex is the starting index into the list of associated end devices; this field is included if the status is successful; and the variable-length NWKAddrAssocDevList contains a list of 16-bit network addresses of end devices associated with the ZigBee coordinator or router; this field is included if the status is successful.

[0066] FIG. 11 shows an active ZigBee neighbor discovery process by a Wi-Fi device 1100, which may be a Wi-Fi AP or a Wi-Fi station. To initiate active ZigBee neighbor discovery, in step (1), the Wi-Fi device 1100 broadcasts an emulated ZigBee NWK layer data frame without a payload. After the broadcast, the Wi-Fi device switches to a spectrum scan mode to listen for responses from ZigBee neighbors. The broadcasted data frame will be received by all ZigBee neighbors. Even if a ZigBee end device does not respond to the received frame, the ZigBee coordinator and ZigBee routers will passively acknowledge receipt by rebroadcasting the received data frame. The rebroadcast will be based on the CSMA / CA mechanism. Therefore, the order of rebroadcasts is random. FIG. 11 shows the order in which the ZigBee coordinator rebroadcasts first, followed by the ZigBee routers. As a result, in step (2A), the ZigBee coordinator 1110 rebroadcasts the data frame, and in step (2B), the ZigBee router rebroadcasts the data frame. Since the Wi-Fi device is in spectrum scanning mode, it will decode all rebroadcasts according to the mechanism described in the next section. From the received rebroadcasts, the Wi-Fi device obtains the network addresses of the ZigBee coordinator and routers because, as shown in FIG. 8A, the source address is always present in the ZigBee frame NWK header 810. In other words, the Wi-Fi device has already discovered the ZigBee coordinator and routers. After obtaining the network addresses of the ZigBee coordinator and routers, the Wi-Fi device queries the ZigBee end device.To do so, in step (3A), the Wi-Fi device sends an emulated ZigBee IEEE_addr_req frame to the ZigBee coordinator with the RequestType field set to 0x01. After sending the frame, the Wi-Fi device switches to spectrum scanning mode to listen for a response from the ZigBee coordinator. Upon receiving the IEEE_addr_req frame, in step (3B), the ZigBee coordinator responds with a ZigBee IEEE_addr_rsp frame, which contains the IEEE address of the ZigBee coordinator and a list of network addresses of ZigBee end devices associated with the ZigBee coordinator. Upon receiving the IEEE_addr_rsp frame from the ZigBee coordinator, the Wi-Fi device has discovered all ZigBee end devices associated with the ZigBee coordinator. The Wi-Fi device then performs the same operation on each ZigBee router in step (4A) and receives the IEEE address of each ZigBee router and the network address of the ZigBee end device associated with that router in step (4B). By this point, the Wi-Fi device has discovered all nodes in the ZigBee network. The Wi-Fi device can obtain the IEEE address of each ZigBee end device by using an exchange of IEEE_addr_req and IEEE_addr_rsp frames in steps (5A), (5B), (6A), and (6B). Cross-technology neighbor discovery between Wi-Fi and ZigBee

[0067] The present invention provides an inter-technology neighbor discovery technology named X-Disco, which is the first inter-technology neighbor discovery mechanism for generic Wi-Fi devices to discover generic ZigBee neighbors without any modifications to hardware or firmware. X-Disco enables generic Wi-Fi devices to trigger responses containing ZigBee neighbor information from surrounding ZigBee coordinators and routers. Through probing Wi-Fi PHY layer information accessible by generic Wi-Fi devices, X-Disco decodes the responded ZigBee packets and obtains ZigBee neighbor information.

[0068] At a high level, an X-Disco device (Wi-Fi device) sends a ZigBee device and service discovery request message to surrounding ZigBee coordinators and routers to retrieve ZigBee neighbor information. The ZigBee coordinator or router then replies with a list of network addresses of each associated ZigBee neighbor in a response message, from which the ZigBee neighbor information is decoded and obtained by the X-Disco device. To overcome the challenge of PHY layer incompatibility between generic Wi-Fi and ZigBee, the X-Disco device (i) employs a recently proposed cross-technology communication (CTC) technique that enables generic Wi-Fi devices to directly send ZigBee messages to generic ZigBee devices through signal emulation without any modifications to the Wi-Fi device's hardware or firmware, and (ii) utilizes the fine-grained PHY layer information directly accessible by the Wi-Fi driver to decode the responded ZigBee messages in generic Wi-Fi. To address the challenge of transparency to ZigBee devices, X-Disco leverages the existing ZigBee device and service discovery mechanism in the ZigBee protocol, where a ZigBee coordinator identifies and shares ZigBee neighbor information when it receives a ZigBee device discovery request sent over generic Wi-Fi via CTC on an X-Disco device. This makes X-Disco fully compatible with both Wi-Fi and ZigBee hardware and protocols, and there is zero cost to deploy X-Disco in practice.

[0069] X-Disco is built with three main technical highlights: (i) ZigBee signature extraction, (ii) ZigBee coordinator discovery, and (iii) neighbor information acquisition, where hardware and protocol compatibility are key. ZigBee signature extraction ensures that all ZigBee messages (especially ZigBee neighbor information) can be reliably decoded by generic Wi-Fi to overcome the challenge of PHY layer incompatibility. ZigBee coordinator discovery and neighbor information acquisition emulate ZigBee device discovery requests using generic Wi-Fi to overcome the challenge of transparency. Granular PHY layer information in Wi-Fi

[0070] Generic Wi-Fi devices expose detailed PHY layer information, such as channel state information (CSI) and Fast Fourier Transformation (FFT) magnitude of the received signal, to the Wi-Fi driver. Spectrum scanning mode, a dedicated mode supported by many open-source Wi-Fi drivers and generic Wi-Fi devices, allows generic Wi-Fi devices to obtain the FFT magnitude of the received signal regardless of its type. Compared with CSI, which is only extracted for each Wi-Fi packet, FFT magnitude can be continuously collected from the received signal in a Wi-Fi spectrum scan. In other words, when a ZigBee signal arrives at a generic Wi-Fi device, the spectrum scan provides a series of FFT magnitudes, from which X-Disco extracts the data modulated in the ZigBee signal. However, decoding ZigBee signals in generic Wi-Fi devices remains quite challenging because ZigBee modulates information in phase, while Wi-Fi spectrum scanning only provides magnitude without phase information. A brief description of X-Disco

[0071] X-Disco is a two-stage approach designed to extract ZigBee neighbor information from surrounding ZigBee coordinators and routers. As shown in FIG. 12, in step (a) 1200 of ZigBee coordinator discovery, the X-Disco device (a generic Wi-Fi device) transmits customized Wi-Fi packets that emulate ZigBee broadcast frames and then switches to spectrum scanning mode. When the customized Wi-Fi packets reach surrounding ZigBee coordinators and routers, the Wi-Fi signals are recognized as legitimate ZigBee broadcast frames, triggering the ZigBee coordinators and routers to rebroadcast the emulated frames as specified by the ZigBee protocol. The rebroadcast frames produce special patterns in the FFT magnitudes collected by the Wi-Fi spectrum scan, from which the frames are decoded in the ZigBee signature extraction described below, and ZigBee network information, such as the PAN ID and network address, is obtained by the X-Disco device. In step (b) 1210, by utilizing the ZigBee network information, the X-Disco device sends an IEEE_addr_req frame (ZigBee device and service discovery request) via CTC to have the ZigBee coordinator and router share ZigBee neighbor information. The ZigBee coordinator then responds to the X-Disco device's request with an IEEE_addr_rsp frame (ZigBee device and service discovery response) containing a list of network addresses of associated ZigBee neighbors. As the foundation of X-Disco, ZigBee signature extraction enables the X-Disco device to decode ZigBee frames using FFT magnitudes collected in Wi-Fi spectrum scans. ZigBee signal interpretation on Wi-Fi devices

[0072] How to interpret ZigBee signals using FFT magnitude without phase information in a Wi-Fi spectrum scan is challenging. ZigBee transmitter

[0073] ZigBee packet transmission begins with assembling four bits into one ZigBee symbol ("0" to "F"), which is the basic unit for transmitting information in ZigBee. As shown in Figure 13, in step (i) 1301, the ZigBee PHY layer first converts the input ZigBee symbol into a unique, pseudorandom 32-bit chip sequence according to the mapping table shown in Figure 14. Next, in steps (ii) 1302 and (iii) 1303, the chips "1" and "0" are shaped into positive and negative 1 μs half-sine pulses via offset quadrature phase shift keying (OQPSK). Specifically, odd-indexed chips generate in-phase signals. The pulses corresponding to even-indexed chips, delayed by 0.5 μs in step (iii), are called quadrature-phase signals. After combining the in-phase (I) and quadrature-phase (Q) signals, in step (iv) 1304, a digital-to-analog converter (DAC) converts the I / Q (discrete) signals into a continuous analog baseband signal, where 1 μs half-sine pulses correspond to a 1 MHz pulse rate and a 2 MHz bandwidth in both in-phase and quadrature phase. Here, ZigBee symbols are converted into a series of sine waves, which represent 0 / 1 chip information in phase with the baseband signal, while the magnitude is constant over time. Finally, in step (v) 1305, a mixer shifts the 2 MHz baseband signal to the ZigBee carrier frequency (passband), which is then fed to the antenna for transmission.

[0074] To demonstrate the intuition of ZigBee signals, the I / Q waveform of ZigBee symbol "0" is plotted in Figure 15, and the quadrature phase is delayed by 0.5 μs. The ZigBee PHY layer converts one ZigBee symbol into a 32-bit chip sequence, and the in-phase and quadrature phase each take 16 chips, resulting in a 16 μs ZigBee signal with constant magnitude. Wi-Fi spectrum scanning

[0075] Figure 16 shows how a WiFi spectrum scan works to collect FFT magnitudes from received signals. In step (i) 1601, a mixer shifts the passband signal to baseband, which is then sampled by an analog-to-digital converter (ADC) at a sampling rate of 20 MHz in step (ii) 1602. Next, in step (iii) 1603, FFT windowing is performed every 4 μs to cut the consecutively received samples into fragments of 80 samples, and 64 samples (the non-gray segment of 3.2 μs in Figure 15) are fed into the FFT calculation in step (iv) 1604, while the remaining 16 samples (the gray segment of 0.8 μs in Figure 15) are omitted. Finally, in step (iv), the FFT of the 64 samples is calculated to obtain the corresponding FFT magnitude, while the phase information is discarded. This process does not require the received signal to be a Wi-Fi signal, so if spectrum scanning mode is on, any signal (e.g., ZigBee) may be fed into the FFT calculation. X-Disco Design

[0076] The main design of X-disco consists of ZigBee signature extraction, ZigBee coordinator and router detection, and neighbor information acquisition. ZigBee Symbol Extraction

[0077]

number

[0078] Using the above definition of the template FFT group for each ZigBee symbol, the similarity between the FFT groups of any two ZigBee symbols is shown in Figure 17. Apparently, the similarity between the template FFT groups of different ZigBee symbols is quite small, indicating that the ZigBee symbols can be decoded by comparing the similarity calculated from the FFT magnitude without phase information over generic Wi-Fi.

[0079]

number

[0080]

number

[0081]

number

[0082]

number

[0083]

number

[0084]

number

[0085] As a result, the generic Wi-Fi device decodes the entire ZigBee packet by applying the decoding approach described in equation (5) on all received FFT groups. Built on top of ZigBee symbol extraction and CTC, X-Disco extracts inter-technology neighbor information in two stages. In the first stage, ZigBee coordinator detection, X-Disco searches for surrounding ZigBee coordinators and routers and obtains their essential information, such as PAN ID and network address, for the next stage, neighbor information acquisition, which allows X-Disco to extract the ZigBee neighbor information already stored in surrounding ZigBee coordinators and routers. ZigBee Coordinator and Router Discovery

[0086] Using generic Wi-Fi to discover ZigBee coordinators and routers is important because it requires maintaining transparency to existing ZigBee networks. One straightforward method is to have Wi-Fi devices passively listen to ZigBee channels until periodic broadcasted ZigBee beacon packets are captured and decoded by generic Wi-Fi via ZigBee signature extraction. The problem with this approach is that most ZigBee networks are typically non-beacon-enabled networks that do not transmit beacon packets.

[0087] In contrast to passive listening, the provided ZigBee coordinator and router discovery actively triggers surrounding ZigBee coordinators to share their essential ZigBee network information with generic Wi-Fi devices. This is achieved by leveraging the ZigBee passive acknowledgment mechanism specified in the ZigBee protocol, whereby ZigBee coordinators and routers rebroadcast any received broadcast packets as acknowledgment of successful packet reception, as opposed to explicitly sending MAC-layer ACK packets. It is worth noting that (i) ZigBee coordinators and routers are required to rebroadcast received broadcast packets that indicate the presence of a ZigBee network, and (ii) packet rebroadcasting is a method for forwarding packets, thereby encapsulating essential ZigBee network information, such as PAN ID and address, in their header fields, as shown in Figures 5-10B.

[0088] The X-Disco device (general-purpose Wi-Fi device) sends out an emulated ZigBee broadcast packet via CTC and switches to spectrum scanning mode. Specifically, as described in Section 3, the X-Disco device configures each field in the header to be in broadcast mode to construct an emulated ZigBee broadcast packet. Then, the CTC method is applied to emulate this constructed ZigBee broadcast packet and obtain a corresponding Wi-Fi packet for transmitting such an emulated packet.

[0089] When ZigBee coordinators and routers receive the emulated ZigBee broadcast packets, they fill their own PAN ID and address fields into the MAC header and network header to construct the rebroadcast packet. Operating in spectrum scan mode, the X-Disco device applies ZigBee signature extraction to obtain the encapsulated essential ZigBee network information, which is further utilized in the next step, neighbor information acquisition, to have the ZigBee coordinators and routers share their ZigBee neighbor information. If there are multiple ZigBee coordinators and routers nearby, the rebroadcast ZigBee packets will be sent with different delays due to the CSMA mechanism, which ensures that the ZigBee network information of all surrounding ZigBee coordinators and routers is collected without collisions. Get neighbor information

[0090] Obtaining ZigBee neighbor information from surrounding ZigBee coordinators and routers leverages the existing device and service discovery mechanism in the ZigBee protocol. Specifically, the ZigBee device and service discovery mechanism allows a ZigBee device to request the network addresses of all ZigBee neighbors associated with a specified ZigBee coordinator or router through the exchange of IEEE_addr_req and IEEE_addr_rsp frames. By setting the “RequestType” and “StartIndex” to 0x01 and 0x00, respectively, a ZigBee device sends an IEEE_addr_req packet to trigger a ZigBee coordinator or router with a network address of “NWKAddrOfInterest” to respond with an IEEE_addr_rsp frame, which conveys the number of associated ZigBee devices in the “NumAssocDev” field and the network addresses of all associated ZigBee devices in the “NWKAddr AssocDevList” field.

[0091] To design neighbor information acquisition, the X-Disco device first emulates the above-mentioned IEEE_addr_req packet, which is constructed with the "NWKAddrOfInterest" field set to the network address of the ZigBee coordinator or router acquired during ZigBee coordinator discovery. After the X-Disco device sends this emulated packet, the ZigBee coordinator or router responds with a corresponding IEEE_addr_rsp frame, which the X-Disco device decodes via ZigBee symbol extraction. Next, X-Disco skips all fields before "NumAssocDev" and obtains the number of ZigBee neighbors from the "NumAssocDev" field. Finally, the X-Disco device obtains the network address of each ZigBee neighbor from the "NWKAddr AssocDevList" field, thereby completing the search for surrounding inter-technology ZigBee devices. ZigBee Neighbor Verification

[0092] It may happen that the discovered ZigBee device may be outside the effective range of the ZigBee device. Therefore, the following steps are provided to further verify the retrieved ZigBee neighbor information by utilizing the conversion between the network address and IEEE address of a specific ZigBee device provided by the ZigBee device and service discovery mechanism. If the "NWKAddrOfInterest" is the network address of the ZigBee device and the "RequestType" is set to "0x00" in the IEEE_addr_req packet as shown in Figure 10A, only this specific ZigBee device will respond with an IEEE_addr_rsp packet, which will include its IEEE address in the "IEEEAddr RemoteDev" field. To verify whether a specific ZigBee device is a neighbor of the X-Disco device, the X-Disco device emulates an IEEE_addr_req with the network address of the ZigBee device acquired in the neighbor information acquisition and waits for a response. A ZigBee device is determined to be a valid inter-technology neighbor if the corresponding IEEE_addr_rsp packet is captured by ZigBee signature extraction. To account for the possibility of sleep, an X-Disco device may emulate the IEEE_addr_req frame multiple times. Functional Elements of Wi-Fi and ZigBee Devices

[0093] 18 illustrates an example of functional elements of a Wi-Fi device 1800 and a ZigBee device 1810 in inter-technology neighbor discovery. The Wi-Fi device 1800 may be referred to as a communication device. The Wi-Fi device 1800 and the ZigBee device 1810 conduct inter-technology communication over a wireless channel 1820. The Wi-Fi device 1800 may include an interface (or transceiver) 1801 configured to communicate with the ZigBee device 1810 over the wireless channel 1820, one or more processors 1802, a spectrum scanning function 1803, and a memory / storage 1804. The memory / storage 1804 is configured to store a heterogeneous neighbor discovery method 1850, wireless signals 1805, PHY information 1806, a ZigBee signature extraction function 1807, processed ZigBee frames 1808, and discovered ZigBee neighbors 1809. The ZigBee device 1810 may include an interface (or transceiver) 1811 configured to communicate with the Wi-Fi device 1800 over a wireless channel 1820, one or more processors 1822, and memory / storage 1813. The memory / storage 1813 is configured to store wireless signals 1814, PHY information 1815, MAC information 1816, network information 1817, and application information 1818. For the ZigBee device to act as a coordinator or a router, the memory also stores associated neighbor information 1819. The Wi-Fi device 1800 is configured to discover heterogeneous neighbors in a coexisting IoT network including at least one Wi-Fi device and at least one of a Zigbee coordinator, a ZigBee router, and a ZigBee end device. The transceiver 1801 is configured to transmit and receive broadcast packets to communicate with at least one of a Zigbee coordinator, a ZigBee router, and a ZigBee end device over a wireless channel. The memory / storage 1804 includes at least one Wi-Fi device and at least one of a Zigbee coordinator, a ZigBee router, and a ZigBee end device.The computer-implemented method 1802 is configured to store a heterogeneous neighbor discovery method 1850, which may be referred to as a computer-implemented method 1850 for discovering heterogeneous neighbors in a coexisting IoT network, wherein one or more processors 1802 are configured to execute the computer-implemented method, the method comprising a processor coupled to a memory storing instructions implementing the method, wherein the one or more processors execute steps of the instructions, the steps including generating a broadcast packet, such that the broadcast packet emulates a ZigBee broadcast frame, and transmitting the emulated broadcast packet using a transceiver of at least one Wi-Fi device according to a Cross-Technology Communication (CTC) method, the emulated broadcast packet being configured to trigger at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device that receives the emulated broadcast packet to rebroadcast the received packet. Further, the method includes: switching a status of the at least one Wi-Fi device to a spectrum scanning mode to scan for rebroadcast packets from at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device; decoding the scanned rebroadcast packets to obtain a ZigBee PAN ID and a network address of at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device having the rebroadcast packets; generating a unicast packet such that the unicast packet emulates a ZigBee address request frame having a destination address set to the network address of at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device; and transmitting the emulated unicast packet using a transceiver of the at least one Wi-Fi device according to a CTC method, wherein the emulated unicast packetThe method is configured to trigger at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device that receives the emulated unicast packet to send a ZigBee address response frame, and further includes switching a status of the at least one Wi-Fi device to a spectrum scanning mode to scan for a ZigBee address response frame from at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device; decoding the scanned ZigBee address response frame to obtain a network address of a ZigBee end device associated with the ZigBee coordinator or the ZigBee router that sent the ZigBee address response frame; switching a status of the at least one Wi-Fi device to a spectrum scanning mode to scan for an address response frame from the at least one ZigBee end device; and determining that the at least one ZigBee end device is a neighbor of the at least one Wi-Fi device if the scanned address response frame is sent by the at least one ZigBee end device.

Claims

1. 1. A computer-implemented method for discovering heterogeneous neighbors in a coexisting IoT network including at least one Wi-Fi device and at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device, the method using a processor coupled to a memory storing instructions implementing the method, the instructions, when executed by the processor, perform steps of the method, the steps including: generating a broadcast packet such that the broadcast packet emulates a ZigBee broadcast frame; and transmitting the emulated broadcast packet using a transceiver of the at least one Wi-Fi device according to a Cross-Technology Communication (CTC) method, wherein the emulated broadcast packet is configured to trigger the at least one of the ZigBee coordinator and the ZigBee router that received the emulated broadcast packet to rebroadcast the received packet, the step further comprising: switching a status of the at least one Wi-Fi device to a spectrum scanning mode to scan for rebroadcast packets from the at least one of a ZigBee coordinator and a ZigBee router; decoding the scanned rebroadcast packets to obtain a ZigBee PAN ID and a network address of at least one of the ZigBee coordinator and ZigBee routers having the rebroadcast packets; generating a unicast packet such that the unicast packet emulates a ZigBee address request frame having a destination address set to a network address of at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device; and transmitting the emulated unicast packet using the transceiver of the at least one Wi-Fi device according to the CTC method, wherein the emulated unicast packet is configured to trigger the at least one of the ZigBee coordinator, ZigBee router, and ZigBee end device that receives the emulated unicast packet to transmit a ZigBee address response frame, and the step further comprises: switching the status of the at least one Wi-Fi device to a spectrum scanning mode to scan for the ZigBee address response frame from the at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device; decoding the scanned ZigBee address response frame to obtain a network address of the ZigBee end device associated with the ZigBee coordinator or ZigBee router that sent the ZigBee address response frame; switching the status of the at least one Wi-Fi device to a spectrum scanning mode to scan for an address response frame from at least one ZigBee end device; and determining that the at least one ZigBee end device is a neighbor of the at least one Wi-Fi device if the scanned address response frame is transmitted by the at least one ZigBee end device.

2. The method of claim 1 , wherein the emulated broadcast packet is configured to be a ZigBee broadcast data frame.

3. The method of claim 1 , wherein the emulated broadcast packet is received by the at least one of the ZigBee coordinator and a ZigBee router near the Wi-Fi device.

4. The method of claim 2 , wherein the emulated broadcast packet triggers the ZigBee coordinator and ZigBee routers that receive the broadcast frame to rebroadcast the data frame as a passive acknowledgment.

5. 5. The method of claim 4, wherein the ZigBee coordinator and ZigBee routers fill their own PAN ID and address fields into MAC and network headers in the rebroadcast data frames.

6. 6. The method of claim 5, wherein the rebroadcasting of the data frames is performed using a random backoff to allow the Wi-Fi device to scan all rebroadcast data frames transmitted by a ZigBee coordinator and a ZigBee router.

7. 2. The method of claim 1, wherein the Wi-Fi device decodes rebroadcast data frames of the scanned ZigBee to obtain ZigBee PAN IDs and network addresses of the ZigBee coordinator and ZigBee router, and the network addresses of the ZigBee coordinator and ZigBee router represent the ZigBee coordinator and ZigBee router discovered by the Wi-Fi device.

8. 8. The method of claim 7, wherein the Wi-Fi device decodes the ZigBee signal by detecting eight consecutive ZigBee symbols "0" followed by ZigBee symbols "A" and "7." 【Request 9】 【Number 1】 【Request 10】 【Number 2】

11. 2. The method of claim 1, wherein the emulated unicast packet is configured to be a ZigBee IEEE_addr_req frame with a destination address set to the network address of the discovered ZigBee coordinator or ZigBee router or ZigBee end device.

12. 12. The method of claim 11, wherein the emulated unicast packet sent to a ZigBee coordinator or ZigBee router is configured to trigger the ZigBee coordinator or ZigBee router to which it is addressed to send the network address of the ZigBee end device associated with the ZigBee coordinator or ZigBee router, the network address of the ZigBee end device representing a potential ZigBee neighbor discovered by the Wi-Fi device via neighbor information acquisition.

13. 2. The method of claim 1, wherein the ZigBee coordinator or ZigBee router that receives an emulated ZigBee IEEE_addr_req frame constructs and transmits a ZigBee IEEE_addr_res frame by filling in the network address of the associated ZigBee end device.

14. 12. The method of claim 11, wherein the emulated unicast packet destined for a ZigBee end device is configured to trigger the destination ZigBee end device to transmit an IEEE address of the ZigBee end device.

15. The method of claim 1 , wherein the Wi-Fi device scans for ZigBee IEEE_addr_res frames in a spectrum scanning mode.

16. 15. The method of claim 14, wherein the Wi-Fi device verifies each potential ZigBee end device by sending an emulated ZigBee IEEE_addr_req frame with a destination address set to the network address of the ZigBee end device.

17. 17. The method of claim 16, wherein the addressed ZigBee end device receives the emulated ZigBee IEEE_addr_req frame if the ZigBee end device is a neighbor of the Wi-Fi device, and otherwise the Wi-Fi device determines that the ZigBee end device is out of communication range of the Wi-Fi device and is not a neighbor of the Wi-Fi device.

18. The method of claim 17, wherein the ZigBee end device that receives the emulated ZigBee IEEE_addr_req frame transmits a ZigBee IEEE_addr_res frame.

19. 19. The method of claim 18, wherein the Wi-Fi device establishes that a potential ZigBee end device is a neighbor if a corresponding ZigBee IEEE_addr_res frame is scanned and decoded, and the established ZigBee end device is a ZigBee neighbor discovered by the Wi-Fi device.

20. 10. The method of claim 1, wherein the Wi-Fi device actively triggers a ZigBee coordinator, a ZigBee router, and a ZigBee end device to respond by sending emulated ZigBee packets instead of passively listening for ZigBee transmissions.

21. A communication device for discovering heterogeneous neighbors in a coexisting IoT network, including at least one Wi-Fi device and at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device, comprising: a transceiver configured to transmit and receive broadcast and unicast packets for communicating with the at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device over a wireless channel; a memory configured to store a computer-implemented method for discovering heterogeneous neighbors in a coexisting IoT network, the method including at least one Wi-Fi device and at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device; a processor configured to execute the computer-implemented method, the method comprising: providing the processor coupled to the memory storing instructions implementing the method, the processor executing steps of the instructions, the steps comprising: generating the broadcast packet such that the broadcast packet emulates a ZigBee broadcast frame; and transmitting the emulated broadcast packet using a transceiver of the at least one Wi-Fi device according to a Cross-Technology Communication (CTC) method, wherein the emulated broadcast packet is configured to trigger the at least one of the ZigBee coordinator and the ZigBee router that received the emulated broadcast packet to rebroadcast the received packet, the step further comprising: switching a status of the at least one Wi-Fi device to a spectrum scanning mode to scan for rebroadcast packets from the at least one of a ZigBee coordinator and a ZigBee router; decoding the scanned rebroadcast packets to obtain a ZigBee PAN ID and a network address of at least one of the ZigBee coordinator and ZigBee routers having the rebroadcast packets; generating a unicast packet such that the unicast packet emulates a ZigBee address request frame having a destination address set to a network address of at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device; and transmitting the emulated unicast packet using the transceiver of the at least one Wi-Fi device according to the CTC method, wherein the emulated unicast packet is configured to trigger the at least one of the ZigBee coordinator, ZigBee router, and ZigBee end device that receives the emulated unicast packet to transmit a ZigBee address response frame, and the step further comprises: switching the status of the at least one Wi-Fi device to a spectrum scanning mode to scan for the ZigBee address response frame from the at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device; decoding the scanned ZigBee address response frame to obtain a network address of the ZigBee end device associated with the ZigBee coordinator or ZigBee router that sent the ZigBee address response frame; switching the status of the at least one Wi-Fi device to a spectrum scanning mode to scan for an address response frame from at least one ZigBee end device; and determining that the at least one ZigBee end device is a neighbor of the at least one Wi-Fi device if the scanned address response frame is transmitted by the at least one ZigBee end device.

22. 22. The communications device of claim 21, wherein the emulated broadcast packet is configured to be a ZigBee broadcast data frame.

23. 22. The communications device of claim 21, wherein the emulated broadcast packet is received by the at least one of the ZigBee coordinator and a ZigBee router near the Wi-Fi device.

24. 23. The communications device of claim 22, wherein the emulated broadcast packet triggers the ZigBee coordinator and ZigBee routers that received the broadcast frame to rebroadcast the data frame.

25. 25. The communications device of claim 24, wherein the ZigBee coordinator and ZigBee router fill their own PAN ID and address fields into MAC and network headers in the rebroadcast data frames.

26. 26. The communications device of claim 25, wherein the rebroadcasting of the data frames is performed using a random backoff to allow the Wi-Fi device to scan all rebroadcast data frames transmitted by a ZigBee coordinator and a ZigBee router.

27. 22. The communication device of claim 21, wherein the Wi-Fi device decodes the scanned ZigBee rebroadcast data frames to obtain ZigBee PAN IDs and network addresses of the ZigBee coordinator and ZigBee routers, the network addresses of the ZigBee coordinator and ZigBee routers representing the ZigBee coordinator and ZigBee routers discovered by the Wi-Fi device.

Citation Information

Patent Citations

  • Nodes and methods for processing information-oriented networking-based communication

    JP2017538311A

  • Emulation-based cross-technology communication

    US20180352055A1