# Patent

## Title
Method and system for providing data communication in continuous glucose monitoring and management system

## Abstract

Method and apparatus for providing a data stream generator that generates a data stream associated with a monitored analyte level, and a radio frequency logic portion operatively coupled to the data stream generator, the radio frequency logic portion configured to generate a radio frequency data stream based on the data stream generated from the data stream generator, the radio frequency logic portion further including one or more finite state machines and a plurality of discrete digital logic circuits, the one or more finite state machines configured to control the plurality of digital logic circuits to generate the radio frequency data stream for wireless communication are provided. Systems and kits incorporating the same are also provided.

## Background
RELATED APPLICATIONS
The present application is a continuation of U.S. patent application Ser. No. 13/756,158 filed Jan. 31, 2013, now U.S. Pat. No. 9,088,452, which is a continuation of U.S. patent application Ser. No. 12/770,715 filed Apr. 29, 2010, now U.S. Pat. No. 8,368,556, entitled “Method and System for Providing Data Communication in Continuous Glucose Monitoring and Management System”, which claims priority under 35 U.S.C. §119(e) to U.S. Provisional Application No. 61/173,599 filed Apr. 29, 2009, entitled “Method and System for Providing Data Communication in Continuous Glucose Monitoring and Management System”, and to U.S. provisional Application No. 61/181,755 filed May 28, 2009, entitled “Device and Method for Creating Radio Frequency Data Stream with Minimal Logic”, the disclosures of each of which are incorporated in their entirety by reference for all purposes.


BACKGROUND
The present disclosure relates to an in-vivo continuous glucose monitoring and management system. More specifically, the present disclosure relates to communication protocol for data communication between, for example, a transmitter and a receiver, in the continuous glucose monitoring and management systems for insulin therapy.
In data communication systems such as continuous glucose monitoring systems for insulin therapy, analyte levels such as glucose levels of a patient are continuously monitored, and the measured glucose levels are used to determine and adjust diabetes treatment. For example, real time values of measured glucose levels would allow for a more robust and accurate diabetes treatment. Indeed, accurately measured glucose levels of a diabetic patient would enable a more effective insulin therapy by way of a more timely bolus determination and administration.
Medical devices for use in such systems described above include semiconductor chips and other electronic components that are configured for wireless communication of the monitored analyte or glucose data. One implementation of such data communication in medical devices include application specific integrated circuits (ASICs) that provide a single chip implementation of radio frequency data stream generation for wireless communication. Typical ASICs however, include a high gate count, require a significant amount of power and generate unwanted digital noise that interferes with the operation and functioning of the radio frequency data stream.
In view of the foregoing, it would be desirable to provide medical devices that generate radio frequency data stream which has a lower gate count, lower power logic, and less induced digital noise than typical circuits and devices including the same.
SUMMARY
Embodiments include an apparatus comprising a data stream generator that generates a data stream associated with a monitored analyte level, and a radio frequency logic portion operatively coupled to the data stream generator, the radio frequency logic portion configured to generate a radio frequency data stream based on the data stream generated from the data stream generator, the radio frequency logic portion further including one or more finite state machines and a plurality of discrete digital logic circuits, the one or more finite state machines configured to control the plurality of digital logic circuits to generate the radio frequency data stream for wireless communication.
Embodiments include generating a data stream associated with a monitored analyte level with a data stream generator, and operatively coupling a radio frequency logic portion to the data stream generator, the radio frequency logic portion configured to generate a radio frequency data stream based on the data stream generated from the data stream generator, the radio frequency logic portion further including one or more finite state machines and a plurality of discrete digital logic circuits, the one or more finite state machines configured to control the plurality of digital logic circuits to generate the radio frequency data stream for wireless communication.
INCORPORATION BY REFERENCE
The following patents, applications and/or publications are incorporated herein by reference for all purposes: U.S. Pat. Nos. 4,545,382; 4,711,245; 5,262,035; 5,262,305; 5,264,104; 5,320,715; 5,509,410; 5,543,326; 5,593,852; 5,601,435; 5,628,890; 5,820,551; 5,822,715; 5,899,855; 5,918,603; 6,071,391; 6,103,033; 6,120,676; 6,121,009; 6,134,461; 6,143,164; 6,144,837; 6,161,095; 6,175,752; 6,270,455; 6,284,478; 6,299,757; 6,338,790; 6,377,894; 6,461,496; 6,503,381; 6,514,460; 6,514,718; 6,540,891; 6,560,471; 6,579,690; 6,591,125; 6,592,745; 6,600,997; 6,605,200; 6,605,201; 6,616,819; 6,618,934; 6,650,471; 6,654,625; 6,676,816; 6,730,200; 6,736,957; 6,746,582; 6,749,740; 6,764,581; 6,773,671; 6,881,551; 6,893,545; 6,932,892; 6,932,894; 6,942,518; 7,167,818; and 7,299,082; U.S. Published Application Nos. 2004/0186365, now U.S. Pat. No. 7,811,231; 2005/0182306, now U.S. Pat. No. 8,771,183; 2007/0056858, now U.S. Pat. No. 8,298,389; 2007/0068807, now U.S. Pat. No. 7,846,311; 2007/0227911, now U.S. Pat. No. 7,887,682; 2007/0233013; 2008/0081977, now U.S. Pat. No. 7,618,369; 2008/0161666; and 2009/0054748, now U.S. Pat. No. 7,885,698; U.S. patent application Ser. No. 11/831,866, now U.S. Pat. No. 7,768,386; Ser. No. 11/831,881, now U.S. Pat. No. 8,834,366; Ser. Nos. 11/831,895; 12/102,839; 12/102,844, now U.S. Pat. No. 8,140,142; Ser. Nos. 12/102,847; 12/102,855; 12/102,856; 12/152,636, now U.S. Pat. No. 8,260,558; Ser. No. 12/152,648, now U.S. Pat. No. 8,600,681; Ser. No. 12/152,650, now U.S. Pat. No. 8,444,560; Ser. No. 12/152,652, now U.S. Pat. No. 8,239,166; Ser. Nos. 12/152,657; 12/152,662; 12/152,670, now U.S. Pat. No. 7,996,158; Ser. Nos. 12/152,673; 12/363,712, now U.S. Pat. No. 8,346,335; Ser. No. 12/131,012; 12/242,823, now U.S. Pat. No. 8,219,173; Ser. No. 12/363,712, now U.S. Pat. No. 8,346,335; Ser. Nos. 12/393,921; 12/495,709; 12/698,124; 12/699,653; 12/699,844; 12/714,439; 12/761,372; and 12/761,387, now U.S. Pat. No. 8,497,777, and U.S. Provisional Application Ser. Nos. 61/230,686 and 61/227,967.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a continuous glucose monitoring and management system in accordance with embodiments of the present disclosure;
FIG. 2 is a block diagram of the transmitter unit of the system shown in FIG. 1 in accordance with embodiments of the present disclosure;
FIG. 3 is a block diagram of the receiver unit of the system shown in FIG. 1 in accordance with embodiments of the present disclosure;
FIGS. 4A-4B show a diagram of a radio frequency data stream generator for use in the system of FIG. 1 in certain embodiments;
FIGS. 5A-5B show a state diagram illustrating the states of the radio frequency logic state machine of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment;
FIG. 6 illustrates an example Reed-Solomon encoder of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment;
FIG. 7 illustrates an example serializer of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment;
FIG. 8 is a state diagram illustrating the states of the serializer of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment;
FIG. 9 illustrates an example implementation of the Manchester encoder of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment;
FIG. 10 is a flowchart illustrating a method for generating a radio frequency data stream in one embodiment;
FIG. 11 illustrates application data including the sensor data from the transmitter of the system shown in FIG. 1 in accordance with one embodiment of the present disclosure;
FIGS. 12A-12C illustrate a data packet table for Reed-Solomon encoding in the transmitter, a depadded data table, and a data packet transmitted from the transmitter, respectively, in accordance with one embodiment of the system of FIG. 1;
FIG. 13 illustrates the data packet transmit window and time slots for transmission from the transmitter in one embodiment of the present disclosure;
FIG. 14 illustrates the timing of the transmitted data packet transmission by the transmitter and reception by the receiver in one embodiment of the present disclosure;
FIG. 15 illustrates a data packet at the receiver for demodulation in accordance with one embodiment of the present disclosure;
FIG. 16 is a flowchart illustrating the transmitter/receiver communication of the system shown in FIG. 1 in accordance with one embodiment;
FIG. 17 is a block diagram of a transmit window detector in one embodiment of the present disclosure;
FIGS. 18A and 18B are block diagrams of pseudo-random number generators for use in one or more embodiments of the present disclosure;
FIG. 19 is a flow chart illustrating transmit window determination in one embodiment of the present disclosure; and
FIG. 20 is a flow chart illustrating transmit window detection in one embodiment of the present disclosure.



DETAILED DESCRIPTION
Before the present disclosure is described in additional detail, it is to be understood that this disclosure is not limited to particular embodiments described, as such may, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and is not intended to be limiting, since the scope of the present disclosure will be limited only by the appended claims.
Where a range of values is provided, it is understood that each intervening value, to the tenth of the unit of the lower limit unless the context clearly dictates otherwise, between the upper and lower limit of that range and any other stated or intervening value in that stated range, is encompassed within the disclosure. The upper and lower limits of these smaller ranges may independently be included in the smaller ranges as also encompassed within the disclosure, subject to any specifically excluded limit in the stated range. Where the stated range includes one or both of the limits, ranges excluding either or both of those included limits are also included in the disclosure.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. Although any methods and materials similar or equivalent to those described herein can also be used in the practice or testing of the present disclosure, the preferred methods and materials are now described. All publications mentioned herein are incorporated herein by reference to disclose and describe the methods and/or materials in connection with which the publications are cited.
It must be noted that as used herein and in the appended claims, the singular forms “a”, “an”, and “the” include plural referents unless the context clearly dictates otherwise.
The publications discussed herein are provided solely for their disclosure prior to the filing date of the present application. Nothing herein is to be construed as an admission that the present disclosure is not entitled to antedate such publication by virtue of prior disclosure. Further, the dates of publication provided may be different from the actual publication dates which may need to be independently confirmed.
As will be apparent to those of skill in the art upon reading this disclosure, each of the individual embodiments described and illustrated herein has discrete components and features which may be readily separated from or combined with the features of any of the other several embodiments without departing from the scope or spirit of the present disclosure.
The figures shown herein are not necessarily drawn to scale, with some components and features being exaggerated for clarity.
FIG. 1 is a block diagram of a continuous glucose monitoring and management system 100 in accordance with embodiments of the present disclosure. In such embodiment, the continuous glucose monitoring and management system 100 includes a sensor 101, a transmitter unit 102 coupled to the sensor 101, and a receiver unit 104 which is configured to communicate with the transmitter unit 102 via a communication link 103. The receiver unit 104 may be further configured to transmit data to a data processing terminal 105 for evaluating the data received by the receiver unit 104. Referring again to the Figure, also shown in FIG. 1 is a medication delivery unit 106 which is operatively coupled to the receiver unit 104. In one embodiment, the medication delivery unit 106 may be configured to administer a predetermined or calculated insulin dosage based on the information received from the receiver unit 104. For example, as discussed in further detail below, the medication delivery unit 106 in one embodiment may include an infusion pump configured to administer basal profiles to diabetic patients, as well as to determine and/or administer one or more suitable boluses for the diabetic patients.
Only one sensor 101, transmitter unit 102, communication link 103, receiver unit 104, and data processing terminal 105 are shown in the embodiment of the continuous glucose monitoring and management system 100 illustrated in FIG. 1. However, it will be appreciated by one of ordinary skill in the art that the continuous glucose monitoring and management system 100 may include one or more sensor 101, transmitter unit 102, communication link 103, receiver unit 104, and data processing terminal 105, where each receiver unit 104 is uniquely synchronized with a respective transmitter unit 102.
In one embodiment of the present disclosure, the sensor 101 is physically positioned on the body of a user whose glucose level is being monitored. The term user as used herein is intended to include humans, animals, as well as any other who might benefit from the use of the glucose monitoring and management system 100. The sensor 101 may be configured to continuously sample the glucose level of the user and convert the sampled glucose level into a corresponding data signal for transmission by the transmitter unit 102. In one embodiment, the transmitter unit 102 is mounted on the sensor 101 so that both devices are positioned on the user's body. The transmitter unit 102 performs data processing such as filtering and encoding on data signals, each of which corresponds to a sampled glucose level of the user, for transmission to the receiver unit 104 via the communication link 103.
In one embodiment, the continuous glucose monitoring and management system 100 is configured as a one-way RF communication path from the transmitter unit 102 to the receiver unit 104. In such embodiment, the transmitter unit 102 is configured to continuously and repeatedly transmit the sampled data signals received from the sensor 101 to the receiver unit 104, without acknowledgement from the receiver unit 104 that the transmitted sampled data signals have been received. For example, the transmitter unit 102 may be configured to transmit the encoded sampled data signals at a fixed rate (e.g., at one minute intervals) after the completion of the initial power on procedure. Likewise, the receiver unit 104 may be configured to detect such transmitted encoded sampled data signals at predetermined time intervals. While a uni-directional communication path from the transmitter unit 102 to the receiver unit 104 is described herein, within the scope of the present disclosure, a bi-directional communication between the transmitter unit 102 and the receiver unit 104 is also included. Indeed, the transmitter unit 102 may include a transceiver to enable both data transmission and reception to and from the receiver unit 104 and/or any other devices communicating over the communication link 103 in the continuous data monitoring and management system 100.
As discussed in further detail below, in one embodiment of the present disclosure the receiver unit 104 includes two sections. The first section is an analog interface section that is configured to communicate with the transmitter unit 102 via the communication link 103. In one embodiment, the analog interface section may include an RF receiver and an antenna for receiving and amplifying the data signals from the transmitter unit 102, which are thereafter demodulated with a local oscillator and filtered through a band-pass filter. The second section of the receiver unit 104 is a data processing section which is configured to process the data signals received from the transmitter unit 102 such as by performing data decoding, error detection and correction, data clock generation, and data bit recovery.
In operation, upon completing the power-on procedure, the receiver unit 104 is configured to detect the presence of the transmitter unit 102 within its range based on the strength of the detected data signals received from the transmitter unit 102. For example, in one embodiment, the receiver unit 104 is configured to detect signals with strength exceeding a predetermined level in order to identify the transmitter unit 102 from which the receiver unit 104 is to receive data. Alternatively, the receiver unit 104 in a further embodiment may be configured to respond to signal transmission for a predetermined transmitter identification information of a particular transmitter unit 102 such that, rather than detecting the signal strength of a transmitter unit 102 to identify the transmitter, the receiver unit 104 may be configured to detect a transmitted signal from a predetermined transmitter unit 102 based on the transmitted transmitter identification information corresponding to the pre-assigned transmitter identification information for the particular receiver unit 104.
In one embodiment, the identification information of the transmitter unit 102 includes a 16-bit ID number. In an alternate embodiment, the ID number may be a predetermined length including a 24-bit ID number or a 32-bit ID number. Further, any other length ID number may also be used. Thus, in the presence of multiple transmitter units 102, the receiver unit 104 will only recognize the transmitter unit 102 which corresponds to the stored or reconstructed transmitter identification information. Data signals transmitted from the other transmitters within the range of the receiver unit 104 are considered invalid signals.
Referring again to FIG. 1, where the receiver unit 104 determines the corresponding transmitter unit 102 based on the signal strength of the transmitter unit 102, when the receiver unit 104 is initially powered-on, the receiver unit 104 is configured to continuously sample the signal strength of the data signals received from the transmitters within its range. If the signal strength of the data signals meets or exceeds the signal strength threshold level and the transmission duration threshold level, the receiver unit 104 returns a positive indication for the transmitter unit 102 transmitting the data signals. That is, in one embodiment, the receiver unit 104 is configured to positively identify the transmitter unit 102 after one data signal transmission. Thereafter, the receiver unit 104 is configured to detect positive indications for two consecutive data signal transmissions for a predetermined time period. At such point, after three consecutive transmissions, the transmitter unit 102 is fully synchronized with the receiver unit 104.
Upon identifying the appropriate transmitter unit 102, the receiver unit 104 begins a decoding procedure to decode the received data signals. In one embodiment, a sampling clock signal may be obtained from the preamble portion of the received data signals. The decoded data signals, which include fixed length data fields, are then sampled with the sampling clock signal. In one embodiment of the present disclosure, based on the received data signals and the time interval between each of the three data signal transmissions, the receiver unit 104 determines the wait time period for receiving the next transmission from the identified and synchronized transmitter unit 102. Upon successful synchronization, the receiver unit 104 begins receiving, from the transmitter unit 102, data signals corresponding to the user's detected glucose level. As described in further detail below, the receiver unit 104, in one embodiment, is configured to perform synchronized time hopping with the corresponding synchronized transmitter unit 102 via the communication link 103 to obtain the user's detected glucose level.
Referring yet again to FIG. 1, the data processing terminal 105 may include a personal computer, a portable computer such as a laptop or a handheld device (e.g., personal digital assistants (PDAs)), and the like, each of which is configured for data communication with the receiver via a wired or a wireless connection. Additionally, the data processing terminal 105 may further be connected to a data network (not shown) for storing, retrieving and updating data corresponding to the detected glucose level of the user.
FIG. 2 is a block diagram of the transmitter unit 102 of the continuous glucose monitoring and management system 100 in accordance with embodiments of the present disclosure. The transmitter unit 102 includes an analog interface 201 configured to communicate with the sensor 101 (FIG. 1), a user input 202, and a temperature measurement section 203, each of which is operatively coupled to a transmitter processing unit 204 such as a central processing unit (CPU). Further shown in FIG. 2 are a transmitter serial communication section 205 and an RF transmitter 206, each of which is also operatively coupled to the transmitter processing unit 204. Moreover, a power supply 207 is also provided in the transmitter unit 102 to provide the necessary power for the transmitter unit 102. Additionally, as can be seen from the Figure, clock 208 is provided to, among others, supply real time information to the transmitter processing unit 204.
In one embodiment, a unidirectional input path is established from the sensor 101 (FIG. 1) and/or manufacturing and testing equipment to the analog interface 201, while a unidirectional output is established from the output of the RF transmitter 206. In this manner, a data path is shown in FIG. 2 between the aforementioned unidirectional input and output via a dedicated link 209 from the analog interface 201 to serial communication section 205, thereafter to the processing unit 204, and then to the RF transmitter 206. As such, in one embodiment, through the data path described above, the transmitter unit 102 is configured to transmit to the receiver unit 104 (FIG. 1), via the communication link 103 (FIG. 1), processed and encoded data signals received from the sensor 101 (FIG. 1). Additionally, the unidirectional communication data path between the analog interface 201 and the RF transmitter 206 discussed above allows for the configuration of the transmitter unit 102 for operation upon completion of the manufacturing process as well as for direct communication for diagnostic and testing purposes.
Referring back to FIG. 2, the user input 202 includes a disable device that allows the operation of the transmitter unit 102 to be temporarily disabled, such as, by the user wearing the transmitter unit 102. In an alternate embodiment, the disable device of the user input 202 may be configured to initiate the power-up procedure of the transmitter unit 102.
As discussed above, the transmitter processing unit 204 is configured to transmit control signals to the various sections of the transmitter unit 102 during the operation of the transmitter unit 102. In one embodiment, the transmitter processing unit 204 also includes a memory (not shown) for storing data such as the identification information for the transmitter unit 102, as well as the data signals received from the sensor 101. The stored information may be retrieved and processed for transmission to the receiver unit 104 under the control of the transmitter processing unit 204. Furthermore, the power supply 207 may include a commercially available battery pack.
The physical configuration of the transmitter unit 102 is designed to be substantially water resistant, so that it may be immersed in non-saline water for a brief period of time without degradation in performance. Furthermore, in one embodiment, the transmitter unit 102 is designed so that it is substantially compact and light-weight, not weighing more than a predetermined weight such as, for example, approximately 18 grams. Furthermore, the dimensions of the transmitter unit 102 in one embodiment include 52 mm in length, 30 mm in width and 12 mm in thickness. Such small size and weight enable the user to easily carry the transmitter unit 102.
The transmitter unit 102 is also configured such that the power supply section 207 is capable of providing power to the transmitter for a minimum of three months of continuous operation after having been stored for 18 months in a low-power (non-operating) mode. In one embodiment, this may be achieved by the transmitter processing unit 204 operating in low power modes in the non-operating state, for example, drawing no more than approximately 1 μA. Indeed, in one embodiment, the final step during the manufacturing process of the transmitter unit 102 places the transmitter unit 102 in the lower power, non-operating state (i.e., post-manufacture sleep mode). In this manner, the shelf life of the transmitter unit 102 may be significantly improved.
Referring again to FIG. 2, the analog interface 201 of the transmitter unit 102 in one embodiment includes a sensor interface (not shown) configured to physically couple to the various sensor electrodes (such as, for example, working electrode, reference electrode, counter electrode, (not shown)) of the sensor 101 (FIG. 1) of the monitoring system 100. The analog interface section 201 further includes a potentiostat circuit (not shown) which is configured to generate the Poise voltage determined from the current signals received from the sensor electrodes. In particular, the Poise voltage is determined by setting the voltage difference between the working electrode and the reference electrode (i.e., the offset voltage between the working electrode and the reference electrode of the sensor 101). Further, the potentiostat circuit also includes a transimpedance amplifier for converting the current signal on the working electrode into a corresponding voltage signal proportional to the current. The signal from the potentiostat circuit is then low pass filtered with a predetermined cut-off frequency to provide anti-aliasing, and thereafter, passed through a gain stage to provide sufficient gain to allow accurate signal resolution detected from the sensor 101 for analog-to-digital conversion and encoding for transmission to the receiver unit 104.
Referring yet again to FIG. 2, the temperature measurement section 203 of the transmitter unit 102 is configured to monitor the temperature of the skin near the sensor insertion site. The temperature reading is used to adjust the glucose readings obtained from the analog interface 201. As discussed above, the input section 202 of the transmitter unit 102 includes the disable device which allows the user to temporarily disable the transmitter unit 102 such as for, example, to comply with the FAA regulations when aboard an aircraft. Moreover, in a further embodiment, the disable device may be further configured to interrupt the transmitter processing unit 204 of the transmitter unit 102 while in the low power, non-operating mode to initiate operation thereof.
The RF transmitter 206 of the transmitter unit 102 may be configured for operation in the frequency band of 315 MHz to 322 MHz, for example, in the United States. Further, in one embodiment, the RF transmitter 206 is configured to modulate the carrier frequency by performing Frequency Shift Keying and Manchester encoding. In one embodiment, the data transmission rate is 19,200 symbols per second, with a minimum transmission range for communication with the receiver unit 104.
FIG. 3 is a block diagram of the receiver unit 104 of the continuous glucose monitoring and management system 100 in accordance with one embodiments of the present disclosure. Referring to FIG. 3, the receiver unit 104 includes a blood glucose test strip interface 301, an RF receiver 302, an input 303, a temperature monitor section 304, and a clock 305, each of which is operatively coupled to a receiver processing unit 307. As can be further seen from the Figure, the receiver unit 104 also includes a power supply 306 operatively coupled to a power conversion and monitoring section 308. Further, the power conversion and monitoring section 308 is also coupled to the receiver processing unit 307. Moreover, also shown are a receiver communication section 309, and an output 310, each operatively coupled to the receiver processing unit 307.
In one embodiment, the test strip interface 301 includes a glucose level testing portion to receive a manual insertion of a glucose testing strip, and thereby determine and display the glucose level of the testing strip on the output 310 of the receiver unit 104. This manual testing of glucose can be used to calibrate sensor 101. The RF receiver 302 is configured to communicate, via the communication link 103 (FIG. 1) with the RF transmitter 206 of the transmitter unit 102, to receive encoded data signals from the transmitter unit 102 for, among others, signal mixing, demodulation, and other data processing. The input 303 of the receiver unit 104 is configured to allow the user to enter information into the receiver unit 104 as needed. In one aspect, the input 303 may include one or more keys of a keypad, a touch-sensitive screen, or a voice-activated input command unit. The temperature monitor section 304 is configured to provide temperature information of the receiver unit 104 to the receiver processing unit 307, while the clock 305 provides, among others, real time information to the receiver processing unit 307.
Each of the various components of the receiver unit 104 shown in FIG. 3 are powered by the power supply 306 which, in one embodiment, includes a battery. Furthermore, the power conversion and monitoring section 308 is configured to monitor the power usage by the various components in the receiver unit 104 for effective power management and to alert the user, for example, in the event of power usage which renders the receiver unit 104 in sub-optimal operating conditions. An example of such sub-optimal operating condition may include, for example, operating the vibration output mode (as discussed below) for a period of time thus substantially draining the power supply 306 while the processing unit 307 (thus, the receiver unit 104) is turned on. Moreover, the power conversion and monitoring section 308 may additionally be configured to include a reverse polarity protection circuit such as a field effect transistor (FET) configured as a battery activated switch.
The communication section 309 in the receiver unit 104 is configured to provide a bi-directional communication path from the testing and/or manufacturing equipment for, among others, initialization, testing, and configuration of the receiver unit 104. Serial communication section 309 can also be used to upload data to a computer, such as time-stamped blood glucose data. The communication link with an external device (not shown) can be made, for example, by cable, infrared (IR) or RF link. The output 310 of the receiver unit 104 is configured to provide, among others, a graphical user interface (GUI) such as a liquid crystal display (LCD) for displaying information. Additionally, the output 310 may also include an integrated speaker for outputting audible signals as well as to provide vibration output as commonly found in handheld electronic devices, such as mobile telephones presently available. In a further embodiment, the receiver unit 104 also includes an electro-luminescent lamp configured to provide backlighting to the output 310 for output visual display in dark ambient surroundings.
Referring back to FIG. 3, the receiver unit 104, in one embodiment, may also include a storage section such as a programmable, non-volatile memory device as part of the processing unit 307, or provided separately in the receiver unit 104, operatively coupled to the processing unit 307. The processing unit 307 is further configured to perform Manchester decoding as well as error detection and correction upon the encoded data signals received from the transmitter unit 102 via the communication link 103.
FIGS. 4A-4B show a diagram of a radio frequency data stream generator for use in the system of FIG. 1 in certain embodiments. Referring to FIGS. 4A-4B, the radio frequency data stream generator 426, in certain embodiments, includes a radio frequency (RF) logic finite state machine (FSM) 430, a multiplexer 432, a Reed-Solomon encoder 434, a clock circuit 436, a set of RF data registers and a counter 438, a serializer 440, and a Manchester encoder 442. In some embodiments, the radio frequency data stream generator 426 (also known as RF logic section) is the data interface to the radio frequency (RF) transmitter 428. The radio frequency data stream generator 426 moves data packets from the data multiplexer 422, which, in certain embodiments, operates in a 32 KHz clock domain, to the RF data registers 438, which, in certain embodiments, operates in a 26 MHz clock domain. The radio frequency data stream generator 426 additionally adds the parity bits to the data packets using the Reed-Solomon encoder 434, adds the dotting pattern using the Manchester encoder 442, and presents the Manchester encoded bit stream to the RF transmitter 428.
Referring still to FIGS. 4A-4B, the transmit state machine 424, which, in certain embodiments, operates in a 32 KHz clock domain, starts the radio frequency data stream generation sequence by turning on the clock circuit 436, which, in certain embodiments, is a 26 MHz clock, and issuing a build packet command to the RF logic FSM 430. Data is stored in the set of RF data registers and counter 438 while the data packet is being built. The set of RF data registers and counter 438, in certain embodiments, contains eleven registers that hold the RF packet data, and each register is eight bits wide. The set of RF data registers and counter 438, in certain embodiments, also contains a counter to track the data stored by the RF logic FSM 430. Once the packet is built, the transmit state machine 424 issues a send packet command to the RF logic FSM 430, which instructs the RF logic FSM 430 to transmit the data packet to the RF transmitter 428. The sequence terminates when the RF logic FSM 430 issued an RF data sent signal back to the transmit state machine 424, indicating the data packet was transmitted via the RF transmitter 428.
In certain embodiments, the RF logic finite state machine 430 is in the 26 MHz clock domain. Unless the RF logic FSM 430 is processing data packets to generate the RF data stream, it is idle and is only called by the transmit state machine 424 (in the 32 KHz clock domain) when it is time to generate the RF data stream. The RF logic FSM 430 interfaces with the Reed-Solomon encoder 434, the data multiplexer 422 (also referred to as the packet engine), the RF data registers 438, the serializer 440, and the Manchester encoder 442, as shown in FIGS. 4A-4B. The noise induced by the control logic side is reduced because all the packet data is stored in the RF logic and are operated on by logic in the same clock domain as the RF circuits so that most of the control logic is quiet as the tasks are handled by the RF logic.
FIGS. 5A-5B show a state diagram illustrating the states of the radio frequency logic finite state machine of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment. The state diagram of FIGS. 5A-5B of the radio frequency logic finite state machine 430 of FIGS. 4A-4B shows the states of the radio frequency logic finite state machine 430 (S0 to S8) and the signals at various states of the radio frequency logic finite state machine 430.
FIG. 6 illustrates an example Reed-Solomon encoder of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment. In one embodiment, the Reed-Solomon encoder 434 may be connected to a data packet buffer 480, as shown in FIG. 6. In this embodiment, the Reed-Solomon encoder 434 receives a 249 byte message and produces six parity bytes (Parity_byte_1 to Parity_byte_6). The input signals to the Reed-Solomon encoder include an nReset signal, which is an active low signal that resets the Reed-Solomon encoder, a CLK or clock signal, which, in one embodiment, is a 13 MHz system clock signal, a Start signal, which provides a one clock period active high signal from, for example, the RF logic FSM 430 (FIGS. 4A-4B) to inform the Reed-Solomon encoder 434 to start the encoding process by resetting all the polynomial and state registers to zero. Further, the Reed-Solomon encoder 434 receives an in byte eight-bit message that is to be encoded.
Referring still to FIG. 6, the Reed-Solomon encoder 434 includes output signals Parity_byte_1 to Parity_byte_6, which are the six parity bytes that are generated as a result of the encoding of the 249 byte message, a done output bit to communicate to the RF logic FSM 430 (FIGS. 4A-4B) that the encoding process is completed, and an eight-bit Address signal that can be sent to the data packet buffer 480 to retrieve the 19 bytes of the 249 byte message, while the rest of the 230 bytes of the 249 byte message are zero and generated by the Reed-Solomon encoder 434.
FIG. 7 illustrates an example serializer of the radio frequency data stream generator of FIGS. 4A-4B. Referring to FIG. 7, the serializer 440 is, in effect, a large parallel to serial converter in which data is presented at the input of a large multiplexer. The data is then multiplexed out one bit-at-a-time, for example, at a baud rate of 19.2 Kbit/sec. In certain embodiments, the size of the data packet is eleven data bytes for a normal packet and six data bytes for a response packet. The serializer 440 counter termination count varies depending on the type of packet. For a normal packet, the count is 183 (for 184 bits) and for a response packet, the count is 143 (for 144 bits).
FIG. 8 is a state diagram illustrating the states of the serializer of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment. The state diagram of FIG. 8 is an example implementation of a serializer state machine 490 that is part of the radio frequency data stream generator of FIGS. 4A-4B in which the two states of the serializer and the signals during each state or state transition are shown.
FIG. 9 illustrates an example implementation of the Manchester encoder of the radio frequency data stream generator of FIGS. 4A-4B in one embodiment. Referring to FIG. 9, data from the serializer 440 (FIGS. 4A-4B) is Manchester encoded by the Manchester encoder 442 (FIGS. 4A-4B). The data is encoded such that NRZ 0=01 and NRZ 1=10, as illustrated in FIG. 9. This way each bit of data produces a Manchester symbol of two bits where the Manchester clock is, for example, 38.4 KHz or twice the bit clock rate. In one embodiment, both the serializer 440 and Manchester encoder 442 clocks are divided versions of the 26 MHz clock of the RF data stream generator.
FIG. 10 is a flowchart illustrating a method for generating a radio frequency data stream in one embodiment. RF data streams generated may include glucose monitoring system data, such as current and/or historical sensor signal data. Referring to FIGS. 10 and 4, the RF logic FSM 430 waits in state 0, or an idle state, until it receives a build packet command from the transmit state machine 424 (1001). The data multiplexer 422 contains all the RF packet data values, and the data values are arranged such that when the select line, i.e. PacketDataSelect[3:0] is incremented, the data appears on SystemData[7:0] in the proper format and sequence. The transmit state machine 424 and the RF logic FSM 430 do not control the packet formatting. As the packet data, i.e. PacketDataSelect[3:0], is incremented by the RF logic FMS 430 (1002), the RF logic FSM 430 accesses a byte from the data multiplexer 422 (1003). This byte is then stored in the Reed-Solomon encoder 434 for parity generation and also stored in the corresponding RF data register 438 (1004).
Once all the data is sent, the RF logic FSM pads ‘0’ bytes to the Reed-Solomon encoder 434 until the Reed-Solomon encoder 434 issues a parity valid indication (1005). Once the packet is built, the RF logic FSM 430 advances to state 6 and issues a packet build command to the transmit state machine 424 (1006). At this point, all the packet data is stored in the RF data registers 438 (1007), the parity bytes are routed to the serializer 440 (1008), and the packet header is hardwired internal to the serializer 440. The serializer 440 is a large N to 1 multiplexer that sends out the data serially as the select line is incremented.
Still referring to FIGS. 10 and 4, when the transmit state machine 424 issues a send packet command, the RF logic FSM 430 advances to state 7 and starts the serializer counter (1009). When the serializer 440 reaches a max count, a serializer done command is sent to the RF logic FSM 430 (1010). The data is shifted out to the Manchester encoder 442 (1011), for example at a baud rate of 19.2k. The packet data is then sent to the RF transmitter 428 (1012). The RF logic FSM 430 then advances to state 8 and issues an RF data sent signal to the transmit state machine 424 (1013). The RF logic FSM 430 then goes back to state 0 to wait for the next command for data packet generation process from the transmit state machine 424.
FIG. 11 illustrates an application data packet including the sensor data from the transmitter of the system shown in FIG. 1 in accordance with one embodiment of the present disclosure. Referring to FIG. 11, in one embodiment, each data packet from the transmitter unit 102 includes 15 bytes as shown in the Figure. For example, the first byte (zero byte) corresponds to the transmitter unit 102 transmit time information (“TxTime”) which is a protocol value and is configured to start at zero and incremented with every data packet. In one embodiment, the transmit time (TxTime) data is used for synchronizing the transmit window hopping and error correction as discussed in further detail below. Referring back to FIG. 11, the transmit data packet also includes bytes 1 to 14 which comprise the application payload that includes signal representation of the glucose values measured by the sensor 101, and which is to be encoded with transmission protocol information and transmitted to the receiver unit 104. For example, in one embodiment, the transmission data packet is Reed-Solomon encoded and transmitted to the receiver unit 104, which is configured to detect and correct up to 3 symbol errors. It should be noted that the Reed-Solomon encoding discussed herein may be configured to perform forward error correction encoding on the transmission data packet prior to transmission to the receiver unit 104.
FIGS. 12A-12C illustrate a data packet table for Reed-Solomon encoding in the transmitter, a depadded data table, and a data packet transmitted from the transmitter, respectively, of the continuous glucose monitoring and management system of FIG. 1 in accordance with one embodiment. Referring to FIG. 12A, it can be seen that the Reed-Solomon encoded data block contents include 15 bytes of packed data (FIG. 11), one byte of the least significant bit (LSB) of the transmitter identification information (TxID), one byte of the least middle significant bit of the transmitter identification information (TxID), one byte of the most middle significant bit of the transmitter identification information (TxID), one byte of the most significant bit (MSB) of the transmitter identification information (TxID), 230 bytes of zero pads, 6 bytes of parity symbols, to comprise a total of 255 bytes.
In one embodiment, the Reed-Solomon encode procedure at the transmitter unit 102 uses 8 bit symbols for a 255 symbol block to generate the 6 parity symbols. The encoding procedure may include the encoding of the transmitter identification information into the parity symbols. The transmitter unit 102 (FIG. 1) in one embodiment is configured to build the data portion (15 bytes of packed data) of the data block shown in FIG. 12A (for example, using a virtual realization of the table). The transmitter unit 102 is configured to remove the 230 bytes of zero pads, and the 4 bytes of transmitter identification information (TxID), resulting in the 21 bytes of depadded data block including the 15 bytes of packed data and the 6 bytes of parity symbols as shown in FIG. 12B.
In one embodiment, the transmitter identification information (TxID) is not included in the transmitted data transmitted from the transmitter unit 102 (FIG. 1) to the receiver unit 104. Rather, the receiver unit 104 may be configured to determine the transmitter identification information (TxID) from the received data by using Reed-Solomon decoding. More specifically, when decoding the first data packet received from a transmitter unit 102, the receiver unit 104 may be configured to set the value corresponding to the transmitter identification information (TxID) to zero, and to indicate to the Reed-Solomon decoder that the transmitter identification information (TxID) is known to be incorrect. The Reed-Solomon decoder may then be configured to use this information to more effectively “correct” during the error correction procedure, and therefore to recover the transmitter identification information (TxID) from the received data. Indeed, in subsequent data packets, the received pads and the received data packet with the known transmitter identification information (TxID) are used to facilitate with the error detection.
Referring back to FIG. 12C, a link prefix is added to the depadded data block to complete the data packet for transmission to the receiver unit 104 (FIG. 1). The link prefix allows the receiver unit 104 to align the byte boundaries associated with the transmitted data from the transmitter unit 102 for Reed-Solomon decoding as described in further detail below. More specifically, as shown in FIG. 12C, the transmitter unit 102 is configured to add 4 bytes of link prefix (0x00, 0x00, 0x15, and 0x67) to the 21 bytes of depadded data block to result in 25 bytes of data packet. In this manner, once powered up and enabled in operational mode, the transmitter unit 102 is configured to transmit the 25 byte data packet once every minute. More specifically, in one embodiment, the transmitter unit 102 may be configured to Manchester encode the data at 2 Manchester bits per data bit (0=10; 1=01), and transmit the Manchester bits at 20,000 Manchester bits per second. It should be noted here that the Manchester encoding in one embodiment is configured to encode the data clock with the transmitted data. Further, it may be configured to shift the frequency content up so that there is no DC (direct current) content. The transmitter unit 102 may be configured to transmit the data packets with the most significant bit—byte zero first.
In this manner, in one embodiment of the present disclosure, the transmitter unit 102 may be configured to transmit a data packet once per minute, where the time between each data packet transmission may range between 50 to 70 seconds. In one embodiment, the transmitter may be configured to maintain a minute tick reference to schedule transmit windows as discussed in further detail below. The first data packet then may be scheduled relative to that time.
More specifically, the time that the data packet is transmitted by the transmitter unit 102 may vary from minute to minute. For example, in one embodiment, the first 10 seconds after a minute tick are divided into time windows each being 25 milliseconds wide, and numbered from 0 to 399. The transmitter unit 102 may then be configured to select the transmit window based upon a predetermined transmit configuration.
In one embodiment, the transmitter unit 102 may be configured to select a transmit window based on the transmitter identification information (TxID) and the transmit time information (TxTime). As discussed in further detail below, the transmit time (TxTime) represents a value that starts at zero and increments to 256 for each data packet sent. When the transmit time (TxTime) is equal to zero, a pseudo random number generator is seeded with the transmitter identification information (TxID). Then, for each minute, the pseudo random number generator may be used to generate the transmit window for that minute.
FIG. 13 illustrates the data packet transmit window and time slots for transmission from the transmitter in one embodiment of the present disclosure. In particular, the transmit window in one embodiment of the present disclosure may be configured such that 30 collocated transmitters may operate without any one of them losing data due to transmitter collisions. As discussed in further detail below, to prevent two or more transmitters from continuously colliding, a time hopping mechanism may be implemented to randomize the transmit time.
For example, each minute may be divided into 25 millisecond windows as shown in FIG. 13. As shown in the Figure, a one second window may be divided into 40 time slots, and further, a one minute window may be segmented into 2,400 time slots for transmission. With the transmitter configured to transmit on average once per minute, the data burst is 200 bits long including preamble and a 1 millisecond transmitter warm up, resulting in approximately 25 millisecond burst duration.
Accordingly, in order to prevent transmission from two transmitters from continuously colliding with each other, the transmit time may be offset on each transmission. In one embodiment, the transmit time offset configuration may be implemented as a function of the transmission identification information (TxID) and the transmit time (TxTime).
For example, in one embodiment, with the transmission at once per minute plus 10 seconds, during this 10 second period, 80 time segment windows may be reserved from sensor measurements. Thus since there are 40 transmission windows per each second, the 10 second duration results in 400 transmission windows from which the 80 time segment windows is deducted (for sensor measurement). This results in 320 possible transmission windows to select when to transmit the data packet by the transmitter unit 102. In one embodiment, the transmit time (TxTime) may be 8 bits, and each transmitter may be configured to select a time slot from the 320 possible transmission windows for data transmission. It should also be noted here that once the receiver unit 104 corresponding to a particular transmitter unit 102 is aware of the transmit time (TxTime) associated with the transmitter unit 102, the receiver unit 104 may determine the future transmit window times associated with the transmitter unit 102 without additional information from the transmitter unit 102. This provides substantial advantages, for example, from power savings perspective, in that the receiver unit 104 may substantially accurately anticipate the transmit window for data transmission from the transmitter unit 102, and thus capture and receive substantially all of the transmitted data packets from the transmitter unit 102 without continuously listening out for the transmission data.
FIG. 14 illustrates the timing of the transmitted data packet transmission by the transmitter and reception by the receiver in one embodiment of the present disclosure. Referring to the Figure, in one embodiment, the receive window for the receiver unit 104 (FIG. 1) may be configured to be synchronized with the corresponding transmitter when a start indicator of the transmission is detected by the receiver unit 104. For example, the receiver unit 104 may be configured to synchronize the receive window with the associated transmitter unit 102 accurately with a phase locked start indicator. From the phase locked start indicator, the receiver unit 104 may predict the subsequent transmit burst time, with the error being limited to the relative drift between transmissions. When a transmit data packet is missed, the receiver unit 104 may be configured to widen the receive window. In one embodiment, the receive window may be configured relatively narrow so as to maintain the duty cycle low. In the case where the transmitter time drifts substantially to cause the receiver to miss a transmission, the next receive window may be configured to open substantially relatively wide to ensure that the data packet is not missed.
Referring back to the Figures, and each transmission time, the transmitter unit 102 (FIG. 1) is configured to send a data packet which is Manchester encoded, at two Manchester bits per data bit, with 1,900 Manchester bits per second. More specifically, the transmit data packet received by the receiver unit 104 in one embodiment comprises a dotting pattern, a data start indicator, and a forward error correction data as shown in FIG. 14. In one embodiment, the receiver unit 104 may be configured to use the dotting pattern to phase lock to the received signal and to extract the transmitted data clock information.
For optimal accuracy, in one embodiment, the received data should be sampled in the middle of the bit time. The receiver unit 104 needs to maintain phase lock to the data to limit the accumulation of timing error. Referring again to FIG. 14, the start indicator is configured to provide immunity to bit errors during data synchronization. More specifically, after determining the bit time and phase, the receiver unit 104 is configured to start collecting and saving the received data bits. The receiver unit 104 may be configured to search the received bit stream for data start indicator. In one embodiment, a 12-bit start indicator may be immune to all 2 bit errors. In other words, the receiver unit 104 may be configured such that it does not false detect or miss the start indicator with up to 2 bit errors. In one embodiment, a 13 bit start indicator may be used.
Referring again to FIG. 14, the transmitter identification information (TxID) may in one embodiment be used to schedule transmit time. As discussed above, the transmitter identification information (TxID) may be included in the forward error correction parity determination, and not transmitted with the transmission data packet.
Furthermore, the receiver unit 104 may be configured to discard a data packet when one of the following error conditions is detected. First, the receiver unit 104 may be configured to discard the data packet where the Reed-Solomon decoding procedure indicates that the data packet is uncorrectable. Second, after decoding, the receiver unit 104 may be configured to verify that all of the zero pad symbols are zero. A non-zero indicates that the Reed-Solomon decode procedure has inadvertently “corrected” a pad byte from zero to some other value. In this case, the receiver unit 104 is configured to discard the associated data packet.
Third, after decoding, the receiver unit 104 is configured to verify that the transmitter identification information (TxID) pad symbols correspond to the correct transmitter identification information (TxID). Again, an incorrect value representing the transmitter identification information (TxID) indicates that the Reed-Solomon decode procedure has inadvertently “corrected” a pad byte to some other value. In this case, as before, the receiver unit 104 is configured to discard the data packet associated with the incorrect transmitter identification information (TxID). Finally, an unexpected value associated with the transmit time (TxTime) for the data packet will indicate an error, since the transmit time (TxTime) is a predictable and determinable value, and which increments for every packet transmitted, as discussed above. In this case, the receiver unit 104 is configured to discard the data packet associated with the unexpected transmit time (TxTime) value.
Furthermore, in certain cases, the receiver unit 104 may be prevented from receiving the correct data from an in range transmitter unit 102. These include missed data synchronization, uncorrectable data packet due to random noise, and uncorrectable data packet due to burst noise. On average, at worst received signal strength, the receiver unit 104 may miss one data packet every 1.7 days. Burst noise is a function of the physical location, including the colliding of two transmitters that have overlapping transmission range. As discussed herein, the time hopping procedure makes it less likely that two transmitters will collide several times consecutively.
FIG. 15 illustrates a data packet at the receiver for demodulation in accordance with one embodiment of the present disclosure. As discussed above, the receiver unit 104 (FIG. 1) in one embodiment may be configured to demodulate or extract the data clock from the received signal and to capture the received bit stream. More specifically, during the receiver unit 104 bit synchronization, the receiver unit 104 may be configured to establish phase lock during the leading zeros of the link prefix, to maintain the phase lock during the entire received bit stream, to save the data packet contents with the most significant bit first, or to save the data packet contents byte zero first.
With respect to receiver unit 104 frame synchronization, the receiver unit 104 in one embodiment may be configured to identify a bit sequence that is a Hamming distance of 2 or less from the transmitted data start indicator (FIG. 14). Moreover, the receiver unit 104 may be configured so that the received bit stream is byte aligned using the first data bit as the first byte boundary.
In one embodiment, the receiver unit 104 may be configured to wait up to 70 seconds for a data packet. The receiver unit 104 may be configured to perform synchronized time hopping with a corresponding transmitter unit 102, and to maintain time hop synchronization for more than 30 minutes, for example, of un-received data packets. Alternatively, the receiver in one embodiment may be configured to maintain time hop synchronization with the relative temperature changes of the transmitter and receiver from the minimum and maximum crystal frequency extremes, which tests the ability of the receiver unit 104 to track the transmitter unit 102 time base as the crystal frequency of both devices changes with temperature.
Referring back to the Figures, the receiver unit 104 is configured to perform Reed-Solomon decode procedure to the received data packet received from the transmitter unit 102. More specifically, the receiver unit 104 in one embodiment is configured to build the Reed-Solomon data block contents as shown in FIG. 11 from the data packet received from the transmitter unit 102. Again, the packed data are the first 15 bytes of the received packet, and the parity symbols are the next 6 bytes. The zero pad bytes are set to zero.
Additionally, the receiver unit 104 may be configured to perform error detection and corrections including determining whether the Reed-Solomon decode function returns a success, whether all of the 230 zero pad bytes are still zero, where in each of the cases, the receiver unit 104 is configured to discard the data packet if any of these checks fail. Moreover, in the case where the receiver unit 104 has acquired a corresponding transmitter unit 102, the receiver unit 104 may be configured to check that the 32 bit transmitter identification information (TxID) is correct, and also, whether the transmit window time (TxTime) value is accurate (i.e., incrementing every minute). If any of these checks fail, the receiver unit 104 flags an error, and is configured to discard the data packet associated with the error.
FIG. 16 is a flowchart illustrating the transmitter/receiver communication of the system shown in FIG. 1 in accordance with one embodiment. Referring to FIG. 16, upon completing the power up procedure as discussed above, the receiver unit 104 (FIG. 1) listens for the presence of a transmitter within the RF communication link range. When the transmitter unit 102 is detected within the RF communication link range at step 1601, in one embodiment, the receiver unit 104 may be configured to receive and store the identification information corresponding to the detected transmitter unit 102. Alternatively, the receiver unit 104 may be pre-configured with the corresponding transmitter identification information, and thus, will be configured to verify the transmitter identification based on the data transmission received detected at step 1601. More specifically, at step 1601, the receiver unit 104 may be configured to detect (or sample) data transmission within its RF communication range. In one aspect, the receiver unit 104 may be configured to identify a positive data transmission upon ascertaining that the data transmission is above a predetermined strength level for a given period of time (for example, receiving three separate data signals above the predetermined strength level from the transmitter unit 102 at one minute intervals over a period of five minutes).
At step 1602, the receiver unit 104 is configured to determine whether the detected signals within the RF communication range is transmitted from the transmitter unit 102 having the transmitter identification information stored or reconstructed (e.g., regenerated) in the receiver unit 104. If it is determined at step 1602 that the detected data transmission at step 1601 does not originate from the transmitter corresponding to the transmitter identification information, then the procedure returns to step 1601 and waits for the detection of the next data transmission.
On the other hand, if at step 1602 it is determined that the detected data transmission is from the transmitter unit 102 corresponding to the transmitter identification information, then at step 1603, the receiver proceeds with decoding the received data and performing error correction thereon. In one embodiment, the receiver is configured to perform Reed-Solomon decoding, where the transmitted data received by the receiver is encoded with Reed-Solomon encoding. Furthermore, the receiver is configured to perform forward error correction to minimize data error due to, for example, external noise, and transmission noise.
Referring back to FIG. 16, after decoding and error correcting the received data, the receiver unit 104 (FIG. 1) at step 1604 generates output data corresponding to the decoded error corrected data received from the transmitter unit 102, and thereafter, at step 1605, the receiver unit 104 outputs the generated output data for the user as a real time display of the output data, or alternatively, in response to the user operation requesting the display of the output data. Additionally, before displaying the output data for the user, other pre-processing procedures may be performed on the output data to, for example, smooth out the output signals. In one aspect, the generated output data may include a visual graphical output displayed on the graphical user interface of the receiver. Alternatively, the output data may be numerically displayed representing the corresponding glucose level.
Referring to FIGS. 1 and 16, in one aspect of the present disclosure, the generated data output at step 1605 may be provided to the medication delivery unit 106 (FIG. 1) for analysis and therapy management, such as bolus calculations and basal profile modifications to alter or otherwise adjust the level of insulin dosage administered to the patient via the medication delivery unit 106 which may include an insulin pump.
Referring again to the Figures discussed above, the time hopping procedure of one embodiment is described. More specifically, since more than one transmitter unit 102 (FIG. 1) may be within the receiving range of a particular receiver unit 104, and each transmitting data every minute on the same frequency, transmitter units 102 are configured to transmit data packets at different times to avoid co-location collisions (that is, where one or more receiver units 104 cannot discern the data signals transmitted by their respective associated transmitter units 102 because they are transmitting at the same time).
In one aspect, transmitter unit 102 is configured to transmit once every minute randomly in a window of time of plus or minus 5 seconds (i.e., it time hops.) To conserve power, receiver unit 104 does not listen for its associated transmitter unit 102 during the entire 10 second receive window, but only at the predetermined time the receiver unit 104 knows the data packet will be coming from the corresponding transmitter unit 102. In one embodiment, the 10 second window is divided into 400 different time segments of 25 milliseconds each. With 80 time segments reserved for sensor measurements as discussed above, there remain 320 time segments for the transmission. Before each RF transmission from the transmitter unit 102 takes place, both the transmitter unit 102 and the receiver unit 104 are configured to recognize in which one of the 320 time segments the data transmission will occur (or in which to start, if the transmission time exceeds 25 milliseconds). Accordingly, receiver unit 104 only listens for a RF transmission in a single 25 millisecond time segment each minute, which varies from minute to minute within the 10 second time window.
Moreover, each transmitter unit 102 is configured to maintain a “master time” clock that the associated receiver unit 104 may reference to each minute (based on the time of transmission and known offset for that minute). A counter on the transmitter unit 102 may be configured to keep track of a value for transmit time (TxTime) that increments by 1 each minute, from 0 to 255 and then repeats. This transmit time (TxTime) value is transmitted in the data packet each minute, shown as byte 0 in FIG. 9. Using the transmit time (TxTime) value and the transmitter's unique identification information, both the transmitter unit 102 and the receiver unit 104 may be configured to calculate which of the 320 time segments will be used for the subsequent transmission. In one embodiment, the function that is used to calculate the offset from the master clock 1-minute tick is a pseudo-random number generator that uses both the transmit window (TxTime) and the transmitter identification information (TxID) as seed numbers. Accordingly, the transmission time varies pseudo-randomly within the 10 second window for 256 minutes, and then repeats the same time hopping sequence again for that particular transmitter unit 102.
In the manner described above, in accordance with one embodiment of the present disclosure, co-location collisions may be avoided with the above-described time hopping procedure. That is, in the event that two transmitters interfere with one another during a particular transmission, they are not likely to fall within the same time segment in the following minute. As previously described, three glucose data points are transmitted each minute (one current and two redundant/historical), so collisions or other interference must occur for 3 consecutive data transmissions for data to be lost. In one aspect, when a transmission is missed, the receiver unit 104 may be configured to successively widen its listening window until normal transmissions from the respective transmitter unit 102 resume. Under this approach, the transmitter listens for up to 70 seconds when first synchronizing with a transmitter unit 102 so it is assured of receiving a transmission from transmitter unit 102 under normal conditions.
FIG. 17 is a block diagram of a transmit window detector of transmitter unit 102 (FIG. 1) in the analyte monitoring system 100 in one embodiment of the present disclosure. The transmit window detector 1700 in one embodiment may be configured to determine a suitable time window for data transmission in order to avoid transmission interference with other signal transmission devices within range. The transmit window detector 1700, in one embodiment, may be implemented with one or more application specific integrated circuits (ASICs) or is a component of an ASIC used in conjunction with one or more state machines. In another embodiment, the transmit window detector may be a field programmable gate array (FPGA). In one embodiment, the transmit window detector 1700 includes two main components; a window determination module 1720 and a window detection module 1730.
In one embodiment, a transmission interval is partitioned into a plurality of available transmission windows. Each transmission window is of an adequate length of time to allow for application data transmission. In one embodiment, a transmission interval is approximately 6.234 seconds and is partitioned into 255 transmission windows, each approximately 24.45 milliseconds in length. In another embodiment, a transmission interval is approximately 1 minute and is partitioned into approximately 2400 windows, each approximately 25 milliseconds in length.
Referring still to FIG. 17, the transmit window detector 1700 of transmitter unit 102 (FIG. 1) is configured to determine a suitable time window for data transmission. The suitable time window for data transmission, herein TXWindow, is determined by assigning a particular transmission window of the transmission interval to each transmitter. In one embodiment, the assigned transmission window for a transmitter may vary in each transmission interval. In such a case, the variance of the assigned transmission window may be determined by a pseudo-random assignment of transmission windows. The window determination module 1720 is configured for the determination of the assigned pseudo-random transmission windows. The window determination module 1720 in one embodiment includes a pseudo-random number generator 1721, which in one embodiment is a linear feedback shift register (LFSR). The LFSR configured as a pseudo-random number generator is configured to generate a pseudo-random number, which is used as the value of the assigned transmission window for data transmission by transmitter unit 102.
The window determination module 1720 determines an initial transmission window value (TXWindow) based on a seed value. In one embodiment, the seed value for the window determination module 1720 is a transmitter identification number (TXID) associated with the particular transmitter. The TXID is loaded into the pseudo-random number generator 1721 as the initial value from which the pseudo-random number generator 1721 uses for determination of each subsequent generated output value. The pseudo-random number generator 1721 generates a next pseudo-random number for the value of TXWindow each time a shift command is received. The shift command signal transmission is controlled by a determination controller component 1722 of the window determination module 1720. In one embodiment the determination controller 1722 is a finite state machine. In other embodiments, the determination controller 1722 may be a switch, a latch, a flip-flop, or the like.
In another embodiment, the window determination module 1720 also includes a determination counter 1723. The determination counter 1723 is operatively coupled to the determination controller 1722. The determination counter 1723 keeps track of the number of different transmission windows that have been assigned based upon the output from the pseudo-random number generator 1721. A pseudo-random number generator 1721 includes a finite number of possible output values based upon the configuration of the pseudo-random number generator 1721. For example, an 8-bit pseudo-random number generator can only generate a total of 28 or 256 different numbers, and because a pseudo-random number generator 1721, such as a LFSR determines a next output value based upon the current or previous output value, eventually the sequence of numbers generated by the pseudo-random number generator 1721 begins to repeat. The determination counter 1723 tracks the number of different numbers generated by the pseudo-random number generator 1721, which in turn corresponds to the number of different transmission windows assigned. In one aspect, when the determination counter 1723 reaches a maximum value, for example the maximum number of different values that can be generated by the pseudo-random number generator 1721, the determination controller 1722 may load a new seed value into the pseudo-random number generator 1721 and the determination counter 1723 may be reset.
Still referring to FIG. 17, once the transmission window for a transmitter has been assigned for a particular transmission interval, a window detection module 1730 is used in order to determine when that transmission window of the transmission interval has arrived. In one embodiment, the window detection module 1730 includes a detection controller 1731 operatively coupled to a detection counter 1732 and a detection clock 1733. In one embodiment, the detection controller 1731 is a finite state machine. The detection controller 1731 compares the current value of the detection counter 1732 to the generated value of TXWindow for each transmission window of a transmission interval by use of a comparator 1734 coupled to the detection controller 1731.
When the detection counter 1732 is equal to TXWindow, the detection controller 1731 determines that the current transmission window of the transmission interval is the assigned transmission window for the transmitter. As such, the detection controller 1731 sends a signal to a main controller 1710 of the transmit window detector 1700, indicating for the transmitter to begin data transmission. If the detection counter 1732 is not equal to TXWindow, the detection controller 1731 determines it is not currently the assigned transmission window, and no signal to transmit data is sent to the main controller 1710.
The detection counter 1732 is initialized to ‘1’, and is configured to increment by one for each transmission window. The detection counter 1732 determines the passing of a transmission window by receiving a signal from the detection clock 1733, which is configured to count system clock cycles. The detection clock 1733 is configured to count the number of system clock cycles that corresponds to one transmission window. In one embodiment, the detection clock 1733 is configured to count 793 system clock cycles, which may correspond to approximately 24.45 milliseconds. In this case, 24.45 milliseconds is the transmission window.
In one embodiment, when the detection controller 1731 determines the current transmission window is equal to the assigned transmission window, in other words, when the transmitter is configured to transmit, the detection counter 1732 is reset and is configured to not re-activate until a signal is received from the detection controller 1731 indicating the beginning of a new transmission interval. Furthermore, in one aspect, once the detection counter 1732 is reset, the detection clock 1733 enters a stand-by state, and doesn't begin counting system clock cycles again until the detection controller 1731 sends the detection clock 1733 a signal indicating the beginning of a new transmission interval. In another embodiment, the detection clock 1733 continually counts system clock cycles, regardless of whether the detection counter 1732 is activated.
In another embodiment, the detection counter 1732 counts until a maximum value is reached, such as the number of transmission windows of a transmission interval, and upon reaching said maximum value, then the detection counter 1732 is reset. In this configuration, the detection counter 1732 may continuously count, regardless of whether the detection controller 1731 determined that the assigned transmission window had been reached and a data transmission sent.
FIGS. 18A and 18B are block diagrams of pseudo-random number generators for use in one or more embodiments of the present disclosure. A pseudo-random number generator may be a linear feedback shift register (LFSR), for example a Fibonacci LFSR as illustrated in FIG. 18A. The LFSR pseudo-random number generator of FIG. 18A is an 8-bit Fibonacci LFSR. In other embodiments, the LFSR may be fewer bits, for example a 4-bit LFSR, or may be more bits, for example a 16-bit LFSR. Each number of bits of the LFSR configured as a pseudo-random number generator corresponds to the number of possible numbers to be generated. For each n bits of the LFSR, a total number of possible output values is 2′′.
For example, an 8-bit LFSR would result in 28 possible output values, or 256 possible output values. In one aspect, an LFSR is configured such that neither the seed value nor the pseudo-random number generated can be the value of ‘00000000’, thus leaving 2′′-1 (255 for an 8-bit LFSR) possible output values. In one aspect, the ‘00000000’ output value may result in a continual output of the ‘00000000’ state, and thus a failure of the number generation. In one embodiment, the number of possible output values corresponds to the number of transmission windows of a transmission interval.
A linear feedback shift register is configured such that the input value of the LFSR is a linear function of the LFSR's previous output value or state. As such, an LFSR requires a seed value, or initial state value, for implementation. In one embodiment, the LFSR linear function is driven based on OR, exclusive-or (XOR), or inverse-exclusive-or (INV-XOR) functions of one or more bits of the previous output value. The seed value, in one embodiment, may be the transmitter identification, TXID, of the transmitter. The seed value is loaded into the LFSR, as shown in FIGS. 18A and 18B. The output value of the LSFR after input of the seed value is the value of the first TXWindow.
In the Fibonacci LFSR of FIG. 18A, a total of four bits of the eight bit output value (TXWindow[7:0]) of the LFSR are the taps, or the feedback bits of the LFSR. For the LFSR to be of maximum length, i.e. for generation of the maximum number of possible output values, there must be an even number of taps, and each tap must be relatively prime, i.e. the greatest common divisor of the taps is 1.
In the case of FIG. 18A, the taps are TXWindow[4], TXWindow[5], and TXWindow[7]. In the configuration of FIG. 18A the feedback polynomial is represented by p(x)=1+x4+x5+x6+x8, where each of the powers of the terms represent the tapped bits, counting from left to right from ‘1’ to ‘n’ where ‘n’ is the number of bits. At each command cycle, a linear function is applied to the tapped bits, for example the XOR function, and the resulting output value (either a ‘1’ or a ‘0’) is entered into the first bit, TXWindow[0]. The subsequent bit values are then shifted right.
For example, if the seed value was 00010000, and a linear XOR function is applied to the seed value using tapped bits TXWindow[3], TXWindow[4], TXWindow[5] and TXWindow[7], the output from the linear feedback XOR function would be a ‘1’. This ‘1’ is then shifted into TXWindow[0], and each subsequent bit is shifted to the right such that TXWindow[1]→TXWindow[2], TXWindow[2]→TXWindow[3] and so forth down to TXWindow[6]→TXWindow[7]. The result is then a new TXWindow value of 10001000. At the next command cycle, the process is repeated. Again, the linear feedback XOR function result is a ‘1’, and again the bit values are shifted resulting in a new TXWindow value of 11000100. After another command cycle, the linear feedback XOR function result is again a ‘1’, and the new TXWindow value is 11100010, and after another command cycle, the linear feedback XOR function results in a ‘0’, and the new TXWindow value is 01110001. This process may continue indefinitely, or alternatively, a new seed value may be implemented at a predetermined time.
Referring to FIG. 18B, in one embodiment, the linear feedback shift register may be a Galois LFSR. The LFSR of FIG. 18B, in one embodiment, is an 8-bit LFSR. The output value of the LFSR is based upon a linear function of the LFSR's previous state, and as such, the LFSR may require the input of an initial seed value. The initial seed value, in one aspect, may be based upon a transmitter identification (TXID). The output value of the LSFR after input of the seed value is the value of the first TXWindow.
In the Galois LFSR of FIG. 18B, a total of four bits of the eight bit output value (TXWindow[7:0]) of the LFSR are the taps, or the feedback bits of the LFSR. In the case of FIG. 18B, the taps are TXWindow[3], TXWindow[4], TXWindow[5] and TXWindow[7]. In the configuration of FIG. 18B the feedback polynomial is represented by p(x)=1+x4+x5+x6+x8, where each of the powers of the terms represent the tapped bits, counting from right to left from ‘1’ to ‘n’ where ‘n’ is the number of bits. At each command cycle, the value of the first bit, TXWindow[0] is entered into the nth bit, in this case TXWindow[7]. Each subsequent bit is shifted to the right such that TXWindow[7]→TXWindow[6], TXWindow[6]→TXWindow[5], and so forth down to TXWindow[1]→TXWindow[0].
Furthermore, each tapped bit has a linear function, such as XOR, applied to it in conjunction with the value of the first bit TXWindow[0]. For example, if the seed value is 00010000, and a linear XOR function is applied in the shift register, the value of TXWindow[0], in this case ‘0’, is applied to the nth bit and to the functions of the tapped bits. As such, the new nth bit, TXWindow[7] is ‘0’, the new TXWindow[6] is ‘0’, the new TXWindow[5], based on the output from the XOR of TXWindow[6] and TXWindow[0], is ‘0’, the new TXWindow [4], based on the output from the XOR of TXWindow[5] and TXWindow[0], is ‘0’, the new TXWindow[3], based on the output from the XOR of TXWindow[4] and TXWindow[0], is ‘1’, the new TXWindow[2] is ‘0’, the new TXWindow[1] is ‘0’, and the new TXWindow[0] is ‘0’. The full result is a TXWindow value of 00001000. The same process is repeated at a next command cycle with the new TXWindow value as the initial value of the shift register. After the application of the functions, the new value of TXWindow is 00000100. The process may continue indefinitely, or alternatively, a new seed value may be implemented at a predetermined time.
In one embodiment, in a Galois LFSR, since the linear functions applied to the tapped bits are independent of one another, the shift functions of a Galois LFSR may be implemented in parallel, thus reducing computation lag time.
In one embodiment, the command cycle for the linear feedback shift register is the transmission interval. The determination controller 1722 (FIG. 17), issues a command signal before the first transmission window of each transmission interval for the pseudo-random number generator 1721 to perform the shift of the LFSR to generate a new pseudo-random number, and thus a new TXWindow value.
Referring back to FIG. 17, in one embodiment, each time the determination controller 1722 issues a command signal indicating a new transmission interval and a new pseudo-random number generation, the determination counter 1723 may also be incremented. The determination counter 1723, TXCounter, increments by 1 from ‘1’ to a maximum value, such as ‘255’. The maximum value ‘255’ may be an optimal maximum value for the determination counter 1723 in the case where the pseudo-random number generator 1721 is an 8-bit generator. When TXCounter reaches ‘255’, in one aspect, the pseudo-random number generator 1721 is reloaded with a new seed value.
In one embodiment, the pseudo-random number generator 1721 is coupled to a seed value generator (not shown), which may also be a LFSR configured as a pseudo-random number generator. The seed value generator may generate a new seed value for loading into the pseudo-random number generator 1721 of the window determination module 1720 of the transmit window detector 1700 each time TXCounter reaches ‘255’, or another predetermined maximum value. In yet another embodiment, the determination counter 1723 may be coupled to a number generator, wherein the number generator generates a target number for the determination counter 1723, such that the pseudo-random number generator 1721 of the window determination module 1720 of the transmit window detector 1700 is reset with a new seed value at random, pseudo-random, or predetermined points in time.
In other embodiments, the pseudo-random number generator 1721 of the window determination module 1720 of the transmit window detector 1700 may be more than an 8-bit linear function shift register. In one embodiment, the pseudo-random number generator 1721 may be an 11-bit LFSR. An 11-bit LFSR has a maximum of 2047 different output values, not including the ‘00000000000’ output value. In one aspect, an 11-bit LFSR with 2047 output values, which may correspond to 2047 different transmission windows, may be implemented in a transmitter configuration such that the transmission interval is approximately 1 minute and each transmission window is approximately 25 milliseconds.
In still other embodiments, the pseudo-random number generator 1721 of the window determination module 1720 of the transmit window detector 1700 may be more than an 8-bit LFSR, however, the transmission window TXWindow may be only 8-bits of the output from the LFSR. For example, the LFSR may be 9-bits, whereby the initial transmitter identification (TXID) is OR-ed with [0x8] to create a 9-bit input for a 9-bit LFSR. The output may then represent TXWindow, however, the TX to be associated with a transmission window may only be 8-bits of TXWindow (TXWindow[7:0]). In other embodiments, other size LFSRs may be implemented and the number of bits used to determine the transmission window may vary based on the number of available transmission windows.
FIG. 19 is a flow chart illustrating transmit window determination in one embodiment of the present disclosure. A transmit window determination module 1720 (FIG. 17) may include a pseudo-random number generator 1721, such as a linear feedback shift register as described above in conjunction with FIGS. 18A and 18B. Referring to FIG. 19, in one embodiment, a pseudo-random number generator 1721 of a transmit window determination module 1720, loads an initial seed value, such as a transmitter identification value, TXID (1910). The initial seed value may, in one aspect, be provided to the pseudo-random number generator 1721 by a determination controller 1722. Once the initial value is loaded into the pseudo-random number generator 1721, a command for a shift in the pseudo-random number generator is received (1920), whereby the shift in the pseudo-random number generator 1721 results in the generation of a next number (1930). The number generated by the pseudo-random number generator 1721 is a transmission window value TXWindow (1940).
Furthermore, in one embodiment, a determination counter 1723, TXCounter, initialized at 1, increments by one (1950) each time a new TXWindow value is generated. TXCounter is configured to continue to increment until a maximum value is reached. In one embodiment, the maximum value of TXCounter is set as the number of different possible output values from the pseudo-random number generator. For example, for an 8-bit pseudo-random number generator, the number of possible different output values is 255, and as such, the maximum value of TXCounter is set at 255. If TXCounter is determined to be at the maximum value (1960), TXCounter is reset back to 1 (1970) and the pseudo-random number generator loads a new initial seed value (1910). In the event that TXCounter is not equal to the maximum value, the pseudo-random number generator 1721 waits to receive a next shift command (1920) and the process is repeated.
In one embodiment, a shift command is sent to and received by the pseudo-random number generator 1721 of the transmit window determination module 1720, every transmission interval. In one aspect, a transmission interval may be approximately 6.234 seconds. In another aspect, a transmission interval may be approximately 1 minute.
FIG. 20 is a flow chart illustrating transmit window detection in one embodiment of the present disclosure. Referring to FIG. 20, a window detection module 1730 (FIG. 17) waits for a data frame start (2010), which may be a start of a transmission interval. After the data frame start, a detector controller 1731 of the window detection module 1730 transitions from an initial state to a state configured to compare the current value of a detection counter 1732 to a current TXWindow transmission window value (2020). If the detection counter 1732 value is equal to the TXWindow value (2030), the detector controller 1731 transmits a signal to a main controller 1710 to start transmission (2060). If the detection counter 1732 is not equal to TXWindow, a detection clock 1733 is enabled (2040). The detection clock 1733 counts for the time period of one transmission window plus adequate overhead time. In one embodiment, the transmission window is a time length of 24.45 milliseconds. When the detection clock 1733 reaches a count equivalent to the transmission window time length, which in one embodiment may be a count of 793, the detection counter 1732 is configured to increment by one (2050). The new value of detection counter 1732 is compared again to TXWindow (2020) and the process is repeated until the transmission start signal is activated. Once the data transmission is sent, the window detection module 1730 transitions back to a wait mode until the next data frame start.
Referring back to FIG. 17, in one embodiment, the window determination module 1720 may operatively be coupled to a close proximity communication circuit. Output values from the window determination module 1720 are sent to the close proximity communication circuit. Examples of a close proximity detection circuit and communication can be found in U.S. patent application Ser. No. 12/130,995 filed May 30, 2008, now U.S. Pat. No. 7,826,382, entitled “Close Proximity Communication Device and Methods”, the disclosure of which is incorporated by reference for all purposes.
In the manner described above, in accordance with the embodiments of the present disclosure, there is provided a continuous glucose monitoring and management system in accordance with one embodiment of the present disclosure including a sensor configured to detect one or more glucose levels, a transmitter operatively coupled to the sensor, the transmitter configured to receive the detected one or more glucose levels, the transmitter further configured to transmit signals corresponding to the detected one or more glucose levels, a receiver operatively coupled to the transmitter configured to receive transmitted signals corresponding to the detected one or more glucose levels, where the transmitter is configured to transmit a current data point and at least one previous data point, the current data point and the at least one previous data point corresponding to the detected one or more glucose levels.
The receiver may be operatively coupled to the transmitter via an RF communication link, and further, configured to decode the encoded signals received from the transmitter.
In one embodiment, the transmitter may be configured to periodically transmit a detected and processed glucose level from the sensor to the receiver via the RF data communication link. In one embodiment, the transmitter may be configured to sample four times every second to obtain 240 data points for each minute, and to transmit at a rate of one data point (e.g., an average value of the 240 sampled data points for the minute) per minute to the receiver.
The transmitter may be alternately configured to transmit three data points per minute to the receiver, the first data point representing the current sampled data, and the remaining two transmitted data points representing the immediately past two data points previously sent to the receiver. In this manner, in the case where the receiver does not successfully receive the sampled data from the transmitter, at the subsequent data transmission, the immediately prior transmitted data is received by the receiver. Thus, even with a faulty connection between the transmitter and the receiver, or a failed RF data link, the present approach ensures that missed data points may be ascertained from the subsequent data point transmissions without retransmission of the missed data points to the receiver.
The transmitter may be configured to encode the detected one or more glucose levels received from the sensor to generate encoded signals, and to transmit the encoded signals to the receiver. In one embodiment, the transmitter may be configured to transmit the encoded signals to the receiver at a transmission rate of one data point per minute. Further, the transmitter may be configured to transmit the current data point and the at least one previous data points in a single transmission per minute to the receiver. In one aspect, the current data point may correspond to a current glucose level, and where at least one previous data point may include at least two previous data points corresponding respectively to at least two consecutive glucose levels, the one of the at least two consecutive glucose levels immediately preceding the current glucose level.
In a further embodiment, the receiver may include an output unit for outputting the received transmitted signals corresponding to one or more glucose levels. The output unit may include a display unit for displaying data corresponding to the one or more glucose levels, where the display unit may include one of a LCD display, a cathode ray tube display, and a plasma display.
The displayed data may include one or more of an alphanumeric representation corresponding to the one or more glucose levels, a graphical representation of the one or more glucose levels, and a three-dimensional representation of the one or more glucose levels. Moreover, the display unit may be configured to display the data corresponding to the one or more glucose levels substantially in real time.
Further, the output unit may include a speaker for outputting an audio signal corresponding to the one or more glucose levels.
In yet a further embodiment, the receiver may be configured to store identification information corresponding to the transmitter.
The receiver may be further configured to perform a time hopping procedure for synchronizing with the transmitter. Alternatively, the receiver may be configured to synchronize with the transmitter based on the signal strength detected from the transmitter, where the detected signal strength exceeds a preset threshold level.
The transmitter in one embodiment may be encased in a substantially water-tight housing to ensure continuous operation even in the situation where the transmitter is in contact with water.
Furthermore, the transmitter may be configured with a disable switch which allows the user to temporarily disable the transmission of data to the receiver when the user is required to disable electronic devices, for example, when aboard an airplane. In another embodiment, the transmitter may be configured to operate in an additional third state (such as under Class B radiated emissions standard) in addition to the operational state and the disable state discussed above, so as to allow limited operation while aboard an airplane yet still complying with the Federal Aviation Administration (FAA) regulations. Additionally, the disable switch may also be configured to switch the transmitter between various operating modes such as fully functional transmission mode, post-manufacture sleep mode, and so on. In this manner, the power supply for the transmitter is optimized for prolonged usage by effectively managing the power usage.
Furthermore, the transmitter may be configured to transmit the data to the receiver in predetermined data packets, encoded, in one embodiment, using Reed-Solomon encoding, and transmitted via the RF communication link. Additionally, in a further aspect of the present disclosure, the RF communication link between the transmitter and the receiver of the continuous glucose monitoring system may be implemented using a low cost, off the shelf remote keyless entry (RKE) chip set.
The receiver in an additional embodiment may be configured to perform, among others, data decoding, error detection and correction (using, for example, forward error correction) on the encoded data packets received from the transmitter to minimize transmission errors such as transmitter stabilization errors and preamble bit errors resulting from noise. The receiver is further configured to perform a synchronized time hopping procedure with the transmitter to identify and synchronize with the corresponding transmitter for data transmission.
Additionally, the receiver may include a graphical user interface (GUI) for displaying the data received from the transmitter for the user. The GUI may include a liquid crystal display (LCD) with backlighting feature to enable visual display in dark surroundings. The receiver may also include an output unit for generating and outputting audible signal alerts for the user, or placing the receiver in a vibration mode for alerting the user by vibrating the receiver.
More specifically, in a further aspect, the receiver may be configured to, among others, display the received glucose levels on a display section of the receiver either in real time or in response to user request, and provide visual (and/or auditory) notification to the user of the detected glucose levels being monitored. To this end, the receiver is configured to identify the corresponding transmitter from which it is to receive data via the RF data link, by initially storing the identification information of the transmitter, and performing a time hopping procedure to isolate the data transmission from the transmitter corresponding to the identification information and thus to synchronize with the transmitter. Alternatively, the receiver may be configured to identify the corresponding transmitter based on the signal strength detected from the transmitter, determined to exceed a preset threshold level.
A method in accordance with one embodiment of the present disclosure includes the steps of receiving an identification information corresponding to a transmitter, detecting data within a predetermined RF transmission range, determining whether the detected data is transmitted from the transmitter, decoding the detected data, and generating an output signal corresponding to the decoded data.
In one embodiment, the step of determining whether the detected data transmission is transmitted from the transmitter may be based on the received identification information. In another embodiment, the step of determining whether the detected data transmission is transmitted from the transmitter may be based on the signal strength and duration of the detected data within the predetermined RF transmission range.
In a further embodiment, the step of decoding may also include the step of performing error correction on the decoded data. Moreover, the step of decoding may include the step of performing Reed-Solomon decoding on the detected data.
Additionally, in yet a further embodiment of the present disclosure, transmitter identification information may not be included in the transmitted data from the transmitter to the receiver. Rather, the receiver may be configured to determine the transmitter identification information from the received data by using Reed-Solomon decoding. More specifically, when decoding the first data packet received from a transmitter, the receiver may be configured to set the value corresponding to the transmitter identification information to zero, and to indicate to the Reed-Solomon decoder that the transmitter identification information is known to be incorrect. The Reed-Solomon decoder may then be configured to use this information to more effectively “correct” during the error correction procedure, and therefore to recover the transmitter identification information from the received data. Indeed, in subsequent data packets, the received pads and the received data packet with the known transmitter identification information are used to facilitate with the error detection.
In the manner described, the present disclosure provides a continuous glucose monitoring system that is simple to use and substantially compact so as to minimize any interference with the user's daily activities. Furthermore, the continuous glucose monitoring system may be configured to be substantially water-resistant so that the user may freely bathe, swim, or enjoy other water related activities while using the monitoring system. Moreover, the components comprising the monitoring system including the transmitter and the receiver are configured to operate in various modes to enable power savings, and thus enhancing post-manufacture shelf life.
In one embodiment, a data monitoring and management system may include a communication link, a transmitter operatively coupled to the communication link, the transmitter configured to transmit a data packet, and a receiver operatively coupled to the communication link, the receiver configured to receive the transmitted data packet, wherein the transmitter is configured to transmit the data packet during an assigned transmission window.
The communication link may include an RF communication link.
In one aspect, a transmit window detector may be operatively coupled to the transmitter, wherein the transmit window detector may be configured to assign the transmission window.
The transmit window detector may include a pseudo-random number generator configured to output a pseudo-random number, which may include a linear feedback shift register, or an 8-bit pseudo-random number generator.
The output of the pseudo-random number generator may correspond to the assigned transmission window.
The transmit window detector may be configured to detect the occurrence of the assigned transmission window.
The transmit window detector may be configured to send a signal to the transmitter upon detection of the occurrence of the assigned transmission window, wherein the signal is an instruction to the transmitter to transmit the data packet.
In another embodiment, a method for transmitting a data packet may include assigning a transmission window of a transmission interval for transmission of a data packet, detecting the occurrence of the transmission window, and transmitting the data packet.
The transmission window may be 24.45 milliseconds.
The transmission interval may be approximately 6.234 seconds and include 255 transmission windows.
In one aspect, assigning a transmission window may comprise generating a pseudo-random number corresponding to the assigned transmission window.
Moreover, a new transmission window may be assigned for each transmission interval.
Furthermore, detecting the occurrence of the transmission window may include maintaining a counter of transmission windows until the counter equals the assigned transmission window.
The counter may be incremented each time a clock reaches a value corresponding to the length of one transmission window.
In one aspect of the present disclosure, an apparatus includes a data stream generator that generates a data stream associated with a monitored analyte level, and a radio frequency logic portion operatively coupled to the data stream generator, the radio frequency logic portion configured to generate a radio frequency data stream based on the data stream generated from the data stream generator, the radio frequency logic portion further including one or more finite state machines and a plurality of discrete digital logic circuits, the one or more finite state machines configured to control the plurality of digital logic circuits to generate the radio frequency data stream for wireless communication.
In certain embodiments, the one or more finite state machines of the radio frequency logic portion includes a serializer state machine configured to transition between a first state and a second state, serially outputting data with the transition.
In certain embodiments, the monitored analyte level is monitored by an analyte sensor.
In certain embodiments, the one or more finite state machines includes a transmit state machine configured to control the generation of the radio frequency data stream.
In certain embodiments, the data stream generator includes a data multiplexer to multiplex data packets associated with the monitored analyte level.
Further, in certain embodiments, the data stream generator further includes a packet engine, wherein the data multiplexer and the packet engine are configured to store the data packets prior to the generation of the radio frequency data stream.
In certain embodiments, the one or more finite state machines of the radio frequency logic portion includes an application specific integrated circuit.
In certain embodiments, the application specific integrated circuit is implemented as a single semiconductor chip.
Certain embodiments also include a radio frequency communication component operatively coupled to the radio frequency logic portion to wirelessly communicate the generated radio frequency data stream to a remote location.
Further, in certain embodiments, the radio frequency communication component includes an antenna configured to transmit radio frequency signals generated based on the radio frequency data stream.
In certain embodiments, the radio frequency logic portion includes one or more of a radio frequency logic finite state machine, a multiplexer, a Reed-Solomon encoder, a clock circuit, a plurality of registers, a counter or a Manchester encoder.
Moreover, in certain embodiments, the radio frequency logic finite state machine is configured for operation in the 26 MHz clock domain.
In certain embodiments, the radio frequency logic portion is configured as a data interface to a radio frequency transmitter, and configured to move data from a data multiplexer operating in a 32 KHz clock domain to a plurality of radio frequency data registers operating in a 26 MHz clock domain.
In another aspect of the present disclosure, a method includes generating a data stream associated with a monitored analyte level with a data stream generator, and operatively coupling a radio frequency logic portion to the data stream generator, the radio frequency logic portion configured to generate a radio frequency data stream based on the data stream generated from the data stream generator, the radio frequency logic portion further including one or more finite state machines and a plurality of discrete digital logic circuits, the one or more finite state machines configured to control the plurality of digital logic circuits to generate the radio frequency data stream for wireless communication.
Various other modifications and alterations in the structure and method of operation of this invention will be apparent to those skilled in the art without departing from the scope and spirit of the invention. Although the invention has been described in connection with specific preferred embodiments, it should be understood that the invention as claimed should not be unduly limited to such specific embodiments. It is intended that the following claims define the scope of the present disclosure and that structures and methods within the scope of these claims and their equivalents be covered thereby.

## Claims

1. A glucose monitoring device, comprising:
an in vivo glucose sensor; and
sensor electronics coupleable to the in vivo glucose sensor to receive signals generated by the in vivo glucose sensor, the sensor electronics including:
a data communication unit;
a transmit state machine that issues a build packet command and a send packet command; and
a data stream generator that includes a finite state machine that builds a data packet based on the signals generated by the in vivo sensor and in response to the build packet command, wherein the finite state machine sends the built data packet to the data communication unit in response to the send packet command from the transmit state machine for communication to a remote location.

2. The device of claim 1, wherein the data communication unit communicates the data packet using Bluetooth communication protocol.

3. The device of claim 1, wherein the remote location includes a mobile telephone.

4. The device of claim 1, wherein the finite state machine is in 26 MHz clock domain.

5. The device of claim 1, wherein the transmit state machine operates in a 32 KHz clock domain.

6. The device of claim 1, wherein the data stream generator includes a Reed-Solomon encoder that adds parity bits to the data packet.

7. The device of claim 1, wherein the data stream generator includes a Manchester encoder that adds a dotting pattern to the data packet.

8. The device of claim 7, wherein the data stream generator provides the Manchester encoded data stream to the data communication unit.

9. The device of claim 1, wherein the data stream generator includes a counter that tracks data stored by the finite state machine.

10. The device of claim 1, wherein the data stream generator of the sensor electronics includes an application specific integrated circuit.

11. The device of claim 10, wherein the application specific integrated circuit is implemented as a single semiconductor chip.

12. The device of claim 1, wherein the glucose sensor includes a plurality of electrodes, wherein the plurality of electrodes include a working electrode comprising an analyte-responsive enzyme bonded to a polymer disposed on the working electrode.

13. The device of claim 12, wherein the analyte-responsive enzyme is chemically bonded to the polymer disposed on the working electrode.

14. The device of claim 12, wherein the working electrode comprises a mediator bonded to the polymer disposed on the working electrode.

15. The device of claim 14, wherein the mediator is crosslinked with the polymer disposed on the working electrode.

16. The device of claim 1, wherein the glucose sensor includes a plurality of electrodes, wherein the plurality of electrodes include a working electrode comprising a mediator bonded to a polymer disposed on the working electrode.

17. The device of claim 16, wherein the mediator is crosslinked with the polymer disposed on the working electrode.