Abstract:
A multi-node time division multiplexing (TDM) system is disclosed. The improved method and apparatus utilizes an asynchronous synchronization packet (ASP) to synchronize the timing in all the nodes of the system. In some embodiments, the ASP also maps the time slots in a data frame to particular nodes. The ASP is sent at the start of each data frame to all the nodes in the system and each node synchronizes itself to the time of receipt of the ASP, thus establishing frame-based timing for all the nodes. Additionally, the ASP can contain a table that maps the data frame time slots to the nodes in the system.

Description:
RELATED APPLICATION 
     This application is a non-provisional application of provisional application Ser. No. 60/621,243 filed Oct. 22, 2004. Priority of application 60/621,243 is hereby claimed. The entire contents of application 60/621,243 are hereby incorporated by reference. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates generally to electronic circuits, and in particular to circuits for wireless networking. 
     BACKGROUND OF THE INVENTION 
     Multi-node communication systems generally need an operating protocol to enable the nodes to communicate with each other. Two commonly used protocols are frequency domain multiplexing (FDM) and time division multiplexing (TDM). 
     The FDM protocol utilizes a different frequency “channel” for each node. In a TDM system the nodes take turns using a communication channel. The TDM protocol divides a communications channel into frames and it allocates each node one or more individual time slots in each frame. In general a system using a TDM protocol can scale to handle as many nodes as needed by merely adding additional time slots in each frame. The time clocks in all the nodes in a TDM system must be synchronized to a common time base so that each node knows when its respective time slot begins. Several conventional methods exist for synchronization of clocks in a TDM system. These include techniques such as: (a) a base station sends out a signal to one node at a time to indicate the beginning of that node&#39;s time slot, (b) clock signals embedded in the data packets to establish a common time base, (c) a phase locked loop (PLL) in each node that is synchronized to a ‘heartbeat’ signal, etc. The conventional methods in general require significant hardware and timing overhead in order to operate. 
     SUMMARY OF THE INVENTION 
     The present invention provides an improved technique for synchronization in a multi-node TDM system. The present invention utilizes asynchronous synchronization packets (ASPs) to initiate each data frame. The ASP is generated by a base station at the start of a data frame and it is simultaneously transmitted to all the nodes in the system. When an ASP is received by a node, the time of receipt is used as a timing marker to synchronize the clock in the node to the clock in the base station. 
     In some embodiments, the ASP contains information that maps each node to particular time slots within the data frame. Furthermore, in some embodiments, the ASP is used to establish the node mapping on a frame-by-frame basis. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  illustrates a preferred embodiment of the invention. 
         FIG. 2  illustrates data frame timing. 
         FIG. 3  shows an example of frame-to-frame mapping. 
     
    
    
     DETAILED DESCRIPTION 
     Several preferred embodiments of the present invention will now be described with reference to the accompanying drawings. Various other embodiments of the invention are also possible and practical. This invention may be embodied in many different forms and the invention should not be construed as being limited to the embodiments set forth herein. 
     The figures listed above illustrate the preferred embodiments of the invention and the operation of such embodiments. In the figures, the size of the boxes is not intended to represent the size of the various physical components. Where the same element appears in multiple figures, the same reference numeral is used to denote the element in all of the figures where it appears. 
     Only those parts of the various units are shown and described which are necessary to convey an understanding of the embodiment to those skilled in the art. Those parts and elements not shown are conventional and known in the art. 
     A preferred embodiment of the invention is illustrated in  FIG. 1 . In the preferred embodiment a computer  100  is connected to multiple nodes (designated  400 - 0 ,  400 - 1 ,  400 - 2  and  400 - n ) by a wireless base station  200 . The computer  100  includes a display  110 , keyboard  120 , mouse  130 , and central processing unit (CPU)  140 . The display  110 , keyboard  120 , mouse  130 , and central processing unit (CPU)  140  are conventional and they perform the functions of a typical computer system. 
     The base station  200  comprises an I/O interface  210 , controller  220 , transceiver  230 , memory  240 , antenna  250 , and counter  260 . I/O interface  210  communicates with the computer  100  via a conventional hardwired or wireless computer interface. 
     Controller  220  controls the basic operations of the base station and the flow of information to and from the remote nodes. Transceiver  230  modulates data for wireless transmission to the remote nodes using antenna  250  and demodulates wireless data received from the remote nodes on antenna  250 . Memory  240  stores the data needed for the operation of the base station  200 . Counter  260  keeps track of time. 
     In the specific embodiment shown in  FIG. 1 , base station  200  wirelessly communicates with multiple identical nodes. Since the nodes are identical, only Node  400 - 0  will be described in detail. Node  400 - 0  includes a controller  410 , a transceiver  420 , a memory  430 , an antenna  440 , and a counter  450 . Controller  410  controls the basic operations of the node and the flow of information to and from the base station and/or the other nodes. Transceiver  420  modulates data for wireless transmission to the base station and/or other nodes using antenna  440 , and demodulates wireless data received from the base station and/or other nodes on antenna  440 . Memory  430  stores the data needed for the operation of the node. Counter  450  keeps track of time. 
       FIG. 2  illustrates one frame of data on the communication channel between the base station  200  and the nodes  400 - 0 ,  400 - 1  etc. As illustrated in  FIG. 2 , at the beginning of a frame, an ASP is transmitted. In  FIG. 2  this is illustrated by ASP  10 . 
     The timing for the rest of the data frame is based on the time that the ASP is sent. Thus, in a system with n time slots, all the time slot start times, T 0 , T 1 , T 2 , up to T n  are derived from T F0 . Each node can calculate T 0 , T 1 , T 2 , up to T n  by using an internal counter that is reset each time an ASP is received. Thus all nodes are synchronized relative to T F0 .  FIG. 2  shows the individual time slots TS 0 , TS 1 , TS 2 , up to TSn, each starting at respective times T 0 , T 1 , T 2 , up to T n . 
     Some nodes may be given more than one time slot, if they are expected to transmit more information than other devices. For example time slot TSO may be mapped to node A and time slots TS 1  and TS 2  may be mapped to node B. In some embodiments, some time slots are not mapped to a node (thus, they are not used) and some nodes may not have any time slots mapped to them. 
     Each data frame ends when the last time slot period TSn has passed. The next data frame starts with ASP  20  at time T F1 . As in the previous data frame, the sending of ASP  20  initiates a new timing sequence and time slot allocation. After a data frame ends, the base station  200  can send an ASP at any time to initiate a new data frame. The ASPs that initiate new frames can be sent at fixed intervals. However, there is no requirement that the ASPs that initiate new data frames be sent at fixed timing intervals, and various algorithms that take into account various system conditions can be used to determine when ASPs are sent to initiate new data frames. 
       FIG. 3  shows an example of how time slots may be mapped to nodes in two ASPs designated  30  and  40 . The time slots mapped by ASP  30  are designated by the time slot designation followed by the numeral  1  and the time slots mapped by ASP  40  have a  2  following the time slot designation. For example time slot TSO mapped by ASP  30  is designated TSO- 1  and time slot TSO mapped by ASP  40  is designated TSO- 2 . 
     In the example shown in  FIG. 3 , both ASPs map time slot TSO to node A. However, ASP  30  maps three time slots TS 1 , TS 2  and TS 3  to node B while ASP  40  maps only time slots TS 1  and TS 2  to node B. 
     In a simple embodiment, the mapping of time slots to nodes would be established at system set-up time and the assignment would be stored in the computer and in each node. In such an embodiment, the assignment of nodes to time slots remains fixed and the ASP is only used to set the clock or counter in the nodes. 
     However, in some embodiments, the assignment of nodes to time slots can be controlled by information stored in the ASP. In such embodiments, ASP contains information that maps particular time slots to particular nodes. The nodes read the information stored in the ASP and use the mapping information in the ASP to determine their respective time slots (i.e. the slots during which they can send or receive information). In such embodiments, the mapping combined with the timing information derived from T F0  tells each node exactly when it is allowed to communicate. 
     An algorithm for mapping time slots to nodes is established at system set up time. It can be a simple algorithm such as an algorithm that assigns one time slot to each detected device. Or it can be somewhat more complicated such as an algorithm that assigns one time slot to every detected device except for devices of type X and that assigns two time slots to each device of type X. The assignment can be fixed at setup time and require no node assignment information to be contained in the ASP. Alternatively, the assignment information can be contained in each ASP (or in selected ASPs) and it can be changed from time to time as new nodes are added to the system or as the load balance changes. In some embodiments, the algorithm for assigning time slots is still more complicated and it takes into account a wide range of system information. 
     The operation of the preferred embodiment shown in  FIG. 1  will now be discussed in greater detail. The first step is for the base station to identify all the nodes in the system. There are many conventional ways of doing this such as polling all the addresses individually and seeing which ones respond as a valid node. Additionally, information relating to the communication needs of each node may be collected as well. After the data is gathered it is stored in memory  240 . 
     The next step is for controller  220  to generate the ASP. Each active node will be assigned a time slot or multiple time slots in the ASP based on the information previously collected and stored in memory  240 . Controller  220  saves the ASP in memory  240  using connection  340  and also forwards the ASP to transceiver  230  using connection  320 . Once the ASP is forwarded to transceiver  230  the controller  220  resets counter  260  on connection  350  to designate T F0 . The transceiver  230  will modulate the ASP onto a radio frequency (RF) carrier and send the resultant RF signal over connection  330  to antenna  250  for broadcast. 
     The broadcast RF signal will be received at each node. Referring to exemplary node  400 - 0 , the RF signal is received on antenna  440  and is sent over connection  520  to transceiver  420 . Transceiver  420  demodulates the RF signal to recover the ASP and then forwards the ASP to controller  410  using connection  500 . The controller  410  will reset counter  450  on connection  530  once it detects receipt of the ASP to designate T F0 . Additionally, the controller  410  will determine which time slots are mapped to node  400 - 0  and store this information in memory  430  using connection  510 . Node  400 - 0  then waits until counter  450  indicates the beginning of the allocated time slot before it initiates communications. 
     During a node&#39;s time slot the node can receive, send, or receive and send data. However, a node may decide not to send information in its assigned slot if no such information is available. Computer  100  usually generates, in a conventional manner, the data that is sent to the nodes. Data that originates in computer  100  is sent to the base station  200  using connection  300  and I/O interface  210 . I/O interface  210  forwards the data from the computer to controller  220  using connection  310 . Controller  220  then waits until the time slot for the node becomes available based on the ASP stored in memory  240  and when counter  260  indicates the beginning of the allocated time slot. Controller  220  sends the data to transceiver  230  using connection  320  when the time slot is available. Transceiver  230  will modulate the data onto an RF carrier and send the resultant RF signal over connection  330  to antenna  250  for broadcast. Each node will receive the broadcast signal, however only the node whose time slot is currently active will receive and use the data. The other nodes will ignore the transmission. 
     Data that is sent by the node is usually stored within the memory of the node until the node&#39;s time slot becomes available. Referring to node  400 - 0  of  FIG. 1 , controller  410  waits until counter  450  indicates the beginning of the time slot allocated to node  400 - 0  as designated by the ASP information that was previously stored in memory  430 . Controller  410  will send the data stored in memory  430  over connection  500  to transceiver  420  when the node&#39;s time slot is available. Transceiver  420  will modulate the data onto an RF carrier and send the resultant RF signal over connection  520  to antenna  440  for broadcast. 
     An alternate embodiment allows the base station to broadcast to the nodes using an addressing scheme encoded in the broadcast, thus only the nodes with the same address as that in the transmission would receive the transmission. This means that in a full-duplex system the base station can send data to the nodes at any time during the data frame while the nodes are only allowed to send data during their respective time slots. This would increase the communications efficiency of the system. 
     The improved method for TDM using ASP enables the communications system to adjust the payload length of each data frame on a frame-by-frame basis thus enhancing the flexibility of the system.  FIG. 3  shows an example of back-to-back data frames that take advantage of adjustable payload length. A first data frame, initiated by ASP  30 , is followed by seven time slots TSO- 1 , TS 1 - 1 , TS 2 - 1 , TS 3 - 1 , TS 4 - 1 , TS 5 - 1  and TS 6 - 1 . A second time frame, initiated by ASP  40 , is followed by 6 time slots labeled TSO- 2 , TS 1 - 2 , TS 2 - 2 , TS 3 - 2 , TS 4 - 2 , and TS 5 - 2 . Additionally, four nodes labeled node A, node B, node C and node D are illustrated. 
       FIG. 3  shows how each data frame is mapped. ASP  30  maps the first data frame as follows: Node A to TSO- 1 ; Node B to TS 1 - 1  through TS 3 - 1 ; Node C to TS 4 - 1 ; Node D to TS 5 - 1  and TS 6 - 1 . ASP  40  maps the second data frame as follows: Node A to TSO- 2 ; Node B to TS 1 - 2  and TS 2 - 2 ; Node C to TS 3 - 2  and TS 4 - 2 ; Node D to TS 5 - 2 . The mapping for each node is different in the two frames, and the overall length of the data frame following ASP  30  is different than the length of the data frame following ASP  40 . It is also possible to change the duration of each time slot from frame to frame by encoding an indicator within the ASP to define the time slot duration for that frame. 
     The example in  FIG. 3  shows but one possible mapping order, however the improved method and apparatus is not limited to this mapping order and other mapping orders are possible such as mapping a node to multiple non-sequential time slots. 
     The flexibility of the improved method and apparatus enables nodes to be added or removed from the system on a frame-by-frame basis. A node can be added to the system by changing the ASP to map a time slot or multiple time slots for the new node. However the node needs to be ‘registered’ by the base station first before the node is recognized. There are many ways of registering a node such as using a polling cycle whereby the base station sends out a polling ASP that maps all the possible nodes to a time slot in the data frame (or splitting up the polling ASP amongst multiple data frames) and then waits for a response from each node. If there is a response then that node is active, and if there is no response then that node is considered inactive and will be ignored in future ASP mappings. Polling the nodes is just one method of registering nodes in a system; however, other methods of registering nodes are possible and known to one skilled in the art. 
     A node can be easily removed from the system if needed. A node can be removed from a future ASP mapping if it does not respond during its allocated time slot. Optionally, the system may instead wait for several missed time slots before assuming an inactive node. This approach prevents the system from removing a node that may be temporarily out of range or unable to communicate for some other reason. 
     The flexibility of the improved method and apparatus enables the nodes to operate in a low power mode except during their allocated time slot. Alternately the system could power down those nodes with no information to send. A node that is powered down will not communicate with the base station and in some embodiments, this could cause a powered down node to be dropped from future ASP mapping. Communications with such a node would resume when the node goes through a registration procedure with the base station as discussed above. Alternatively, the base station could leave all the nodes mapped in the ASP and just receive data from the nodes with data to send during their respective time slots. 
     It is noted that the connection  300  from base station  200  to computer  100  can be any conventional hardwired or wireless interface such as those know as USB, IEEE 1394, Ethernet. 
     It is also noted that the preferred embodiment of  FIG. 1  is but one possible embodiment. Another embodiment would be to eliminate controller  220  in the base station  200  and to utilize computer  100  to take over the functions of the controller. Additionally, computer  100  could replace memory  240  as well. This would essentially make the base station  200  nothing more than a transceiver thus greatly reducing the cost of implementation. Other embodiments are possible as well and are within the inventive elements of the improved method and apparatus as they would be obvious to one skilled in the art. 
     The described method and apparatus can be used in a multitude of applications. The inventive principles of the present invention are useful for industrial, office, or any other type of multi-node application. Industrial applications may include multi-sensor alarm system monitoring, remote instrumentation monitoring, manufacturing flow and tracking, control of lighting, heating and cooling, etc. Office applications may include conference room interaction systems, employee/visitor tracking, asset control, etc. 
     The following is an example that shows how the invention can be used in an embodiment that includes a large number of low power devices that communicate using a wireless TDM communication channel. Such an application would, for example, be a student testing system consisting of a computer connected to a base station and a multitude of wireless “answer” devices, one for each student. The answer devices are normally kept in sleep mode in order to conserve power. Additionally, there is a projection system that the teacher uses to show the questions to the students. The students use the answer devices to record their answers to the questions shown on the projection system. The answer device then waits until it receives an ASP allocating a time slot for that device. The answer is then transmitted to the base station during the allocated time slot. 
     The foregoing description for an improved method and apparatus for a time division multiplexing protocol for wireless networks describes a specific embodiment; however, other embodiments are also possible that take advantage of the inventive principles. For example, another embodiment involves use of TDM and ASP in a wired system. Yet another embodiment uses TDM and ASP in an optical system. 
     It is noted that the embodiment shown the counters  450  and  260  operate as timers in a conventional manner. Counters  260  and  450  could be replaced by other types of conventional timers. In all embodiments, the timer is synchronized by the time of receipt of the ASP. 
     While the invention has been shown and described with respect to preferred embodiments thereof, it should be understood that a wide variety of other embodiments are possible without departing from the scope and sprit of the invention. The scope of the invention is only limited by the appended claims.