BLE multicast service

By managing the joining of multicast groups and message transmission in BLE technology through multicast anchors, the problem of increasing processing overhead and transmission time in multicast communication in the prior art is solved, and efficient and scalable multicast communication is achieved.

CN120036018APending Publication Date: 2025-05-23TEXAS INSTRUMENTS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380072286.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-10-31
Filing Date
2023-10-26
Publication Date
2025-05-23

AI Technical Summary

Technical Problem

The existing BLE technology has an increase in processing overhead and transmission time in multicast communication, especially when it is necessary to transmit the same information to multiple BLE devices simultaneously.

Method used

The first message is broadcasted through the multicast anchor point and joined to the multicast group, and received a unicast message request to join the multicast group. Then the BLE device is added to the multicast group as a multicast client, and the multicast message is transmitted to the multicast group.

Benefits of technology

The overhead and transmission time of processing multiple unicast messages is reduced, and the scalability of multicast data is realized, regardless of the number of BLE devices, while reducing the power consumption of BLE devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120036018A_ABST
    Figure CN120036018A_ABST
Patent Text Reader

Abstract

A method includes broadcasting, by a multicast anchor (310), a first message (331) that broadcasts a multicast service of a multicast group; and receiving, by the multicast anchor (310), a unicast message (332) from the BLE device (320a) indicating a request to join the BLE device to the multicast group. The method also includes joining, by the multicast anchor point (310), the BLE device (320a) to the multicast group as a multicast client, and transmitting, by the multicast anchor point (310), one or more multicast messages (334) for the multicast group to the BLE device (320a).
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Bluetooth Low Energy (BLE) is a wireless communication technology suitable for various applications and devices, such as healthcare, fitness, security, entertainment, home automation and communication devices. Compared with Bluetooth or other wireless communication technologies, BLE communication technology reduces the power consumption of communication devices by reducing the device connection time. Compared with Bluetooth or other wireless communication technologies, BLE communication technology also maintains similar wireless communication range and coverage. The BLE communication standard is supported by various operating systems (OS), including ANDROID, IOS, WINDOWS, MACOS, LINUX and other OS for operating devices. Summary of the invention

[0002] In at least one example, a method includes: broadcasting a first message by a multicast anchor point, the first message broadcasting a multicast service of a multicast group; and receiving a unicast message by the multicast anchor point, the unicast message indicating a request to join a BLE device to the multicast group. The method further includes joining the BLE device to the multicast group as a multicast client by the multicast anchor point, and transmitting one or more multicast messages for the multicast group by the multicast anchor point.

[0003] In at least one example, a method includes: receiving, by a BLE device, a broadcast message advertising a multicast service; and transmitting, in response to the broadcast message, a unicast message from the BLE device to a multicast anchor point requesting to join a multicast group; and receiving one or more multicast messages for the multicast group.

[0004] In at least one example, a device includes a memory configured to store instructions, and a processor coupled to the memory. The instructions cause the processor to be configured to: broadcast a first message requesting to subscribe to a multicast service through a BLE network; receive a unicast message indicating a multicast connection parameter for receiving a multicast message for the multicast service; and receive the multicast message according to the multicast connection parameter.

[0005] In at least one example, a device includes a memory configured to store instructions, and a processor coupled to the memory. The instructions cause the processor to be configured to: receive a broadcast message requesting a BLE device to subscribe to a multicast service; and in response to the broadcast message, transmit a unicast message indicating a multicast connection parameter for receiving a multicast message for the multicast service; and transmit the multicast message according to the multicast connection parameter. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] Figure 1 is a block diagram of a BLE network in various instances.

[0007] Figure 2A is a block diagram of a unicast message exchange between two BLE devices in various examples.

[0008] Figure 2B is a block diagram of broadcast message exchanges in a BLE network in various examples.

[0009] Figure 2C is a block diagram of a multicast message exchange between a BLE device and a group of BLE devices in various examples.

[0010] Figure 3 is a message sequence diagram illustrating message exchanges between BLE devices for discovery and operation of multicast services in various examples.

[0011] Figure 4 is a message sequence diagram illustrating message exchanges between BLE devices for discovery and operation of multicast services in various examples.

[0012] Figure 5 is a message timing diagram of message exchanges for establishing a multicast service in various examples.

[0013] Figure 6 is a message timing diagram of message exchanges for establishing a multicast service in various examples.

[0014] Figure 7 is a message timing diagram of message exchanges for establishing a multicast service on a secondary channel in various examples.

[0015] Figure 8 is a message timing diagram for message exchange for requesting multicast service on a secondary channel in various examples.

[0016] Fig. 9 is a message timing diagram of multicast connection events including multicast messages in various instances.

[0017] Fig.10 is a message timing diagram of multicast connection events with different durations to a multicast group in various instances.

[0018] Fig.11 is a message timing diagram of multicast connection events for multiple multicast groups in various examples.

[0019] Fig.12 is a message timing diagram for message exchange for terminating a multicast service in various examples.

[0020] Fig.13 is a message timing diagram of message exchanges for terminating a multicast service without acknowledgement in various examples.

[0021] Fig.14is a flow chart of a method for discovery and operation of multicast services by a multicast anchor point in various examples.

[0022] Fig.15 is a flow chart of a method for discovery and operation of multicast services by a multicast anchor point in various examples.

[0023] Fig.16 Flowchart of a method for discovery and operation of a multicast service by a BLE device as a multicast client in various examples.

[0024] Fig.17 Flowchart of a method for discovery and operation of a multicast service by a BLE device as a multicast client in various examples.

[0025] Fig.18 is a block diagram of the processing and communication systems of the apparatus in various examples.

[0026] Fig.19 is a diagram of a BLE device architecture for establishing a BLE link in various examples. DETAILED DESCRIPTION

[0027] According to the BLE communication standard, such as specified in Bluetooth Core Specification Version 5.3 or its subsequent version incorporated herein by reference, a communication device (also referred to as a BLE device) is configured according to or in compliance with the BLE communication standard to establish a link that can be used for data transmission. The link is a wireless connection between BLE devices that transmit and exchange data in the form of messages or packets. BLE devices can establish a link via a radio frequency (RF) connection in the network. A network including BLE devices that communicate through one or more links is also referred to as a BLE network in this article. BLE devices include central devices and peripheral devices. Compared with central devices, the power available to peripheral devices may be limited. In general, peripheral devices may have lower operating power requirements than central devices. The central device may also have a power source other than a battery, such as a gateway, router, or computer device connected to a power outlet (e.g., a wall plug power supply). For example, the central device may be a smartphone, a tablet, or a laptop. When operating based on battery power, such as when unplugged from a power source, the central device may have limited available power. In contrast, a peripheral device may be a device with a smaller battery or a battery with more limited power storage than a central device. For example, the peripheral device may be a sensor device or a wearable device, such as a temperature sensor or a wireless headset.

[0028] Figure 11 is a block diagram of a BLE network in various examples. The BLE network includes BLE devices that exchange BLE communications, such as for multicast services. As illustrated, the BLE network includes a BLE network 101 of BLE devices at a home 102, a BLE network 103 of a wearable BLE device of a user 104, a BLE network 105 of BLE devices in a vehicle 106, and a BLE network 107 of a health monitor device at a healthcare institution 108 or a home. The BLE network may be other networks connecting BLE devices that are not shown. The BLE device includes a central device 110 and a peripheral device 120. In an example, the BLE device is a device that supports BLE communications, such as those consistent with or in compliance with a BLE communication standard. In addition, the BLE device may be connected to the Internet, also known as an Internet of Things (IoT) device, such as via a Wi-Fi connection.

[0029] Examples of the central device 110 include smartphones, laptops, tablets, desktop computers, and other devices that can communicate based on the BLE communication standard and can have a power source other than a battery. Examples of the peripheral device 120 include sensor devices, wearable devices, vehicle devices, health monitor devices, and other devices that can communicate based on the BLE communication standard. The peripheral device 120 may include a device with a battery or limited available power compared to the central device 110. In other examples, the peripheral device 120 in the home 102 may include a smart light switch, a smart light bulb, a smart thermostat, and / or a health monitor device. The peripheral device in the healthcare institution 108 may include a health monitor device, such as a smart weight scale, a thermometer, a sensor, or other BLE-enabled device or equipment. The peripheral device 120 can also be a wearable device of the user 104, such as a smart watch, headphones or earbuds, smart glasses, augmented reality (AR) or virtual reality (VR) goggles, fitness equipment or devices, or other wearable devices. In other examples, peripheral device 120 may be a part of vehicle 106 , such as an equipment sensor, radar, speaker, display, key fob, key fob, or BLE tag.

[0030] Examples of vehicle 106 include passenger cars, sport utility vehicles, vans, trucks, buses, all cars, and, but not limited to, any other type of vehicle. Vehicles may also include airplanes, boats, or any other vehicle used to transport people.

[0031] The central device 110 and the peripheral device 120 may exchange data in messages, such as in the form of data packets, via respective BLE links 130. The BLE link 130 is a wireless (e.g., RF) connection between the central device 110 and the peripheral device 120, which represents the transmission of messages or packets based on the BLE communication standard.

[0032] A group of BLE devices can communicate in a multi-peripheral mode, where multiple peripheral devices are connected to a single central device via corresponding links. In the multi-peripheral mode, there can be a single BLE link between each peripheral device and the central device. A group of BLE devices can also communicate in a multi-central mode, where multiple central devices are connected to a single peripheral device via corresponding links. In the multi-central mode, there can be a single BLE link between each central device and the peripheral device.

[0033] BLE communications over a BLE link between a central device and a peripheral device may include broadcast and unicast messages or packets. A central device or a peripheral device may broadcast messages also referred to as broadcast messages within a certain RF connection range. Broadcast messages may be used to broadcast information to BLE devices in a BLE network. For example, a central device may broadcast services in a broadcast message to a peripheral device. A central device may send a broadcast message without encryption, or may encrypt the broadcast message with a public key available to a peripheral device in the BLE network. Thus, any peripheral device in the BLE network or within RF range may detect and receive the service advertisement in the broadcast message.

[0034] In an example, a BLE device may operate as a server (also referred to as a broadcaster or advertiser) that broadcasts data to other BLE devices on a regular basis. A broadcaster or advertiser may not receive incoming data for other devices. For example, based on the BLE communication standard, a BLE device may operate as a beacon in broadcast mode. In this mode, the beacon may be set to an unconnectable state that is not configured to receive data, and packets may be broadcast to any surrounding BLE devices at regular intervals. When scanning for broadcast data packets, a BLE device may receive beacon broadcast data at regular time intervals. For example, a packet may include up to 31 bytes of data. The packet may include a media access control (MAC) address, a received signal strength indicator (RSSI), and application-related broadcast data. A BLE device that scans and receives data from a broadcaster is also referred to as an observer. An observer may not send data (e.g., a packet) to a broadcaster. For example, a gateway may be set in observer mode to scan for surrounding broadcasters or broadcast data.

[0035] The first BLE device may also transmit data destined for a second BLE device directly in a message (also referred to as a unicast message). Before transmitting the unicast message, the first BLE device may share a security key (e.g., a private key) for decoding the unicast message with the second BLE device. Thus, if a third BLE device detects or receives the unicast message without the security key, the third BLE device cannot decode the unicast message. The unicast message may also include an identifier for the data.

[0036] According to the BLE communication standard, in order to transmit (relative to broadcasting) the same information between a first BLE device and a group of second BLE devices, the first BLE device transmits a unicast message with the same information to each second BLE device in the group. The group of second BLE devices may not include all BLE devices in the BLE network or within the RF connection range. Transmitting the same information to a group of BLE devices is also referred to as multicasting in this article. For example, in order to multicast the same information to a group of peripheral devices, the central device transmits a unicast message with the same information to each corresponding peripheral device in the group. The central device can also encode each unicast message so that only the corresponding peripheral device can receive and decode the corresponding unicast message. Multicasting the same information to multiple peripheral devices in multiple unicast messages may increase the processing overhead of the information at the central device. For example, the central device can process each unicast message with different private keys and identifiers according to the corresponding peripheral device. According to the BLE communication standard, the central device also schedules the transmission of unicast messages in non-overlapping time periods. Compared with transmitting a single unicast message, transmitting unicast messages in multiple time periods will increase the transmission time to the peripheral device. Therefore, the multicast of the extended information may be limited to the number of peripheral devices in the group.

[0037] This specification provides an example of extending BLE broadcasting to support BLE multicast capabilities and reducing processing overhead and transmission time for multicasting. Processing overhead and transmission time can be reduced by simultaneously multicasting information to a group of BLE devices in a BLE network in the same message (also referred to herein as a multicast message). Processing a single multicast message for the group of BLE devices reduces processing overhead compared to processing multiple unicast messages. Transmitting a single multicast message to the group of BLE devices simultaneously also reduces transmission time compared to transmitting multiple unicast messages over multiple time periods. Therefore, multicast data is scalable and independent of the number of BLE devices. Reducing processing overhead and transmission time can also reduce power consumption in BLE devices.

[0038] The data in the multicast message may be part of a service (also referred to herein as a multicast service) to the BLE device. Examples of multicast services include, for example, data streaming or downloading services for music, radio, video, television, weather, news, emergency alerts, or other content. For example, the data streaming or downloading service may be a paid subscription-based service or a free subscription-based service. The multicast service may also include data for controlling, managing, or operating the BLE device, such as time data, sensor data, application or software downloads and upgrades, or other data. In an example, the data may be vehicle information, such as speed data or other vehicle settings or measurement data. The information or data of the multicast service is also referred to herein as multicast data.

[0039] In an example, data for a multicast service may be multicast on multiple channels, also referred to herein as multicast channels. A BLE device may subscribe to obtain a multicast service on a multicast channel or a set of multicast channels. The multicast data includes an identifier indicating a corresponding multicast service. The identifier also associates one or more multicast channels providing the multicast data with the corresponding multicast service.

[0040] The BLE device is configured to simultaneously transmit multicast data to a specified group of BLE devices, also referred to herein as a multicast group, in the same multicast message. The BLE device transmitting the multicast data is also referred to herein as a multicast anchor. The BLE device receiving the multicast data from the multicast anchor is referred to herein as a multicast client. A multicast group is a group of multicast clients that subscribe to a multicast service by joining the multicast group to receive related multicast data.

[0041] The multicast anchor point is configured to provide a multicast service to one or more multicast groups of multicast clients subscribing to the same multicast service. The multicast anchor point is also configured to define a starting point of a multicast connection event, for example, by setting a start time to transmit multicast data of the multicast service. The multicast anchor point can determine the frequency and power of the multicast connection event for a certain multicast service, and provide the multicast data of the multicast service to the multicast clients of one or more corresponding multicast groups in the multicast connection event. The multicast anchor point can also determine the multicast channel for the multicast service. For example, the multicast client of the multicast group can receive the multicast data on a certain multicast channel according to the device capability of the multicast client. In an example, the multicast anchor point can be a central device, and the multicast client can be a peripheral device. In other examples, the multicast anchor point can be a peripheral device, and the multicast client can include a central device. In an example, a central device acting as a multicast anchor point for a first multicast group can be a multicast client in a second multicast group. The peripheral device acting as a multicast client in the first multicast group can also be a multicast anchor point for the second multicast group.

[0042] The multicast anchor point is configured to broadcast multicast services to any surrounding BLE device or in the BLE network by broadcasting broadcast messages for one or more multicast services. The broadcast message may be a multicast capability broadcast message indicating a set of supported multicast services. For example, the set of supported multicast services may include one or more multicast services provided on one or more multicast channels. The multicast capability broadcast message is a broadcast message that may include unencrypted data or data encoded by a public key. BLE devices within the RF range may detect and receive the multicast capability broadcast message from the multicast anchor point. The BLE device may then transmit a unicast message to request to join the multicast group of the multicast client. In response to the request to join the multicast group, the multicast anchor point transmits a unicast message indicating the multicast connection parameters for receiving multicast data to the BLE device. The multicast connection parameters configure the BLE device to start receiving multicast messages from the multicast anchor point as a multicast client in the multicast group. For example, the multicast connection parameters indicate the time and frequency of detecting the next multicast message from the multicast anchor point (also referred to herein as listening to the multicast message).

[0043] In other instances, a BLE device that serves as a multicast endpoint for receiving multicast data may broadcast a broadcast message including a request to subscribe to one or more multicast services, also referred to herein as a multicast subscription request broadcast message. The multicast endpoint BLE device may broadcast a subscription request broadcast message indicating a set of supported multicast services to any surrounding BLE devices or in the BLE network. The set of supported multicast services may be received via BLE on one or more multicast channels. The multicast subscription request broadcast message may include unencrypted data or data encoded by a public key. BLE devices within the RF range may then detect and receive the multicast subscription request broadcast message from the multicast endpoint BLE device. The multicast anchor point that receives the multicast subscription request broadcast message may then transmit a unicast confirmation message to the multicast endpoint BLE device as a confirmation of joining the multicast client's multicast group, also referred to herein as a join confirmation message.

[0044] Figures 2A-2C An example of message exchange between BLE devices 210 and 220 in a BLE network 200 is shown. Figure 2AIt is a block diagram of unicast message exchange between two BLE devices in various examples. The first BLE device 210 (e.g., the central device) transmits a unicast message 240 to the second BLE device 220a (e.g., the peripheral device). The first BLE device 210 can encode the unicast message 240 using a security key (e.g., a private key) shared only with the second BLE device 220a. Thus, if a BLE device 220 different from the second BLE device 220a detects or receives the unicast message 240, the BLE device 220 cannot decode the unicast message 240 to obtain the data. The unicast message 240 may also include an identifier of a service associated with the data in the unicast message 240. In an example, the unicast message 240 is a packet that includes a packet data unit (PDU) and other fields. The PDU may include a header field and a payload field. The payload field contains the information or data transmitted from the first BLE device 210 to the second BLE device 220a. The header may include an identifier indicating the service associated with the PDU. The header may also include a PDU type field indicating the type of the unicast message 240 (e.g., a request message, a response message, etc.). The header may also include a length field indicating the length of the payload field (e.g., in bits or octets). Other fields in the PDU may include a preamble field for time synchronization of the packet at the second BLE device 220a, an access address field for matching the unicast messages between the communicating BLE devices, and / or a cyclic redundancy check (CRC) field for error detection. The PDU packet transmitted by the BLE device is also referred to as a BLE packet in this document.

[0045] Figure 2B It is a block diagram of broadcast message exchange in the BLE network 200 in various examples. The first BLE device 210 sends a broadcast message 250 in the BLE network 200. The broadcast message 250 may be an advertisement message that advertises a service to the BLE devices 220. The service may be data of an application such as music, video, or other application programs running on the BLE device 220, or data for operating the BLE device 220. Thus, the BLE devices 220 within the RF connection range can detect and receive the broadcast message 250 to obtain the advertisement information. In an example, the broadcast message 250 is a packet that includes a PDU and other fields. The PDU may include a header field and a payload field carrying the advertisement information. The header field may include a PDU type field indicating that the broadcast message 250 is an advertisement message.

[0046] Figure 2C1 is a block diagram of a multicast message exchange between a first BLE device 210 and a group of BLE devices 220 in various examples. The group BLE devices 220 are a multicast group 260 of multicast clients 220b, 220c, 220d that receive multicast data. The multicast group 260 of the multicast clients 220b, 220c, 220d may be a subset of the BLE devices 220. The first BLE device 210 transmits a multicast message 270 containing multicast data for the multicast group 260 in the BLE network 200. In an example, the multicast message 270 is a packet containing a PDU and other fields. The PDU may include a header field and a payload field that carries the multicast data. The header may include a PDU type field indicating the type of the multicast message 270. Examples of PDU types include an advertisement requesting connection to any device, a direct advertisement requesting connection to a device, an advertisement to a non-connectable device to broadcast information to any listening device, and an advertisement to a non-connectable device with an option of additional information based on a response scan. PDU types may also include broadcast on primary channel, broadcast on secondary channel and periodic broadcast.

[0047] The multicast clients 220b, 220c, 220d in the multicast group 260 may receive the multicast message 270 and obtain the multicast data based on the multicast connection parameters from the first BLE device 210. For example, the first BLE device 210 may send the multicast connection parameters to each of the multicast clients 220b, 220c, 220d in a corresponding unicast message before the multicast message 270. The multicast connection parameters may include a security key used by the multicast group 260 to decode the multicast message 270, also referred to herein as a connection multicast group key. The multicast connection parameters may also include a multicast connection interval, a connection anchor point, and / or a connection channel set. The connection channel set may indicate the time, frequency, and / or channel for receiving the multicast message 270, respectively. For example, the multicast connection parameters indicate the time for receiving or starting a multicast message. The first BLE device 210 may send the multicast connection parameters during a multicast service discovery exchange with each of the multicast clients 220b, 220c, 220d. The first BLE device 210 may then send multicast data in one or more multicast messages 270 during a multicast service operation exchange with the multicast group 260 .

[0048] Figure 33 is a message sequence diagram 300 illustrating message exchanges between BLE devices for discovery and operation of multicast services in various examples. The multicast discovery exchange in the message sequence diagram 300 is based on broadcasting a multicast capability broadcast message by a multicast anchor point 310. For example, the multicast anchor point 310 broadcasts a capability broadcast of a multicast service during a multicast service discovery exchange. The multicast anchor point 310 can be a central device or a peripheral device that provides multicast services to other BLE devices in a BLE network. The capability broadcast can be broadcast by sending a broadcast message 331 in the BLE network or to a BLE device within RF connection range. The capability broadcast broadcast message 331 can include an identifier of the multicast service. The broadcast message 331 can also include multicast group capabilities associated with the multicast group and the multicast client of the multicast group. For example, if the multicast service is associated with multiple multicast groups, such as those with different multicast group capabilities, the broadcast message 331 can also include an identifier of the broadcasted multicast group for the multicast service.

[0049] In an example, the broadcast message 331 is a packet including a PDU type field indicating the broadcast of a multicast service. The multicast anchor point 310 may repeatedly send the broadcast message 331 at regular time intervals to allow multiple BLE devices to detect and receive the broadcast message 331. The BLE device may be configured to scan for broadcast messages 331 from other BLE devices, for example, by listening to packets at regular time intervals. The regular time intervals, also referred to herein as time periods, may be separated by equal time delays. For example, the multicast anchor point 310 sends the broadcast message 331 every 300 microseconds, such as during the switching of the broadcast from the primary channel to the secondary channel. In other examples, the multicast anchor point 310 may send the broadcast message 331 within a shorter time period, such as within 150 microseconds. The BLE devices 320a and 320b may be configured to detect and receive the broadcast in the broadcast message 331 within the matching time period.

[0050] As shown, the BLE device 320a can detect and receive the capability advertisement in the broadcast message 331. For example, the BLE devices in the BLE network including the BLE device 320a can be configured to listen for the capability advertisement within the time period of the broadcast message 331. In response to receiving the broadcast message 331, the BLE device 320a transmits a unicast message 332 to the multicast anchor 310 to request to join the multicast group. The unicast message 332 may include a PDU type field indicating a join request to the multicast group. The multicast group is a group of multicast clients configured to receive multicast data associated with the multicast group. The unicast message 332 may also include an access address field that matches the access address field in the broadcast message 331.

[0051] In response to receiving the request in the unicast message 332, the multicast anchor 310 joins or adds the BLE device 320a to the multicast group and transmits a unicast message 333 indicating the multicast connection parameters to the BLE device 320a. The unicast message 333 is or includes a join response to indicate that the BLE device 320a is added to the multicast group as a multicast client. In an example, the multicast anchor 310 determines to add the BLE device 320a to the multicast group based on certain authority rules such as the type, capabilities, or security restrictions of the BLE device 320a. In an example, the multicast anchor 310 joins or adds the BLE device to the multicast group including performing one or more actions or functions to associate the BLE device (e.g., the BLE device 320a) with the multicast group. Such actions may include sending a BLE device data packet with information defining the multicast group, such as an Internet Protocol (IP) address and / or a port number. The information may also include a connection multicast group key for decoding multicast data of the multicast group.

[0052] The multicast anchor point 310 may determine the multicast connection parameters based on the operating parameters of the multicast service and the multicast client capability requirements for the multicast service. For example, for the same multicast service, the multicast anchor point 310 may determine different multicast connection parameters for corresponding multicast groups of multicast clients with corresponding group capabilities. The multicast connection parameters configure the BLE device 320a to receive multicast data as a multicast client in the multicast group.

[0053] The unicast message 333 may include an identifier of the multicast service. For example, if the multicast service is associated with multiple multicast groups, the unicast message 333 may also include an identifier of the multicast group. In an example, the unicast message 333 is a packet including a PDU type field indicating a join response to add the BLE device 320a as a multicast client to the multicast group. The unicast message 333 may also include an access address field that matches the access address field in the unicast message 332.

[0054] The multicast anchor point 310 transmits the multicast data to the multicast group. The multicast anchor point 310 transmits the multicast data to the multicast group including one or more multicast clients in one or more multicast messages 334. Each multicast client in the multicast group can receive the multicast message 334 and decode the multicast data based on the connection multicast group key in the multicast connection parameters. In an example, if the multicast group includes at least one multicast client, the multicast anchor point 310 starts transmitting the multicast data in the one or more multicast messages 334.

[0055] To leave the multicast group, the BLE device 320a transmits a unicast message 335 requesting to leave the multicast group. For example, the BLE device 320a may request to leave the multicast group to stop receiving multicast data. The unicast message 335 may include a PDU type field that includes an indication to leave the multicast group. In response to receiving the request, the multicast anchor point 310 removes the BLE device from the multicast group and transmits a unicast message 336 confirming the request to leave the multicast group from the BLE device 320a. The unicast message 336 may include a PDU type field indicating a leave confirmation to the BLE device 320a. The unicast message 336 may also include an access address field that matches the access address field in the third unicast message. In an example, the multicast anchor point 310 removing the BLE device from the multicast group includes performing one or more actions or functions to disassociate the BLE device (e.g., the BLE device 320a) from the multicast group. Such actions may include updating information defining the multicast group (e.g., IP address, port number, connection multicast group key, etc.) by BLE clients remaining in the multicast group. The updated information prevents the departing BLE devices from receiving and decoding the multicast data of the multicast group.

[0056] In addition, the multicast anchor point 310 may execute a procedure in response to removing the BLE device 320a as a multicast client from the multicast group. The procedure may include at least changing the connection multicast group key or other multicast connection parameters and sharing the updated multicast connection parameters with the remaining multicast clients in the multicast group. The multicast anchor point 310 may then transmit the updated connection parameters in conjunction with the multicast data to the multicast group in the next multicast message. In other examples, the multicast anchor point 310 removes the BLE device 320a from the multicast group as a multicast client without transmitting a unicast message 336 confirming the request from the BLE device 320a to leave the multicast group.

[0057] like Figure 3, the BLE device 320b exchanges unicast messages 338 and 339 with the multicast anchor 310 to join the multicast group as a second multicast client and receive multicast data. For example, the unicast messages 338 and 339 are exchanged in response to the broadcast message 337 sent by the multicast anchor 310 that includes or indicates the capability advertisement of the multicast service. In another example, the unicast messages 338 and 339 are exchanged in response to the broadcast message 331. In response to receiving the broadcast message 337, the BLE device 320b transmits the unicast message 338 to the multicast anchor 310 to request to join the multicast group. The unicast message 338 may include a PDU type field indicating a join request to the multicast group. The unicast message 338 may also include an access address field that matches the access address field in the broadcast message 338. In response to receiving the request in the unicast message 338, the multicast anchor 310 joins the BLE device 320b to the group and transmits a unicast message 339 indicating the multicast connection parameters to the BLE device 320b. The unicast message 339 is or includes a join response to indicate that the BLE device 320b is added to the multicast group as a multicast client. The BLE device 320b may then receive and decode one or more multicast messages 334 sent after the BLE device 320b joins the group.

[0058] The BLE device 320b also exchanges unicast messages 340 and 341 with the multicast anchor point 310 to leave the multicast group. That is, the BLE device 320b transmits a unicast message 340 to request to leave the multicast group. The unicast message 340 may include a PDU type field, which includes an indication to leave the multicast group. In response to receiving the request, the multicast anchor point 310 removes the BLE device 320b from the multicast group and transmits a unicast message 341, which confirms the request from the BLE device 320b to leave the multicast group. The unicast message 341 may include a PDU type field indicating a leave confirmation to the BLE device 320b. The unicast message 341 may also include an access address field that matches the access address field in the unicast message 340.

[0059] The multicast anchor point 310 may check whether the multicast group does not contain a multicast client at certain time intervals, such as each time after receiving a request to leave the multicast group from a multicast client. If the multicast anchor point 310 determines that the multicast group does not contain a multicast client, the multicast anchor point 310 may stop transmitting multicast messages at 342. The multicast anchor point 310 may resume transmitting multicast messages after the BLE device joins the multicast group as a multicast client.

[0060] Figure 44 is a message sequence diagram 400 illustrating message exchanges between BLE devices for discovery and operation of multicast services in various examples. The multicast discovery exchange in the message sequence diagram 400 is based on broadcasting a multicast subscription request broadcast message by a BLE device. For example, the first BLE device 420a broadcasts a subscription request broadcast for a multicast service during a multicast service discovery exchange. The first BLE device 420a can be a central device or a peripheral device in a BLE network. The subscription request broadcast can be broadcast by sending a broadcast message 432 in the BLE network or to a BLE device within RF connection range. The broadcast message 432 may include an identifier of a multicast service requested by the BLE device. For example, the identifier of the multicast service is previously sent to the BLE device or stored on the BLE device. The broadcast message 432 may also indicate a set of multicast services supported by the first BLE 420a and / or the device capabilities of the first BLE device 420a.

[0061] In an example, the broadcast message 432 is a packet including a PDU type field indicating the broadcast of a multicast service. The first BLE device 420a may repeatedly send the broadcast message 432 at regular time intervals to allow multiple BLE devices to detect and receive the broadcast message 432. The BLE device may be configured to scan for broadcast messages from other BLE devices, for example, by listening to packets at regular time intervals. Regular time intervals, also referred to herein as time periods, may be separated by equal time delays. For example, the first BLE device 420a sends a broadcast message 432 every 300 microseconds. In other examples, the first BLE device 420a may send the broadcast message 432 within a shorter time period (e.g., within 150 microseconds). Other BLE devices may also be configured to detect and receive the subscription request broadcast in the broadcast message 432 within a matching time period.

[0062] In response to receiving the subscription request, the multicast anchor 410 transmits a unicast message 433 indicating the multicast connection parameters to the first BLE device 420a. The unicast message 433 is a join confirmation that accepts the addition of the first BLE device 420a as a multicast client to the multicast group. The multicast anchor 410 may determine to add the first BLE device 420a to the multicast group based on certain authority rules, such as the type, capabilities, or security restrictions of the first BLE device 420a. The multicast anchor 410 may also determine the multicast connection parameters based on the operating parameters of the multicast service and the multicast client capability requirements for the multicast service. The unicast message 433 may include an identifier of the multicast service. For example, if the multicast service is associated with multiple multicast groups, the unicast message 433 may also include an identifier of the multicast group. In an example, the unicast message 433 is a packet including a PDU type field, and the PDU type field indicates a join confirmation that the first BLE device 420a is added to the multicast group as a multicast client.

[0063] After receiving the broadcast message 432 or sending the unicast message 433, the multicast anchor point 410 may transmit the multicast data to the multicast group. The multicast anchor point 410 transmits the multicast data to the multicast group including one or more multicast clients in one or more multicast messages 434 (e.g., packets). Each multicast client in the multicast group may receive the multicast message 434 and decode the multicast data based on the connection multicast group key in the multicast connection parameters. In an example, if the multicast group includes at least one multicast client, the multicast anchor point 410 begins transmitting the multicast data in the one or more multicast messages 434.

[0064] To leave the multicast group, the first BLE device 420a transmits a unicast message 435 to request to leave the multicast group and stop receiving multicast data. The unicast message 435 may include a PDU type field, which includes an indication of leaving the multicast group. In response to receiving the request, the multicast anchor 410 transmits a unicast message 436, which confirms the request to leave the multicast group from the first BLE device 420a. The unicast message 436 may include a PDU type field indicating a leave confirmation to the first BLE device 420a. The unicast message 436 may also include an access address field that matches the access address field in the unicast message 435. The multicast anchor 410 may also perform a procedure to remove the first BLE device 420a from the multicast group as a multicast client. For example, the multicast anchor 410 may at least change the connection multicast group key or other multicast connection parameters, and share the updated multicast connection parameters with the remaining multicast clients in the multicast group. In other examples, the multicast anchor point 410 removes the first BLE device 420a from the multicast group as a multicast client without transmitting a unicast message 436 confirming the request from the first BLE device 420a to leave the multicast group.

[0065] like Figure 4 , the BLE device 420b broadcasts a subscription request advertisement for a multicast service during a multicast service discovery exchange. The subscription request advertisement may be broadcast by sending a broadcast message 438 in the BLE network or to BLE devices within RF connection range. The broadcast message 438 may include an identifier for the multicast service. The broadcast message 438 may also indicate a set of multicast services supported by the BLE 420b and / or the device capabilities of the first BLE device 420b.

[0066] In response to receiving the subscription request, the multicast anchor 410 transmits a unicast message 439 indicating the multicast connection parameters to the BLE device 420b. The unicast message 439 is also a join confirmation that accepts the addition of the BLE device 420b as a multicast client to the multicast group. The unicast message 439 may include an identifier of the multicast service. For example, if the multicast service is associated with multiple multicast groups, the unicast message 439 may also include an identifier of the multicast group. In an example, the unicast message 439 is a packet including a PDU type field, which indicates a join confirmation that the BLE device 420b is added to the multicast group as a multicast client. The BLE device 420b may then receive and decode one or more multicast messages 434 sent after the BLE device 420b joins the group.

[0067] The BLE device 420b also exchanges unicast messages 440 and 441 with the multicast anchor point 310 to leave the multicast group. That is, the BLE device 420b transmits a unicast message 440 to request to leave the multicast group. The unicast message 440 may include a PDU type field, which includes an indication of leaving the multicast group. In response to receiving the request, the multicast anchor point 310 removes the BLE device 420b from the multicast group and transmits a unicast message 441, which confirms the request from the BLE device 420b to leave the multicast group. The unicast message 441 may include a PDU type field indicating a leave confirmation to the BLE device 420b. The unicast message 441 may also include an access address field that matches the access address field in the unicast message 440. The multicast anchor point 410 may check at certain time intervals whether the multicast group does not contain a multicast client, and stop transmitting multicast messages at 442 accordingly.

[0068] Figure 5 is used in various instances to establish a Figure 3 1 and 12. The timing diagram of the message exchange 500 for a multicast service of a multicast client such as the BLE devices 320a and 320b in FIG. The message exchange 500 for establishing a multicast service is based on the multicast anchor point (e.g., Figure 3 The multicast anchor 310 of the timeline 510 broadcasts the multicast capability broadcast message. The messages above the timeline 510 indicate the messages transmitted by the multicast anchor. The messages below the timeline 510 indicate the messages from the multicast client or the BLE device trying to join the multicast group as a multicast client.

[0069] As shown, the multicast anchor broadcasts multiple capability broadcast messages 531 over a time period sequence. The capability broadcast message 531 identifies a multicast service. The capability broadcast message 531 may also include an identifier of the broadcast multicast group for the multicast service. If the multicast anchor receives a join request message 532 from a BLE device, the multicast anchor transmits a join response message 533 to the BLE device. The join request message 532 and the join response message 533 are unicast messages. The join request message 532 is a request for the BLE device to subscribe to the multicast service. The join response message 533 indicates that the BLE device is added or joined to the multicast group as a multicast client for receiving multicast data of the multicast service. The join response message 533 may include an identifier of the multicast group. The multicast anchor may establish a multicast service with at least one multicast client in the multicast group. The multicast anchor may also continue to broadcast the capability broadcast message 531 in subsequent time periods to continue broadcasting the multicast service to other BLE devices. After establishing the multicast service, the multicast anchor point may transmit the multicast data to the multicast group in a multicast message on the same channel as the capability advertisement message 531 .

[0070] Figure 6 6 is a timing diagram of message exchanges 600 for establishing a multicast service for a multicast client in various examples. The message exchanges 600 for establishing a multicast service are based on a BLE device (e.g., Figure 3 The BLE device 320a) broadcasts a multicast subscription request broadcast message. The messages below the timeline 610 indicate messages transmitted by the BLE device attempting to join the multicast group as a multicast client. The messages above the timeline 610 indicate messages from the multicast anchor point. The BLE device broadcasts multiple subscription request broadcast messages 631 in a time period sequence. The subscription request broadcast message 631 indicates a multicast service supported by the BLE device or a set of supported multicast services. The subscription request broadcast message 631 may also include the device capabilities of the BLE device.

[0071] If the multicast anchor receives a subscription request broadcast message 631 from the BLE device, the multicast anchor transmits a join response message 632 to the BLE device. The join response message 632 is a unicast message that indicates that the BLE device is added or joined to the multicast group as a multicast client for receiving multicast data of the multicast service. The join response message 632 may also include an identifier of the multicast group. The multicast anchor may establish a multicast service with at least one multicast client in the multicast group. After establishing the multicast service, the multicast anchor may transmit the multicast data to the multicast group in a multicast message, for example, on the same channel as the subscription request broadcast message 631. The BLE device may continue to broadcast the subscription request broadcast message 631 in subsequent time periods to continue broadcasting the supported multicast services.

[0072] In other examples, a multicast anchor point may broadcast one or more capability advertisement messages on a different channel as well as transmit the multicast message. Figure 7 7 is a timing diagram of a message exchange 700 for establishing a multicast service on an auxiliary channel in various examples. The message exchange 700 for establishing a multicast service is based on broadcasting messages by a multicast anchor broadcasting multicast capabilities on a timeline 710. Messages above the timeline 710 indicate messages transmitted by a multicast anchor. Messages below the timeline 710 indicate messages from a multicast client or a BLE device attempting to join a multicast group as a multicast client.

[0073] In order to establish a multicast service, the multicast anchor broadcasts a capability broadcast message 731a on the main channel in the BLE network in a first time period sequence. The multicast anchor may also broadcast a capability broadcast message 731b on the auxiliary channel in the BLE network in a second time period sequence. The first time period and the second time period may have different durations and may be separated by different corresponding time delays. The capability broadcast message 731a on the main channel may include parameters connected to the auxiliary channel. For example, the capability broadcast message 731a may include an identifier of the auxiliary channel of the capability broadcast message 731b. The capability broadcast message 731b may include multicast connection parameters for receiving multicast data or multicast messages on the auxiliary channel. For example, the capability broadcast message 731b may include timing information for a multicast connection event on the auxiliary channel. The capability broadcast message 731b may also include an identifier of the broadcast multicast group for the multicast service, and may indicate the multicast group capability.

[0074] The BLE devices in the BLE network are configured to listen to the capability broadcast message 731a on the primary channel. Therefore, if the BLE device receives the capability broadcast message 731a on the primary channel, the BLE device can switch to the secondary channel to receive the capability broadcast message 731b including the multicast connection parameters. In other examples, the BLE devices in the BLE network are configured to listen to the capability broadcast message 731a on the primary channel and the capability broadcast message 731b on the secondary channel.

[0075] If the multicast anchor receives a join request message 732 from the BLE device, the multicast anchor transmits a join response message 733 to the BLE device. The join request message 732 and the join response message 733 are unicast messages. The join response message 733 may include an identifier of the multicast group. The multicast anchor may receive the join request message 732 and transmit the join response message 733 on an auxiliary channel or a primary channel. The multicast anchor may then establish a multicast service with at least one multicast client in the multicast group. After establishing the multicast service, the multicast anchor may transmit the multicast data to the multicast group in a multicast message on the auxiliary channel. Transmitting multicast messages on the auxiliary channel may increase the bandwidth in the BLE network to transmit more multicast data for the multicast service.

[0076] In other examples, the BLE device may broadcast a subscription request advertisement to receive multicast messages on a different channel. Figure 8 8 is a timing diagram of a message exchange 800 for requesting a multicast service on an auxiliary channel in various examples. The message exchange 800 for establishing a multicast service is based on broadcasting a multicast subscription request broadcast message by a BLE device on a timeline 810. Messages below the timeline 810 indicate messages transmitted by a BLE device attempting to join a multicast group as a multicast client. Messages above the timeline 810 indicate messages from a multicast anchor point.

[0077] In order to request a multicast service, the BLE device broadcasts a subscription request broadcast message 831a in a first time period sequence on a primary channel in the BLE network. The BLE device may also broadcast a subscription request broadcast message 831b in a second time period sequence on an auxiliary channel in the BLE network. The first time period and the second time period may have different durations and may be separated by different corresponding time delays. The subscription request broadcast message 831a on the primary channel may include parameters connected to the auxiliary channel. For example, the subscription request broadcast message 831a may include an identifier of the auxiliary channel of the subscription request broadcast message 831b. The subscription request broadcast message 831b may indicate a multicast service supported by the BLE device or a set of supported multicast services. The subscription request broadcast message 831b may also include the device capabilities of the BLE device. If the multicast anchor receives the subscription request broadcast message 831a on the primary channel, the multicast anchor may switch to the auxiliary channel to receive the subscription request broadcast message 831b. In an example, the multicast anchor point is configured to listen to the subscription request broadcast message 831a on the primary channel and the subscription request broadcast message 831b on the secondary channel.

[0078] If the multicast anchor receives the subscription request broadcast message 831b, the multicast anchor transmits a join response message 832 to the BLE device. The join response message 832 is a unicast message. The join response message 832 may include an identifier of the multicast group. The multicast anchor may transmit the join response message 832 on an auxiliary channel or a primary channel. The multicast anchor may establish a multicast service with at least one multicast client in the multicast group. After establishing the multicast service, the multicast anchor may transmit the multicast data to the multicast group in a multicast message on the auxiliary channel. Transmitting the multicast message on the auxiliary channel may increase the bandwidth in the BLE network to transmit more multicast data for the multicast service.

[0079] To start transmitting multicast messages to the multicast group, the multicast anchor establishes a multicast connection event based on the multicast connection parameters. A multicast connection event is a time interval for transmitting multicast messages (e.g., packets), which can be separated by equal time delays. For example, the multicast anchor can receive messages or packets from other BLE devices within equal time delays. The multicast anchor 310 or 410 can transmit one or more multicast messages in each multicast connection event. The multicast anchor 310 or 410 can also set the maximum number of multicast messages or packets for each multicast connection event. The number of multicast messages determines the duration of the multicast connection event.

[0080] Fig. 9 9 is a message timing diagram of various examples of a multicast connection event 900 including multicast messages 901a-901d shown along a timeline 910. The multicast anchor transmits the multicast messages 901a-901d in the multicast connection event 900 to the multicast group. The number of multicast messages 901a-901d determines the duration 912 of the multicast connection event 900. The multicast messages 901a-901d may be separated by equal time delays 915. In an example, the time delay 915 between the multicast messages 901a-901d is approximately equal to 150 microseconds. For example, the multicast anchor transmits the multicast messages 901a-901d separated by time periods within 150 microseconds within the multicast connection event on the same channel.

[0081] Fig.10 1 is a message timing diagram of a multicast connection event 1000 with different durations to a multicast group in various examples. The multicast connection event 1000 includes a multicast connection event 1001 and a multicast connection event 1002. The multicast anchor transmits multicast messages 1011a-1011d shown along a time axis 1010 to the multicast group in the multicast connection event 1001. The multicast anchor may retransmit multicast messages 1011a-1011c to the multicast group in the multicast connection event 1002. The time delay between multicast messages is not Fig.10 Because the multicast connection event 1001 includes more multicast messages than the multicast connection event 1002 , the first duration 1031 of the multicast connection event 1001 may be longer than the second duration 1032 of the multicast connection event 1002 .

[0082] Fig.111 is a message timing diagram of a multicast connection event 1100 to multiple multicast groups in various examples. The multicast connection event 1100 includes a multicast connection event 1101 and a multicast connection event 1102. The multicast anchor transmits multicast messages 1111-1114 shown along a timeline 1110 to multiple multicast groups in the multicast connection event 1101. For example, the multicast anchor transmits multicast messages 1111 and 1113 to multicast group 1121, transmits multicast message 1112 to multicast group 1122, and transmits multicast message 1114 to multicast group 1123 in the multicast connection event 1101. The multicast anchor may retransmit multicast messages 1111-1113 to different multicast groups in the multicast connection event 1102. For example, the multicast anchor transmits multicast message 1111 to multicast group 1123, transmits multicast message 1112 to multicast group 1121, and transmits multicast message 1113 to multicast group 1122 in multicast connection event 1102. Because multicast connection event 1101 includes more multicast messages than multicast connection event 802, duration 1131 of multicast connection event 1101 may be longer than duration 1132 of multicast connection event 1102.

[0083] Fig.12 12 is a timing diagram of a message exchange 1200 for terminating a multicast service in various examples. The multicast anchor may broadcast a broadcast message 1212 shown along a timeline 1210 to surrounding BLE devices in a sequence of time periods. Messages above the timeline 1210 indicate messages transmitted by the multicast anchor. Messages below the timeline 1210 indicate messages from a multicast client or a BLE device attempting to leave the multicast group. The multicast anchor may, for example, receive a leave indication message 1215 from the multicast client between broadcasts of the broadcast message 1212. For example, if the multicast service is associated with multiple multicast groups, the leave indication message 1215 may identify the multicast service or the multicast group. Therefore, the multicast anchor removes the multicast client from the multicast group and transmits a leave confirmation message 1225 to the multicast client. The leave indication message 1215 and the leave confirmation message 1225 are unicast messages.

[0084] In other examples, the multicast anchor point may remove a multicast client from the multicast group without transmitting a leave confirmation message to the removed multicast client. Fig.13 13 is a timing diagram of a message exchange 1300 for terminating a multicast service without confirmation in various examples. In this example, the multicast anchor point may receive a leave indication message 1315 from a multicast client 1320, for example, between broadcasts of a broadcast message 1325 shown along timeline 1310. In response, the multicast anchor point removes the multicast client from the multicast group and continues broadcasts of the broadcast message 1325 without transmitting a leave confirmation message to the multicast client.

[0085] Fig.14 14 is a flow chart of a method 1400 for discovery and operation of multicast services by a multicast anchor in various examples. The multicast discovery exchange in the method 1400 is based on broadcasting a multicast capability broadcast message by the multicast anchor. For example, the multicast anchor 310 may perform the method 1400 according to the message sequence chart 300 for discovery and operation of multicast services.

[0086] At box 1410, the multicast anchor broadcasts a first message of a multicast service, for example, in a BLE network or to any surrounding device (e.g., a BLE device). The first message is a multicast capability broadcast message indicating a set of supported multicast services. At box 1420, the multicast anchor receives a second message from the device requesting to join the multicast group of the multicast client to subscribe to the multicast service. The multicast group receives a multicast message of the multicast service. The second message is a unicast message from the device to the multicast anchor. At box 1430, the multicast anchor transmits a third message indicating a multicast connection parameter for receiving a multicast message of the multicast service to the device in response to the second message. The third message is a unicast message from the multicast anchor to the device. At box 1440, the multicast anchor transmits one or more multicast messages to the device as a multicast client of the multicast group according to the multicast connection parameters.

[0087] Fig.15 1 is a flow chart of a method 1500 for discovery and operation of a multicast service by a multicast anchor in various examples. The multicast discovery exchange in the method 1500 is based on receiving a multicast subscription request broadcast message broadcast from a BLE device. For example, the multicast anchor 410 can perform the method 1500 according to the message sequence chart 400 for discovery and operation of a multicast service.

[0088] At box 1510, the multicast anchor receives a first message from a device requesting to subscribe to a multicast service. The first message is a subscription request broadcast message indicating a set of multicast services supported by the device. The first message is a broadcast message sent from the device to surrounding devices or sent in a BLE network. At box 1520, the multicast anchor transmits a second message indicating multicast connection parameters for receiving multicast messages for the multicast service to the device in response to the first message. The second message is a unicast message from the multicast anchor to the device. At box 1530, the multicast anchor transmits one or more multicast messages to the device as a multicast client of the multicast group according to the multicast connection parameters.

[0089] Fig.161 is a flow chart of a method 1600 for discovery and operation of a multicast service by a device (e.g., a BLE device) as a multicast client in various examples. The multicast discovery exchange in the method 1600 is based on receiving a multicast capability broadcast message broadcast from a multicast anchor point. For example, the BLE device 320a or the BLE device 320b may perform the method 1600 according to the message sequence chart 300 for discovery and operation of a multicast service.

[0090] At box 1610, the device receives a first message broadcasting a multicast service from a multicast anchor point, for example in a BLE network. The first message is a broadcast message from the multicast anchor point to any surrounding device (e.g., a BLE device). The broadcast message is a multicast capability broadcast message indicating a set of supported multicast services. At box 1620, the device transmits a second message to the multicast anchor point requesting to join the multicast group of the multicast client to subscribe to the multicast service. The multicast group receives a multicast message of the multicast service. The second message is a unicast message from the device to the multicast anchor point. At box 1630, the device receives a third message indicating a multicast connection parameter for receiving a multicast message of the multicast service from the multicast anchor point in response to the second message. The third message is a unicast message from the multicast anchor point to the device. At box 1640, the device receives one or more multicast messages from the multicast anchor point according to the multicast connection parameters as a multicast client of the multicast group.

[0091] Fig.17 1 is a flow chart of a method 1700 for discovery and operation of a multicast service by a device (e.g., a BLE device) as a multicast client in various examples. The multicast discovery exchange in the method 1700 is based on broadcasting a multicast subscription request broadcast message by the BLE device. For example, the first BLE device 420a or the second BLE device 420b can perform the method 1700 according to the message sequence diagram 400 for discovery and operation of a multicast service.

[0092] At block 1710, the device broadcasts a first message requesting a subscription to a multicast service. The first message is a subscription request broadcast message indicating a set of multicast services supported by the device. At block 1720, the device receives a second message indicating a multicast connection parameter for receiving a multicast message for the multicast service from a multicast anchor point in response to the first message. The second message is a unicast message from the multicast anchor point to the device. At block 1730, the device receives one or more multicast messages from the multicast anchor point as a multicast client for the multicast group according to the multicast connection parameter.

[0093] Fig.181800 is a block diagram of a processing and communication system suitable for processing and exchanging data, such as messages in device 1800 in various instances. Device 1800 can be a BLE device capable of establishing a connection for transmitting and receiving messages or packets based on the BLE communication standard. For example, device 1800 can be a central device, such as a router, a computer device, or a smart phone. In other instances, device 1800 can be a peripheral device, such as an Internet of Things (IoT) device, a sensor, a wearable device, a medical device, a motor vehicle device, or other BLE device capable of establishing a wireless connection with a second BLE device or a network such as the Internet. In some instances, device 1800 can be a system on a chip (SoC), an electronic circuit board, or a computer card of a BLE device.

[0094] The device 1800 includes hardware components for establishing a connection and transmitting and receiving data based on the BLE communication standard. Fig.18 As shown in FIG. 1 , device 1800 may include one or more processors 1801 and one or more memories 1802. Device 1800 may also include one or more transceivers 1803 and one or more antennas 1804 for establishing wireless connections. These components may be coupled via a bus 1805 or in any other suitable manner. Fig.18 , an example in which components are coupled via bus 1805 is shown.

[0095] The processor 1801 is configured to read and execute computer-readable instructions. For example, the processor 1801 is configured to call and execute instructions in a program stored in the memory 1802, including instructions 1806. In response to the processor 1801 transmitting data, the processor 1801 drives or controls the transceiver 1803 to perform transmission. The processor 1801 also drives or controls the transceiver 1803 to perform reception in response to the processor 1801 receiving data. Therefore, the processor 1801 can be regarded as a control center for performing transmission or reception of data, and the transceiver 1803 is an executor for performing transmission and reception operations.

[0096] In some examples, memory 1802 is coupled to processor 1801 via bus 1805. In other examples, memory 1802 is integrated with processor 1801. Memory 1802 is configured to store various software programs and / or multiple sets of instructions, including instructions 1806. Memory 1802 may include one or more storage devices. For example, memory 1802 includes high-speed random access memory and / or may include non-volatile memory, such as one or more disk storage devices, flash memory, another non-volatile solid-state storage device or pseudo-static random access memory (PSRAM). Memory 1802 may store OS such as ANDROID, IOS, WINDOWS or LINUX. Memory 1802 may also store network communication programs. The network communication program is suitable for performing communication with one or more attached devices, one or more user devices or one or more network devices. Memory 1802 may also store user interface programs. The user interface program displays the content of the application program through a graphical interface. The user interface may receive data or operations performed by a user on an application program via input controls such as menus, dialog boxes, or physical input devices (not shown).Memory 1802 is configured to store instructions 1806 for implementing the various methods and processes provided in the various examples of this specification.

[0097] In an example, the methods and processes may be implemented by hardware integrated circuits or one or more processors 1801 in the device 1800, or by instructions 1806, for example, in the form of software. For example, the memory 1802 may be a computer-readable storage medium configured to store the instructions 1806 as computer program instructions that can be executed by the one or more processors 1801. When the computer program instructions are executed by the processor 1801, the device 1800 is triggered to perform the methods, processes, or steps provided in various examples of the present specification.

[0098] The transceiver 1803 includes a transmitter and a receiver. The transceiver 1803 is configured to transmit one or more signals provided by the processor 1801. The transceiver 1803 is also configured to receive one or more signals from other devices or equipment. In this example, the transceiver 1803 can be regarded as a wireless transceiver. The antenna 1804 can be configured to enable the exchange of wireless communication signals between the transceiver 1803 and a network or another system or device.

[0099] The device 1800 may also include another communication component, such as a global positioning system (GPS) module, a cellular module, a Bluetooth or BLE module, a Zigbee module, a long-term evolution (LTE), a LTE-machine type communication (LTE-M), a narrowband LTE (NB-LTE), a sub-gigahertz communication (sub1G), IEEE 802.15.4, a wireless sensor network (WSN), a WBMS, or a wireless fidelity (WI-FI) module. The device 1800 may also support another wireless communication signal, such as a satellite signal or a shortwave signal. The device 1800 may also be provided with a wired network interface or a local area network (LAN) interface to support wired communication.

[0100] In various examples, the device 1800 may also include an input / output interface (not shown) for enabling communication between the device 1800 and one or more input / output devices (not shown). Examples of input / output devices include audio input / output devices, key input devices, displays, etc. The input / output devices are configured to implement interaction between the device 1800 and a user or an external environment. The input / output devices may also include cameras, touch screens, sensors, etc. The input / output devices communicate with the processor 1801 through a user interface.

[0101] Fig.18 The device 1800 shown in FIG. 1 is an example of a processing and communication system or device. During actual application, the device 1800 may include more or fewer components. The device 1800 may be part of a BLE device connected to other BLE devices.

[0102] Fig.19 1 is a diagram of a BLE device architecture 1900 suitable for establishing a BLE link in various examples. The device BLE device architecture 1900 provides a BLE device capable of establishing a link with another BLE device via a device BLE PHY interface. For example, the link may be between a central device and a peripheral device. A multicast anchor may exchange unicast messages with the BLE device over the established link.

[0103] The BLE device architecture 1900 includes data processing blocks that are configured to process data and signals at different communication layers of the BLE protocol according to the BLE communication standard. Data is processed and managed at different communication layers in the order in which the data processing blocks in the BLE device architecture 1900 are arranged. The data processing blocks may be implemented via software, hardware (e.g., circuits), or both. The data processing blocks may include Fig.191901, a host layer manager (Host) 1902, an HCI 1903, a BLE LL controller 1904, and one or more transceivers 1905 are coupled to each other in the order shown in FIG. The transceivers 1905 include a corresponding BLE PHY interface to the BLE LL controller 1904. Each transceiver 1905 includes a BLE PHY controller 1906, a radio frequency front end (RF FE) 1907, and an RF antenna 1908. The transceivers 1905 are configured to establish a corresponding link, transmit or receive data on the corresponding link, and manage data at the signaling and RF levels.

[0104] APP 1901 interacts with BLE applications and profiles and manages data accordingly. APP 1901 processes the data of the application at the application level according to the application profile. For example, the BLE application and profile are IoT applications and profiles. Host 1902 interfaces with APP 1901 and manages host device functions, such as BLE device discovery, connection-related services, secure boot, device pairing, secure key exchange, data encapsulation, data attributes or other application interface features. HCI 1903 provides communication between host 1902 and BLE LL controller 1904 via a suitable communication interface type (e.g., application programming interface (API), universal asynchronous receiver / transmitter (UART), serial peripheral interface (SPI) or universal serial bus (USB)).

[0105] The BLE LL controller 1904 maintains the link of the BLE cluster architecture 1900 with one or more connected BLE devices to process data associated with the link at the LL. The BLE LL controller 1904 also coordinates connection events on the link. This may include scheduling and / or exchanging coordination parameters with other BLE devices. The coordination parameters may include the frequency, anchor point, and duration of each connection event of the link. The BLE LL controller 1904 also synchronizes packet transmissions in connection events. This may include determining and / or exchanging synchronization parameters with other BLE devices. The synchronization parameters may include the direction (e.g., uplink or downlink), rate, power, and duration of packet transmissions on the link. The BLE LL controller 1904 may handle the broadcasting, scanning, and creation or maintenance of connections for the corresponding links. For example, the connection may be processed according to the transmission mode (e.g., unicast or broadcast) or according to the role of the BLE device (e.g., central or peripheral device, broadcaster or scanner, broadcaster or observer). Examples of LL states include scanning, broadcasting, startup, connection, synchronization, and standby states.

[0106] The transceiver 1905 provides a BLE PHY interface to the BLE LL controller 1904. In each transceiver 1905 that establishes a corresponding link, the BLE PHY controller 1906 manages the data exchange in the form of messages or packets on the link and interfaces with the BLE LL controller 1904. The BLE PHY controller 1906 processes the data at the PHY layer, including modulating the data for transmission at a certain data rate and a certain frequency according to a modulation scheme. The BLE PHY controller 1906 also synchronizes the packet transmission in the connection event on the link. Synchronization includes configuring the direction (e.g., uplink or downlink), rate, power, and duration of the packet transmission in the coordinated connection event on the link according to the packet synchronization parameters. The RF FE 1907 manages the transmission and reflection of data via the RF antenna 1908. Data signals can be transmitted or received at different channels.

[0107] The term "coupled" appears throughout this specification. The term may encompass connections, communications, or signal paths that achieve a functional relationship consistent with this specification. For example, if device A provides a signal to control device B to perform an action, then in a first instance, device A is coupled to device B, or in a second instance, device A is coupled to device B through an intermediate component C, provided that the intermediate component C does not substantially change the functional relationship between device A and device B, such that device B is controlled by device A via the control signal provided by device A.

[0108] A device "configured to" perform a task or function may be configured (e.g., programmed and / or hardwired) to perform the function when manufactured by a manufacturer, and / or may be configured (or reconfigurable) by a user after manufacture to perform the function and / or other additional or alternative functions. The configuration may be performed through firmware and / or software programming of the device, through the construction and / or layout of hardware components and interconnection of the device, or a combination thereof.

[0109] An architecture or device described herein as comprising certain components may instead be coupled to those components to form the described architecture or device. Unless otherwise stated, "about," "approximately," or "substantially" preceding a value means + / - 10% of the stated value.

[0110] Modifications may be made in the described examples and other examples may be made within the scope of the claims.

Claims

1. A method wherein include: The multicast anchor point broadcasts a first message, wherein the first message broadcasts a multicast service of the multicast group; receiving, by the multicast anchor point, a unicast message indicating a request to add a Bluetooth Low Energy (BLE) device to the multicast group; The multicast anchor point adds the BLE device to the multicast group as a multicast client; as well as One or more multicast messages for the multicast group are transmitted by the multicast anchor point.

2. The method of claim 1, further comprising transmitting, by the multicast anchor point in response to the unicast message, a second unicast message indicating multicast connection parameters for receiving the one or more multicast messages for the multicast group. The method of claim 2 , wherein the one or more multicast messages are transmitted according to the multicast connection parameters.

4. The method of claim 1, further comprising transmitting the multicast message on the same channel within multicast connection events separated by time periods within 150 microseconds.

5. The method of claim 1, further comprising repeating the broadcast of the first message with a 300 microsecond delay during switching broadcast of the first message from a primary channel to a secondary channel.

6. The method of claim 1, wherein the first message advertising the multicast service further indicates multicast group capabilities associated with the multicast group.

7. The method of claim 6, further comprising determining, by the multicast anchor point, multicast connection parameters for receiving the one or more multicast messages of the multicast group based on the multicast group capabilities.

8. The method according to claim 1, further comprising: include: broadcasting the first message of the multicast service on a primary channel, wherein the first message indicates a secondary channel for receiving the multicast message; as well as A third message broadcasting the multicast service on a secondary channel is broadcasted by the multicast anchor point, wherein the third message includes multicast connection parameters for receiving the one or more multicast messages of the multicast group on the secondary channel.

9. The method of claim 8, wherein the unicast message is received on the secondary channel.

10. The method of claim 8, wherein the multicast connection parameters include timing information for receiving the multicast message on the secondary channel.

11. The method according to claim 1, further comprising: include: receiving, by the multicast anchor point, a second unicast message indicating a request to leave the multicast group; as well as When the multicast group does not contain any multicast client, the transmission of the multicast message is terminated.

12. The method of claim 11, further comprising transmitting, by the multicast anchor point in response to the second unicast message, a third unicast message confirming the request to leave the multicast group.

13. A method, wherein include: A broadcast message for advertising a multicast service is received by a Bluetooth Low Energy (BLE) device; In response to the broadcast message, transmitting a unicast message requesting to join the multicast group from the BLE device to a multicast anchor point; as well as One or more multicast messages for the multicast group are received. 14 . The method of claim 13 , further comprising receiving, by the BLE device, a third unicast message indicating a multicast connection parameter for receiving the multicast message for the multicast group.

15. The method of claim 14, decoding the one or more multicast messages based on a connection multicast group key in the multicast connection parameters.

16. A device, wherein include: a memory configured to store instructions; as well as a processor coupled to the memory, wherein the instructions cause the processor to be configured to: Broadcasting a first message requesting subscription to a multicast service via a Bluetooth Low Energy (BLE) network; receiving a unicast message indicating multicast connection parameters for receiving multicast messages for the multicast service; as well as The multicast message is received according to the multicast connection parameters.

17. The device of claim 16, wherein the instructions cause the processor to be configured to: broadcasting the first message on a primary channel; and The multicast message is received on the auxiliary channel according to the multicast connection parameters.

18. The apparatus of claim 16, wherein the multicast connection parameters include one or a combination of a multicast connection interval, a connection channel set, a connection anchor point, or a connection multicast group key.

19. A device, wherein include: a memory configured to store instructions; as well as a processor coupled to the memory, wherein the instructions cause the device to be configured to: receiving a broadcast message requesting a Bluetooth Low Energy (BLE) device to subscribe to a multicast service; In response to the broadcast message, transmitting a unicast message indicating a multicast connection parameter for receiving multicast messages for the multicast service; as well as The multicast message is transmitted according to the multicast connection parameters.

20. The apparatus of claim 19, wherein the multicast connection parameters include a connection multicast group key to decode the multicast message.