Channel control for communication using dynamic spectrum access

The disclosure described herein configures a base station and client devices for communication using dynamic spectrum access within a frequency spectrum that includes selecting, from a list of available channels, a set of channels as active channels. The active channels include uplink channels and downlink channels, and the active channels are distributed among a plurality of base station radios of a base station. A different channel is assigned to different base station radios. At least one uplink channel and at least one downlink channel are assigned to a plurality of client devices based on locations the client devices, wherein at least some client devices have active channels in common. The client devices having the active channels in common are also grouped on shared channels and time slots assigned to the client devices in the group, thereby allowing narrowband communication over the channels by the client devices.

CROSS-REFERENCE TO RELATED APPLICATION

This nonprovisional application claims priority to Indian Patent Application No. 202041020659 entitled “Channel Control For Communication Using Dynamic Spectrum Access”, filed May 15, 2020, the entire disclosure of which is incorporated by reference herein.

BACKGROUND

Television (TV) white space (TVWS) is the unused or inactive part of the TV spectrum. TVWS covers a wide spectrum of frequencies in the ultra high frequency (UHF) and very high frequency (VHF) frequency bands. In particular, TVWS corresponds to the unused TV channels between active channels in the UHF and VHF spectrums.

TV channel availability can vary across both space and time. As a result, transceivers communicating using the TVWS spectrum may have to hop between different frequencies. Moreover, the TVWS spectrum is not continuous and single channel capacity using TVWS may not be enough to allow for satisfactory communication between some types of devices, such as Internet of Things (IoT) devices. Additionally, TVWS is sensitive to interference when the signal is low, resulting in use of the TVWS mostly for broadband communication today.

SUMMARY

A computerized method for communication using dynamic spectrum access comprises selecting from a list of available dynamic spectrum access channels, a set of channels as active channels, the active channels comprising uplink channels and downlink channels, and distributing the active channels among a plurality of base station radios of a base station. A different channel is assigned to different base station radios of the plurality of base station radios. The computerized method further comprises assigning at least one uplink channel and at least one downlink channel to a plurality of client devices based on locations of the plurality of client devices, wherein at least some client devices of the plurality of client devices have active channels in common. The computerized method also includes grouping at least some of the client devices having the active channels in common on shared channels that include the active channels and at least one backup channel and assigning time slots to the client devices in the group to allow communication between the client devices by scheduling the communication using the shared channels to allow channel hopping between the active channels and the at least one backup channel.

Corresponding reference characters indicate corresponding parts throughout the drawings. In the figures, the systems are illustrated as schematic drawings. The drawings may not be to scale.

DETAILED DESCRIPTION

The computing devices and methods described herein are configured to communicate using dynamic spectrum access, which in various examples, includes using the television (TV) white space (TVWS) spectrum. With the disclosure, communication between endpoint devices (e.g., clients) and a corresponding base station for use in an edge Internet of Things (IoT) environment makes use of a dynamic spectrum, such as the TVWS spectrum, without having the limitations typically introduced when communicating using the TVWS, in various examples. However, the present disclosure in not limited to use of the TVWS, but can be implemented in other dynamic spectrum access applications, such as the citizens broadband radio service (CBRS), among others. Additionally, the present disclosure can be implemented with other spectrums, as well as with different types of networks, such as ‘mesh’ networks (e.g., where networks can self-form and self-heal, with nodes connecting directly to other nodes).

Various techniques employed on an IoT device are designed to make use of the TVWS spectrum to perform computing activities, and to handle spatial variation and temporal variation. For example, the TVWS spectrum can exhibit spatial variation since a channel available at one node may be occupied by a primary user (e.g., TV, wireless microphone, etc.) at another node. The TVWS spectrum is also not contiguous. Some channels may be occupied by primary users, thus causing the spectrum to be fragmented. Additionally, temporal variation is possible since an available spectrum may be occupied at a later time by a primary user and vice versa. On the other hand, the number of available channels in the TVWS spectrum is significantly higher compared to the industrial, scientific, and medical (ISM) band. Hence, the TVWS spectrum allows comparatively higher bandwidth for data transmission.

In some examples, to enable an IoT network over TVWS, and with respect to the spatial variation, the present disclosure uses the known location of each client device (e.g., each client IoT device includes a global positioning system (GPS) module or processor and sends geographic location information to the gateway) and accesses a TVWS database (available to the gateway) to query for the available channels based on the location. In another example, the base station divides an entire communication area into a grid and includes the channels available in each grid within a beacon signal. As such, the client knows the grid the client is in, and selects the corresponding channel for operations. And, with respect to temporal variation, intelligent hopping is used across the available channels. For example, the base station hops across the available channels, and if the client device loses connectivity, the client device attempts transmission in the next channel. As a result, devices that otherwise cannot be satisfactorily used for such environments (e.g., IoT devices) are configured to use the TVWS spectrum for longer range, higher capacity, lower power consumption communications (e.g., communication in remote locations). For example, with the present disclosure, long range communication for IoT networks is enabled.

For example, with the present disclosure, IoT devices are able to operate at the lower frequencies in the TVWS (within the ultra-high frequency (UHF) and very high frequency (VHF) bands) and for longer range communications (e.g., tens of miles), while providing large amounts of bandwidth, which can be 6 megahertz (MHz) per TV channel in some configurations. As such, a single TVWS base station can support large-scale IoT at very long-range when configured according to the present disclosure.

FIG.1illustrates a system100in accordance with one example. The system100allows a plurality of client devices102, such as IoT devices, to communicate with a cloud-based device104through a gateway106. For example, the client devices102can be co-located (at least part of the time) and are configured to communicate locally over one or more local networks using the TVWS and ultimately can communicate with external devices, such as cloud-based devices104, via one or more external networks through the gateway106. In the illustrated example, the system100is configured as a TVWS network that allows for communication between, for example, IoT devices.

The gateway106includes a base station108and an edge device110in the illustrated example. The client devices102and the base station108are configured in some examples to have one or more multi-narrowband transceivers. As should be appreciated, the client devices102and base station108can be variously configured to operate in accordance with the communication techniques described herein.

In one example, the base station108is configured to have a working frequency from 150 MHz to 960 MHz, which covers most VHF and UHF TV channels, 433 MHz, 800/900 MHz ISM band and/or other licensed frequency bands. It should be noted that with the present disclosure, the base station108and the client devices102are configured for TVWS network communication having spatio-temporal variation. In one example, communication and control ports are provided and include one of more of: universal asynchronous receiver/transmitter (UART), universal synchronous/asynchronous receiver/transmitter (USART), universal serial bus (USB), serial peripheral interface (SPI), and/or multiple general purpose input/output (GPIO).

In an IoT environment, the edge device110performs processing at the “edge” of the network (e.g., within the gateway106). Thus, in one example, the processing for performing transmission is done by the gateway106, such as accessing a dynamic spectrum access database, which in the illustrated example is a TVWS database112as described in more detail herein. However, the edge device110or the computing to perform TVWS communication as described herein, in some examples, is performed (or partially performed) at any location near the gateway106, which is not necessarily within the gateway106(e.g., a local computing device connected to the gateway106). As such, the processing or partial processing to allow for TVWS transmission in these examples is performed outside of the gateway106. Additionally, it should be noted that the dynamic spectrum access database can be any type of database having channel availability information for a dynamic spectrum frequency range.

In one example, each client device102(and the base station108) includes a GPS device that provides location information (e.g., geo-location information). As described in more detail herein, the location information is used when configuring communication between the various devices. The base station108is powered using one or more power sources, such as a power over ethernet (PoE) power supply in some examples, or other suitable sources of power.

The client devices102in some examples also include an interface extension board and connect to different sensors (e.g., IoT type sensors) in some examples. It should be noted that power for each of the client devices102can be provided using a solar panel, a battery (e.g., direct current), or alternating current (AC) power, among others. The power source is selected in some examples based on the application or environment in which the client device102operates.

Thus, devices in the system100are configured to form a TVWS IoT network in some examples. For example, a “check before talk” configuration is used that allows for an IoT protocol for TVWS. In one configuration, TVWS for an IoT network deployment includes a scheduling algorithm, a base station design, and a grid based positioning technique and GPS based time-synchronization technique. The scheduling algorithm supports dynamic channels with respect to spatio-temporal variation, which uses different channels for uplink and downlink transmission considering the location-based channel availability in TVWS spectrum. The scheduling also includes techniques using alternative active channel, hopping, and buffer slot reservation to adapt to the variation of channel quality and availability over the time.

In other examples, the devices in the system are configured in a ‘mesh’ network. Mesh networks are a type of ad-hoc network (with an infrastructure network being another type of network). In mesh networks, nodes receive and forward messages, allowing messages to be passed from node to node. As a result, mesh networks can be established over a relatively wide area, which can be implemented using the TVWS spectrum as disclosed herein. Additionally, because connections between nodes can be defined or adapted ad hoc, communication over the mesh network can continue despite communication failures between one or more of the nodes.

The base station design facilitates the channel allocation for endpoint devices. For example, different client devices102can be assigned different channels based on the locations of the client devices102. Additionally, multiple channels are available for data transmission (i.e., more bandwidth) in some examples. To take advantage of these characteristics, a multi-radio base station108is used in various examples, wherein all the radios are synchronized among each other. In operation, the radios synchronously hop across the channels assigned for the client devices102. It should be noted that the number of radios in some examples is based on the size of deployment, wherein more radios enable more bandwidth utilization. Channel selection and distribution, as well as channel hopping and scheduling are performed in various examples. In one example, with the system100, the number of messages communicated back and forth between the devices102and base station108is reduced.

The grid based positioning technique and GPS based time-synchronization technique register a new endpoint device in the network to accommodate FCC (Federal Communications Commission) requirements. For example, according to FCC regulation, a TVWS radio cannot start readily transmitting over an arbitrary TV channel. That is, there are certain TV channels allowed for transmission in a region, and there is a regulation on the amount of transmit power. In one example, the gateway106queries the TVWS database112for a list of permitted TV channels. As a result, the TVWS radios (client devices102and base station108) are controlled to only transmit over the list of permitted channels. It should be appreciated that the list of permitted TV channels is updated by the gateway106on a regular basis.

In one particular example, with the system100, every client device102(defining a client node) has a GPS module onboard. Before transmitting data, each client device102shares a geo-location of the client device102with the gateway106. The gateway106then queries the TVWS database112with the GPS location of the client device102and receives a list of available channels based on the geo-location of the client device102. The gateway106updates the client device102with the available channel list for the client device102in the geo-location thereof. In some examples, the channel list for the client device102is a sub-list of the total available channels. For example, a maximum channel list is transmitted to the client device102, which in one configuration is three channels. However, additional or fewer channels can be provided, such as based on the density of devices in an area, the geographic location, etc. Additionally, in some examples, the entire channel list is transmitted to the client device102.

In some applications, the deployment of the system100includes a mobile client device102(mobile client nodes), such as a node on a tractor in a farm. In this example, as the location of the tractor changes over the time, the channel availability also changes for the mobile client device102. In this type of deployment, a predictive location determination and available channel list is determined. For example, the mobile client device102caches the channel list for possible future locations. Based on a current and previous GPS location of the client device102, a probable future position is estimated, such as using machine learning. For example, a machine learning model as used in machine learning technology generates predictions of future locations of the mobile client device102. In some examples, real-time predictions are generated. It should be appreciated that different prediction techniques and methods can be used, such as any algorithm or process that allows for prediction or approximation of future location information.

In some examples, the GPS location is updated at defined distance intervals, which are determined based on location requirements. In one example, the GPS location is updated at every 50 meter (m) change in distance. However, other distances are contemplated. The GPS update interval defines an accuracy level for the location prediction or estimation (e.g., more frequent updates results in more accurate location prediction or estimation). From the rapid location change, the gateway106also obtains information about the mobile client device102. It should be noted that to facilitate communication with the mobile client device102(mobile node), in one example, the gateway106assigns more frequent hopping across the available channels for the mobile client device102.

Channel Hopping

With respect to channel hopping, the quality of a TVWS channel can vary over time. Hence, the TVWS channel that is being used for the communication between gateway106and the client device102can be affected or blocked. The present disclosure uses channel hopping to reduce or avoid the likelihood of loss of communication resulting from affected quality or blocking of some channels. For example, each time the client device102initiates communication through sending an uplink message to the base station108, the client device102expects a downlink reply from base station108. If the client device102does not receive the downlink reply (e.g., receive a downlink packet), the client device102retries again after a certain time period, which can be random or defined. If a client device102misses a certain number of downlink packets, the client device102marks the present channel as noisy.

Using information about the channels, such as based on the uplink/downlink process described above, the radios of the base station108are configured to hop across all the available channels (for all the client devices102), such as sequentially or in a defined pattern. In one example, the base station dwell time on each channel is equal and fixed. However, variable dwell times can be used, such as based on the strength of the channel, etc.

If a client device102identifies a channel as noisy and/or blocked, the client device102starts hopping across the channels shared with the client device102from the base station108(e.g., the channel list transmitted to the client device102from the base station108). On each channel, the client device102attempts to send data to the base station108. Before sending the data, the client device102performs carrier access detection (CAD) in some examples. CAD uses carrier-sensing to defer or change transmissions. This can be used in combination with collision detection in which a transmitting device (transmitting client device102) detects collisions by sensing transmissions from other transmitting devices (client devices102) while the client device102is transmitting a frame. Based on the CAD results, the client device102either sends data, delays the data send, or does not send the data. It should be noted that once the client device102connects with the base station108, the client device102starts communicating with the base station108over the selected channel.

It should be appreciated that different configuration settings are defined in various examples. In one example, the dwell time on a channel for a client device102is twice that of the base station108. However, other relative values are contemplated.

Channel Sensing

With respect to the base station108, one configuration is illustrated inFIG.2. The base station108includes a plurality of transceivers200(two are shown) that are interconnected with each other and each connected to an antenna202through a coupler204. In one configuration, one input/output (I/O) of each of the transceivers200are connected together using a general-purpose input/output (GPIO) pin of each of the transceivers200to allow communication there between. The interconnection of the transceivers200is configured to allow synchronization of the operations of the transceivers200. In one example, the interconnected GPIO pins of the transceivers200are assigned for synchronization operations.

A channel sensing processor206is connected to the antenna202through an attenuator208. The channel sensing processor206is a processor programmed with program code or other computer-executable instructions to perform operations. For example, the channel sensing processor206is configured to assess channel quality, for example, to determine the channels having no interference, lower interference, no present usage, etc. Based on the assessed quality, channels are added to an available channels list, such as a channel whitelist. That is, channels having an interference level or other characteristic below a defined threshold (e.g., a threshold that allows satisfactory communication over the TVWS channel without interfering with TV users) are added to an available list of channels provided to the client devices102as described herein. It should be appreciated that the sensing by the channel sensing processor206can be performed using any sensing techniques in the channel quality determination technology. Thus, in various examples, the present disclosure allows for inferring the channels to use, which includes a determination of channel quality when performing channel selection and assignment.

In operation, the plurality of transceivers200enables communication across multiple channels simultaneously. That is, with more than one transceiver200, communication over different frequencies or frequency ranges in the TVWS frequency spectrum can be performed.

Thus, the base station108allows for communication over the TVWS spectrum, and having GPS functionality on board, as well as spectrum/interference sensing, facilitates identifying available TVWS channels. That is, using one or more of the techniques described herein, a TVWS network, such as for IoT devices, can be implemented without interfering with existing TVWS usage.

In one example, a scheduling mechanism allows for the formation of the TVWS network for the client devices102. The scheduling mechanism includes at least one of channel selection and distribution, and channel hopping and scheduling, in one configuration. An example of a channel selection and distribution configuration is next described.

Channel Selection and Distribution

In accordance with FCC regulations, each TVWS radio transmits over the channels available at the location of the TVWS radio, such as within the client devices102. As should be appreciated, a channel may be available in a region, not only at a single point. As such, in an example configuration, the whole deployment region is defined as an area300(e.g., rectangular area) as shown inFIG.3. A grid-wise channel availability is thereby defined, wherein in each region302(illustrated as smaller rectangular regions), a distinct group of channels are available for the uplink transmissions by end-devices, namely the client devices102. The area300can be a large area (e.g., 20 kilometers (km) by 20 km) wherein client devices102likely will not have the same channel availability. As will also be described herein, dynamic scheduling is also performed in some examples.

It should be appreciated that the size and shape of the area300may be rectangular, oval, circular, or any other size or shape capable of being subdivided into smaller regions. Further, it should be appreciated that the number, size, and shape of the regions302can be varied. For example, while the size and shape of the regions302, as well as the number of the regions302(seven in the illustrated example), are shown having a particular configuration, the configuration is only for illustration. The size, shape, and/or number of the regions302can be selected based on different criteria or factors, such as the number of client devices102in a geographic location, the distance from the base station108, the TVWS quality in the geographic location (e.g., mountains or hills obstructing transmission, available TVWS channels), etc.

In the illustrated example, the area300is divided into smaller rectangular grids defining the regions302, which are also referred to as unit grids. In one example, the regions302are determined and defined by channel availability, That is, the regions302are defined such that at least one channel is available in each region302, a maximum number of channels is available in each region302or certain regions302, etc. It should be appreciated that the identification of groups or clusters of client devices102within geographic regions are used in some examples when defining the regions302. For example, a determination is made as to the average number of client devices102within a geographic area, which is used to define a size of the regions302in some configurations. In some example, the regions302are defined by a geocode system or other means.

Thereafter, a channel available in each a region that includes one or multiple unit gird(s) is identified, such as based on the available channel list described herein. That is, the base station108has access to the TVWS database112(shown inFIG.1). Thus, using the TVWS database112, available channels are identified for a deployment region, which is the area300in this example. In one example, channel selection is performed to maximize bandwidth utilization (e.g., use more available channels). It should be appreciated that the number of base station radios (or base stations108) in the area300is used as a constraint. Although, one base station108is shown, multiple base stations108can be included within a deployment region.

The base station108scans the arbitrary number of available channels, C, to evaluate quality, and a channel is added to the whitelist based on a predefined threshold of quality metrics (RSSI, SNR), in one example, as follows:
Total whitelist channels (Wc): 1≤Wc≤CEq. 1

If Wcchannels are available, then AWc=└Wc/2┘ is used as active channels for the system, and the remainder of the channels are reserved as backup channels. These backup channel define fallback channels or bandwidth, which may be used when the active primary channels are blocked or noisy.

It should be noted that the active channel list contains both uplink (client device102-base station108) and downlink (base station108-client device102) channels. Uplink channels must be available for the transmission at the location of the client devices102. However, downlink channels may or may not be available for the transmission at the location of the client devices102. But, downlink channels must be available for the transmission at the location of the base station108.

Thereafter, assignment of the Wcchannels includes distributing the channels among the radios of the base station108if the base station108has multiple radios. The channels are distributed among the radios, in one example, such that the dwell time of any two channels for a radio of the base station108radio do not overlap. In one example, each radio of the base station108is assigned one or multiple active channels, as well as backup channels.

With respect to the selection and distribution of the channels, in one example, each client device102can be served by one or multiple base station radios. But, in this example, each client device102is assigned at least one active channel and at most two active channels for uplink transmission. Similarly, for downlink reception, each client device102is assigned at least one channel and at most two active channels. If a client device102is assigned multiple active channels, the client device102sequentially hops across the channels while transmitting data in an assigned time slot. Other number of active channels can be assigned, such as not more than three.

Each client device102is also assigned one or more prioritized backup channels. The backup channels can be used, for example, when the assigned channels (active primary channels) become noisy or otherwise are not providing acceptable transmission (e.g., transmission too lossy). It should be noted that the backup channels in some examples are stored in memory of the client device102. In various examples, the active channel list, as well as backup channels, can be changed “on the fly” depending on the communication with the base station108(e.g., quality of communication with the base station108).

Channel Hopping and Scheduling

With respect to channel hopping, in one example, a time slot structure is defined to allocate talk time among all of the client devices102(e.g., all client devices102in a region302). In one example, a discrete time quantity is defined as tq(quantum) and each time slot is a multiple of this discrete time quantity. A client device102, which defines a client node, can only transmit during time slot (NClient IDchannel ID) assigned to the client device102and over the assigned one or more channels. In one example, the time slot length assigned for a client device102is dependent on a throughput requirement of the client device102and radio configuration.

A time slot has a duration of 2T in some examples, where T is the worst-case time needed for one uplink transmission and one downlink transmission. In this time slot, uplink and downlink transmissions are performed on corresponding channels and performed on two different channels if available. It should be noted that if multiple uplink and downlink channels are available, the channels are coupled together.

For each client device102, a period (tpClient ID) is defined, which is the time gap between two consecutive slots assigned for the client device. This period is not changed without notifying the client device102.

Each client device has a start time, TsClient ID(unix timestamp), which represents the time slot when the client device102makes a first data transmission attempt. If the client device102is assigned multiple active channels, the client device102sequentially changes the transmission/reception channel in every consecutive assigned slot (e.g., round robin configuration). For example, if a client device102is assigned two active channels—C1, C2, in the first assigned transmission slot, the client device102transmits over C1; in the next slot, the client device102transmits over C2; and in the next slot, the client device102again transmits over C1. It should be noted that two consecutive data transmission attempts are made on different active channels in various examples.

With respect to the base station108and channel hopping, a single base station radio can serve multiple channels (uplink and downlink) using a channel hopping schedule as illustrated in the timing diagram400ofFIG.4, wherein U(D)ch=Uplink(Downlink) channel, N=client node, TS=initial start, td=dwell time, tp=period. In this example, one base station108, and one active uplink and downlink channel are assigned per client device102. However, two radios both serve on the same channel. Each uplink channel is coupled with only one downlink channel, and each downlink channel can be served by only one base station radio (e.g., transceiver200shown inFIG.2).

The dwell time (tdi) of the base station radio on an uplink channel defines the time the radio stays on an uplink channel to serve a group of client devices102. For each corresponding uplink channel, the base station radio dwell time includes a buffer slot402to accommodate new clients “on the fly”. For example, when a new client device102enters a region302, the buffer slot402allows for communication within the region302without having to reconfigure the hopping schedule. It should be noted that the number of dwell time overlaps among channels is not more than the number of base station radios available, in one example.

In operation, in one example, as the active channels are assigned based on the location of the client device102, multiple clients can have two active channels in common. In this case, the client nodes for these client devices102are grouped based on the same tp. Multiple client devices102can also share one active channel in common. In this case, different approaches can be used based on the number of base station radios available and bandwidth requirements. For example, all the client devices102are grouped based on the shared channel and the slot assignment is decided, as well as tpaccordingly. This approach increases the reliability, however, decreases the bandwidth utilization. In another approach, if multiple base station radios are available, the client devices102that have two channels in common are grouped together, and other client devices102are assigned only one active channel. This increases the bandwidth utilization, however, decreases the reliability.

For example,FIGS.5-8illustrate different examples of channel hopping and scheduling when one or more client devices102share a channel. The timing diagram500ofFIG.5illustrates channel hopping and scheduling wherein: #Radio=1, #Channel=3, Ch/C=2. That is, one client device (N5) and four other client devices share a common channel (Chi+1). In the illustrated example, N5 is assigned only one active channel.

In another example, wherein: #Radio=1, #Channel=3, Ch/C=2, as shown in the timing diagram600ofFIG.6, N5is assigned two active channels and the dwell time of Chi+1and Chi+2are made equal to the Chi. It should be noted that the approaches illustrated inFIGS.5and6do not differ much when there is only one base station radio to serve.

In another example, wherein: #Radio=2, #Channel=3, Ch/C=2, as shown in the timing diagram700ofFIG.7, there are two base station radios, the same approach is used—assigning N5two active channels and making the dwell time of Chi+1and Chi+2equal to the Chi.

In another example, wherein: #Radio=2, #Channel=3, Ch/C=2, as shown in the timing diagram800ofFIG.8, there are two base station radios. In this example, one active channel is assigned to N5to increase the bandwidth utilization for all the nodes. This illustrates the trade-off between higher bandwidth and reliability.

In one example, channel hopping of switching, which can be performed by the client device102or the base station108, such as switching channels if the channel becomes unavailable or noisy, includes determining when to switch channels and having the client device102and base station108on the new channel to resume transmission.

The channel switching determination may be made using a counter. For example, the process includes both the base station108and the client device102keeping two counters (count-up and count-down) saved in local memory for both uplink and downlink packets. This counter is also shared between the base station108and corresponding client device102as a part of uplink/downlink packets. The mismatch between the shared counters and local counters reflects the missing packet numbers.

With respect to determining whether to switch channels, the base station108, in one example, queries the TVWS database112for the available channels. In addition, the base station108keeps scanning (as described herein) the existing channels to keep the channel quality status updated. The base station108also keeps track of the missing downlink (plus uplink) packets based on the count-up and count-down counters. If a client device102is alternatively transmitting over two channels, the base station108is able to determine whether the missing packet is on a particular channel. The base station108also monitors the status of the other client devices102on the same channel to determine the channel quality. For each client device102, the base station108tracks the previous history of packet exchange frequency for calculating the interval thereof.

With respect to determining whether to switch channels, the client device102, in one example, keeps track of the missing downlink packets to estimate the channel status. If a client device102is assigned two active channels, and the client device102does not receive a response from the base station108on a particular channel, the client device102retries the transmission in the next slot on the next available active channel. This failed response gets reflected in the local count-up/count-down counters. Hence, both the base station108and the client device102get to assess the channel quality.

Based on the number of missing downlink packets, and mismatch in local and shared packet counters, the client device102decides to switch channels, in one example, as next described. If the client device102has two channels and determines one channel is noisy, the channel handover (noisy to white) is seamless, because the base station108and the client device102make a decision about the noisy channel over the white channel. If the client device102has one active channel or both of the active channels get noisy, the client device102makes a decision after a certain number of packet misses.

When switching channels, the base station108, in one example, keeps the client devices102updated on the available channel list and quality using medium access control (MAC) commands. The base station radio moves to a backup channel on the same slot for one or multiple client devices102when the base station108decides to switch channels based on the decision-making criteria described herein. The base station radio remains on a certain backup channel at least for a period of time twice that of the transmission interval of the client device102. The base station108stops hopping if the base stations108receives a response from the client device(s)102or switches to the next backup channel.

The client device102, in one example, after making the decision to switch channels, keeps hopping across the backup and active channels on the given slot. If the client device102does not receive a response from the base station108for a defined period, the client device102enters an “aggressive” mode and behaves like a new client device102.

In some examples, uplink channel capacity is improved, alternatively or in addition to downlink channel capacity. For example, if the client devices102includes both narrowband and broadband devices, capacity planning is performed per device to ensure good uplink capacity or improve uplink capacity, such as using aggregated acknowledgments are described herein. That is, in some examples, more bandwidth is allocated to the uplink side than the downlink side.

In some example, bandwidth utilization efficiency is increased by grouping ACK signals for client devices102on the same channel. For example, at the end of the buffer slot402(shown inFIG.4), a grouped ACK slot is assigned. All the client devices102follow the same modulation configuration to receive the ACK signal and the grouped ACK signal follows a block-based packet structure to organize information for each client device102.

With respect to communication within the system100, control messages, such as the MAC commands, are used. MAC commands are the control messages related to the MAC layer (channel change, slot change, etc.). Every uplink message is followed by a downlink ACK. The ACK contains the MAC commands specific to the client device102. If an ACK is not enough to convey MAC commands, a bit in the MAC command asks the client to send a dummy uplink message in the next assigned slot. A downlink beaconing slot is also provided in the buffer slot402, wherein multicast MAC commands can be communicated. However, it should be noted that a client device102can skip that beaconing slot if the client device102has already received the ACK in the corresponding transmission slot.

With respect to adding a new client device102, a client bootstrapping process is performed in some examples. After a hot start, a new client device102is not aware of the channel availability and schedule. The new client device102cannot make any transmission attempt without knowing the available channel at the location of the new client device102. GPS time is used to synchronize the new client device102with the network and beacon from the base station108to announce the region302in which the new client device102is located and the corresponding channel availability.

With respect to the new client bootstrapping, in one example, the base station108selects one distinct channel per region302. The base station108embeds information per region302in the beacon as follows: (i) coordinates of the region302, (ii) available channel, and (iii) free slot in the corresponding channel (i.e., buffer slot402). The base station108enters in a beaconing period on a regular interval following a UNIX timestamp, wherein this beaconing period timestamp is known to all the client devices102(both old and new), and all the transmissions freeze during this time. In the beaconing period, the base station108hops across the fixed downlink channels on which the base station108can transmit. On each channel, the base station108sends one beacon and hops to the next channel. If the base station108has multiple radios, the base station108sends the beacon on multiple channels in parallel. After the beaconing period, normal transmission resumes following the predefined schedule (channel hopping schedule). Once bootstrapping is complete, the base station108starts increasing the buffer slot402that the base station108assigned to the new client device102. If the buffer slot402is full, the base station108creates a slot first and then onboard. The base station108also communicates with the new client device102to indicate to the new client device102to wait for a certain period before the next join-request.

With respect to the new client bootstrapping, in one example, the new client device102synchronizes the time using GPS after the hot start. The new client device102has the list of beaconing channels already stored (sent from the base station108as described herein, that is, preloaded). Before entering in the beaconing period, the new client device102obtains the location of the new client device102using GPS. The new client device102enters in the beaconing period and starts hopping across the stored channels, wherein the new client device102listens on each channel for (#channel*Max Beacon Packet Transmit Time). During the beaconing period, the new client device102determines the region302in which the new client device102is located and the corresponding available channels. The new client device102has a random delay assigned thereto before transmitting in the buffer slot402to address any hidden-node issue. The new client device102also has CAD implemented to avoid collision. If the new client device102receive a slot-unavailable notification, the new client device102waits before the next try.

Thus, with the present disclosure a TVWS deployment can be performed, such as a TVWS network deployment for IoT devices. In one example, during deployment, the base station108knows prior to deployment the number of client devices102and how many radios will be present. The defined active channels are distributed among the base station radios. For each defined active channel, the base station108assigns a dwell time based on the number of channels assigned for the radio and an average number of client devices102per channel. The base station108later optimizes the dwell time once the onboarding is complete. To handle initial traffic, the base station108assigns a comparatively longer first data transmission time based on the number of new client devices102to be joined.

In a new deployment, each client device102has assigned thereto at least one channel from the beacon for the initial handshake with the base station108. The client device102starts transmitting join-requests following the schedule the client device102received from the beacon. Each client device102is aware of the quantum and also has the CAD implemented. Once the client device102receives a join-accept, the client device102is registered for the data transmission. The client devices102in one example expect the following information from the base station108: (i) timestamp, (ii) first data transmission time, (iii) period length of base station radio (in quantum); (iv) slot length (in quantum); (v) channel list (prioritized); and (vi) bulk beacon slot (if any).

Thus, the present disclosure allows devices, such as IoT devices, to operate within a TVWS network. For example, various examples described herein can be used in a cloud-backed IoT application. TVWS IoT implemented as described herein allows for large-scale IoT deployments (e.g., farming, oil field, gas fields, etc.) and can be backed by cloud and edge devices.

FIG.9is a flowchart of a method900illustrating operations of a computing device (e.g., the base station108) to configure communication of devices (e.g., client devices102, such as IoT devices) over a TVWS network. For example, the method900configures the base station108to deploy information to the plurality of client devices102to allow the client devices102to communicate using the TVWS spectrum in a particular geographic region.

It should be appreciated that the computing device is implementable in different systems and applications. Thus, while the below-described example can be used in connection with an IoT application, the computing device configured according to the present disclosure is useable, for example, in many different applications, including any application using narrowband communication over a TVWS network.

At902, the location of a client device is determined using GPS location information. For example, as described herein, client devices102communicate geo-location information to the base station108as determined by GPS devices onboard the client devices102. The geo-location information can be communicated at defined intervals, after the client device102has moved a defined distance, etc.

A TVWS database, such as the TVWS database112is accessed at904based on the determined location information, and the available channels for the client device are determined at906. For example, using the received geo-location information from the client device102, the gateway106(that includes the base station108) queries the TVWS database112with the location information for the client device102. In response, the gateway106receives a list of available channels in the TVWS corresponding to the geo-location for the client device102. That is, the gateway106determines the channels over which the client devices102can communicate (e.g., non-used TVWS channels in the region302).

It should be noted that the gateway106in some examples periodically queries the TVWS database112and stores the available channel information for when the information is needed. That is, the gateway106, in some examples, does not query the TVWS database112every time an available channel list is to be communicated to the client device102. In one example, all of the client devices in the region302periodically report location information determined from GPS to the base station108. The base station108then either accesses the stored available channels corresponding to the region302or, if the stored available channels were retrieved at a previous time that exceeds a defined time limit (out-of-date information), queries the TVWS database112to obtain an updated channel list.

The TVWS database112is any data store that contains information identifying available TVWS channels. For example, the TVWS database112is also commonly referred to as a geolocation database and is an entity that controls the TV spectrum utilization by unlicensed white spaces devices within a determined geographical area. The TVWS database112enables unlicensed access to the TVWS spectrum, while protecting incumbent broadcasting services.

At908, a list of available channels for use by the client device102is transmitted to the client device102. In one example, the list of channels sent to the client device102is less than the total number of available channels in the region302. Thus, different subsets of the available channels in the region302are communicated to different client devices102in the region302. As a result, the client devices102are enabled to communicate using the TVWS spectrum in the particular location of the client devices102, namely within the region302.

In some examples, from a list of available dynamic spectrum access channels, a set of channels is selected as active channels, wherein the active channels comprise uplink channels and downlink channels. The active channels are distributed among the plurality of base station radios of the base station, wherein a different channel is assigned to different base station radios of the plurality of base station radios. At least one uplink channel and at least one downlink channel are assigned to a plurality of client devices based on locations of the plurality of client devices, wherein at least some client devices of the plurality of client devices have active channels in common.

At least some of the client devices have the active channels in common on shared channels that include the active channels and at least one backup channel, and time slots are assigned to the client devices in the group to allow communication between the client devices by scheduling the communication using the shared channels to allow channel hopping between the active channels and the at least one backup channel. That is, in some examples, channel selection and distribution allows for communication on grouped channels having active and backup channels. In one example, some of the available channels are assigned as active channels with the remainder reserved as backup channels as described in more detail herein.

FIG.10is a flowchart of a method1000illustrating operations of a computing device (e.g., base station108) to schedule communication of devices (e.g., client devices102, such as IoT device) over a TVWS network. For example, the method1000configures channel selection and scheduling for the base station108and the plurality of client devices102to allow the client devices102to communicate using the TVWS spectrum in a particular geographic region.

At1002, a determination is made as to whether TVWS channels are available for use in communications. As described herein, in some examples, the available channels are determined from the TVWS database112. If channels are not available, such as for one or more client devices102, then at1004available channels are determined from the TVWS database112. For example, the gateway106is enabled to determine the available channel information from the TVWS database112and the base station108transmits an available list to the client devices102. If there are available channels as previously determined from the TVWS database112(and still having an acceptable quality level), then a list of available channels is transmitted to the client devices102at1006. In some examples, signal quality information, such as RSSI and/or SNR can be used to determine the best available channels in the region302, and/or to select channels.

Similarly, the quality or availability of one or more of the available channels can change. That is, an available channel for one or more client devices102can become noisy. A determination is made at1008if a channel is noisy. If the channel is not noisy, such that acceptable communications are still possible, the channel continues to be used at1010. If the channel is determined to be noisy at1008, then channels are switched at1012. For example, a client device102switches between active available channels using one or more hopping techniques described herein. It should be noted that the timing (schedule) of the hopping can vary based on the number of radios, the number of shared channels, etc. as described herein.

A determination is made at1014whether any new client devices102are present. For example, a determination is made whether any new client devices102are present in the region302and need to be configured to communicate using the available channels and defined timing schedule. If no new client devices102are present, then the existing channel and timing schedule is maintained at1016. If one or more new client devices102are present, then bootstrapping is performed at1018. For example, as described herein, the buffer slot402can be used for configuring the new client device(s)102. In one example, the new client device(s)102is preloaded with a list of channels, then the new client device(s)102listen on the preloaded channels, and the base station108transmits on one or more of the channels with a message of available channels, and the new client device(s)102selects from the available channels based on the new client device(s)102GPS location (which is known). The base station108and the client device(s)102are time-synchronized based on GPS time, so the client device(s)102know when to listen for base station108transmission (during the buffer slot402).

Thus, a TVWS network is configured to allow communications, such as between IoT devices. For example, the present disclosure allows for a TVWS IoT network to be deployed over a larger geographic region having varying channel availability.

Exemplary Operating Environment

The present disclosure is operable with a computing apparatus1102according to an example as a functional block diagram1100inFIG.11, such as an IoT device. In one example, components of the computing apparatus1102may be implemented as a part of an electronic device according to one or more examples described in this disclosure. The computing apparatus1102comprises one or more processors1104which may be microprocessors, controllers or any other suitable type of processors for processing computer executable instructions to control the operation of the computing apparatus1102. Platform software comprising an operating system1106or any other suitable platform software may be provided on the computing apparatus1102to enable application software1108to be executed on the computing apparatus1102. According to an example, communication via TVWS channels determined from device location information1110, such as implemented with an IoT client device, may be accomplished by software and/or hardware.

The computing apparatus1102in one example includes an input/output controller1116configured to output information to one or more input devices1118and output devices1120, for example a display or a speaker, which may be separate from or integral to the electronic device. The input/output controller1116in some examples is configured to receive and process an input from one or more input devices1118, such as a control button or touchpad. In one example, the output device1120acts as the input device1118. An example of such a device may be a touch sensitive display. The input/output controller1116in one example also outputs data to devices other than the output device1120, e.g. a locally connected printing device. In some examples, a user provides input to the input device(s)1118and/or receives output from the output device(s)1120.

In one example, the computing apparatus1102detects voice input, user gestures or other user actions and provides a natural user interface (NUI). This user input is used to author electronic ink, view content, select ink controls, play videos with electronic ink overlays and for other purposes. The input/output controller1116outputs data to devices other than a display device in some examples, e.g. a locally connected printing device.

At least a portion of the functionality of the various elements in the figures may be performed by other elements in the figures, or an entity (e.g., processor, web service, server, application program, computing device, etc.) not shown in the figures. Additionally, in some aspects, the computing apparatus1102is a base station or client device configured to have communication capabilities over the TVWS frequency spectrum.

A system for communication using dynamic spectrum access comprises at least one processor; and at least one memory comprising computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the at least one processor to: select from a list of available dynamic spectrum access channels, a set of channels as active channels, the active channels comprising uplink channels and downlink channels; distribute the active channels among a plurality of base station radios of a base station, wherein a different channel is assigned to different base station radios of the plurality of base station radios; assign at least one uplink channel and at least one downlink channel to a plurality of client devices based on locations of the plurality of client devices, wherein at least some client devices of the plurality of client devices have active channels in common; group at least some of the client devices having the active channels in common on shared channels that include the active channels and at least one backup channel; and assign time slots to the client devices in the group to allow communication between the client devices by scheduling the communication using the shared channels to allow channel hopping between the active channels and the at least one backup channel.

A computerized method for communication using dynamic spectrum access comprises selecting from a list of available dynamic spectrum access channels, a set of channels as active channels, the active channels comprising uplink channels and downlink channels; distributing the active channels among a plurality of base station radios of a base station, wherein a different channel is assigned to different base station radios of the plurality of base station radios; assigning at least one uplink channel and at least one downlink channel to a plurality of client devices based on locations of the plurality of client devices, wherein at least some client devices of the plurality of client devices have active channels in common; grouping at least some of the client devices having the active channels in common on shared channels that include the active channels and at least one backup channel; and assigning time slots to the client devices in the group to allow communication between the client devices by scheduling the communication using the shared channels to allow channel hopping between the active channels and the at least one backup channel.

One or more computer storage media having computer-executable instructions for communication using dynamic spectrum access, upon execution by a processor, cause the processor to at least: select from a list of available dynamic spectrum access channels, a set of channels as active channels, the active channels comprising uplink channels and downlink channels; distribute the active channels among a plurality of base station radios of a base station, wherein a different channel is assigned to different base station radios of the plurality of base station radios; assign at least one uplink channel and at least one downlink channel to a plurality of client devices based on locations of the plurality of client devices, wherein at least some client devices of the plurality of client devices have active channels in common; group at least some of the client devices having the active channels in common on shared channels that include the active channels and at least one backup channel; and assign time slots to the client devices in the group to allow communication between the client devices by scheduling the communication using the shared channels to allow channel hopping between the active channels and the at least one backup channel.

Alternatively, or in addition to the other examples described herein, examples include any combination of the following:grouping all client devices having the active channels in common on same ones of the shared channels and assign different time slots for communication for each of the client devices on the same ones of the shared channels;grouping client devices having at least two active channels in common to share one or more of the active channels, and assign the remaining client devices only one active channel, wherein a dwell time is a same for all active channels, the dwell time of the base station radios on an uplink channel defining the time the base station radios stay on an uplink channel to serve the grouped client devices, and a number of dwell time overlaps are no greater than a number of available base station radios;grouping acknowledgements from the plurality of client devices on a same active channel, the acknowledgments containing medium access control (MAC) commands specific to the client devices, wherein each message of a plurality of messages on the uplink channels is followed by a downlink acknowledgement;wherein the plurality of client devices is located within a plurality of regions and selecting one active channel as a beaconing channel to communicate during a beaconing period by hopping across the downlink channels on which the base station can communicate and transmit a beacon signal on each of the downlink channels, the beaconing period occurring outside of a normal transmission period, wherein the beacon signals have embedded information including coordinates of a region of the plurality of regions, available channels for the region and a buffer slot in the channels;using the beaconing period to configure a new client device, the new client device hopping across a plurality of channels stored within the new client device, the new client device identifying during the beaconing period (i) a region of the plurality of regions in which the new client device is located based on a GPS location of the new client device and (ii) available channels from the plurality of channels stored within the new client device;wherein each of the client devices within the group sequentially hops across the active channels in common and transmits data at the assigned time slot for the client device on each of the active channels, such that each client device changes the active channel on which the client device is transmitting at each of the assigned time slots for the client device;allow a client device to communicate only on the assigned uplink and downlink channels and during the assigned time slot, wherein a time slot length for the assigned time slot for each client device is determined based at least on a throughput requirement of the client device and a configuration of the plurality of base station radios, wherein each client device begins communication within the assigned time slot assigned to the client device based at least in part on communication configuration information received from one or more of the plurality of base station radios, the communication configuration information comprising at least a timestamp, a first data transmission time, a period length of the plurality of base station radios, and a slot length of the assigned time slot; andwherein the base station and the plurality of client devices each have a local count-up counter and a local count-down counter, the local count-up counter and the local count-down counter of the base station are shared with the plurality of client devices, and vice versa, as shared counters within uplink and downlink packets, and identifying a number of missing packets based on a mismatch between (i) the shared counters and (ii) the local count-up counters and a local count-down counters, the mismatch defining a quality level, and switching channels when the mismatch exceeds a predetermined number.

The examples illustrated and described herein as well as examples not specifically described herein but within the scope of aspects of the claims constitute exemplary means for device communication using the TVWS spectrum.