Abstract:
A Bluetooth master having improved transmission efficiency and a method of transmitting data using the same. The Bluetooth master keeps track of the type of data that its slave devices receive/transmit and adjusts its broadcasting scheme according to the type of data received/transmitted. Therefore, different data types are parsed to different slave devices in a more efficient manner. Thus, it is possible to improve transmission efficiency without changing a communication protocol between the Bluetooth master and the slave device.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit under 35 U.S.C. § 119 (a) to Korean Patent Application No. 10-2006-0065154, filed on Jul. 12, 2006, the entire disclosure of which is hereby incorporated by reference. 
       BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present general inventive concept relates to a Bluetooth master having improved transmission efficiency and a method of transmitting data using the same. More particularly, the present general inventive concept relates to a Bluetooth master having improved transmission efficiency by adding information about a slave device to data and transmitting the resulting data only to a target slave device, and a method of transmitting data using the same. 
         [0004]    2. Description of the Related Art 
         [0005]    Bluetooth is wireless communication technology allowing bi-directional communication without the use of complex wires by wirelessly networking devices in a local area containing computers, mobile telephones, headsets, printers, personal digital assistants (PDAs), notebook computers, and home appliances. 
         [0006]    Communication between Bluetooth devices is based on a master-slave connection. A Bluetooth device requesting a connection by setting a frequency hopping order is called a master, and a Bluetooth device accepting the connection by receiving the request from the master and synchronizing itself to the frequency hopping order of the master is called a slave. 
         [0007]      FIG. 1  is a diagram illustrating the structure of a typical Bluetooth system. 
         [0008]    Referring to  FIG. 1 , the Bluetooth system contains an access point  10 , a master  20 , and a plurality of slaves  30 - 1  to  30 - 5 . 
         [0009]    In the Bluetooth system of  FIG. 1 , the master has a Bluetooth Personal Area Network (PAN) profile and discovers slaves having the Bluetooth PAN profile and thereby connects to the discovered slaves. This connection between one master and at least one slave is called a piconet. 
         [0010]    Upon receipt of data from the access point  10 , the master  20  broadcasts the data to the plurality of slaves  30 - 1  to  30 - 5  connected thereto. The use of such a Bluetooth system allows data to be wirelessly transmitted only using a Bluetooth device without needing an additional device. 
         [0011]    However, the Bluetooth protocol stacks v1.2 provides a maximum speed of about 730 kbps, which is slow and not suitable for web surfing or data transmission. 
         [0012]    A fundamental problem is that a PAN profile is used to transmit data, the data being basically broadcast according to the features of Transport Control Protocol/Internet Protocol (TCP/IP). 
         [0013]    For example, when a connection is established between one master and one slave, only a loss of the transmission speed of the Bluetooth itself is generated since data is transmitted between the master and the slave. However, when a connection is established between one master and n slaves (where, n&lt;=7), the master serves as a kind of an access point. That is, the master sequentially transmits received data to all the slaves connected to one piconet, as in a local area network (LAN). Accordingly, the loss of data throughput is generated by the number of the slaves connected to the master. 
         [0014]    Thus, there is a need for a method of minimizing the loss of a transmission speed caused upon broadcasting due to use of a PAN profile in a Bluetooth system. 
       SUMMARY OF THE INVENTION 
       [0015]    The present general inventive concept provides a Bluetooth master having improved transmission efficiency by adding information about a slave device to data and transmitting resulting data only to a target slave device, and a method of transmitting data using the same. 
         [0016]    Additional aspects and advantages of the present general inventive concept will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the general inventive concept. 
         [0017]    The foregoing and other aspects and utilities of the present general inventive concept are substantially realized by providing a Bluetooth master having an interface capable of interfacing communication with at least one or more external devices, a storage part capable of storing a type of data received via the interface, and target slave device information corresponding to the type of data, and a control part capable of transmitting data to a target slave device based on the type of data, wherein the target slave device information corresponds to the type of data when data is received from the at least one or more external devices. 
         [0018]    In an exemplary implementation, the Bluetooth master may also contain a discovering part capable of discovering at least one or more slave devices among the at least one or more external devices, and a key value generating part capable of generating a key value corresponding to each slave device discovered by the discovering part. 
         [0019]    The control part may insert the key value into the received data and transmit a resulting data to all the discovered slave devices when the target slave device information corresponding to the type of data received does not exist in the storage part. 
         [0020]    The control part may store information contained in a slave device response data as the target slave device information corresponding to the type of the transmitted data in the storage part. 
         [0021]    In another exemplary implementation, the control part may insert the key value into the received data and transmit a resulting data to all the discovered slave devices when a response data to the transmitted data is not received from the target slave device for a predetermined period of time. 
         [0022]    The control part may update the target slave device information stored in the storage part based on a response data when the response data is received from at least one slave device. 
         [0023]    The discovering part may discover the slave devices using a service discovery protocol (SDP). 
         [0024]    Here, the key value may be generated by mapping a Bluetooth Device (BD) address to each discovered slave device. 
         [0025]    The control part may delete the type of data and the target slave device information corresponding to the type of data from the storage part when a target slave device is disconnected. 
         [0026]    Here, the target slave device information may be at least one of an Internet Protocol (IP) address, a port number, and a key value of a target slave device. 
         [0027]    The foregoing and/or other aspects and utilities of the present general inventive concept are also achieved by providing a method of transmitting data using a Bluetooth master, the method including receiving data from an external device and transmitting the received data to a corresponding target slave device based on target slave device information previously stored according to a type of data of the received data. 
         [0028]    In an exemplary implementation, the method may further include discovering slave devices among external devices; and generating a key value corresponding to each discovered slave device. 
         [0029]    The method may further include inserting the key value into the received data and transmitting a resulting data to all the discovered slave devices when the target slave device information corresponding to the type of received data does not exist. 
         [0030]    In an exemplary implementation, the method may further include storing information contained in a response data received from at least one slave device as the target slave device information corresponding to the type of the transmitted data. 
         [0031]    The method may further include inserting the key value into the received data and transmitting a resulting data to all the discovered slave devices when a response data to the transmitted data is not received from the target slave device for a predetermined period of time. 
         [0032]    The method may further include updating the target slave device information based on a response data when the response data is received from at least one slave device. 
         [0033]    The discovering operation may discover the slave devices using a service discovery protocol (SDP). 
         [0034]    Here, the key value may be generated by mapping a BD address to each discovered slave device. 
         [0035]    The method may further include deleting target slave device information from previously stored information, when any slave device among the external devices is disconnected. 
         [0036]    Here, the target slave device information may be at least one of an Internet Protocol (IP) address, a port number, and a key value of the slave device. 
         [0037]    The foregoing and/or other aspects and utilities of the present general inventive concept may also be achieved by providing a computer readable recording medium having embodied thereon a computer program to execute a method of transmitting data using a Bluetooth master, the method including receiving data from an external device, and transmitting the received data to a corresponding target slave device based on target slave device information previously stored according to a type of data of the received data. 
         [0038]    The embodied method in the computer recording medium may further include discovering slave devices among external devices, and generating a key value corresponding to each discovered slave device. A key value may be inserted into the received data and a resulting data may be transmitted to all the discovered slave devices when the target slave device information corresponding to the type of received data does not exist. 
         [0039]    The foregoing and/or other aspects and utilities of the present general inventive concept may also be achieved by providing a Bluetooth master including an interface module capable of communicating with at least one external device, wherein the at least one external device is a slave device, a storage module capable of storing information on a type of data receivable by the slave device, and a control module capable of coordinating a transfer of data to a slave device based on a type of data received via the interface module, wherein the data transmitted to the slave device corresponds to the type of data receivable by the slave device. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0040]    These and/or other aspects and advantages of the present general inventive concept will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which: 
           [0041]      FIG. 1  is a diagram illustrating the structure of a typical Bluetooth system; 
           [0042]      FIG. 2  is a block diagram illustrating the structure of a Bluetooth master according to an exemplary embodiment of the present general inventive concept; 
           [0043]      FIG. 3  is a block diagram illustrating the structure of a Bluetooth master according to another exemplary embodiment of the present general inventive concept; 
           [0044]      FIGS. 4 to 6  are diagrams illustrating a data transmission process in a Bluetooth system having a Bluetooth master according to an exemplary embodiment of the present general inventive concept; 
           [0045]      FIG. 7  is a schematic diagram illustrating data transmission according to an exemplary embodiment of the present general inventive concept; 
           [0046]      FIG. 8  is a schematic diagram illustrating a format of an L2CAP data packet according to an exemplary embodiment of the present general inventive concept; 
           [0047]      FIG. 9  is a flowchart illustrating a method of transmitting data using a Bluetooth master according to an exemplary embodiment of the present general inventive concept; 
           [0048]      FIG. 10  is a flowchart illustrating a method of storing slave device information according to an exemplary embodiment of the present general inventive concept; and 
           [0049]      FIG. 11  is a flowchart illustrating a method of transmitting data using a Bluetooth master according to another exemplary embodiment of the present general inventive concept. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0050]    Reference will now be made in detail to the embodiments of the present general inventive concept, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below in order to explain the present general inventive concept by referring to the figures. 
         [0051]    Hereinafter, exemplary embodiments of the present general inventive concept will be described in detail with reference to the accompanying drawings. 
         [0052]      FIG. 2  is a block diagram illustrating the structure of a Bluetooth master according to an exemplary embodiment of the present general inventive concept. 
         [0053]    Referring to  FIG. 2 , a Bluetooth master  200  may include a storage part  210 , a control part  220 , and an interface  230 . 
         [0054]    The Bluetooth master  200  is connected to the Internet (not illustrated) in a wired or wireless manner, and may control all communications in a piconet. Further, the Bluetooth master  200  has a personal area network (PAN) profile and may be connected to slave devices (not illustrated) having a PAN profile. The Bluetooth master  200  can transmit received data from an access point (not illustrated) to the slave devices. It should be appreciated that while  FIG. 2  does not illustrate the access point, Internet, external devices, and/or slave devices, it is understood that they may be present, as needed, and information and/or data may be communicated accordingly. 
         [0055]    According to the PAN profile, Logical Link Control and Adaptation Protocol (L2CAP) data is generated using a Bluetooth network encapsulation protocol (BNEP), and then a piconet IP PAN is built so that the Bluetooth master  200  has both a master forwarding function and an access point function. 
         [0056]    The storage part  210  may store the type of data received via the interface  230 , and also target slave device information corresponding to the received data type. 
         [0057]    Here, the target slave device information may be at least one of an IP address, a port number, and a key value of the slave device. 
         [0058]    When the control part  220  receives data from the access point among the external devices, it may parse the received data to recognize the type of data received. When the type of data received is recognized, the control part  220  may transmit the received data only to a target slave device corresponding to the data type of the received data using the target slave device information stored in the storage part  210 . 
         [0059]    The interface  230  can interface communications with the external devices. Here, the external device may be any one of the access point and at least one of the slave devices. 
         [0060]    Further, the interface  230  may receive data from the access point among the external devices, and also receive slave device information from at least one slave device connected to the Bluetooth master  200 . 
         [0061]    The interface  230  may transmit the received data to the target slave device under control of the control part  220 . 
         [0062]      FIG. 3  is a block diagram illustrating the structure of a Bluetooth master  300  according to another exemplary embodiment of the present general inventive concept. 
         [0063]    Referring to  FIG. 3 , the Bluetooth master  300  may include a discovering part  310 , a storage part  320 , a control part  330 , a key value generating part  340 , and an interface  350 . 
         [0064]    The discovering part  310  can discover slave devices having a PAN profile among the external devices. Here, the discovering part  310  may use a service discovery protocol (SDP) to discover the slave devices. 
         [0065]    The storage part  320  can store information about the discovered slave devices, and a key value corresponding to each slave device information. 
         [0066]    Under control of the control part  330 , the storage part  320  may store the slave device information as target slave device information corresponding to the data type of data received. 
         [0067]    In storing the detected slave device information, when target slave device information corresponding to the type of the data exists, the storage part  320  may update the existing information with the detected slave device information. 
         [0068]    The control part  330  may have the same function as the control part  220  of  FIG. 2 . 
         [0069]    The control part  330  may determine whether target slave device information corresponding to the received data exists in the storage part  320 . If it is determined that the target slave device information does not exist, the control part  330  inserts a key value generated by the key value generating part  340  into the data to generate L2CAP data. 
         [0070]    The control part  330  can then transmit the generated L2CAP data to all slave devices discovered by the discovering part  310 . The slave devices, upon receiving the L2CAP data, transmit response data to the Bluetooth master  300 . 
         [0071]    The response data may be received from at least one or all of the slave devices via the interface  350 , and the control part  330  may detect slave device information from the received response data. 
         [0072]    The control part  330  may control the storage part  320  to store the detected slave device information as the target slave device information corresponding to the data. 
         [0073]    Upon receipt of a request to disconnect the slave device from the master  300 , the control part  330  may disconnect the slave device. In this case, the control part  330  may delete the type of data and the target device information corresponding to the type of data from the storage part  320 . 
         [0074]    When response data is not received from any slave device for a predetermined period of time, the control part  330  may insert a key value generated by the key value generating part  340  into the received data via the interface  350  to generate L2CAP data. 
         [0075]    The control part  330  may then re-transmit the generated L2CAP data to all slave devices discovered by the discovering part  310 . 
         [0076]    The control part  330  may also detect slave device information from response data received from a target slave device. 
         [0077]    In storing the detected slave device information in the storage part  320 , when there is target slave device information corresponding to the data type of the transmitted data, the control part  330  may control the storage part  320  so that the detected slave device information is updated with the target slave device information corresponding to the type of the transmitted data. 
         [0078]    Accordingly, the control part  330  may insert a key value into data to be transmitted to all the slave devices and transmit the resulting data to the slave devices, and may receive response data from any slave device. The control part  330  may control the storage part  320  to store the slave device information, for example, an IP address, a port number, and a key value of the slave device detected from the received response data as the target slave device information corresponding to the data type of the transmitted data. 
         [0079]    Thereafter, when the same data is received via the interface  350 , the control part  330  may transmit the received data only to a target slave based on the target slave device information corresponding to the data type stored in the storage part  320 . 
         [0080]    The key value generating part  340  may number all the discovered slave devices, and map a Bluetooth device (BD) address of each slave device to generate a key value. Here, the BD address may be, for example, a 48-bit MAC address of a network adapter for the slave device. 
         [0081]    The interface  350  may have the same function as the interface  230  of  FIG. 2  and receive, from the slave device, response data to the data transmitted to all the slave devices. 
         [0082]      FIGS. 4 to 6  are diagrams illustrating a data transmission process in a Bluetooth system having a Bluetooth master  400  according to an exemplary embodiment of the present general inventive concept. 
         [0083]    Referring to  FIG. 4 , a Bluetooth master  400  transmits data received from an access point  410  to all slave devices  430 - 1  to  430 - 5  connected to the Bluetooth master  400  using a PAN profile. 
         [0084]    In this case, the Bluetooth master  400  parses a portion of the data received from the access point  410  to check the data type of the received data. The Bluetooth master  400  inserts a key value that is generated based on a BD address of all the slave devices  430 - 1  to  430 - 5  connected thereto using a PAN profile, into the data and transmits the resulting data to all the slave devices  430 - 1  to  430 - 5 . 
         [0085]    Referring to  FIG. 5 , a Bluetooth master  400  receives response data from one slave device  430 - 2  among the slave devices  430 - 1  through  430 - 4  receiving the data having the inserted key value. In this case, the Bluetooth master  400  detects information about the slave device  430 - 2  from the response data and stores the detected information about the slave device  430 - 2  as target slave device information corresponding to the data received from the access point  410 . Here, the information about the slave device  430 - 2  may be, for example, an IP address, a port number, and a key value of the slave device  430 - 2 . 
         [0086]    Referring to  FIG. 6 , when receiving the same data from the access point  410 , the Bluetooth master  400  parses the received data to recognize the type of received data. When having target slave device information corresponding to the data type of the received data, the Bluetooth master  400  inserts the target slave device information into the received data to generate L2CAP data. 
         [0087]    The Bluetooth master  400  transmits the generated L2CAP data only to the target slave device  430 - 2 . 
         [0088]      FIG. 7  is a schematic diagram illustrating a data transmission scheme according to an exemplary embodiment of the present general inventive concept. 
         [0089]    Referring to  FIG. 7 , ( 1 ) indicates a transmission format of data A, B, and D which are subsequently transmitted from an external device to a Bluetooth master. Here, data A should be transmitted to the slave device A, data B to the slave device B, and data D to the slave device D. 
         [0090]    ( 2 ) indicates a conventional transmission format in which slave devices A to D are connected to a Bluetooth master. According to the data flow indicated by ( 1 ), the Bluetooth master transmits data A to slave devices A to D and transmits data B to the slave devices A to D. And even when transmitting data A once more, the Bluetooth master transmits data A to the slave devices A to D. In this manner, the data is transmitted from the Bluetooth master to each slave device A. 
         [0091]    ( 3 ) indicates a transmission format according to exemplary embodiments of the present invention. According to the data flow indicated by ( 1 ), the Bluetooth master transmits initial data, data A, to slave devices A to D and transmits data B to the slave devices A to D. When receiving and transmitting data A once more, the Bluetooth master transmits data A only to the slave device. 
         [0092]    Accordingly, the Bluetooth master inserts the key value into data received from the external device and transmits resulting data to the slave device. When receiving response data from the slave device, the Bluetooth master stores the target slave device information corresponding to the data based on slave device information detected from the response data. This allows the Bluetooth master to recognize the target slave device when receiving data again. 
         [0093]      FIG. 8  is a schematic diagram illustrating the format of an L2CAP data packet  80  according to an exemplary embodiment of the present general inventive concept. 
         [0094]    Referring to  FIG. 8 , a L2CAP data packet  80  contains a 72-bit access code  82 , a 54-bit header  84 , and a 160-bit payload  86 . In this case, the access code contains a sync word (not illustrated) capable of synchronizing one packet for an entire data block. 
         [0095]    The 160-bit payload  86  contains a 8-bit payload header  87 , 136-bit user information  88 , and 16-bit CRC  89 . According to exemplary embodiments of the present general inventive concept, a BD address of each slave device and a key value generated based on the BD address are inserted into a first portion  90  of the user information. The length of the key value may be set in the header portion  87  of the payload  86 . 
         [0096]      FIG. 9  is a flowchart illustrating a method of transmitting data using a Bluetooth master according to an exemplary embodiment of the present general inventive concept. 
         [0097]    Referring to  FIG. 9 , a Bluetooth master having a PAN profile on the Internet discovers slave devices having a PAN profile using a service discovery protocol (SDP) (operation S 510 ). 
         [0098]    When the discovery is completed, the Bluetooth master receives slave device information from all the discovered slave devices (operation S 520 ). Here, the slave device information may be a BD address, for example, a 48-bit MAC address, of the slave device. 
         [0099]    Specifically, the discovered slave devices are listed and in this case, slave devices in an active state are connected to the Bluetooth master. For the slave devices, the Bluetooth master is a data exchange part, which serves as an access point. 
         [0100]    The Bluetooth master then numbers all the slave devices and maps a BD address received from the slave device to generate a key value (operation S 530 ). 
         [0101]    When the Bluetooth master receives data from the access point among external devices (operation S 540 ), it parses the received data to recognize the data type of the received data. 
         [0102]    In this case, the Bluetooth master determines whether target slave device information corresponding to the recognized data type exists (operation S 550 ). Here, the target slave device information may be an IP address and a port number of the slave device. 
         [0103]    If it is determined that the target slave device does not exist (operation S 550 : N), the Bluetooth master inserts a key value into the received data to generate L2CAP data and transmits the generated L2CAP data to all the slave devices (operation S 560 ). In this case, broadcasting is used to exactly locate the slave devices. 
         [0104]    If it is determined that the target slave device exists (operation S 550 : Y), the Bluetooth master inserts the target slave device information stored therein into the received data to generate L2CAP data and transmits the generated L2CAP data only to the target slave device (operation S 570 ). 
         [0105]    Here, the presence of the target slave device indicates that the Bluetooth master has transmitted the same data as the received data once or more, i.e., that the Bluetooth master has received response data from a slave device corresponding to the transmitted data and has stored slave device information, for example, an IP address, a port number, and a key value of the slave device. 
         [0106]    Inserting the target slave device information into the data even though the key value is inserted into the data is intended to cope with the sudden possibility of data loss and to prevent transmission failure caused by a key value being lost between Bluetooth devices due to communication errors. 
         [0107]    In the exemplary embodiment of  FIG. 9 , operations S 510 , S 520 , and S 530  have been described as being performed before the Bluetooth master receives data from the access point (operation S 540 ). In another exemplary embodiment, however, the operations may be performed after the Bluetooth master receives data from the access point (operation S 540 ), and therefore the present general inventive concept is not limited thereto. 
         [0108]      FIG. 10  is a flowchart illustrating a method of storing slave device information according to an exemplary embodiment of the present general inventive concept. 
         [0109]    Referring to  FIG. 10 , a Bluetooth master receives, from any slave device, response data to data that the Bluetooth master has transmitted to the slave device (operation S 610 ). 
         [0110]    Here, upon receipt of the data, the slave device separately stores a received key value and transmits the response data to the Bluetooth master to indicate correct reception of the data. 
         [0111]    The Bluetooth master detects slave device information from the received response data (operation S 620 ) and determines whether the detected slave device information is stored (operation S 630 ). Here, the response data may be an IP address, a port number, and a key value, for example. 
         [0112]    If it is determined that the slave device information is not stored (operation S 630 : Y), the Bluetooth master stores the detected slave device information as target slave device information corresponding to the transmitted data (operation S 640 ). 
         [0113]    If it is determined that the slave device information is stored (operation S 630 : Y), the Bluetooth master updates the stored target slave device information corresponding to the transmitted data with the detected slave device information (operation S 650 ). 
         [0114]      FIG. 11  is a flowchart illustrating a method of transmitting data using a Bluetooth master according to another exemplary embodiment of the present general inventive concept. 
         [0115]    Referring to  FIG. 11 , the Bluetooth master determines whether it has received response data to data transmitted to all slave devices from any slave device of the slave devices within a predetermined period of time (operation S 710 ). When the response data is not received from the slave device for a given period of time (operation S 710 : N), the Bluetooth master inserts a key value generated corresponding to a BD address of the slave device into the data to generate L2CAP data. The Bluetooth master transmits the generated data to all the slave devices (operation S 720 ). In this case, broadcasting may be used to exactly locate a slave device. 
         [0116]    Meanwhile, the Bluetooth master can disconnect the slave device from the Bluetooth master. When the slave device is disconnected, the information about the slave device stored in the Bluetooth master is deleted. 
         [0117]    As described above, according to exemplary embodiments of the present general inventive concept, it is possible to improve transmission efficiency without changing a communication protocol between the Bluetooth master and the slave device by adding information about the slave device to data and transmitting resulting data only to a target slave device. 
         [0118]    Although a few embodiments of the present general inventive concept have been shown and described, it will be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the general inventive concept, the scope of which is defined in the appended claims and their equivalents.