Active Cross-Technology Neighbor Discovery
Patent Information
- Application Number
- JP2024546008
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-03-31
- Filing Date
- 2023-02-02
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2043-02-02
Smart Images

Figure 2025505158000001_ABST
Abstract
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 serve these diverse applications. For example, IEEE 802.11 and IEEE 802.15.4 are two commonly referenced standard families. Both 802.11 and 802.15.4 standards are designed to operate in the 2.4 GHz and sub-1 GHz bands, and 802.11 can also operate in the 5 GHz, 6 GHz, and millimeter wave bands. When co-located heterogeneous wireless networks, such as 802.11 and 802.15.4 networks, operate in overlapping or shared frequency bands, one network becomes an interference network to the other network. 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 to be addressed.
[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 uses, i.e. the two devices can communicate with each other, 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 uses. 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 to mitigate 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, this approach is impractical for large-scale outdoor IoT applications, such as smart utilities and smart cities, although it is suitable for hotspots and office buildings, due to the requirements of multi-mode devices.
[0011] In the distributed approach, network devices autonomously manage interference control without a coordinator. This approach is feasible to mitigate intra-technology interference. It is also applicable to mitigate inter-technology interference, and is especially suitable for large-scale outdoor IoT applications due to its low cost and ease of deployment. However, a key challenge is how network devices know the existence of inter-technology neighbors, i.e., how to discover inter-technology neighbors. Therefore, inter-technology neighbor discovery becomes an essential step to mitigate inter-technology interference.
[0012] In principle, neighbor discovery is to discover neighbors that exist but are not yet known by the discovering device. In other words, the discovering device does not know anything about the discovered neighbor. However, some existing neighbor discovery mechanisms are based on prior knowledge of the neighbor. For example, neighbor discovery in IP protocols and device discovery in ZigBee protocols use a pre-known type of address of a neighbor to obtain another type of address of the neighbor. Take IP neighbor discovery as an example, a searching device A knows the IP address of neighbor B in advance and wants to know the link address of neighbor B. In this case, device A sends a neighbor solicitation message to device B, and upon receiving the solicitation message from device A, device B responds with a neighbor advertisement message to device A, which includes the link address of device B. Upon receiving the neighbor advertisement message, device A obtains the link address of device B. These mechanisms have three assumptions: (i) device A knows the existence of device B, (ii) device A knows a 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 them. 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 is performed among devices that can communicate. Summary of the Invention [Problem to be solved by the invention]
[0014] However, discovering inter-technology neighbors is very 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 the neighbor is CTC-capable or can only perform one-way inter-technology message transmission, or require modifications to the communication capabilities of the devices, which are impractical for devices that have already been deployed. 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 neighborhood discovery is very important for the emerging IoT networks, where multiple networks using different wireless communication technologies coexist and compete for limited spectrum, thus interfering 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 neighborhood discovery mechanisms are designed to discover homogeneous neighbors, and the discovering devices 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 enables generic Wi-Fi devices to discover generic ZigBee neighbors with no modifications to the ZigBee devices, only software updates to the Wi-Fi devices.
[0020] Some embodiments of the present invention are based on the recognition that a network device will only decode received signals modulated using a compatible modulation scheme and will discard any signals it does not understand. For example, a Wi-Fi device will not decode a ZigBee signal because Wi-Fi and ZigBee have different modulation schemes and different packet formats. Similarly, a ZigBee device will not decode a Wi-Fi signal. Thus, 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 to decode the inter-technology signal.
[0021] An objective of various embodiments of the present invention is to provide a method for decoding inter-technology signals by an inter-technology device. To that end, X-Disco enables a Wi-Fi device to transmit emulated ZigBee packets to a ZigBee neighbor so that the ZigBee neighbor can 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 allow a Wi-Fi device to transmit emulated packets constructed according to the ZigBee protocol, and allow 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 the 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. Thus, 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 a Wi-Fi device to actively initiate a ZigBee neighbor discovery process by sending emulated ZigBee broadcast packets, discover surrounding ZigBee coordinators and routers via decoding information contained in the rebroadcast packets, 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 determine whether a ZigBee end device is a neighbor 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 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 employs 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 received 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 the at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device; and detecting a ZigBee PAN of the at least one of the ZigBee coordinator, the ZigBee router, and the ZigBee end device that has the rebroadcast packet.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, the emulated unicast packet being configured to trigger at least one of the Zigbee coordinator, the ZigBee router, and the ZigBee end device that received the emulated unicast packet to transmit a ZigBee address response frame, the steps further including: and the 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 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 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 a 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 received 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;and decoding the scanned rebroadcast packet 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; 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 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 received the emulated unicast packet to transmit a ZigBee address response frame, the steps further comprising: and 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 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 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 transmitted by the at least one ZigBee end device.
[0027] Some embodiments of the present invention are based on the recognition that due to the fact that many low-power devices, such as ZigBee devices, are battery-powered, passive inter-technology neighborhood discovery methods are not accurate and efficient in discovering inter-technology neighbors. Such devices sleep most of the time to extend battery life. Even if a low-power device wakes up, it may not transmit. For example, a smart meter may transmit every 15 minutes or more. Thus, it is possible that such devices may be overlooked. Furthermore, during passive listening, the searching device may not be able to transmit, which may cause unacceptably long delays for Wi-Fi transmissions.
[0028] Thus, X-Disco is an active cross-technology neighbor discovery method that allows Wi-Fi devices to actively trigger their 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, in which the drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the presently disclosed embodiments. [Brief description 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. [Diagram 2] 1 illustrates an example packet transmission collision in coexisting Wi-Fi and ZigBee networks. [Diagram 3] 1 is a diagram showing 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 the ZigBee protocol stack architecture. [Diagram 5] FIG. 1 illustrates a ZigBee frame architecture. [Figure 6A] FIG. 1 illustrates a general IEEE 802.15.4-2003 physical layer data unit format adopted by the ZigBee specification. [Figure 6B] FIG. 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] FIG. 6B illustrates a ZigBee-specific configuration of a 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. 2 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 particular configuration of a frame control field for an APS data frame in accordance with an embodiment of the present invention. [Figure 10A] A diagram showing the ZigBee IEEE address request frame format. [Figure 10B] A diagram showing the 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, where 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. 2 illustrates the physical layer operation of a ZigBee transmitter. [Figure 14] FIG. 2 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 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, in accordance with 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 neighbor discovery, according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[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. Additionally, the same reference numbers and names in the various drawings refer to the same elements.
[0033] Also, individual embodiments may be described as a process, which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe operations as a sequential process, many of the operations may occur in parallel or simultaneously. In addition, 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, a function, a procedure, a subroutine, a 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 to the 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 a 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 this 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 modification is required for ZigBee devices. In other words, the invented method can be directly applied to discover commercial ZigBee devices. Only minor software updates are needed for Wi-Fi devices. 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 disparate neighbors. Therefore, physical layer technologies are needed to discover disparate neighbors. Therefore, inter-physical layer technology communication can be developed to discover disparate neighbors.
[0037] Physical Technology Communication (CTC) is an emerging technique that enables direct communication between different wireless technologies, e.g., Wi-Fi and ZigBee. It is a promising approach for efficient coordination and cooperation to mitigate interference between coexisting heterogeneous wireless systems. It can provide a new direction for neighborhood 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 requirements make the channel incompatible with commercial devices, making it difficult to be deployed in current wireless systems. Therefore, the PHY-CTC needs to be compatible with commercial devices, i.e., 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 neighbor discovery. Basic Features of ZigBee
[0039] ZigBee defines its own network protocol using IEEE 802.15.4 MAC and PHY protocols instead of using the standard IP protocol. 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 known IEEE address of the neighboring device. 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 known 16-bit network address of the neighboring device. 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 also provide services to upload and store 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 are going to sleep may upload and store their own network addresses, IEEE addresses, etc. on the 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 an embodiment of the present invention to discover ZigBee neighbors by Wi-Fi devices.
[0043] Based on the 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 in its personal working space and can route messages between the device 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, which 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 being co-located and operating on overlapping or shared frequency bands. Thus, 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 the mutual interference.
[0047] Wireless networks may be multi-hop networks, which is typical for ZigBee networks because ZigBee devices have shorter communication ranges. Figure 3 shows a typical ZigBee network, which consists 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] FIG. 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 the IEEE 802.15.4 MAC, and the PHY layer 430 adopts the 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, the 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 the 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 generic IEEE 802.15.4-2003 MAC frame format 700 adopted by ZigBee. The MAC data frame 700 is composed 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 may include a 0 / 2 octet destination PAN identifier, a 0 / 2 / 8 octet destination address, a 0 / 2 octet source PAN identifier, and a 0 / 2 / 8 octet source address, depending on the configuration of the Frame Control field.
[0053] The format of the Frame Control 740 is specified at 750 in FIG. 7B, which is further divided into nine fields. Depending on the frame type, there are different configurations for the fields shown in FIG. 7B. To perform heterogeneous neighbor discovery, the present invention provides a Data Frame configuration 760 shown in FIG. 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 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 no source address is 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. The two-bit destination addressing mode field is set to 10, so 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, the two-bit source addressing mode field is set to 00, so 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 as shown in FIG. 8A, or a MAC layer control frame, or a MAC layer command frame.
[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: 2 octets of frame control 830, 2 octets of destination address, 2 octets of source address, 1 octet of Radius, 1 octet of 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 2-octet destination address field is set to 0xFFFF for a broadcast frame or a specific address for a unicast frame. The 2-octet source address field is set to 0xFFFF because Wi-Fi devices do not have a ZigBee network address. The 1-octet radius field is set to 1 for broadcasted data frames so that ZigBee coordinators and routers will rebroadcast the data frame, or 0 so that the frame is not rebroadcast. The 1-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 they are both set to 0 in the frame control field 830. The multicast control field is not included because this is a broadcast frame. The source route subframe is not included because the source route field is set to 0 in the frame control 830. Finally, the frame payload includes a ZigBee Application Support Sublayer (APS) frame 900, which may 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] FIG. 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 FIG. 9B, with 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 destination endpoint of 0 / 1 octet which identifies the endpoint to which the frame is ultimately to be received, a group address of 0 / 2 octet which exists only for group distribution, a cluster identifier of 0 / 2 octet which identifies the identifier of the cluster to which the frame pertains, a profile identifier of 0 / 2 octet which identifies the ZigBee profile identifier for which the frame is intended, and a source endpoint of 0 / 1 octet which identifies the endpoint from which the frame originally originated.
[0060] The 1-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 the public ID 0x0107 for telecommunication applications. The source endpoint is set to 0x01 to indicate that the frame originates 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] FIG. 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 the 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 any 16-bit address different from the destination address, since the Wi-Fi device scans 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 and is included if the status is successful, the 0 / 1 octet StartIndex is the starting index into the list of associated end devices and 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 and 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 start active ZigBee neighbor discovery, in step (1), the Wi-Fi device 1100 broadcasts an emulated ZigBee NWK layer data frame without payload. After broadcasting, the Wi-Fi device switches to spectrum scanning mode to listen for responses from ZigBee neighbors. The broadcasted data frame will be received by all ZigBee neighbors. Even if the ZigBee end device does not respond to the received frame, the ZigBee coordinator and ZigBee routers will passively acknowledge by rebroadcasting the received data frame. The rebroadcasting will be based on the CSMA / CA mechanism. Therefore, the order of rebroadcasting is random. FIG. 11 shows the order that 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 the source address is always present in the ZigBee frame NWK header 810, as shown in FIG. 8A. 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, the ZigBee coordinator responds in step (3B) 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 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, the 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 modification to hardware or firmware in the Wi-Fi device, 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 X-Disco devices. Therefore, X-Disco is fully compatible with both Wi-Fi and ZigBee hardware and protocols, and there is zero cost to actually deploy X-Disco.
[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 on 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 fine-grained PHY layer information, such as Channel State Information (CSI) and Fast Fourier Transformation (FFT) magnitude of received signals to the Wi-Fi driver. As a dedicated mode supported by many open source Wi-Fi drivers and generic Wi-Fi devices, spectrum scanning mode allows generic Wi-Fi devices to obtain the FFT magnitude of received signals regardless of the type of received signal. Compared with CSI, which is only extracted for each Wi-Fi packet, FFT magnitude can be continuously collected from received signals in Wi-Fi spectrum scanning. In other words, when a ZigBee signal arrives at a generic Wi-Fi device, spectrum scanning provides a series of FFT magnitudes from which X-Disco extracts the data modulated in the ZigBee signal. However, it is still quite difficult for generic Wi-Fi devices to decode ZigBee signals, 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-step approach designed to extract ZigBee neighbor information from surrounding ZigBee coordinators and routers. As shown in FIG. 12, in step (a) 1200 ZigBee coordinator detection, the X-Disco device (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 signal is recognized as a regular ZigBee broadcast frame, triggering the ZigBee coordinators and routers to rebroadcast the emulated frames as specified in 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 the ZigBee network information, such as 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 make 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 basis 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] The transmission of a ZigBee packet starts with assembling every 4 bits into one ZigBee symbol ("0" to "F"), which is the basic unit for conveying information in ZigBee. As shown in FIG. 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 FIG. 14. Then, 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, the odd-index chips generate an in-phase signal. The pulses corresponding to the even-index chips delayed by 0.5 μs in step (iii) are called quadrature-phase signals. After combining the in-phase (I) and quadrature (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 in both in-phase and quadrature correspond to a pulse rate of 1 MHz and exhibit a bandwidth of 2 MHz. Here, the 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 the same over time. Finally, in step (v) 1305, a mixer shifts the 2 MHz baseband signal to the ZigBee carrier frequency (passband), which is further fed to the antenna for transmission.
[0074] To demonstrate the intuition of ZigBee signal, the I / Q waveform of ZigBee symbol “0” is plotted in Fig. 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 take 16 chips each, resulting in a 16μs ZigBee signal with constant magnitude. Wi-Fi spectrum scanning
[0075] FIG. 16 shows how WiFi spectrum scanning works to collect FFT magnitudes from received signals. In step (i) 1601, a mixer shifts the passband signal to baseband, which is further sampled by an analog-to-digital converter (ADC) at a sampling rate of 20 MHz in step (ii) 1602. Then, in step (iii) 1603, FFT windowing is performed every 4 μs to cut the consecutively received samples into fragments of 80 samples, 64 samples (non-gray segment of 3.2 μs in FIG. 15) are fed to the FFT calculation in step (iv) 1604, and the remaining 16 samples (gray segment of 0.8 μs in FIG. 15) are omitted. Finally, in step (iv), the FFT of the 64 samples is calculated and the corresponding FFT magnitudes are obtained, 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 discovery, and neighbor information acquisition. ZigBee Symbol Extraction
[0077]
number
[0078] Using the above definition of the template FFT group of each ZigBee symbol, the similarity between the FFT groups of any two ZigBee symbols is shown in Fig. 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 retrieves inter-technology neighbor information in two stages. In the first stage, ZigBee coordinator detection, X-Disco explores 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 enables X-Disco to retrieve 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 the 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 acknowledgement mechanism specified in the ZigBee protocol, whereby ZigBee coordinators and routers rebroadcast any broadcast packets they receive as an acknowledgement of successful reception of the packet, as opposed to explicitly sending a MAC-layer ACK packet. It is worth mentioning that (i) ZigBee coordinators and routers are required to rebroadcast received broadcast packets that indicate the presence of a ZigBee network, and (ii) rebroadcasting packets 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 (generic 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 packets. Working on spectrum scanning mode, X-Disco devices apply ZigBee signature extraction to obtain the encapsulated essential ZigBee network information, which are further utilized in the next step, neighbor information acquisition, to make ZigBee coordinators and routers share ZigBee neighbor information. When multiple ZigBee coordinators and routers are nearby, the rebroadcast ZigBee packets are 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 an exchange of IEEE_addr_req and IEEE_addr_rsp frames. By setting "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] When designing neighbor information acquisition, the X-Disco device first emulates the above-mentioned IEEE_addr_req packet, which is constructed with "NWKAddrOfInterest" being the network address of the ZigBee coordinator or router acquired in 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 is decoded via ZigBee signature extraction by the X-Disco device. Then, 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 of the surrounding inter-technology ZigBee devices. ZigBee Neighbor Verification
[0092] It may happen that the discovered ZigBee device may be out of the valid 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 the 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 Fig. 10A, only this specific ZigBee device will respond with an IEEE_addr_rsp packet, which includes its IEEE address in the "IEEEAddr RemoteDev" field. To verify whether the 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 the ZigBee signature extraction. To allow 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] FIG. 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 perform inter-technology communication via a wireless channel 1820. The Wi-Fi device 1800 may include an interface (or transceiver) 1801 configured to communicate with the ZigBee device 1810 via 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 a 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 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 over a wireless channel with at least one of a Zigbee coordinator, a ZigBee router, and a ZigBee end device. 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 disparate neighbors in a coexisting IoT network, and the one or more processors 1802 are configured to execute the computer-implemented method, the method resulting in a processor coupled to a memory storing instructions implementing the method, where 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 received the emulated broadcast packet to rebroadcast the received packet. Further, the method includes the steps of 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 the CTC method, wherein the emulated unicast packet is:The 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 the method 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, the emulated broadcast packet being configured to trigger the at least one of the Zigbee coordinator and the ZigBee router that received the emulated broadcast packet to re-broadcast the received packet, the steps 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 the 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 the 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 in accordance with the CTC method, the emulated unicast packet being configured to trigger the at least one of the Zigbee coordinator, ZigBee router, and ZigBee end device receiving the emulated unicast packet to transmit a ZigBee address response frame, the step further comprising: switching the status of the at least one Wi-Fi device to a spectrum scanning mode to scan for a 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 transmitted 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 in the vicinity of 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. 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 rebroadcast 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 routers, the network addresses of the ZigBee coordinator and ZigBee routers representing the ZigBee coordinators and ZigBee routers 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 the 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 addressed ZigBee coordinator or ZigBee router 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. 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 validates 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 outside 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. 2. 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, the communication device 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 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 comprising: at least one Wi-Fi device and at least one of a ZigBee coordinator, a ZigBee router, and a ZigBee end device; and 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 said broadcast packet such that said 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 the at least one of the Zigbee coordinator and the ZigBee router that received the emulated broadcast packet to re-broadcast the received packet, the steps 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 the 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 the 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 in accordance with the CTC method, the emulated unicast packet being configured to trigger the at least one of the Zigbee coordinator, ZigBee router, and ZigBee end device receiving the emulated unicast packet to transmit a ZigBee address response frame, the step further comprising: switching the status of the at least one Wi-Fi device to a spectrum scanning mode to scan for a 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 transmitted 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. 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 in the vicinity of 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 routers 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 rebroadcast 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 communications device of claim 21, wherein the Wi-Fi device decodes 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 coordinators 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