Patent Publication Number: US-9408149-B2

Title: Method of managing communication traffic for multiple communication technologies and communication device thereof

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to communication network, and in particular relates to a control method and a communication device for managing transmission traffic for multiple communication technologies. 
     2. Description of the Related Art 
     Over the years, wireless communication devices have evolved from simple devices such as cellular phones and pagers to multi-mode devices that support multiple communication connectivity for various communication technologies such as WiFi, WiMAX, and Bluetooth. 
     Simultaneous use of a plurality of radios associated with the plurality of communication technologies by a multi-radio device causes performance problems, for example, interference caused in the multi-radio device when each of the plurality of radios operate in adjacent/overlapping frequency bands/channels. As a result of this interference, a transceiver of the co-located transceivers in the multi-radio device may fail to distinguish between, a desired signal meant for processing or an undesired signal meant for processing by a co-located transceiver. Consequently, such interference causes degradation of service quality, for example, poor voice quality, errors in the sent or received data, and complete loss of a communication link. 
     BRIEF SUMMARY OF THE INVENTION 
     An embodiment of a method performed by a communication device to manage communications with a first and a second network having a first and a second communication technology, respectively, is described. The method comprises: determining, by a second communication module, whether a first transmission of the first communication technology is in progress before sending a second transmission having the second communication technology; when the first transmission is in progress, initiating, by a second communication module, an unavailable period of the first communication technology; initiating, by a second communication module, notification of the unavailability of the first communication technology to the first network; and sending, by the second communication module, with the second transmission. 
     Another embodiment of a communication device is also provided. The communication device manages communications with a first and a second network and comprises: a processor and a memory device, wherein the processor is configured to install first and second device drivers to the memory device and execute the first device driver to perform communication with the first network having a first communication technology, and execute the second device driver to perform communication with the second network having a second communication technology. The processor determines whether a first transmission of the first communication technology is in progress before sending a second transmission having the second communication technology, and when the first transmission is in progress, an unavailable period of the first communication technology is initiated, and notification of the unavailability of the first communication technology to the first network is initiated, before the second transmission is sent. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein: 
         FIG. 1  is a block diagram of a communication device  10  operative with two or more communication networks according to an embodiment of the invention. 
         FIG. 2  is a timing diagram for time division management of the WiFi and Bluetooth traffic according to an embodiment of the invention. 
         FIG. 3  is a flowchart of a time management method  3  for coordinating the WiFi and Bluetooth traffic according to an embodiment of the invention. 
         FIG. 4  is a flowchart of a time management method  4  for coordinating the WiFi and Bluetooth traffic according to another embodiment of the invention. 
         FIG. 5  is a flowchart of a TDD scheduling method  5  according to an embodiment of the invention. 
         FIG. 6  shows interrupt request levels IRQL for various software function types. 
         FIG. 7  is a flowchart of a WiFi and Bluetooth traffic TDD scheduling method  7  according to another embodiment of the invention. 
         FIG. 8  is a flowchart of a communication control method  8  for a subordinate communication circuit according to an embodiment of the invention. 
         FIG. 9  is a flowchart of a time management method  9  for coordinating the WiFi and Bluetooth traffic according to another embodiment of the invention. 
         FIG. 10  is a flowchart of a WiFi and Bluetooth traffic TDD scheduling method  10  according to another embodiment of the invention. 
         FIG. 11  is a flowchart of a WiFi and Bluetooth traffic TDD scheduling method  11  according to another embodiment of the invention. 
         FIG. 12  is a flowchart of a callback function setup method  12  for a subordinate communication circuit according to an embodiment of the invention. 
         FIG. 13  is a flowchart of a communication control method  13  for a subordinate communication circuit according to an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims. 
       FIG. 1  is a block diagram of a communication device  10  operative with two or more communication networks according to an embodiment of the invention, including a processor  100 , a memory device  102 , a first communication circuit  104   a , and a second communication circuit  104   b . The communication device  10  may be a Personal Digital Assistant (PDA), a mobile phone, a laptop computer, a tablet computer, a Customer Premises Equipment (CPE), a personal computer, or any device providing accesses to two or more communication technologies. The communication device  10  can support two or more communication technologies occupying substantially the same or partially the same (overlapped) frequency band(s), for example, Bluetooth, a Wireless Local Area Network (WLAN), a Worldwide Interoperability Microwave Access (WiMAX), a Wireless Metropolitan Area Network (WMAN), Long Term Evolution (LTE) and other telecommunication technologies occupying substantially the same or overlapped Radio Frequency (RF) spectrum. The Bluetooth technology operates in a frequency spectrum of 2.4 GHz. The WLAN technology operates in the frequency spectrum of 2.4 GHz-2.5 GHz. The WiMAX technology operates in the frequency spectrum of 2.3 GHz-2.4 GHz and 2.5 GHz-2.7 GHz. The LTE may adopt 2.3-2.6 GHz frequency spectrum for operation. Accordingly, the telecommunication technologies used by the communication device  10  may share the same range of the frequency spectrum. In order to reduce signal interference and data collision between different telecommunication technologies, the communication device  10  can manage the uplink and downlink traffic of various telecommunication technologies by multiplexing various radio traffics in time. 
     Specifically, the communication device  10  can appoint one of the telecommunication technologies as a traffic scheduler for controlling the radio traffic via air according to predefined weightings. The traffic scheduler may be determined according to a traffic resolution or service type. The traffic resolution may be defined by a minimal time unit, or a timeslot, of a transmission data for the communication technology. For example, in Bluetooth protocol, each transmission or reception traffic takes place in real-timeslots that are 625 microseconds in duration. In WLAN or WiMAX protocol, the uplink and downlink frame duration is in the millisecond range such as 3 ms for a downlink sub-frame and 2 ms for an uplink sub-frame. Therefore, the communication device  10  may adopt the Bluetooth communication technology as the traffic scheduler. The service type of the communication service may be a real-time traffic or a non-real-time traffic. The real-time traffic requires accurate timing synchronization between the traffic source and destination, while the non-real-time traffic has no reliance on time synchronization between the traffic source and destination. When the communication device  10  concurrently requests for the real-time service such as Voice Over IP (VoIP) and the non-real-time service such as a File Transfer Protocol (FTP) or browser applications, the communication technology with the real-time service may be employed as the traffic scheduler. In some implementations, the traffic scheduler may stop a communication session from the other communication technology and initiate a communication session for the traffic scheduler at the software, firmware, or hardware level. In other implementations, the traffic scheduler may assigned a weighting to each communication technology and activate a communication technology according to the assigned weighting. The weightings for all available communication technologies may be assigned by a software program configurable by a user or a program developer. 
     The communication device  10  includes a processor  100 , a memory device  102 , and two or more communication circuits  104   a  and  104   b . The processor  100  is coupled to the memory device  102  and the two or more communication circuits  104   a  and  104   b . The processor  100  can allocate memory spaces in the memory device  102  and install device drivers such as a WiFi driver  1020   a  or a Bluetooth driver  1020   b  to the allocated memory spaces, allowing high-level computer programs to control and interact with the communication circuits  104   a  and  104   b , respectively. The WiFi driver  1020   a  and the Bluetooth driver  1020   b  can contain a WiFi function  10200   a  and a Bluetooth function  10200   b , respectively, and each can perform WiFi and Bluetooth functions such as generating a data frame, establishing a communication link with an external network, transmitting or receiving a data transmission, and other communication data processing functions. Once installed, the WiFi driver  1020   a , the Bluetooth driver  1020   b  and the functions thereof can be retrieved from the allocated memory spaces. The memory device  102  may be a Static Random Access Memory (SRAM) or Dynamic RAM (DRAM). 
     The two or more communication circuits  104   a  and  104   b , utilizing different communication technologies, may or may not have hardware connections therebetween. For explanatory purposes, hereinafter, the first communication circuit  104   a  is directed to the WLAN communication technology and the second communication circuit  104   b  is directed to the Bluetooth communication technology. In some embodiments, the two or more communication circuits  104  have no direct connection therebetween, and the traffic scheduler can reside in the device driver  1020   b  or firmware for the Bluetooth communication technology, and manage the time division mechanism for the Bluetooth and WiFi transmissions. Each communication circuit  104  may comprise analog circuits and digital circuits to perform analog-to-digital conversion (ADC), digital-to-analog conversion (DAC), gain adjustment, modulation, demodulation, signal filtering processes and digital signal processing. Further, the Bluetooth communication technology can employ firmware or hardware for the link control (LC) protocol which carries out the baseband protocols and other low-level link routines. The WiFi communication technology can include firmware or hardware for a media access control (MAC) layer which provides addressing and channel access control mechanisms for several WLAN stations to communicate within a multiple access network in a shared medium. The processor  100  can execute the instruction codes in the first device driver  1020   a  for controlling the communication circuit  104   a  to communicate with a WLAN access point  12   a , and likewise, execute the instruction codes in the second device driver  1020   b  for controlling the communication circuit  104   b  to communicate with another Bluetooth peer device  12   b . In the case of for a WiMAX or LTE network, the processor  100  can execute the instruction codes in the corresponding device driver  1020  for controlling the corresponding communication circuit  104  to communicate with a WiMAX base station or an Evolved Node B (eNB)  12 . 
     The communication device  10  can manage the Bluetooth and WiFi traffic, allowing two communication technologies to share the same transmission resources, including the transmission medium and spectrum without signal interference and data collision. 
     People with ordinary skills in the art may recognize that two or more communication circuits may be incorporated in the communication device  10 . Further, one or more antennas  106  may be shared between the communication technologies. 
       FIG. 2  illustrates an exemplary timing diagram for time division management of the WiFi and Bluetooth traffic incorporated by the communication device  10  in  FIG. 1  according to an embodiment of the invention, with the horizontal axis showing the time, and the vertical axis showing the WiFi and Bluetooth traffic. The Bluetooth device driver, firmware, or circuit can serve as the traffic scheduler for multiplexing the WiFi and Bluetooth traffic, so that the two communication technologies can share the same frequency spectrum for data transmission. The Bluetooth traffic scheduler can regard the WiFi traffic as a virtual Bluetooth link, and share a part of the time to the WiFi traffic according to the predetermined weighting, thereby controlling the ratio of the WiFi and Bluetooth transmissions on the overlapped frequency spectrum. The WiFi network adopts an adaptive data rate scheme, determining a data packet rate of the WiFi transmission according to the channel condition. Failure to receive an acknowledgement from the communication device  10  may cause the WiFi network to determine that the channel condition has degraded, resulting in a reduced data packet rate for subsequent WiFi transmissions. Therefore, when a Bluetooth transmission is scheduled to be launched and a WiFi transmission is in progress, the Bluetooth traffic scheduler can generate an interrupt event to inform the WiFi driver  1020   a  of the imminent Bluetooth traffic. In response to the interrupt event, the WiFi driver  1020   a  can submit a NULL frame with a power saving bit equal to 1 to the WiFi network, suspending further WiFi data traffic between the communication device  10  and the AP  12   a  and preventing the AP  12   a  from experiencing a reduction in the data packet rate. The interrupt event is required to be delivered to the WiFi driver  1020   a  promptly so that when the Bluetooth transmission is ready to be transmitted via air, the WiFi transmission has already been completed. The power mode of the WiFi communication technology of the communication device  10  is indicated by a power management bit in a MAC header of an uplink sub-frame sent by the communication device  10 . The power management bit being set to 1, indicates that the communication device  10  is in a power saving mode, and the power management bit being set to 0 represents that the communication device  10  is available for transmission of buffered WLAN data. 
     In the example in  FIG. 2 , the WiFi data traffic includes sub-frames  200 ,  202 ,  204 ,  206 , and  208 , and the Bluetooth data traffic includes slots  210  and  212 . In some embodiments, the Bluetooth driver  1020   b  may act as the traffic scheduler, scheduling an imminent Bluetooth slot  210  in a transmission queue when the sub-frame  200  is being transmitted via air. The Bluetooth driver  1020   b  may generate an interrupt event to the WiFi driver  1020   a , allowing the WiFi driver  1020   a  to complete the ongoing WiFi transmission and then inform the WiFi network of the unavailability of the WiFi communication via the sub-frame  202  with a power saving bit set to 1 in the MAC header of a NULL frame. The WiFi driver  1020   a  can request the Bluetooth driver  1020   b  to conduct a transmission session. In response, the Bluetooth driver  1020   b  can schedule the WiFi transmission into the transmission queue. The Bluetooth driver  1020   b  can conduct the scheduled Bluetooth transmission with the peer Bluetooth device  12   b  with the slot  210 , and initiate a subsequent scheduled WiFi transmission upon completion of the Bluetooth transmission by prompting the WiFi driver  1020   a  to send another NULL frame  204 , having the power saving bit set to 0, to the WiFi network, thus, restoring the WiFi communication between the communication device  10  and the AP  12   a . The WiFi driver  1020   a  can next conduct a subsequent WiFi transmission  106 . During transmission of the sub-frame  206 , the Bluetooth driver  1020   b  can schedule another Bluetooth transmission, invoking another interrupt event to the WiFi driver  1020   a , causing the WiFi driver  1020   a  to complete the on-going WiFi transmission and then return to the power saving mode via the sub-frame  208  having the power saving bit set to 1. Consequently the Bluetooth driver  1020   b  can continue with a next Bluetooth transmission  212 . The Bluetooth transmission can be a transmit slot or a receive slot, wherein each slot is 625 microseconds in length. The WiFi transmission can be an uplink sub-frame or a downlink sub-frame, wherein each sub-frame is in a millisecond range in length. When no Bluetooth and WiFi traffic is on air, the communication circuit  10  can listen for both type of traffic concurrently. In the traffic control manner set forth, the communication device  10  can employ a device driver, such as the Bluetooth driver  1020   b , to manage the Bluetooth and WiFi traffic and allow two communication technologies to share the same transmission resources without signal interference and data collision. 
       FIG. 3  is a flowchart of a time management method  3  for coordinating the WiFi and Bluetooth traffic according to an embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The time management method  3  may be adopted by a traffic scheduler such as the Bluetooth driver  1020   b.    
     Upon startup, the communication device  10  can set the Bluetooth driver  1020   b  as the traffic scheduler which can schedule an imminent Bluetooth transmission (second transmission) (S 300 ) and determine whether the transmission resources are being used by a WiFi transmission (first transmission) before proceeding with the imminent Bluetooth transmission (S 302 ). If the transmission resources are in use by the WiFi transmission, then the WiFi transmission is required to be suspended before the Bluetooth transmission can be transmitted via the air interface. Accordingly, the Bluetooth driver  1020   b  can interrupt a subsequent WiFi transmission and initiate a notification message indicating that the WiFi communication to be sent to the AP  12   a  by the WiFi driver  1020   a  is unavailable, informing the WiFi network that the communication device  10  will be entering into the power saving mode (S 304 ). Otherwise, the Bluetooth driver  1020   b  can determine that the transmission resources are available and the Bluetooth driver  1020   b  can proceed with the Bluetooth transmission (S 306 ). The Bluetooth driver  1020   b  can interrupt a subsequent WiFi transmission and initiate a notification message by generating an interrupt event invoking a WiFi callback function  10200   a  in the WiFi driver  1020   a , thereby reducing the time for communicating between the Bluetooth driver  1020   b  and the WiFi driver  1020   a . Details are described in the time management methods  4 - 13 . Accordingly, the WiFi transmission can be an uplink sub-frame or a downlink sub-frame, and the Bluetooth transmission may be a transmit slot or a receive slot. The WiFi driver  1020   a  can make WiFi transmission requests to the Bluetooth driver  1020   b . The Bluetooth driver  1020   b  can schedule the Bluetooth transmission and the requested WiFi transmission according to predetermined weightings and conduct the scheduled transmissions in sequence, thereby providing time division multiplexing for the Bluetooth and WiFi communication technologies without signal interference and data collision. The time management method  3  is then completed and exited (S 308 ). 
       FIG. 4  is a flowchart of a time management method  4  for coordinating the WiFi and Bluetooth traffic according to another embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The time management method  4  may be adopted by a traffic scheduler such as the Bluetooth driver  1020   b.    
     Upon startup, the communication device  10  can set the Bluetooth driver  1020   b  as the traffic scheduler which can schedule an imminent Bluetooth transmission (second transmission) (S 400 ) and determine whether a WiFi transmission (first transmission) is in progress before proceeding with the imminent Bluetooth transmission via a WLAN bit indicative of whether a WiFi transmission is ongoing or not (S 402 ). The WLAN bit is a register value stored in common registers. If the WLAN bit is set as inactive, indicating that the transmission resources are available for the Bluetooth transmission, the Bluetooth driver  1020   b  can proceed with the scheduled Bluetooth transmission by Frequency Division Duplexing (FDD), multiplexing the transmit and receive slots on different frequency bands (S 404 ). If the WLAN bit is set as active, indicating that a WiFi transmission is in progress, the Bluetooth driver  1020   b  can proceed the scheduled Bluetooth and WiFi transmissions by Time Division Duplexing (TDD), multiplexing the Bluetooth and WiFi transmissions in different time intervals on the same or partially the same frequency spectrum. Accordingly, in order to perform the TDD for the Bluetooth and WiFi transmissions, the Bluetooth driver  1020   b  has to generate an interrupt event to the WiFi driver  1020   a , invoking the NULL frame with the power saving bit set as  1  to be sent to the WiFi network. Hereafter the sub-frame with the power saving bit set as  1  is referred to as a power saving frame PS 1 , the sub-frame with the power saving bit set as  0  is referred to as a power saving frame PS 0 . The Bluetooth driver  1020   b  can generate the interrupt event with a callback function at the WiFi driver  1020  to reduce the time for the communication between the Bluetooth driver  1020   b  and the WiFi driver  1020   a , invoking the WiFi driver  1020   a  to suspend the WiFi circuit  104   a  and send the power saving frame PS 1  to the WiFi network. Consequently, the WiFi driver  1020   a  can transmit a WiFi pointer (first reference) pointing to an address in the memory device  102  to the Bluetooth driver  1020   b , at the address where a WiFi callback function can be retrieved back by the Bluetooth driver  1020   b  whenever a power saving frame PS 1  is required to be sent to the WiFi network (S 406 ). The WiFi pointer may point to the beginning of the WiFi driver  1020   a , or a WiFi function in the WiFi driver  1020   a  for establishing a WiFi connection and generating a power saving frame PS. Details for how the Bluetooth driver  1020   b  can use the WiFi pointer to call the WiFi function and generate the power saving frame PS 1  are provided in the  FIGS. 5-7 . Next, the Bluetooth driver  1020   b  can determine whether the communication device  10  is equipped with a single antenna or multiples antennas for the WiFi and Bluetooth communications (S 408 ). When the WiFi and Bluetooth communications share a common antenna, the Bluetooth driver  1020   b  can schedule the WiFi and Bluetooth transmissions by the TDD scheme by calling the WiFi callback function  10200   a  (S 410 ). When the WiFi and Bluetooth communications each have a dedicated antenna for transmissions, the Bluetooth driver  1020  can schedule the WiFi and Bluetooth transmissions by the FDD scheme, the TDD scheme, or a combination thereof by calling the WiFi callback function  10200   a  (S 412 ). The time management method  4  is then completed and exited (S 414 ). 
     The time management method  4  can employ the Bluetooth driver  1020   b  as a traffic scheduler which determines a scheduling scheme for the Bluetooth and WiFi transmissions based on the status of the WiFi communication and the number of available antennas, managing the Bluetooth and WiFi transmissions on the same spectrum without causing signal interference and data collision. 
       FIG. 5  is a flowchart of a TDD scheduling method  5  according to an embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The TDD scheduling method  5  may be used for implementing Steps S 410  and S 412  in  FIG. 4  for managing the WiFi and Bluetooth transmissions. 
     Upon startup, the communication device  10  has already scheduled a Bluetooth transmission and acquired the WiFi pointer pointing to the WiFi callback function in the memory device  102 , while communicating with the WiFi network through the AP  12   a  (S 500 ). The Bluetooth driver  1020   b  can initiate an interrupt event to call back the WiFi function  10200   a  using the WiFi pointer when a Bluetooth transmission is scheduled, a subsequent WiFi is required to be interrupted, and a power saving frame PS 1  (notification of the unavailable WiFi communication) is required to be sent to the WiFi network (S 502 ). The Bluetooth driver  1020   b  can call the WiFi function  10200   a  to generate a power saving frame PS 1  informing the WiFi network of the unavailability of the WiFi communication, in order to prevent the WiFi network from reducing the data package rate after the communication device  10  wakes up. Due to using the function callback, the communication latency for communications between the WiFi and Bluetooth drivers is reduced and controllable within a microsecond level, and the WiFi communication is suspended by the time the Bluetooth driver  1020   b  starts proceeds a subsequent Bluetooth transmission, as illustrated in  FIG. 6 . 
       FIG. 6  shows interrupt request levels IRQL for various software function types, with the vertical axis representing the IRQL and the horizontal axis showing different function types. The IRQL represents a priority ranking of an interrupt event. The processor  100  can process all interrupt events according to the IRQL thereof. All interrupt events with lower IRQLs will not interfere with a current interrupt event processed by the processor  100 . The interrupt processing time of the interrupt event reduces with an increase in the IRQ level, i.e., the higher the IRQL is, the less latency the interrupt event will take.  FIG. 6  lists a direct IRQL (DIRQL), a dispatch IRQL, an APC IRQL, and a passive IRQL in a decreased priority ranking. At the Direct IRQL, the interrupt event requires minimal interrupt processing time and the processor  100  can postpone all other operations and execute the DIRQL interrupt event within a microsecond range. At the passive IRQL, the processor  100  can only execute the interrupt event with the passive IRQL event when higher IRQL interrupts are completed, resulting in long and uncontrollable interrupt processing time, for example, 100 microseconds to 10 milliseconds. The Bluetooth driver  1020   b  can instruct the WiFi driver  1020   a  to interrupt a subsequent WiFi transmission and issue the power saving frame PS 1  to the WiFi network by the function callback or an input output request packet (IRP).  FIG. 6  shows an interrupt event for a function callback calling for a power saving flame PS may be at a DIRQL or a dispatch IRQL, and an interrupt event for a ZW function requesting an IRP is at the passive level. Therefore, when the Bluetooth driver  1020   b  generates the interrupt event for transmitting the IRP, the time from initiating the interrupt event to actual delivery of the power saving frame PS can be long and uncontrollable. Further, the WiFi driver  1020   a  can use up to 100 microseconds to process the requests sent by the IRP, causing further data processing delay before sending the power saving frames PS. When the Bluetooth driver  1020   b  generates the interrupt event for a function callback, the time from initiating the interrupt event to actual delivery of the power saving frame PS can be kept within 50 milliseconds (the time is variable and not controlled), rendering reduced and manageable data processing latency for generating and sending the power saving frames PS. 
     Referring now to  FIG. 5 , after the WiFi communication is suspended, the Bluetooth driver  1020   b  can proceed with the scheduled Bluetooth transmission, which includes receiving a receive slot or transmitting a transmit slot on the Bluetooth radio link (S 504 ). The TDD scheduling method  5  is then completed and exited (S 506 ). 
     The TDD scheduling method  5  can be employed by a traffic scheduler, using an interrupt event in conjunction with a function callback to reduce data processing latency for generating and sending the power saving frames PS, so that when the Bluetooth driver  1020   b  starts to proceed with a subsequent Bluetooth transmission, the WiFi transmission is no longer present on the communication channel, reducing signal interference and data collision for the WiFi and Bluetooth data transmissions. 
       FIG. 7  is a flowchart of a WiFi and Bluetooth traffic TDD scheduling method  7  according to another embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The TDD scheduling method  7  may be used for implementing Steps S 410  and S 412  in  FIG. 4  for managing the WiFi and Bluetooth transmissions. 
     Upon startup, the communication device  10  has already scheduled a Bluetooth transmission and acquired the WiFi pointer pointing to the WiFi callback function, while communicating with the WiFi network through the AP  12   a  (S 700 ). The Bluetooth driver  1020   b  can determine whether the WiFi pointer is received before initiation of an interrupt event (S 702 ). When the Bluetooth driver  1020   b  has not yet received the WiFi pointer, it cannot perform the function callback operation, therefore, the Bluetooth driver  1020   b  can set an event count to be  0  (S 704 ). In some implementations, the Bluetooth driver  1020   b  can request for the WiFi callback function  10200   a  from the WiFi driver  1020   a  after determining the absence of the WiFi pointer. When the WiFi pointer is received, the Bluetooth driver  1020   b  can determine whether an on-going interrupt event is identical to a previous interrupt event, i.e., the Bluetooth driver  1020   b  determines whether the same interrupt event has been requested repeatedly (S 706 ). When the same interrupt event has been requested twice, the Bluetooth driver  1020   b  can discard the on-going interrupt event, since it has been executed in a previous interrupt event (S 708 ). When the on-going interrupt event is different from a previous interrupt event, the Bluetooth driver  1020   b  can determine a type of the power saving frame to be sent (S 710 ). When the Bluetooth driver  1020   b  requests to interrupt the current WiFi communication and informs the WiFi network of the unavailability of the WiFi communication, the interrupt event can call the WiFi callback function  10200   a  with the power saving frame PS 1  (S 712 ). Otherwise, when the Bluetooth driver  1020   b  has completed the scheduled Bluetooth transmission and wishes to resume the WiFi communication, the interrupt event can call the WiFi callback function  10200   a  with the power saving frame PS 0  (S 714 ). The WiFi driver  1020   a  can receive the interrupt event and execute the callback function  10200   a  upon completion of the WiFi transmission in progress. Thus the TDD scheduling method  7  is completed and exited. 
     The TDD scheduling method  7  can be employed by a traffic scheduler, using an interrupt event in conjunction with a function callback to reduce data processing latency for generating and sending the power saving frames PS, reducing signal interference and data collision for the WiFi and Bluetooth data transmissions. 
       FIG. 8  is a flowchart of a communication control method  8  for a subordinate communication circuit according to an embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The communication control method  8  may be adopted by the WiFi driver  1020   a.    
     Upon startup, the communication device  10  has already scheduled a Bluetooth transmission and the WiFi driver  1020   a  has received the interrupt event for the function callback with the power saving frame PS. When the WiFi driver  1020   a  receives the function callback with the power saving frame PS 1  (S 800 ), it can send a NULL uplink sub-frame having the power saving bit set to  1  to the WiFi network through the AP  12   a , informing of the communication device  10 , entering into a sleep mode and the WiFi communication, not being available, while setting a power saving timer to a predetermined countdown time interval T PS  (S 802 ). When the WiFi driver  1020   a  receives the function callback with the power saving frame PS 0  (S 810 ), it can send a NULL uplink sub-frame having the power saving bit set to  0  to the WiFi network through the AP  12   a , informing of the communication device  10  being awakened, and available for WiFi communication again (S 812 ). After delivery of the power saving frame PS to the WiFi network, the WiFi driver  1020   a  can wait for receiving a MAC acknowledgement message from the WiFi network, which indicates that the WiFi network has received the power saving frame PS 1  (S 808 ). When the communication device  10  fails to receive the acknowledge message within a predetermined time interval, it may be determined that the power saving frame PS 1  has failed to be delivered to the WiFi network and thus, the frame PS 1  is resent again (S 814 ), and the waiting for the MAC acknowledgement message is conducted (S 808 ). In certain embodiments, Steps S 808  and S 814  may be omitted from the communication control method  8 , the communication device  10  may exit to Step S 816  after Step S 812 . When the communication device  10  receives the acknowledge message, the communication control method is completed and exited (S 816 ). Further, in a case where the WiFi driver  1020   a  receives no requests from the Bluetooth driver  1020   b  for restoring the WiFi communication long after the suspension, the WiFi driver  1020   a  can adopt a mechanism to restore the WiFi communication after a certain real-time interval by setting the power saving timer to the predetermined countdown time interval T PS  for counting the suspension time. The WiFi driver  1020   a  can determine whether the power saving timer has expired (S 804 ), and if so, the WiFi driver  1020   a  can generate and send a power saving frame PS 0  to inform the WiFi network of it being woken up from the sleep mode and ready for a WiFi communication (S 806 ). Otherwise, the power saving timer can continue to count down (S 805 ) and check for the expiry of the countdown (S 804 ).  FIG. 11  is a flowchart of a WiFi and Bluetooth traffic TDD scheduling method  11  according to another embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . 
     The communication control method  8  can sent the power saving frame PS to the WiFi network, informing of the WiFi communication status of the communication device  10  being in the sleep mode or wakeup mode. 
       FIG. 9  is a flowchart of a time management method  9  for coordinating the WiFi and Bluetooth traffic according to another embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 , adopted by a traffic scheduler such as the Bluetooth driver  1020   b.    
     The time management method  9  is similar to the time management method  4 , except that an additional protection mechanism is implemented in Step S 906  to prevent the communication device  10  from concurrently communicating with two or more communication technologies on the same spectrum. Steps S 900 , S 904 -S 914  are identical to Steps S 400 , S 404 -S 414 , thus, reference may be made to the preceding sections and will not be repeated here. 
     As in the time management method  4 , the Bluetooth driver  1020   b  is set as the traffic scheduler. However, the Bluetooth driver  1020   b  can only determine whether the WiFi transmission has ended and proceed with the scheduled Bluetooth transmission upon receiving a notification from the WiFi driver  1020   a . Specifically, in Step S 906 , the Bluetooth driver  1020   b  can further set up a protection flag indicating the WiFi communication status and deliver a Bluetooth pointer pointing to a Bluetooth callback function  10200   b , which is to be called back from the WiFi driver  1020   a , for clearing the protection flag to  0 . The protection flag is set to  1  in Step S 906 , indicating that the WiFi communication has not yet been suspended. When the WiFi communication is completely suspended and the WiFi network has acknowledged the suspension, the protection flag will again be set to  0  by the Bluetooth callback function  10200   b , indicating that the WiFi communication is no longer present on the shared spectrum. The Bluetooth callback function  10200   b  may be a program function in the Bluetooth driver  1020   b  for processing all of the BT transmissions, including the transmit and receive slots. 
     The time management method  9  can employ the Bluetooth driver  1020   b  as a traffic scheduler which determines a scheduling scheme for the Bluetooth and WiFi transmissions, while providing a protection mechanism which prevents the shared spectrum from being used by the Bluetooth and WiFi transmission concurrently, reducing signal interference and data collision. 
       FIG. 10  is a flowchart of a TDD scheduling method  10  according to another embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The TDD scheduling method  10  may be used in Steps S 910  and S 912  in  FIG. 9  for the Bluetooth driver  1020   b  to manage the WiFi and Bluetooth transmissions by TDD. 
     The time management method  10  is similar to the time management method  5 , except that an additional Step S 1004  is inserted to prevent the communication device  10  from concurrently communicating with two or more communication technologies on the same spectrum. Steps S 1000 , S 1006 -S 1008  are identical to Steps S 400 -S 404 , thus, reference may be made to the preceding sections and will not be repeated here. In Step S 1004 , the Bluetooth driver  1020   b  can check the protection flag continuously or regularly when the protection flag remains as  1 , and only schedule and proceed with the WiFi and Bluetooth transmissions when the protection flag has been cleared by the WiFi driver  1020   a , when the WiFi driver  1020   a  is  0 . 
     The TDD scheduling method  10  can employ the Bluetooth driver  1020   b  as a traffic scheduler which determines a scheduling scheme for the Bluetooth and WiFi transmissions, while providing a protection mechanism which prevents the shared spectrum from being used by the Bluetooth and WiFi transmission concurrently, reducing signal interference and data collision. 
       FIG. 11  is a flowchart of a TDD scheduling method  11  according to another embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The TDD scheduling method  11  may be used in Steps S 910  and S 912  in  FIG. 9  for the Bluetooth driver  1020   b  to manage the WiFi and Bluetooth transmissions by TDD. 
     The time management method  11  is similar to the time management method  7 , except that Step S 1012  and  1114  are different from Step S 712  and S 714 , preventing the communication device  10  from concurrently communicating with two or more communication technologies on the same spectrum. Steps S 1100 -S 1110  are identical to Steps S 400 -S 410 , thus, reference may be made to the preceding sections and will not be repeated here. In Step S 1112  and S 1114 , the Bluetooth driver  1020   b  can set the protection flag as  1 , call the WiFi callback function for transmission suspension, and only schedule and proceed with the WiFi and Bluetooth transmissions when the protection flag has been cleared by the WiFi driver  1020   a , when the WiFi driver  1020   a  is 0. 
     The TDD scheduling method  11  can employ the Bluetooth driver  1020   b  as a traffic scheduler which determines a scheduling scheme for the Bluetooth and WiFi transmissions, while providing a protection mechanism which prevents the shared spectrum from being used by the Bluetooth and WiFi transmission concurrently, reducing signal interference and data collision. 
       FIG. 12  is a flowchart of a callback function setup method  12  for a subordinate communication circuit according to an embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The TDD scheduling method  11  may be adopted by the WiFi driver  1020   a.    
     Upon startup, the WiFi driver  1020   a  and the Bluetooth driver  1020   b  are registered and installed into the memory device  102  by the processor  100  (S 1200 ). The WiFi driver  1020   a  and the Bluetooth driver  1020   b  can then exchange the WiFi pointer pointing to the WiFi callback function  10200   a  and the Bluetooth point pointing to the Bluetooth callback function  10200   b . Thus the WiFi driver  1020   a  can transmit the WiFi pointer to the Bluetooth driver  1020   b  (S 1202 ) and receive the Bluetooth pointer from the Bluetooth driver  1020   b  (S 1204 ). The pointer exchanges may occur upon completion of the device driver registration, and may occur immediately before the Bluetooth driver  1020   b  is going to proceed with the scheduled Bluetooth transmission. The WiFi pointer may point to the beginning of the WiFi driver  1020   a , or a WiFi function in the WiFi driver  1020   a  for establishing a WiFi connection and generating a power saving frame PS. The Bluetooth pointer may point to the beginning of the Bluetooth driver  1020   b , or a Bluetooth function  10200   b  in the Bluetooth driver  1020   b  for clearing the protection flag. After the pointer exchange, the callback function setup method  12  is completed and exited 
     The callback function setup method  12  can exchange pointers between the WiFi driver  1020   a  and the Bluetooth driver  1020   b  for suspending the WiFi communication and setting up a protection mode, preventing the shared spectrum from being used by the Bluetooth and WiFi transmission concurrently, reducing signal interference and data collision. 
       FIG. 13  is a flowchart of a communication control method  13  for a subordinate communication circuit according to an embodiment of the invention, incorporating the communication environment  1  in  FIG. 1 . The communication control method  13  may be adopted by the WiFi driver  1020   a.    
     The time management method  13  is similar to the time management method  8 , except that Step S 1316  is added to call back the Bluetooth callback function  10200   b , clearing the protection flag and proceeding with the scheduled Bluetooth transmission. In particularly, in Step S 1316 , after receiving the MAC acknowledgement message for the power saving frame PS 1  from the WiFi network, the WiFi driver  1020   a  can be certain that no WiFi traffic is proceeding on the shared spectrum. Thus, the WiFi driver  1020   a  can call the Bluetooth callback function  10200   b  via the Bluetooth pointer for clearing the protection flag, allowing the Bluetooth driver  1020   b  to proceed with the scheduled transmission. 
     The time management method  13  can be adopted by the WiFi driver  1020   a  to implement traffic protection, preventing the shared spectrum from being used by the Bluetooth and WiFi transmission concurrently, reducing signal interference and data collision. 
     Various embodiments of the invention provide system and method for enabling coexistence between a plurality of communication technologies on a communication device. The method minimizes interference between the plurality of communication technologies. Moreover, in one of the embodiments the method may be implemented without the need to change the actual architecture of the plurality of communication technologies. Further, in one of the embodiments the method and system reduces the implementation cost as the plurality of communication technologies share various components of the communication device. 
     As used herein, the term “determining” encompasses calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” may include resolving, selecting, choosing, establishing and the like. 
     The various illustrative logical blocks, modules and circuits described in connection with the present disclosure may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array signal (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any commercially available processor, processor, microprocessor or state machine. 
     The operations and functions of the various logical blocks, modules, and circuits described herein may be implemented in circuit hardware or embedded software codes that can be accessed and executed by a processor. 
     While the invention has been described by way of example and in terms of the preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. To the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.