METHOD AND APPARATUS FOR FORWARD ERROR CORRECTION (FEC) IN A RESOURCE-CONSTRAINED NETWORK

An electronic device may utilize or support adaptive use of forward error correction (FEC) in a resource-constrained network. The adaptive FEC use may comprise determining whether use of FEC encoding in transmissions from another electronic device to the electronic device is necessary, desirable, and/or feasible, and when use of FEC encoding is deemed feasible and either necessary or desirable, instructing the another electronic device to utilize FEC encoding when transmitting signals destined for the electronic device. Use of FEC encoding may be determined to be feasible, necessary and/or desirable based on power loss associated with the communications from the another electronic device; based on determination of latency associated with the communications from the another electronic device; and/or based on power and/or processing related resources in the electronic device. The electronic device may separately and selectively apply FEC encoding to transmissions to the another electronic device.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CLAIM OF PRIORITY

This patent application makes reference to, claims priority to and claims benefit from U.S. Provisional Application Ser. No. 61/464,376 which was filed on Mar. 2, 2011.

The above-referenced application is hereby incorporated herein by reference in its entirety.

CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE

This patent application also makes reference to:

U.S. Provisional Patent Application Ser. No. 61/464,376 titled “Advanced Communication System for Wide-Area Low Power Wireless Applications and Active RFID” and filed on Mar. 2, 2011;
U.S. Provisional Patent Application Ser. No. 61/572,390 titled “System for Adding Dash7-Based Applications Capability to a Smartphone” and filed on Jul. 15, 2011;
U.S. patent application Ser. No. 13/267,640 titled “Method and Apparatus for Adaptive Searching of Distributed Datasets” and filed on Oct. 6, 2011;
U.S. patent application Ser. No. 13/267,621 titled “Method and Apparatus for Low-Power, Long-Range Networking” and filed on Oct. 6, 2011;
U.S. patent application Ser. No. 13/270,802 titled “Method and Apparatus for a Multi-band, Multi-mode Smartcard” and filed on Oct. 11, 2011;
U.S. patent application Ser. No. 13/270,959 titled “Method and Apparatus for an Integrated Antenna” and filed on Oct. 11, 2011;
U.S. patent application Ser. No. 13/289,054 titled “Method and Apparatus for Electronic Payment” and filed on Nov. 4, 2011;
U.S. patent application Ser. No. 13/289,050 filed on Nov. 4, 2011;
U.S. patent application Ser. No. 13/297,348 titled “Method and Apparatus for Interfacing with a Smartcard” and filed on Nov. 16, 2011;
U.S. patent application Ser. No. 13/354,513 titled “Method and Apparatus for Memory Management” and filed on Jan. 20, 2012;
U.S. patent application Ser. No. 13/354,615 titled “Method and Apparatus for Discovering, People, Products, and/or Services via a Localized Wireless Network” and filed on Jan. 20, 2012;
U.S. patent application Ser. No. 13/396,708 titled “Method and apparatus for Plug and Play, Networkable ISO 18000-7 Connectivity” and filed on Feb. 15, 2012;
U.S. patent application Ser. No. 13/396,739 titled “Method and Apparatus for Serving Advertisements in a Low-Power Wireless Network” and filed on Feb. 15, 2012;
U.S. patent application Ser. No. ______ (Attorney Docket No. 24666US02) titled “Method and Apparatus for Adaptive Traffic Management in a Resource-Constrained Network” and filed on Feb. 29, 2012;
U.S. patent application Ser. No. ______ (Attorney Docket No. 24667US02) titled “Method and Apparatus for Dynamic Media Access Control in a Multiple Access System” and filed on Feb. 29, 2012;
U.S. patent application Ser. No. ______ (Attorney Docket No. 24668US02) titled “Method and Apparatus for Rapid Group Synchronization” and filed on Feb. 29, 2012;

U.S. patent application Ser. No. ______ (Attorney Docket No. 24669US02) titled “Method and Apparatus for Addressing in a Resource-Constrained Network” and filed on Feb. 29, 2012;

U.S. patent application Ser. No. ______ (Attorney Docket No. 24670US02) titled “Method and Apparatus for Query-Based Congestion Control” and filed on Feb. 29, 2012; and
U.S. patent application Ser. No. ______ (Attorney Docket No. 24671US02) titled “Method and Apparatus for Power Autoscaling in a Resource-Constrained Network” and filed on Feb. 29, 2012.

Each of the above stated applications is hereby incorporated herein by reference in its entirety.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

[Not Applicable].

MICROFICHE/COPYRIGHT REFERENCE

[Not Applicable].

FIELD OF THE INVENTION

Certain embodiments of the invention relate to communications. More specifically, certain embodiments of the invention relate to a method and an apparatus for forward error correction (FEC) in a resource-constrained network.

BACKGROUND OF THE INVENTION

Existing methods for providing error correction may be unsuitable in resource-constrained networks. Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.

BRIEF SUMMARY OF THE INVENTION

A system and/or method is provided for forward error correction (FEC) in a resource-constrained network, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.

These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1A is a block diagram illustrating an exemplary communication setup comprising a plurality of spatially-distributed, resource-constrained devices, which may be utilized in accordance with an embodiment of the invention.

FIG. 1B is a block diagram illustrating exemplary electronic devices utilizing asymmetric and adaptive forward error correction (FEC) communication, in accordance with an embodiment of the invention.

FIG. 2A is a block diagram illustrating an exemplary electronic device that may support optimized packet filtering, in accordance with an embodiment of the invention.

FIG. 2B is a block diagram illustrating exemplary symbol encoding and decoding modules that enable optional use of forward error correction (FEC) encoding/decoding, in accordance with an embodiment of the invention.

FIG. 3A is a block diagram illustrating exemplary structure of a physical layer (PHY) packet carrying a data link layer frame, which may be utilized in accordance with an embodiment of the invention.

FIG. 3B is a block diagram illustrating exemplary structure of a data link layer frame utilized by a requester device in a resource-constrained network to specify particular channels for transmitting responses from responder devices, in accordance with an embodiment of the invention.

FIG. 4 is a flow chart that illustrates exemplary steps for performing adaptive configuration and/or use of forward error correction (FEC), in accordance with an embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Certain embodiments of the invention may be found in a method and apparatus for forward error correction (FEC) in a resource-constrained network. In various embodiments of the invention, an electronic device may implement and/or support adaptive use of forward error correction (FEC) in a resource-constrained network. In this regard, the adaptive use of FEC may comprise determining whether use of FEC encoding in transmissions from another electronic device to the electronic device is necessary, desirable, and/or feasible; and when use of FEC encoding is deemed feasible and either necessary or desirable, the electronic device instructing the another electronic device to utilize FEC encoding when transmitting signals destined for the electronic device. Use of FEC encoding may be determined to be feasible and either necessary or desirable based on power loss associated with the communications from the another electronic device. In this regard, determining or estimating the power loss may be based on measurement of received signal strength indication (RSSI) for packets received from the another electronic device and based on original transmit power for packets received from the another electronic device, wherein the original transmit power may be obtained from information embedded in the received packets. Once the power loss is determined, use of FEC encoding may be determined to not be necessary and is not desirable when the power loss is below a minimum threshold. The electronic device may also instruct the another electronic device to cease transmission to the electronic device when the power loss exceeds a maximum threshold. Use of FEC encoding may be determined to be necessary or desirable based on determination of latency associated with the communications from the another electronic device to the electronic device is necessary and/or feasible. Use of FEC encoding may be determined to be feasible based on one or more parameters that are pertinent to FEC decoding handling in the electronic device. The one or more parameters may pertain to, for example, power, storage and/or processing related resources in the electronic device. The electronic device may instruct the another electronic device to utilize FEC encoding by specifying one or more FEC-capable channels for use by the another electronic device when transmitting the signals destined for the electronic device. In some instances, the electronic device may selectively apply FEC encoding to transmissions to the another electronic device. In this regard, selective use of FEC encoding for transmissions from the electronic device to the another electronic device may be based on, at least in part, a determination of whether FEC decoding is feasible in the another electronic device.

As utilized herein, “and/or” means any one or more of the items in the list joined by “and/or”. As an example, “x and/or y” means any element of the three-element set {(x), (y), (x, y)}. As another example, “x, y, and/or z” means any element of the seven-element set {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)}.

FIG. 1A is a block diagram illustrating an exemplary communication setup comprising a plurality of spatially-distributed, resource-constrained devices, which may be utilized in accordance with an embodiment of the invention. Referring to FIG. 1A there is shown a first device 102, second devices 1041-10416, and perimeters 1061-1063.

The first device 102 may comprise suitable logic, circuitry, interfaces, and/or code operable to transmit and receive wireless signals in accordance with one or more wireless protocols. Exemplary protocols which may be supported by the device 102 may include the ISO 18000-7 protocol, and protocols described in the above-incorporated U.S. Provisional Patent Application Ser. No. 61/464,376 and filed on March 2, 2011. The first device 102 may be a less resource-constrained device. In this regard, the first device 102 may be, for example and without limitation, a laptop computer, a desktop computer, a tablet computer, a smart phone, a server, a set-top box, a gateway, a base station, a meter or code reader, or may comprise a combination of one or more such devices.

Each of the second devices 1041-10416 may comprise suitable logic, circuitry, interfaces, and/or code operable to transmit and receive wireless signals in accordance with one or more wireless protocols, which may include the ISO 18000-7 standard, and protocols described in the above-incorporated U.S. Provisional Patent Application Ser. No. 61/464,376 and filed on Mar. 2, 2011. Each of the second devices 1041-10416 may be operable to store data (e.g., in the form of delimited strings of characters). At least some of the second devices 1041-10416 may be more resource-constrained devices. In this regard, one or more of the second devices 1041-10416 may have relatively little memory, relatively little processing energy, operate on battery energy, and/or may otherwise be constrained in terms of one or more resources. The second devices 1041-10416 may comprise, for example, RFID tags, smartcards, keyfobs, cellphones, portable media players, appliances, and/or utility meters.

The second devices 1041-10416 may be located at different distances relative to the first device 102. Accordingly, the perimeters 1061-1063 may represent and/or delineate different zones of operations for the first device 102. Operating at each of the perimeters 1061-1063 may correspond to, for example, utilization of a different transmit power by device 102. That is, the device 102 may utilize a first transmit power T1 to communicate with devices within the first perimeter 1061, utilize a second transmit power T2 to communicate with devices within the second perimeter 1062, and utilize a third transmit power T3 to communicate with devices within the third perimeter 1063, wherein T3>T2>T1.

In operation, the device 102 may communicate one or more of the devices 1041-10416. In this regard, communications among the devices 102 and 1041-10416 may be based on the ISO 18000-7 protocol, and/or similar protocols such as the protocols described in the above-incorporated U.S. Provisional Patent Application Ser. No. 61/464,376 and filed on Mar. 2, 2011. Use of such protocols may be used for low-power, long range communication, such as to enable RFID and like exchanges among the devices 102 and 1041-10416. For example, at the 433 MHz band, low power communication based on such protocols may be in the range of 1-2000 m.

In an exemplary aspect of invention, electronic devices, such as devices 102 and 1041-10416, may be operable to implement and/or support use of forward error correction (FEC) during communications therebetween. In this regard, forward error correction (FEC) may be utilized for detecting, controlling and correcting errors during data transmissions, especially when the data transmissions are over unreliable or noisy communication channels. In various embodiments of the invention, use of FEC in communications among devices in a resource-constrained network, such as devices 102 and 1041-10416 for example, may be performed in an adaptive and/or intelligent manner, to enable selective and/or configurable use of FEC such that power consumption and/or resource utilization may be optimized. In this regard, various aspects of adaptive FEC implementation(s) described herein may allow for reducing power consumption and/or resource utilization associated with use of FEC-based communication by utilizing FEC selectively and/or independently, in each direction (i.e., in each direction of communication between two devices) and/or by each device (i.e., devices determining when and/or how to use FEC).

FIG. 1B is a block diagram illustrating exemplary electronic devices utilizing asymmetric and adaptive forward error correction (FEC) communication, in accordance with an embodiment of the invention. Referring to FIG. 1B, there is shown a requesting device and a responding device engaged in communication in which forward error correction (FEC) may be used adaptively and/or asymmetrically. The requesting device and the responding device may correspond to devices 102 and 1042, respectively, of FIG. 1A, for example.

In operation, devices in a resource-constrained network, such as devices 102 and 1042 for example, may be operable to utilize forward error correction (FEC) during communications therebetween. In this regard, forward error correction (FEC) may be utilized in encoding messages communicated between the devices in a manner that enables detecting and correcting errors occurring during data transmission over unreliable or noisy communication channels. In particular, FEC encoding utilizes redundancy of data to enable the receiving device to detect a particular number of errors which may occur anywhere in the message, and to correct these errors without requiring retransmission by the sending device.

In various embodiments of the invention, devices in a resource-constrained network, such as devices 102 and 1042 for example, may implement and/or support use of forward error correction (FEC) adaptively and/or intelligently. The adaptive and/or intelligent use and/or configuration of FEC during communications among devices 102 and 1042 may enable optimizing power consumption and/or resource utilization in the devices and/or the network, and/or may be tailored to the conditions of the network or devices, and changes thereof. In this regard, various aspects of FEC used in communications by devices 102 and/or 1042 may be adaptively and/or selectively configured or adjusted based on power and/or resource requirement and/or availability. In one aspect, for example, FEC may be implemented in an asymmetrical manner—that is during communications between two devices, FEC may be applied in one direction (e.g., in communication 150A from device 1042 to device 102) but not in the opposite direction (e.g., in communication 15013 from device 102 to device 1042). In this regard, determining when and/or how to implement such asymmetry in use of FEC may be based on a determination of availability of power and/or resources in the devices, and may take advantage of differences in the nature of FEC encoding and decoding—that is, for example, the fact that FEC encoding may generally require little power and/or resources, whereas FEC decoding may generally be power and/or resource intensive. For example, because device 102, being a less-constrained device (generally having more power and/or resources than devices 1041-10416, which may be more-constrained devices), FEC may be applied in communications from device(s) 104x to device 102, but not applied in communication from device 102 to device(s) 104x. That is, only less-resource-intensive encoding operations may be performed in more resource-constrained device(s) 104x while more-resource-intensive decoding operations are performed in less resource-constrained device 102.

Another aspect of the FEC scheme used in accordance with aspects of the present invention is the intelligent managing and/or configuring of FEC operations. In this regard, devices 102 and 1042 may selectively and/or variably determine when to use (or not use) FEC during communications among these devices. Furthermore, the determination of when and/or how to apply or use FEC may be done separately in each of the requesting and responding devices. In this regard, at the requester-side, the requesting device may consider many factors when deciding when to use FEC, and/or on what channel to request a response. The selection of the channel may be relevant in instances where available channels may comprise both FEC channels (i.e. channels allowing for and/or incorporating use of FEC) and non-FEC channels. The requesting device may determine whether FEC is desirable or necessary based on, for example, a determination of loss of power (or power dissipation) occurring during communication between the devices. In this regard, determination of loss of power may be based on local power measurement of received signals (e.g., received signal strength indication, or RSSI) and a determination of original transmit power of received signals. The requesting device may also base the decision on its own power consumption and available resources. In this regard, when the requesting device determines that it has sufficient power and/or available resources (e.g., memory and/or processor time) for FEC decoding, the requesting device may instruct a (responding) device to respond on an FEC channel; but if the requesting device determines that it does not have sufficient power or available resources to perform FEC decoding, the requesting device may instruct that responses be on a non-FEC channel. The requesting device can instruct responses on FEC channels or not, based on, for example, latency requirements of the packets to be communicated. The requesting device can also decide whether or not FEC is used based on the type of device with which the requesting device wants to communicate (e.g., whether the requesting device wants responses from base stations, controllers, endpoints, and/or blinkers).

At the responder side, a responding device may consider many factors pertinent to that device in determining whether or not to use FEC for a particular transmission. For example, a responding device may determine whether to use FEC for a particular transmission based, at least in part, on the channel on which the endpoint has been instructed to respond—e.g., whether the channel is a FEC channel or a non-FEC channel. The determination of whether (or not) to use FEC may also be based on loss-of-power measurements associated with signals received from the requesting devices—such as, for example, by subtracting local power measurement of received signals from original transmit power for these signals. For example, when power measurements indicate little dissipation during communication from the requesting device to the responding device, the responding device may forgo use of FEC in transmissions to the requesting device; when power measurements indicate medium dissipation, the responding device may use FEC in transmissions to the requesting device; and when power measurements indicate high dissipation, the responding device may choose to not respond.

In an embodiment of the invention, prior to applying FEC to communications between two devices, one of the devices (e.g., the requesting device) may send to the other device (e.g. the responding device) one or more messages to query and/or interrogate the another device before determining when and/or how to apply FEC to any communications to that device. In this regard, such interrogation may pertain to the other device's characteristics and/or capabilities (e.g. to determine if the other device can handle FEC decoding for example). For example, the device 102 may interrogate the device 1042, such as to determine its type and/or its processing or storage capabilities, and may not apply FEC encoding in transmissions to the device 1042 in certain conditions as determined by such interrogative interactions (e.g., when device 1042 is determined to be a simple RFID tag, which typically lacks the sufficient processing and/or storage capabilities required for performing FEC decoding). Furthermore, such interrogative interactions may also allow one or both of the devices to estimate the distance therebetween, such as by calculation of power dissipation occurring during communication therebetween, and/or to estimate latency encountered on the link therebetween.

FIG. 2A is a block diagram illustrating an exemplary electronic device that may support optimized packet filtering, in accordance with an embodiment of the invention. Referring to FIG. 2A there is shown an electronic device 200.

The electronic device 200 may be similar to the electronic devices 102 and/or 104x of FIG. 1A, and may comprise suitable logic, circuitry, interfaces, and/or code that may be operable to implement various aspects of the invention. The electronic device 200 may comprise, for example, a host processor 202, a system memory 204, a signal processing module 206, a transmit front-end (FE) 210, a transmission antenna 220, a plurality of receive front-end (FE) 212A-212N, and plurality of reception antennas 222A-222N.

The host processor 202 may comprise suitable logic, circuitry, interfaces, and/or code that may be operable to process data, and/or control and/or manage operations of the electronic device 200, and/or tasks and/or applications performed therein. In this regard, the host processor 202 may be operable to configure and/or control operations of various components and/or subsystems of the electronic device 200, by utilizing, for example, one or more control signals. The host processor 202 may enable execution of applications, programs and/or code, which may be stored in the system memory 204, for example.

The system memory 204 may comprise suitable logic, circuitry, interfaces, and/or code that may enable permanent and/or non-permanent storage, buffering, and/or fetching of data, code and/or other information, which may be used, consumed, and/or processed in the electronic device 200. In this regard, the system memory 204 may comprise different memory technologies, including, for example, read-only memory (ROM), random access memory (RAM), Flash memory, solid-state drive (SSD), and/or field-programmable gate array (FPGA). The system memory 204 may store, for example, configuration data, which may comprise parameters and/or code, comprising software and/or firmware.

The signal processing module 206 may comprise suitable logic, circuitry, interfaces, and/or code for enabling processing of signals transmitted and/or received by the electronic device 200. The signal processing module 206 may be operable to perform such signal processing operation as filtering, amplification, up-convert/down-convert baseband signals, analog-to-digital conversion and/or digital-to-analog conversion, encoding/decoding, encryption/decryption, and/or modulation/demodulation. The signal processing module 206 may be operable and/or configured to support low-power wireless protocol, such as ISO 18000-7, protocols described in above-incorporated U.S. Provisional Patent Application No. 61/464,376, and/or similar related protocols.

The transmit FE 210 may comprise suitable logic, circuitry, interfaces, and/or code that may be operable to perform wireless transmission, such as over a plurality of supported RF bands. The transmit FE 210 may enable, for example, performing wireless communications of RF signals via the transmission antenna 220. In this regard, the transmission antenna 220 may comprise suitable logic, circuitry, interfaces, and/or code that may enable transmission of wireless signals within certain bandwidths and/or based on certain protocols. For example, one or more of the transmission antenna 220 may enable transmission over the 433 MHz band, which may be suitable for ISM communication based on, for example, ISO 18000-7, protocols described in above-incorporated U.S. Provisional Patent Application No. 61/464,376, and/or similar related protocols.

Each of the plurality of receive FEs 212A-212N may comprise suitable logic, circuitry, interfaces, and/or code that may be operable to perform wireless reception, such as over a plurality of supported RF bands. Each of the plurality of receive FEs 212A-212N may enable, for example, performing wireless communications of RF signals via corresponding one of the plurality of reception antennas 222A-222N. Each of the plurality of reception antennas 222A-222N may comprise suitable logic, circuitry, interfaces, and/or code that may enable reception of wireless signals within certain bandwidths and/or based on certain protocols. For example, one or more of the plurality of reception antennas 222A-222N may enable reception of signals communicated over different channels within the 433 MHz band, which may be suitable for ISM communication based on, for example, ISO 18000-7, protocols described in above-incorporated U.S. Provisional Patent Application No. 61/464,376, and/or similar related protocols.

In various embodiments of the invention, the electronic device 200 may be operable to support and/or implement adaptive and/or selective use of forward error correction. In this regard, the electronic device may be configured to selectively use FEC encoding during signal transmissions operations and/or to selectively handle FEC decoding during signal reception operations. A particular, non-limiting embodiment for providing and/or supporting adaptive and/or selective FEC encoding and/or decoding is described in more detail with reference to FIG. 2B, below.

FIG. 2B is a block diagram illustrating exemplary symbol encoding and decoding modules that enable optional use of forward error correction (FEC) encoding/decoding, in accordance with an embodiment of the invention. Referring to FIG. 2B, there is shown symbol encoding module 250 and symbol decoding module 270.

The symbol encoding module 250 and/or the symbol decoding module 270 may be integrated into an electronic device, such as electronic device 200, to enable performing data encoding and/or decoding during communications to and/or from the electronic device. In this regard, the symbol encoding module 250 and/or the symbol decoding module 270 may be implemented as separate, stand alone physical components. Alternatively, the symbol encoding module 250 and/or the symbol decoding module 270 may comprise logical components, with functions and/or operations thereof being performed by existing components of the electronic device 200, such as signal processing module 206, the transmit FE 210, and/or one or more of the receive FEs 212A-212N.

The symbol encoding module 250 may comprise suitable logic, circuitry, interfaces, and/or code to encode data communicated via signals transmitted by an electronic device (e.g., electronic device 200). In this regard, messages transmitted or received over channels implemented in accordance with aspects of the present invention may comprise binary symbols corresponding to data carried thereby. The symbols may be encoded based on one or more methods supported by the electronic device 200, which may be specific to particular protocol(s), such as, for example, encoding methods specified for the ISO 18000-7 protocol, and/or similar protocols such as the protocols described in the above-incorporated U.S. Provisional Patent Application Ser. No. 61/464,376 and filed on Mar. 2, 2011. For example, the symbol encoding module 250 may be operable to support and/or apply two different encoding methods, the first being pseudo-random number 9-bit (PN9) encoding, and the second being forward error correction (FEC) encoding. In an embodiment of the invention, the symbol encoding module 250 may be operable to apply PN9 encoding as a mandatory first encoding stage, and to optionally apply FEC encoding as a second encoding stage. The symbol encoding module 250 may comprise, for example, a PN9 encoder 252, a demultiplexer (DEMUX) 254, and a FEC encoder 256.

The PN9 encoder 252 may comprise suitable logic, circuitry, interfaces, and/or code to perform PN9 encoding. In this regard, PN9 encoding is a “data whitening” encoding scheme, in which input data may be encoded to resemble white noise. The PN9 encoding is a full-rate, statistically DC-free encoding that offers no encoding gain. PN9 encoding (and similarly PN9 decoding) may comprise use of a Linear Feedback Shift Register (LFSR) and a seed polynomial to produce a predictable sequence of pseudo-random values, which may be XOR'ed with the datastream (e.g., the input data) to generate corresponding encoded data. The seed polynomial may be initialized to the value: x8+x7+x6+x5+x4+x3+x2+x1+x0.

The DEMUX 254 may comprise suitable logic, circuitry, interfaces and/or code operable to select an output corresponding to a particular input from a plurality of outputs—that is to route an input to one of a plurality of possible outputs—based on one or more control signals.

The FEC encoder 256 may comprise suitable logic, circuitry, interfaces, and/or code to perform FEC encoding. The FEC encoder 256 may implement FEC encoding via a first step 256A, which applies a computation (e.g., non-recursive) of convolutional code. The convolutional code may be, for example, a ½ rate convolutional code, using a specific algorithm of a particular constraint length (e.g., 4). The first, convolutional computation step 256A may be followed by a second, interleaver step 256B, which may apply interleaving computation, for example, a 4×4 matrix interleaver. U.S. Provisional Patent Application No. 61/464,376 provides more details on an exemplary FEC encoding using convolutional computation and interleaving. Use of FEC encoding may enable improving bit error rates in particular situations, such as in mid-to-low signal-to-noise ratio (SNR) environments, and less-so to improve decodability near the SNR limit (i.e., near the limit of communications range).

The symbol decoding module 270 may comprise suitable logic, circuitry, interfaces, and/or code to decode data obtained from signals received by an electronic device (e.g., electronic device 200). In this regard, the symbol decoding module 270 may be operable to decode encoded binary symbols corresponding to data carried in the received signals. In an exemplary aspect of the invention, the symbol may be encoded using PN9 encoding, and optionally, using FEC encoding as a second level encoding to already PN9 encoded data. The symbol decoding module 270 may comprise, for example, a demultiplexer (DEMUX) 272, a FEC decoder 274, and a PN9 decoder 276.

The DEMUX 272 may comprise suitable logic, circuitry, interfaces and/or code operable to select an output corresponding to a particular input from a plurality of outputs—that is to route an input to one of a plurality of possible outputs—based on one or more control signals.

The FEC decoder 274 may comprise suitable logic, circuitry, interfaces, and/or code to perform FEC decoding. The FEC decoder 274 may implement FEC decoding via a first de-interleaving step 274A, which may apply interleaving computation, followed by a second, convolutional computation step 274B. In other words, the operations of the FEC decoder 274 minors and/or reverse the operation of the FEC encoder 256. U.S. Provisional Patent Application No. 61/464,376 provides more details on an exemplary FEC encoding using convolutional computation and interleaving. The operations of the FEC decoder 274 may be more power and/or resource intensive than that of the FEC encoder 256, however. This may be because the computations of FEC encoder 256 may, for example, simply entail use of lookup tables whereas FEC decoder 274 may require use of actual, and complex mathematical calculations.

The PN9 decoder 276 may comprise suitable logic, circuitry, interfaces, and/or code to perform PN9 decoding. In this regard, PN9 decoding may enable extracting original data from corresponding PN9 encoded data. The PN9 decoder 274 may utilize a Linear Feedback Shift Register (LFSR) and a seed polynomial—e.g., the same polynomial used in PN9 encoding, to generate a sequence of pseudo-random values, which may be XOR'ed with the PN9 encoded data to enable generating the corresponding, original non-encoded data.

In operation, the symbol encoding module 250 may encode data communicated via signals transmitted by electronic device 200. In this regard, the symbol encoding module 250 may enable generating encoded symbols that are included in messages transmitted by the electronic device 200. The symbols may be encoded based on one or more methods supported by the electronic device 200. For example, the symbol encoding module 250 may encode data using encoding methods specific to particular supported protocol(s), such as the ISO 18000-7 protocol, and/or similar protocols such as the protocols described in the above-incorporated U.S. Provisional Patent Application Ser. No. 61/464,376 and filed on Mar. 2, 2011. In this regard, the symbol encoding module 250 applies PN9 encoding to input data, via PN9 encoder 252. The PN9 encoding may be mandatory, and may be applied to all data being written into messages transmitted by the electronic device 200. In an embodiment of the invention, the symbol encoding module 250 may also optionally apply FEC encoding as a second encoding stage to already PN9 encoded data. For example, the DEMUX 254 may be utilized to selectively apply or bypass FEC encoding after completion of PN9 encoding via the PN9 encoder 252. The selection performed via the DEMUX 254 may be controlled using a control signal: ENC_Select. In this regard, when the ENC_Select signal is asserted, the DEMUX 254 may route the input, corresponding to PN9 encoded data, to the FEC encoder 256, to apply FEC encoding thereto as a second stage encoding, thus the encoded output would be both PN9 and FEC encoded. On the other hand, when the ENC_Select signal is deasserted, the DEMUX 254 may route the input, corresponding to PN9 encoded data, directly to the output of the symbol encoding module 250, thus bypassing the FEC encoder 256, and resulting in the encoded output being only both PN9 encoded.

The symbol decoding module 270 may decode data carried in signals received by the electronic device 200. In this regard, the symbol decoding module 270 may enable decoding encoded symbols that are carried in messages received by the electronic device 200. The symbols may be encoded in accordance with methods supported by the electronic device 200. For example, the symbol decoding module 270 may support PN9 decoding and FEC decoding. In this regard, the symbol decoding module 270 may apply PN9 decoding, via the PN9 decoder 276, to all received data, and may optionally apply FEC decoding, via the FEC decoder 274, as a first decoding stage in some conditions. For example, the DEMUX 272 may be utilized to selectively apply or bypass FEC decoding, via FEC decoder 274, prior to applying PN9 decoding via the PN9 decoder 276. The selection performed via the DEMUX 272 may be controlled using a control signal: DEC_Select. In this regard, when the DEC_Select signal is asserted, the DEMUX 272 may route the encoded input, obtained from received signals, to the FEC decoder 274, to apply FEC decoding thereto as a first decoding stage, to obtain PN9 (only) encoded data, which may then be PN9 decoded via the PN9 decoder 276. On the other hand, when the ENC_Select signal is deasserted, the DEMUX 272 may route the encoded input, corresponding to PN9 (only) decoded data, directly to the PN9 decoder 276, thus bypassing the FEC decoder 274.

The optional FEC encoding and/or decoding, performed via the symbol encoding module 250 and the symbol decoding module 270, respectively, may be performed in accordance with adaptive and/or intelligent FEC use policies applied by the electronic device 200. In this regard, determining when to apply FEC encoding (by asserting ENC_Select signal) or to apply FEC decoding (by asserting DEC_Select signal) may be based on various factors, such as, for example, power consumption and/or requirement, resource use and/or availability, and/or communication conditions (e.g., power loss, latency, reliability, etc.). For example, FEC decoding may be turned off by deasserting the DEC_Select signals. This may further require instructing peer device(s) to not apply FEC encoding to messages (or signals) being sent to the electronic device. Also, use of FEC encoding and decoding may be asymmetric—i.e., the electronic device 200 may apply FEC encoding to transmitted messages while, during the same time period, not applying FEC decoding to received messages. Furthermore, the electronic device 200 may dynamically switch on/off FEC decoding or encoding. Determination as to when to use FEC encoding and/or decoding, and/or any changes thereto, may necessitate interactions with peer device(s) to coordinate any changes to use of FEC in either direction—i.e., from and/or to the electronic device 200.

In an embodiment of the invention, various FEC management profiles may be utilized to control and/or configure use of FEC during communications in an electronic device. In this regard, FEC management profiles may specify different information for controlling and/or determining when FEC use may be enabled and/or disabled, and whether to do so separately when transmitting (i.e., encoding) and when receiving (i.e., decoding). The FEC management profiles may specify, for example, parameters (e.g. thresholds) pertaining to power consumption and/or requirement, resource use and/or availability, and/or communication related conditions (e.g., power loss, latency, reliability, etc.). The FEC management profiles may be maintained, for example, by the host processor 202, and/or may be updated and/or modified thereby. The invention, however, need not be so limited.

FIG. 3A is a block diagram illustrating exemplary structure of a physical layer (PHY) packet carrying a data link layer frame, which may be utilized in accordance with an embodiment of the invention. Referring to FIG. 3A, there is shown an exemplary physical layer (PHY) packet 300 carrying a data link layer (DLL) frame 310, which may be structured in accordance with wireless protocols utilized by electronic devices that implement various aspects of the invention. Cross-referenced U.S. application Ser. No. ______ (Attorney Docket Number 24667US02), filed on Feb. 29, 2012, and cross-referenced U.S. application Ser. No. ______ (Attorney Docket Number 24669US02), filed on Feb. 29, 2012 provide more details on the structures of exemplary PHY packets and/or data link layer frames.

The data link layer (DLL) frames 310 carried in PHY packets 300 may comprise a length field, indicating the length of the DLL frame, a header and a footer, providing information pertaining to the frame and/or handling thereof, and a payload field. The DLL frame 310 may also comprise a cyclic redundancy check (CRC) field. The header may comprise, inter alia, a transmit equivalent isotropic radiated power (TxEIRP) field 320, which may indicate the original transmit power applied by the transmitting device in transmitting the packet (or frame). In other words, the TxEIRP field 320 embedded in the frame header may provide a device receiving PHY packet 300 with information pertaining to the transmit power applied by the transmitting device, enabling the receiving device to precisely determine the original transmit power for received signals being handled by the receiving device.

In various embodiments of the invention, the TxEIRP field 320 may be utilized to enable devices engaged in communication in which FEC may optionally be used, such as devices 102 and 1042, to determine power dissipation associated with communication therebetween. In this regard, the device may locally measure the power of received packets, such as, for example, in the form of received signal strength indication (RSSI), and use the measured RSSI and the TxEIRP field 320 to estimate the power loss associated with communication of packets between the devices—e.g., by determining the difference between the original transmission power and locally measure reception power. This power loss may correspond to power dissipation. The power dissipation may then be used in determining whether to use forward error correction (FEC). In this regard, when power dissipation is less than a minimum threshold, PLmin, FEC use may be unnecessary and/or undesirable since this may indicate that the devices are sufficiently close so that no error correction would be needed. When the power dissipation exceeds the minimum threshold, PLmin, FEC use may be determined to be necessary and/or desirable since this may indicate that the devices are not sufficiently close so that error correction would likely improve reliability of the communications. Furthermore, in some instance, it may be determined whether power dissipation exceeds a maximum threshold, PLmax, which may result in suspending communication since this may indicate that the devices are too far apart that FEC may be insufficient in guarding against errors during communication.

The power dissipation thresholds (PLmin and PLmax) may be configurable. In this regard, various FEC management profiles may be utilized, and these profiles may specify different thresholds for enabling/disabling FEC use, and/or for suspending communications between the devices.

FIG. 3B is a block diagram illustrating exemplary structure of a data link frame utilized by a requester device in a resource-constrained network to specify particular channels for transmitting responses from responder devices, in accordance with an embodiment of the invention. Referring to FIG. 3B, there is shown an exemplary mode 2 network protocol (M2NP) PDU 340 carrying therein a mode 2 query protocol (M2QP) command 350, which may be structured in accordance with the present invention. Cross-referenced U.S. application Ser. No. ______ (Attorney Docket Number 24667US02), filed on Feb. 29, 2012, and cross-referenced U.S. application Ser. No. ______ (Attorney Docket Number 24669US02), filed on Feb. 29, 2012 provide more details on M2NP PDUs and/or the M2QP commands.

The M2QP command 350 may be structured based on the concept of “request and response,” with the “command” being the operator of requests and the result returned by responses—that is a requesting device may communicate the M2QP command 350 to trigger responses from certain devices receiving the command (i.e., responding devices) under particular conditions. The M2QP command 350 may comprise a command code field, a command extension field, a dialog template 360, one or more other (optional) templates, and command data field. The various fields and/or elements of the M2QP command 350 are described in more details in the above-incorporated U.S. Provisional Patent Application Ser. No. 61/464,376 and filed on Mar. 2, 2011.

The dialog template 360 may comprise information that specifies channels that may be utilized in transmitting responses. In other words, the requesting device (e.g., device 102) sending the M2QP command 350 to responding devices (e.g., device 1042) may use the dialog template 360 to specify channels that the responding devices are authorized to use when transmitting responses to the requesting device. In this regard, the dialog template 360 may comprise a response timeout field 360A, a response channel list length field 360B, and a list of response channels 360C. The timeout field 360A may specify a timeout value, after the expiration of which the requesting device that issued the request will cease listening for a response on any of the channels. The response channel list length field 360B may specify the length of the list of response channels 360C—that is the number of channels listed as valid channels for use by the responding device(s). The response channel list length field 360B may be set to 0 (zero), in which case a single response channel is implicitly configured to the same channel used by the request. Alternatively, command parameters, such as a specific command value, command extension, and/or other M2QP bit-fields may be used as another way to declare that the response channel list is of zero (0) length, and that the same channel shall be used in the response as in the request. The list of response channels 360C may comprise one or more channel identifiers 3621-362N.

In an embodiment of the invention, the dialog template 360 may be utilized to enable a device (requesting device—e.g. device 102) to specify to another, peer device (the responding device—e.g. device 1042) the type of channels (FEC vs. non-FEC) that may be used by the responding device when sending responses to the requesting device. In this regard, channel identifiers in the list of response channels 360C may correspond to FEC and non-FEC channels. FEC and non-FEC channels may be physically different—i.e. only some channels may allow for, and support use of FEC encoding in messages communicated therein. Additionally or alternatively, the distinction between FEC and non-FEC channels may be a logical concept. In other words, each channel may be configured to allow (or not allow) use of FEC encoding such that each physical channel may have two logical channel IDs: one being FEC capable and the other being non-FEC. Accordingly, a physical channel may be configured to either use or not use FEC based on the channel identifiers associated with that physical channel is specified.

FIG. 4 is a flow chart that illustrates exemplary steps for performing adaptive configuration and/or use of forward error correction (FEC), in accordance with an embodiment of the invention. Referring to FIG. 4, there is shown a flow chart 400 comprising a plurality of exemplary steps for performing adaptive forward error correction in an electronic device, such as electronic device 200, during communications in a resource-constrained network.

In step 402, an analysis of whether use of FEC encoding for responses sent from the responding device is necessary and/or desirable may be performed. In this regard, the analysis may be based on various factors and/or conditions which may be pertinent to, and/or may necessitate, use (or no use) of FEC encoding. For example, the FEC use analysis may be based on latency and/or loss of power associated with the communication from the responding device to the requesting device. In step 404, a determination of whether to use FEC encoding by the responding device (based on the analysis of step 402) may be performed. In instances where it may be determined to use FEC encoding by the responding device, the process may proceed to step 406. In step 406, the requesting device may instruct the responding device to not use FEC encoding when responding (e.g., by specifying non-FEC capable channels).

Returning to step 404, in instances where it may be determined that the responding device use FEC encoding, the process may proceed to step 408. In step 408, an analysis of whether handling of FEC encoded responses sent from the responding device is feasible may be performed—i.e., whether the requesting device can handle FEC decoding. In this regard, the analysis may be based on various factors and/or conditions which may be pertinent to the ability of the requesting device to handle FEC decoding. This may comprise, for example, required and/or available power or other resources (e.g. processing or storage resources). In step 410, a determination of whether handling of FEC decoding by the requesting device is feasible (based on the analysis of step 408) may be performed. In instances where it may be determined that handling of FEC decoding by the requesting device is not feasible the process may proceed to step 406.

Returning to step 410, in instances where it may be determined that use of FEC encoding by the responding device may be necessary and/or desirable, the process may proceed to step 412. In step 412, the requesting device may instruct the responding device to use FEC encoding when responding (e.g., by specifying FEC capable channels).

Other embodiments of the invention may provide a non-transitory computer readable medium and/or storage medium, and/or a non-transitory machine readable medium and/or storage medium, having stored thereon, a machine code and/or a computer program having at least one code section executable by a machine and/or a computer, thereby causing the machine and/or computer to perform the steps as described herein for forward error correction (FEC) in a resource-constrained network.

Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.

The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.

While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.

Claims

1. A method, comprising:

in an electronic device comprising a communication interface for communicating over a physical medium: determining whether use of forward error correction (FEC) encoding in communications from another electronic device to said electronic device is necessary, desirable, and/or feasible; and when use of FEC encoding is feasible and either necessary or desirable, instructing said another electronic device to utilize FEC encoding when transmitting signals destined for said electronic device.

2. The method of claim 1, comprising determining whether use of FEC encoding is feasible and either necessary or desirable based on a determination of power loss associated with said communications from said another electronic device to said electronic device.

3. The method of claim 2, comprising determining said power loss based on measurement of received signal strength indication (RSSI) for packets received from said another electronic device and based on original transmit power for packets received from said another electronic device, said original transmit power being obtained from information embedded in said received packets.

4. The method of claim 2, comprising determining that use of FEC encoding is not necessary and is not desirable when said power loss is below a minimum threshold.

5. The method of claim 2, comprising instructing said another electronic device to cease transmission to said electronic device when said power loss exceeds a maximum threshold.

6. The method of claim 1, comprising determining when use of FEC encoding is necessary or desirable based on determination of latency associated with said communications from said another electronic device to said electronic device is necessary and/or feasible.

7. The method of claim 1, comprising determining when use of FEC encoding is feasible based on one or more parameters that are pertinent to FEC decoding handling in said electronic device.

8. The method of claim 7, wherein said one or more parameters comprise power, storage and/or processing related resources in said electronic device.

9. The method of claim 1, comprising instructing said another electronic device to utilize FEC encoding by specifying one or more FEC-capable channels for use by said another electronic device when transmitting said signals destined for said electronic device.

10. The method of claim 1, comprising selectively applying FEC encoding to transmissions to said another electronic device, wherein said selective use of FEC encoding is based on, at least in part, a determination of whether FEC decoding is feasible in said another electronic device.

11. A system, comprising:

an electronic device comprising a communication interface for communicating over a physical medium, said electronic device being operable to: determine whether use of forward error correction (FEC) encoding in communications from another electronic device to said electronic device is necessary, desirable, and/or feasible; and when use of FEC encoding is feasible and either necessary or desirable, instruct said another electronic device to utilize FEC encoding when transmitting signals destined for said electronic device.

12. The system of claim 11, wherein said electronic device is operable to determine whether use of FEC encoding is feasible and either necessary or desirable based on a determination of power loss associated with said communications from said another electronic device to said electronic device.

13. The system of claim 12, wherein said electronic device is operable to determine said power loss based on measurement of received signal strength indication (RSSI) for packets received from said another electronic device and based on original transmit power for packets received from said another electronic device, said original transmit power being obtained from information embedded in said received packets.

14. The system of claim 12, wherein said electronic device is operable to determine that use of FEC encoding is not necessary and is not desirable when said power loss is below a minimum threshold.

15. The system of claim 12, wherein said electronic device is operable to instruct said another electronic device to cease transmission to said electronic device when said power loss exceeds a maximum threshold.

16. The system of claim 11, wherein said electronic device is operable to determine when use of FEC encoding is necessary or desirable based on determination of latency associated with said communications from said another electronic device to said electronic device is necessary and/or feasible.

17. The system of claim 11, wherein said electronic device is operable to determine when use of FEC encoding is feasible based on one or more parameters that are pertinent to FEC decoding handling in said electronic device.

18. The system of claim 17, wherein said one or more parameters comprise power, storage and/or processing related resources in said electronic device.

19. The system of claim 11, wherein said electronic device is operable to instruct said another electronic device to utilize FEC encoding by specifying one or more FEC-capable channels for use by said another electronic device when transmitting said signals destined for said electronic device.

20. The system of claim 11, wherein said electronic device is operable to selectively apply FEC encoding to transmissions to said another electronic device, wherein said selective use of FEC encoding is based on, at least in part, a determination of whether FEC decoding is feasible in said another electronic device.

21. A system, comprising:

an electronic device comprising a communication interface for communicating over a physical medium, said electronic device being operable to: selectively use forward error correction (FEC) encoding when communicating with another electronic device, wherein said selective use of FEC encoding is based on, at least in part, information received from said another electronic device, said information specifying one or more channels that said another electronic device authorized said electronic device to use when transmitting to said another electronic device.

22. The system of claim 21, wherein said electronic device is operable to determine when to apply FEC encoding based on determination of type of said one or more channels.

23. The system of claim 21, wherein said electronic device is operable to apply FEC encoding when said determined type of said one or more channels indicates that said one or more channels are FEC channels.

24. The system of claim 21, wherein said selective use of FEC encoding is based on a determination of power loss of signals communicated between said another electronic device and said electronic device.

Patent History
Publication number: 20120226955
Type: Application
Filed: Feb 29, 2012
Publication Date: Sep 6, 2012
Inventor: John Peter Norair (San Francisco, CA)
Application Number: 13/408,440
Classifications