KR100640561B1 - 근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를수행하는 기록매체 - Google Patents

근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를수행하는 기록매체 Download PDF

Info

Publication number
KR100640561B1
KR100640561B1 KR1020040060814A KR20040060814A KR100640561B1 KR 100640561 B1 KR100640561 B1 KR 100640561B1 KR 1020040060814 A KR1020040060814 A KR 1020040060814A KR 20040060814 A KR20040060814 A KR 20040060814A KR 100640561 B1 KR100640561 B1 KR 100640561B1
Authority
KR
South Korea
Prior art keywords
host
identifier
port number
wireless communication
channel
Prior art date
Application number
KR1020040060814A
Other languages
English (en)
Other versions
KR20060012094A (ko
Inventor
정우석
강성봉
임전택
최중규
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040060814A priority Critical patent/KR100640561B1/ko
Priority to TW094106910A priority patent/TWI360053B/zh
Priority to US11/085,918 priority patent/US7596353B2/en
Publication of KR20060012094A publication Critical patent/KR20060012094A/ko
Application granted granted Critical
Publication of KR100640561B1 publication Critical patent/KR100640561B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

근거리 무선 통신 시스템은 N(N은 2 이상의 자연수)개의 근거리 무선 통신 디바이스, L(L은 2 이상의 자연수) 개의 호스트 컨트롤러 및 호스트를 포함한다. L 개의 호스트 컨트롤러는 N 개의 근거리 무선 통신 디바이스와 근거리 무선 통신 채널을 통하여 연결된다. 호스트는 L 개의 호스트 컨트롤러와 L 개의 인터페이스를 통하여 동시에 연결되고, 동시 연결된 L 개의 호스트 컨트롤러를 통하여 근거리 무선 통신 디바이스와 소정의 데이터 패킷을 송수신한다. 호스트 컨트롤러는 근거리 무선 통신 디바이스와 주파수 호핑의 스펙트럼 확산 통신을 수행한다. 복수개의 호스트 컨트롤러를 동시에 호스트에 연결함으로써 하나의 호스트 컨트롤러에 연결된 블루투스 디바이스의 개수를 줄일 수 있다. 그 결과, 각각의 블루투스 디바이스의 최대 대역폭이 증가되고, 데이터 전송 속도가 증가된다.

Description

근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를 수행하는 기록매체{PERSONAL AREA NETWORK COMMUNICATION SYSTEM, PERSONAL AREA NETWORK COMMUNICATION METHOD, AND RECORDED MEDIUM PERFORMING THE SAME}
도 1은 블루투스의 피코넷(pico net)을 나타낸 개념도이다.
도 2는 블루투스의 스캐터넷(scatter net)을 나타낸 개념도이다.
도 3은 종래의 단일 블루투스 동글(dongle)과 호스트로 이루어진 블루투스 통신 시스템을 나타낸 개념도이다.
도 4는 도 3의 단일 블루투스 동글을 호스트에 연결할 경우의 호스트 및 단일 블루투스 동글의 소프트웨어 구조를 나타낸 개념도이다.
도 5는 도 4의 단일 블루투스 동글을 호스트에 연결할 경우에 생성되는 호스트내의 프로세스 구성을 나타낸 개념도이다.
도 6은 본 발명의 일실시예에 따른 다중 블루투스 동글(dongle)로 이루어진 다이내믹 멀티-동글 블루투스 통신 시스템을 나타낸 개념도이다.
도 7은 본 발명의 일실시예에 따른 다중 블루투스 동글을 호스트에 연결할 경우의 호스트 및 다중 블루투스 동글의 소프트웨어 구조를 나타낸 개념도이다.
도 8은 본 발명의 일실시예에 따른 다중 블루투스 동글을 호스트에 연결할 경우에 생성되는 호스트내의 프로세스 구성을 나타낸 개념도이다.
도 9는 블루투스 규격에 따른 커맨드 패킷 구조를 나타낸다.
도 10은 블루투스 규격에 따른 이벤트 패킷 구조를 나타낸다.
도 11은 블루투스 규격에 따른 데이터 패킷 구조를 나타낸다.
도 12는 본 발명의 일실시예에 따른 인터페이스 맵 데이블을 나타낸다.
도 13은 본 발명의 일실시예에 따른 호스트에서 수행되는 다중 블루투스 동글과의 연결 설정 과정을 설명하기 위한 순서도이다.
도 14는 본 발명의 일실시예에 따른 호스트에서 수행되는 블루투스 디바이스와의 연결 요청에 따른 처리 과정을 설명하기 위한 순서도이다.
도 15는 본 발명의 일실시예에 따른 호스트에서 수행되는 다중 블루투스 동글과의 커맨드 패킷(command packet) 및 이벤트 패킷 처리 과정을 나타낸 순서도이다.
도 16은 본 발명의 다른 실시예에 따른 호스트에서 수행되는 다중 블루투스 동글과의 연결 설정 과정을 설명하기 위한 순서도이다.
도 17은 본 발명의 다른 실시예에 따른 호스트에서 수행되는 블루투스 디바이스와의 연결 요청에 따른 처리 과정을 설명하기 위한 순서도이다.
도 18은 본 발명의 다른 실시예에 따른 호스트에서 수행되는 다중 블루투스 동글과의 커맨드 패킷(command packet) 및 이벤트 패킷 처리 과정을 나타낸 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
10, 100 : 호스트
20, 200 : 블루투스 동글(호스트 컨트롤러)
30, 300 : 블루투스 디바이스
본 발명은 근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를 수행하는 기록매체에 관한 것으로, 더욱 상세하게는 2.4GHz 대역을 사용하는 블루투스 통신 시스템 및 블루투스 통신 방법 및 기록 매체에 관한 것이다.
현재 근거리 무선데이터 통신의 새로운 전세계 표준으로 자리잡고 있는 블루투스는 각종 전자기기간에 소정 거리(약 10m ~ 100m)이내에서 물리적인 케이블 없이 무선주파수(RF)를 이용하여 고속으로 데이터를 송수신하기 위해 제안된 근거리 무선 데이터 통신 규격이다. 블루투스는 2.4GHz 대역에서 대역폭 1MHz의 채널을 79개 설정하여 1초간에 1600회 채널을 바꾸는 주파수호핑방식의 스펙트럼 확산 기술로 신호를 송수신한다.
블루투스는 작고, 저렴한 가격, 적은 전력 소모로 휴대용 무선 단말기, 랩탑 컴퓨터, 개인용 컴퓨터(PC; Personal Computer), 프린터, 디지털 카메라, MP3(Motion Pictures Expert Group Audio Layer-3) 플레이어, 네트워크 엑세스 포인트들, PC 주변장치들(키보드, 마우스, 조이스틱, 스피커등)간 무선으로 데이터 통신에 사용되고 있다.
블루투스는 하나의 호스트에 N 개의 블루투스 디바이스간 1:N 통신 환경을 제공한다. 블루투스는 일단 마스터(Master)-슬레이브(Slave) 방식으로 링크를 설정한다. 그리고 한 대의 마스터는 최대 7대까지의 슬레이브를 연결하여 네트워크를 구성할 수 있다. 이를 피코넷(Piconet)이라 한다. 도 1은 블루투스의 피코넷(pico net)을 나타낸 개념도이다. 마스터는 전체 피코넷을 관리하여 초기 연결 요청 및 연결 관리를 담당한다.
또한, 이러한 피코넷이 여러개 모이게 되면 계층적이고 규모가 큰 네트워크를 구성할 수 있는데 이를 스캐터넷(scatternet)이라고 한다. 도 2는 블루투스의 스캐터넷(scatter net)을 나타낸 개념도이다.
도 1 및 도 2와 같은 피코넷 및 스캐터넷 환경에서는 마스터는 각각의 슬레이브와 연결 유지 및 데이터 전송을 관리하며, 전체 대역폭을 분배하여 각각의 슬레이브에 할당한다. 그 결과, 하나의 마스터와 하나의 슬레이브간의 대역폭은 상당히 떨어진다. 예를 들어, 하나의 마스터의 대역폭을 약 700 Kbps이고, 7개의 슬레이브가 피코넷을 구성한다고 가정할 때, 하나의 마스터와 슬레이브간 통신 가능한 대역폭은 100 Kbps 이하가 된다. 그러므로, 낮은 대역폭으로 인해 데이터 전송 속도가 저하되고, 전송되는 음성 신호의 음질 저하가 발생될 수 있다.
도 3은 종래의 단일 블루투스 동글(dongle)과 호스트로 이루어진 블루투스 통신 시스템을 나타낸 개념도이다. 도 4는 도 3의 단일 블루투스 동글을 호스트에 연결할 경우의 호스트 및 단일 블루투스 동글의 소프트웨어 구조를 나타낸 개념도이고, 도 5는 도 4의 단일 블루투스 동글을 호스트에 연결할 경우에 생성되는 호스 트 내의 프로세스 구성을 나타낸 개념도이다.
도 3을 참조하면, PC(Personal computer)와 같은 호스트(10)에 USB(Universal Serial Bus) 또는 UART(Universal Asynchronous Receiver/Transceiver)와 같은 하나의 물리적인 링크(또는 인터페이스; 30)를 통하여 하나의 블루투스 동글(dongle; 20)이 연결된다. 또한, 하나의 블루투스 동글(20)은 4개의 블루투스 디바이스(BT Device; 30)와 블루투스를 통하여 무선으로 연결되어 피코넷을 구성한다. 호스트(10)에 연결되어 있는 블루투스 동글(20)은 블루투스 칩이 내장되어 있는 블루투스 송수신기이다. 구체적으로 블루투스 동글(20)은 피코넷에서 마스터(master)로서 전체 망 관리를 담당하며, 슬레이브인 각각의 블루투스 디바이스(30)에 전체 대역폭을 배분하여 할당한다.
도 4를 참조하면, 호스트-예를 들어 PC-용 소프트웨어는 응용 (application) 계층(402), 프로파일 (profile) 계층(404), 프로토콜 스택(protocol stack) 계층(406), 호스트 컨트롤 인터페이스(HCI; Host Control Interface) 계층(408) 및 인터페이스 디바이스 드라이버(interface device driver) 계층(410)을 포함한다. 또한, 각각의 블루투스 동글 내의 소프트웨어는 인터페이스 디바이스 펌웨어(interface device firmware) 계층(412), 호스트 컨트롤 인터페이스(host control interface) 계층(414), 링크 매니저(link manager) 계층(416) 및 베이스 밴드(base band) 계층(418)을 포함한다.
상기 PC용 소프트웨어는 블루투스 디바이스로의 연결 요청(connection request), 블루투스 디바이스로의 데이터 전송, 애플리케이션별 프로토콜 정의 등 을 담당한다. 블루투스 동글 내의 소프트웨어는 블루투스 디바이스 간 연결 관리를 담당한다.
현재의 블루투스 규격 1.2에 의하면, 상기와 같은 호스트용 소프트웨어를 이용할 경우 단일 블루투스 동글에 호스트를 연결할 때는 정상적인 동작을 한다. 그러나, 2개 이상의 블루투스 동글을 호스트에 연결하면 오직 하나의 블루투스 동글에 해당하는 인터페이스 디바이스 드라이버(410)만이 HCI 계층(408)과 연결되어 하나의 블루투스 동글만 정상적으로 동작하고, 나머지 블루투스 동글은 정상적으로 동작하지 않는다. 도 5에 도시된 바와 같이, 단일 블루투스 동글을 PC와 같은 호스트에 연결할 때 그 연결된 블루투스 동글에 대한 인터페이스 디바이스 드라이버와 블루투스 소프트웨어가 호스트의 운영체제(OS; Operating System)에 프로세스(process)로 생성된다.
상기 종래의 블루투스 시스템에서 하나의 블루투스 동글의 최대 대역폭이 721Kbps라고 가정할 때, 하나의 블루투스 동글(20)과 각각의 블루투스 디바이스(30)간 최대 대역폭은 최대 180Kbps (721Kbps / 4) 이하로 떨어진다. 따라서, 하나의 블루투스 동글에 오직 하나의 블루투스 디바이스 장치가 연결된 경우에 비해 전송 속도가 떨어지고, 전송되어지는 음성 신호의 음질이 저하된다.
이를 해결하기 위한 방안으로 현재의 블루투스 규격 1.2에서 정해진 최대 대역폭 721Kbps를 높이는 방법이 있으나, 높일 수 있는 대역폭에도 한계가 있고, 대역폭이 향상된 블루투스 규격이 정해지기까지는 수년이 걸릴 것으로 예상된다.
따라서, 본 발명의 제1 목적은 피코넷 및 스캐터넷 환경에서 마스터와 슬레이브간의 낮은 대역폭으로 인한 전송 속도의 저하를 방지할 수 있는 근거리 무선 통신 시스템을 제공하는 것이다.
본 발명의 제2 목적은 피코넷 및 스캐터넷 환경에서 마스터와 슬레이브간의 낮은 대역폭으로 인한 전송 속도의 저하를 방지할 수 있는 근거리 무선 통신 방법을 제공하는 것이다.
또한, 본 발명의 제3 목적은 상기 근거리 무선 통신 방법을 수행하는 기록 매체를 제공하는 것이다.
상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일측면에 따른 근거리 무선 통신 시스템은 N(N은 1이상의 자연수) 개의 근거리 무선 통신 디바이스와 N개의 근거리 무선 통신 채널을 통하여 연결된 L(L은 2 이상의 자연수) 개의 호스트 컨트롤러, 그리고 호스트를 포함한다. 상기 호스트는 상기 L 개의 호스트 컨트롤러와 L 개의 인터페이스를 통하여 동시에 연결되어 상기 동시 연결된 L 개의 호스트 컨트롤러를 통하여 상기 N개의 근거리 무선 통신 디바이스와 소정의 데이터 패킷을 송수신한다. 상기 호스트 컨트롤러는 상기 근거리 무선 통신 디바이스와 주파수 호핑의 스펙트럼 확산 통신을 수행할 수 있다. 상기 호스트는 상기 L 개의 호스트 컨트롤러가 상기 L 개의 인터페이스를 통하여 호스트에 연결된 경우 상기 L 개의 호스트 컨트롤러 별로 포트 번호를 할당하고, 상기 호스트 컨트롤러 식별자를 상기 L 개의 호스트 컨트롤러 별로 상기 포트 번호에 연계하여 할당하고, 상기 M1 개의 근거리 무선 통신 채널의 채널 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당할 수 있다. 상기 호스트는 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중 하나에 기초하여 상기 포트 번호 또는 상기 호스트 컨트롤러 식별자에 상응하는 복수의 호스트 컨트롤러를 통하여 상기 채널 식별자에 상응하는 근거리 무선 통신 디바이스와 상기 소정의 데이터 패킷을 송수신할 수 있다.
또한, 본 발명의 제1 목적을 달성하기 위한 본 발명의 다른 측면에 따른 근거리 무선 통신 시스템은 L(L은 2 이상의 자연수) 개의 호스트 컨트롤러, 상기 L 개의 호스트 컨트롤러와 블루투스 통신 채널을 통하여 연결된 적어도 하나의 블루투스 디바이스, 그리고 호스트를 포함한다. 상기 호스트는 상기 L 개의 호스트 컨트롤러와 인터페이스를 통하여 동시에 연결된다. 상기 호스트는 상기 L 개의 호스트 컨트롤러 별로 할당된 포트 번호, 상기 L 개의 호스트 컨트롤러 별로 할당된 호스트 컨트롤러 식별자 및 상기 L 개의 호스트 컨트롤러 별로 할당된 채널 식별자-여기서, 상기 채널 식별자는 상기 블루투스 통신 채널의 채널 식별자임- 중 하나에 기초하여 상기 동시 연결된 L 개의 호스트 컨트롤러를 통하여 상기 블루투스 디바이스와 소정의 데이터 패킷을 송수신한다.
또한, 본 발명의 제2 목적을 달성하기 위한 본 발명의 일측면에 따른 근거리 무선 통신 방법은 L(L은 2이상의 자연수) 개의 호스트 컨트롤러가 인터페이스를 통하여 호스트에 연결된 경우 상기 L 개의 호스트 컨트롤러 별로 포트 번호를 할당하는 단계, 상기 호스트에 연결된 상기 L 개의 호스트 컨트롤러들의 호스트 컨트롤러 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 단계, 상기 호스트에 연결된 L 개의 호스트 컨트롤러와 적어도 하나의 근거리 무선 통신 디바이스간에 근거리 무선 통신 채널이 연결된 경우 상기 근거리 무선 통신 채널의 채널 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 단계, 그리고 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중 하나에 기초하여 상기 L 개의 호스트 컨트롤러를 통하여 상기 근거리 무선 통신 디바이스와 소정의 데이터 패킷을 송수신하는 단계를 포함한다. 상기 호스트 컨트롤러는 상기 근거리 무선 통신 디바이스와 주파수 호핑의 스펙트럼 확산 통신을 수행할 수 있다. 상기 호스트는 상기 포트 번호 또는 상기 호스트 컨트롤러 식별자에 상응하는 복수의 호스트 컨트롤러를 통하여 상기 채널 식별자에 상응하는 근거리 무선 통신 디바이스로 상기 데이터 패킷을 송수신할 수 있다.
또한, 본 발명의 제2 목적을 달성하기 위한 본 발명의 다른 측면에 따른 호스트와 복수의 호스트 컨트롤러간의 근거리 무선 통신 방법은 복수의 호스트 컨트롤러가 인터페이스를 통하여 호스트에 연결된 경우 상기 호스트에 연결된 복수의 호스트 컨트롤러 별로 포트 번호를 할당하는 단계, 상기 복수의 호스트 컨트롤러들의 호스트 컨트롤러 식별자를 각 호스트 컨트롤러별로 할당하는 단계, 상기 호스트와 연결된 호스트 컨트롤러와 적어도 하나의 블루투스 디바이스간에 근거리 무선 통신 채널이 연결된 경우 채널 식별자를 각 호스트 컨트롤러별로 할당하는 단계, 그리고 소정의 데이터 패킷을 상기 포트 번호, 호스트 컨트롤러 식별자 및 채널 식별자 중 하나에 상응하는 포트로 전송하는 단계를 포함한다.
또한, 본 발명의 제3 목적을 달성하기 위해 본 발명은 상기 근거리 무선 통신 방법을 수행하는 기록 매체를 제공한다.
이러한 근거리 무선 통신 시스템 및 근거리 무선 통신 방법에 따르면, 복수개의 호스트 컨트롤러를 동시에 호스트에 연결함으로써 하나의 호스트 컨트롤러에 연결된 블루투스 디바이스의 개수를 줄일 수 있다. 그 결과, 각각의 블루투스 디바이스의 최대 대역폭이 증가되고, 데이터 전송 속도가 증가되며, 전송되어지는 음성 신호의 음질을 향상시킬 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.
도 6은 본 발명의 일실시예에 따른 다중 블루투스 동글(dongle)로 이루어진 다이내믹 멀티-동글 블루투스 통신 시스템을 나타낸 개념도이다. 본 발명의 다이내믹 멀티-동글 블루투스 통신 시스템에서는 하나의 호스트에 2개의 블루투스 동글이 접속될 수도 있고, 또는 3개 이상의 블루투스 동글이 접속될 수도 있다. 이하, 하나의 호스트에 2개의 블루투스 동글이 접속되는 경우를 예로 들어 설명한다.
호스트(100)에 L (2이상의 자연수)개의 물리적인 링크(또는 인터페이스; 250)를 통하여 L 개의 블루투스 동글(dongle; 200, 220)이 연결된다. 또한, 하나의 블루투스 동글은 각각 N1(1이상의 자연수)개의 블루투스 디바이스(BT Device; 300)와 블루투스 채널을 통하여 무선으로 연결된다. 즉, 총 N1 ×L 개의 블루투스 디바이스(300)가 블루투스 동글(200, 220)을 통하여 호스트와 연결된다.
예를 들어, 도 6을 참조하면, 호스트(100)에 2 개의 블루투스 동글(200, 220)이 연결되며, 제1 블루투스 동글(200)은 2개의 블루투스 디바이스와 연결되며, 제2 블루투스 동글(220)은 2개의 블루투스 디바이스와 연결된다.
블루투스 동글(Dongle)이라 함은 블루투스 어댑터로서 블루투스 칩을 포함하며, 블루투스 기능을 지원하는 외장형 주변장치를 말한다.
호스트(100)는 호스트 컨트롤러인 블루투스 동글(dongle)(200, 220)과 연결되어 블루투스 동글을 제어하고 애플리케이션을 수행한다.
블루투스 동글(200, 220)은 블루투스 칩이 내장되어 있는 블루투스 송수신기이다. 구체적으로, 블루투스 동글(200, 220)은 피코넷에서 마스터(master)로서 전체 망 관리를 담당하며, 슬레이브인 각각의 블루투스 디바이스(300)에 전체 대역폭을 배분하여 할당한다.
예를 들어, 상기 호스트(100)는 PC(Personal computer), 모바일 폰, PDA(Personal Digital Assistant), 랩 탑(lap top) 컴퓨터, 디지털 카메라 또는 프린터 등이 될 수 있다.
예를 들어, 상기 인터페이스(250)는 USB(Universal Serial Bus), UART(Universal Asynchronous Receiver/Transceiver), PCMCIA(Personal Computer Memory Card International Association) 또는 RS232가 될 수 있다.
위와 같은 멀티-동글 블루투스 통신 시스템에 의하면, 사용자는 종래와 같이 단일의 블루투스 동글만을 호스트에 연결해야 한다는 제한을 받지 않고 복수의 블루투스 동글을 호스트에 연결할 수 있다. 즉, 사용자는 블루투스 동글의 개수를 변 경하여 선택적으로 호스트에 연결시킬 수 있고, 각각의 블루투스 동글을 사용자가 원하는 블루투스 디바이스와 선택적으로 연결시킬 수 있다.
또한, 위와 같은 멀티-동글 블루투스 시스템에 의하면, 종래 1개의 블루투스 동글을 통하여 N 개의 블루투스 디바이스를 호스트에 연결할 경우와 비교하여, L 개의 블루투스 동글을 통하여 N개의 블루투스 디바이스를 호스트에 연결시킨다. 즉, L 개의 블루투스 동글을 동시에 호스트에 연결하여 사용함으로써 N 개의 블루투스 디바이스를 사용하고자 할 경우, 하나의 블루투스 동글에 연결된 블루투스 디바이스의 개수가 N ÷ L 개로 감소될 수 있다. 그 결과, 각각의 블루투스 디바이스의 최대 대역폭이 증가된다. 예를 들어, 4개의 블루투스 디바이스를 1개의 블루투스 동글을 통하여 호스트에 연결시킬 경우, 하나의 블루투스 동글의 최대 대역폭이 721Kbps이라면, 하나의 블루투스 동글이 4개의 블루투스 디바이스에 연결됨으로써 각각의 블루투스 디바이스의 최대 대역폭이 최대 180Kbps (721Kbps / 4) 이하가 된다. 그러나, 4개의 블루투스 디바이스를 2개의 블루투스 동글을 통하여 호스트에 연결시킬 경우, 하나의 블루투스 동글의 최대 대역폭이 721Kbps이라면, 하나의 블루투스 동글이 2개의 블루투스 디바이스에 연결됨으로써 각각의 블루투스 디바이스의 최대 대역폭이 최대 360Kbps (721Kbps / 2) 이하가 된다. 따라서, 하나의 블루투스 동글에 네 개의 블루투스 디바이스 장치가 연결된 종래의 블루투스 시스템에 비해 전송 속도가 2배정도 증가할 수 있고, 전송되어지는 음성 신호의 음질을 2 배정도 높일 수 있다.
도 7은 본 발명의 일실시예에 따른 다중 블루투스 동글을 호스트에 연결할 경우의 호스트 및 다중 블루투스 동글의 소프트웨어 구조를 나타낸 개념도이다. 이하, 상기 호스트가 PC인 경우를 예로 들어 설명한다.
도 7을 참조하면, PC용 소프트웨어는 응용 (application) 계층(702), 프로파일 (profile) 계층(704), 프로토콜 스택(protocol stack) 계층(706), 호스트 컨트롤 인터페이스(HCI; Host Control Interface) 계층(708), 인터페이스 핸들러(interface handler) 계층(710) 및 인터페이스 디바이스 드라이버(interface device driver) 계층(712)을 포함한다. 또한, 각각의 블루투스 동글 내의 소프트웨어는 인터페이스 디바이스 펌웨어(interface device firmware) 계층(722), 호스트 컨트롤 인터페이스(host control interface) 계층(724), 링크 매니저(link manager) 계층(726) 및 베이스 밴드(base band) 계층(728)을 포함한다.
PC용 소프트웨어는 블루투스 디바이스와의 연결 요청, 블루투스 디바이스로의 데이터 전송, 무선 전화나 헤드셋 등(마이크로폰 채용 헤드폰)과 같은 애플리케이션 별로 프로토콜 정의 등을 수행한다. 블루투스 동글내의 소프트웨어는 블루투스 디바이스들간의 연결 관리를 수행한다.
여기서, 응용 계층(702), 프로파일 계층(704) 및 프로토콜 스택 계층(708)은 HCI 계층(708)의 상위 계층을 이룬다.
프로파일 계층(704)은 팩시밀리, 무선 전화나 헤드셋 등과 같은 서로 다른 블루투스 애플리케이션을 구현할 때 특정 애플리케이션마다 사용해야할 프로토콜의 종류, 프로토콜 구조 및 사용 방법을 규정하고 있다. 예를 들어, 헤드셋(Headset)의 경우 L2CAP(Logical Link Control and Adaptation Protocol), SDP(Service Discovery Protocol) 및 RFCOMM 프로토콜이 필수적으로 사용된다.
프로토콜 스택 계층(706)에서는 하위 계층부터 상위 계층까지 쌓아올린 프로토콜들의 집합을 규정한다.
호스트의 HCI 계층(708) 및 각각의 블루투스 동글의 HCI 계층(724)은 호스트와 호스트 컨트롤러(블루투스 동글) 사이에 연결된 물리적 링크(physical link) (또는 인터페이스; 250)를 통해 패킷을 송수신하기 위한 표준 인터페이스이다. 즉, HCI 커맨드(command) 패킷, HCI 이벤트(event) 패킷 및 HCI 데이터(data) 패킷이 상기 인터페이스(250)를 통해 교환된다.
인터페이스 핸들러 계층(710)은 블루투스 동글에서 전달되는 이벤트(event) 패킷 및 데이터 (data) 패킷을 각각의 블루투스 동글 식별자(또는 호스트 컨트롤러 식별자)를 통해 구분지어 상위 계층에 전달한다. 또한, 인터페이스 핸들러 계층(710)은 상위계층에서 전달된 커맨드(command) 패킷 및 데이터 패킷을 각각의 블루투스 동글 식별자를 통해 구별하여 블루투스 동글에 전달한다. 여기서, 블루투스 동글 식별자란 예를 들어, 블루투스 동글의 고유 주소(Bd_Address)를 나타낸다. 자세한 설명은 후술한다.
인터페이스 디바이스 드라이버 계층(712)은 블루투스 동글 내 소프트웨어의 인터페이스 디바이스 펌웨어 계층(722)과 함께 호스트와 블루투스 디바이스와의 인터페이스를 위해 존재한다.
링크 매니저(link manager) 계층(726)은 블루투스 디바이스와의 링크 설정, 암호화, 커넥션 상태 (Park, Sniff, Hold) 설정 및 파워 컨트롤 등의 각종 제어를 담당한다.
베이스 밴드(base band) 계층(728)은 물리 채널을 정의하고, 회선 교환(circuit switching) 방식을 사용하는 SCO (Synchronous Connection-Oriented) 링크 또는 패킷 교환(packet switching) 방식을 사용하는 ACL (Asynchronous Connection-Less) 링크를 설정한다. 또한, 베이스 밴드 계층(728)은 억세스 코드(acess Code), 헤더(header) 및 페이로드(payload)로 구성된 표준 패킷을 정의하고 생성한다. 또한, 베이스 밴드 계층(728)은 패킷에 관한 에러 정정(error correction) 및 에러 검출(error checking), 마스터와 슬레이브 사이에 커넥션이 이루어지고 피코넷이 구성되는 과정에 관련된 채널 컨트롤을 수행한다.
도 8은 본 발명의 일실시예에 따른 다중 블루투스 동글을 호스트에 연결할 경우에 생성되는 호스트내의 프로세스 구성을 나타낸 개념도이다.
도 8을 참조하면, 본 발명에 따른 다중 블루투스 통신 시스템에서는 2개의 블루투스 동글을 PC와 같은 호스트(100)에 연결할 때, 연결된 2개의 블루투스 동글 각각에 대한 인터페이스 디바이스 드라이버(140, 142)가 각각 독립적으로 생성되고, 블루투스 소프트웨어가 호스트의 운영체제(OS; Operating System)에 상기 생성된 2개의 인터페이스 디바이스 드라이버(140, 142)를 제어하는 하나의 프로세스(process; 120)로 생성된다. 즉, 각각 독립적으로 동작하는 2 개의 인터페이스 디바이스 드라이버(140, 142)와 하나의 프로세스(120)에 의해 호스트(100), 2개의 블루투스 동글(200, 220) 상기 블루투스 디바이스간에 패킷 송수신이 이루어진다.
도 9는 블루투스 규격에 따른 커맨드 패킷 구조, 도 10은 이벤트 패킷 구조, 도 11은 데이터 패킷 구조를 나타낸다.
패킷의 형태는 커맨드 패킷, 이벤트 패킷, 데이터 패킷으로 나눌 수 있다.
커맨드 패킷은 호스트에서 호스트 컨트롤러에게 특정 동작을 명령하기 위해 보내는 패킷이며, 이에 대한 결과가 이벤트 패킷을 통해 호스트 컨트롤러에서 호스트로 보내진다. 데이터 패킷은 하나 이상의 블루투스 디바이스와 링크(ACL 혹은 SCO 링크)가 설정되었을 때, 링크가 설정된 블루투스 디바이스들과 무선으로 데이터를 송수신할 때 사용되는 패킷이다.
블루투스를 동작시키기 위해서는 호스트에서 적절한 HCI 커맨드 패킷을 송신해야 한다. HCI 커맨드 패킷은 호스트에서 호스트 컨트롤러에게 특정 작업을 수행하도록 지시하거나 특정 정보를 요청하기 위한 패킷이다. 도 9는 HCI 커맨드 패킷의 형태를 나타낸다.
도 9를 참조하면, 커맨드 패킷은 2바이트 길이의 OpCode 필드(901), 1바이트 길이의 패러미터 길이 정보(parameter total length) 필드(903)와 각 커맨드별 패러미터 필드(parameter 0, parameter 1, ..., parameter N-1, parameter N; 905)를 포함한다.
OpCode(901)는 커맨드마다 부여되는 고유한 값이다. OpCode는 6비트의 OGF(OpCode Group Field; 901b)와 10비트의 OCF(OpCode Command Field; 901a)을 포함한다. OGF(901b)는 HCI 커맨드가 링크 제어에 관련된 것인지, 베이스밴드에 관련된 것인지, 호스트 컨트롤러로의 정보를 얻어오는데 관련된 것인지에 따라 HCI 커맨드를 그룹화하여 각 그룹에 대해서 코드를 부여한 것이다. OCF(901a)는 각 그룹 내에 존재하는 커맨드별로 부여되는 값이다. OGF(901b)와 OCF(901a)를 조합하면 HCI 커맨드마다 고유한 OpCode(901)가 만들어진다. 각 커맨드별 패러미터(905)에는 블루투스 동글과 블루투스 디바이스간 형성된 채널에 대한 식별자인 채널 식별자(또는 커넥션 핸들)가 저장될 수 있다.
모든 HCI 커맨드에 대해서는 HCI 이벤트(event)가 존재한다. HCI 이벤트(event) 패킷은 호스트가 HCI 커맨드 패킷을 통해 지시한 작업에 대한 결과나 호스트가 요청한 정보를 호스트 컨트롤러가 호스트에게 통보하는 패킷이다.
도 10을 참조하면, 이벤트 패킷은 1바이트 길이의 Event Code 필드(1001), 1바이트 길이의 패러미터 길이 정보(parameter total length) 필드(1003)와 각 이벤트별 패러미터 필드(event parameter 0, event parameter 1, ..., event parameter N-1, event parameter N; 1005)를 포함한다.
Event Code(1001)는 이벤트의 종류를 나타내는 코드값이다. 패러미터 길이 정보(parameter total length)(1003)는 총 이벤트 패라미터들의 길이를 바이트 단위로 나타낸 값이다. 각 이벤트별 패러미터(1005)에는 채널 식별자(또는 커넥션 핸들)가 저장될 수 있다.
예를 들어, 호스트가 현재 연결된 호스트 컨트롤러의 고유 주소를 얻기 위해 `Read_BD_ADDR'이라는 HCI 커맨드 패킷을 호스트 컨트롤러로 전송하면, 호스트 컨트롤러에서는 호스트 컨트롤러의 고유 주소 값이 포함된 HCI 이벤트 패킷을 호스트로 전송한다.
데이터 패킷은 블루투스 규격에 의하면 HCI ACL 데이터 패킷과 HCI SCO 데이 터 패킷으로 나뉘어지며, 각각 ACL 링크나 SCO 링크가 설정된 후에 데이터를 주고받기 위한 패킷이다.
도 11을 참조하면, ACL 데이터 패킷의 경우 커넥션 핸들 필드(1101), PB 플래그 필드(Packet_Boundary_Flag field; 1103), BC 플래그 필드(Broadcast_Flag field; 1105), 데이터 길이 정보 필드(data total length field; 1107) 및 데이터 필드(data field; 1109)를 포함한다.
커넥션 핸들 필드(1101)에는 채널 식별자가 저장된다. PB 플래그 필드(1103)는 2 비트로 이루어지며 패킷 분할에 대한 정보를 포함하고, BC 플래그 필드(1105)는 데이터 브로드 캐스팅(broadcasting) 정보를 포함한다. 데이터 길이 정보 필드(1107)는 데이터 길이를 바이트로 나타낸 값으로 가지며, 데이터 필드(1109)는 송수신될 데이터를 포함한다.
도 12는 본 발명의 일실시예에 따른 인터페이스 맵 테이블을 나타낸다.
도 12를 참조하면, 인터페이스 맵 테이블은 인터페이스 핸들(interface handle; 1201), 호스트 컨트롤러의 고유 주소(Bd_address; 1203) 및 커넥션 핸들(connection handle; 1205)을 포함한다.
인터페이스 핸들 필드(1201)은 호스트 컨트롤러가 호스트에 연결된 포트의 포트 번호(또는 인터페이스 핸들)를 저장한다. 호스트 컨트롤러의 고유 주소 필드(1203)는 호스트 컨트롤러 식별자(또는 블루투스 동글 식별자)로서, 호스트 컨트롤러의 고유 주소를 저장한다. 호스트 컨트롤러의 고유 주소는 예를 들어 48 비트로 이루어진다.
커넥션 핸들 필드(1205)는 블루투스 동글과 블루투스 디바이스간에 형성된 채널을 식별하기 위한 채널 식별자(channel identifier 또는 커넥션 핸들)를 저장한다. 예를 들어, 채널 식별자는 12 비트로 이루어진다. 커넥션 핸들은 블루투스 동글과 블루투스 디바이스간에 연결된 동안에는 유효한 값으로 유지된다.
예를 들어, 도 12는 블루투스 동글 1 및 블루투스 동글 2가 호스트에 각각 포트 1 및 포트 2를 통하여 동시에 연결되고, 블루투스 동글 1이 2개의 블루투스 디바이스와 동시에 각각 채널 1 및 채널 2를 형성하고 있고, 블루투스 동글 2가 2개의 블루투스 디바이스와 동시에 각각 채널 3 및 채널 4를 형성하고 있는 경우의 인터페이스 맵 테이블을 나타낸다.
즉, 호스트용 소프트웨어에서는 2 개의 블루투스 동글이 호스트에 연결된 경우 각 블루투스 동글별로 포트 번호를 할당하여 인터페이스 맵 테이블에 저장하고, 블루투스 동글 식별자인 블루투스 동글의 고유 주소를 각 블루투스 동글별로 상기 포트 번호에 연계하여 할당하여 인터페이스 맵 테이블에 저장하고, 채널 식별자를 각 블루투스 동글별로 상기 포트 번호 및 고유 주소에 연계하여 할당하여 인터페이스 맵 테이블에 저장한다.
즉, 인터페이스 맵 테이블에는 포트 번호, 고유 주소, 채널 식별자가 서로 연계되어 저장된다. 따라서, 호스트용 소프트웨어에서는 인터페이스 맵 테이블을 생성하고, 인터페이스 맵 테이블의 포트 번호, 고유 주소, 채널 식별자를 참조하여 커맨드 패킷, 이벤트 패킷 또는 데이터 패킷을 포트 번호, 고유 주소 및 채널 식별자에 상응하는 블루투스 동글 또는 블루투스 디바이스로 송수신한다.
도 13은 본 발명의 일실시예에 따른 호스트에서 수행되는 다중 블루투스 동글과의 연결 설정 과정을 설명하기 위한 메시지 시퀀스 챠트(MSCS; Message Sequence Charts)이다.
도 13을 참조하면, 호스트에 블루투스 동글이 연결되었음이 감지되면, 인터페이스 디바이스 드라이버 계층(712)에서는 블루투스 동글이 연결된 포트의 포트 번호를 포함하는 포트 정보를 생성하여(단계 1301) 포트 정보를 상위 계층인 인터페이스 핸들러 계층(710)으로 전달한다(단계 1303).
인터페이스 핸들러 계층(710)에서는 인터페이스 맵 테이블을 생성하여, 인터페이스 맵 테이블에 상기 전달받은 포트 번호를 저장하고(단계 1305), 상기 전달받은 포트 번호를 상위 계층인 HCI 계층(708)으로 전달한다(단계 1307).
HCI 계층의 상위 계층에서는 현재 연결된 블루투스 동글의 고유 주소를 읽어오도록 하는 명령인 `Read_BD_ADDR'이라는 HCI 커맨드 패킷을 생성하고(단계 1309), `Read_BD_ADDR' 커맨드 패킷의 파라미터에 커넥션 핸들, 즉 채널 식별자가 존재하는지 여부를 판단한다(단계 1311). 판단 결과, 커넥션 핸들이 존재하지 않으면 인터페이스 맵 테이블을 참조하여 `Read_BD_ADDR' 커맨드 패킷의 파라미터에 인터페이스 맵 테이블의 포트 번호, 즉 인터페이스 핸들을 삽입한다(단계 1313). HCI 계층의 상위 계층에서는 포트 번호가 삽입된 `Read_BD_ADDR' 커맨드 패킷을 HCI 계층(708)으로 전달하고(단계 1315), HCI 계층(708)은 상기 전달된 `Read_BD_ADDR' 커맨드 패킷을 인터페이스 핸들러 계층(710)으로 전달하고(단계 1317), 인터페이스 핸들러 계층(710)은 상기 전달받은 `Read_BD_ADDR' 커맨드 패킷을 다시 인터페이스 디바이스 드라이버 계층(712)으로 전달하여 상기 포트 번호에 상응하는 포트로 전송한다(단계 1319).
인터페이스 디바이스 드라이버 계층(712)은 상기 현재 연결된 블루투스 동글로부터 `Read_BD_ADDR' 커맨드 패킷에 대한 응답인 'Command_Complete'라는 이벤트 패킷을 수신하여 인터페이스 핸들러 계층(710)으로 전달한다(단계 1321). 'Command_Complete' 이벤트 패킷에는 상기 현재 연결된 블루투스 동글의 고유 주소(BD_ADDR)가 포함되어 있다. 인터페이스 핸들러 계층(710)은 상기 'Command_Complete' 이벤트 패킷에 포함된 현재 연결된 블루투스 동글의 고유 주소(BD_ADDR)를 상기 인터페이스 맵 데이블에 상기 포트 번호와 연계시켜 저장하고(단계 1323), 상기 전달받은 'Command_Complete' 이벤트 패킷을 HCI 계층(708)으로 전송한다(단계 1325). HCI 계층(708)에서는 상기 전달받은 'Command_Complete' 이벤트 패킷을 HCI 계층(708)의 상위 계층으로 전송한다(단계 1327).
도 14는 본 발명의 일실시예에 따른 호스트에서 수행되는 블루투스 디바이스와의 연결 요청에 따른 처리 과정을 설명하기 위한 순서도이다.
도 14를 참조하면, 먼저, 호스트의 HCI 계층(708)의 상위 계층에서는 블루투스 디바이스와의 연결을 요청하는 커맨드인 `Create_Connection' 커맨드 패킷을 생성한다(단계 1401). 호스트의 HCI 계층(708)의 상위 계층에서는 `Create_Connection' 커맨드 패킷에 커넥션 핸들이 존재하는지 판단하고(단계 1403), 존재하지 않는 경우에 `Create_Connection' 커맨드 패킷의 패러미터에 상기 `Create_Connection' 커맨드 패킷을 전송할 포트의 포트 번호(또는 인터페이스 핸 들)를 삽입하여(단계 1405) HCI 계층(708)으로 전송한다(단계 1407).
HCI 계층(708)에서는 상기 전달받은 `Create_Connection' 커맨드 패킷을 수신하여 인터페이스 핸들러 계층(710)으로 전송한다(단계 1409). 인터페이스 핸들러 계층(710)에서는 상기 전송된 `Create_Connection' 커맨드 패킷을 수신하여 `Create_Connection' 커맨드 패킷의 포트 번호에 상응하는 포트를 통하여 인터페이스 맵 테이블을 참조하여 상기 포트 번호에 상응하는 고유 주소를 가지고 있는 블루투스 동글로 상기 `Create_Connection' 커맨드 패킷`을 전송한다.
상기 `Create_Connection' 커맨드 패킷을 전송받은 블루투스 동글은 원격 블루투스 디바이스와 페이징(paging) 과정으로 주파수 채널을 동기화한 후 피코넷을 구성하여 ACL 링크 또는 SCO 링크가 생성되어 채널이 형성된다. 채널이 형성되면 블루투스 동글은 호스트에게 `Connection_Complete'라는 이벤트 패킷을 전송한다. `Connection_Complete' 이벤트 패킷에는 상기 형성된 채널의 식별자를 나타내는 커넥션 핸들을 포함하고 있다. 커넥션 핸들은 데이터 패킷을 만드는데 사용된다.
호스트의 인터페이스 핸들러 계층(710)에서는 `Connection_Complete' 이벤트 패킷을 수신하여 `Connection_Complete' 이벤트 패킷에 포함된 커넥션 핸들을 인터페이스 맵 테이블에 상기 포트 번호 및 상기 블루투스 동글의 고유 주소와 연계하여 저장한다(단계 1411). 인터페이스 핸들러 계층(710)에서는 `Connection_Complete' 이벤트 패킷을 HCI 계층(708)으로 전송한다(단계 1413). HCI 계층(708)에서는 `Connection_Complete' 이벤트 패킷을 수신하여 HCI 계층의 상위 계층으로 전달한다(단계 1415).
도 15는 본 발명의 일실시예에 따른 호스트에서 수행되는 다중 블루투스 동글과의 커맨드 패킷(command packet) 및 이벤트 패킷 처리 과정을 나타낸 순서도이다.
도 15를 참조하면, 먼저 호스트의 HCI 계층의 상위 계층에서는 소정의 커맨드 패킷을 생성하고(단계 1501), 전송할 커맨드 패킷에 커넥션 핸들이 존재하는지 판단한다(단계 1503). 존재하지 않는 경우에 HCI 계층의 상위 계층에서는 커맨드 패킷의 패러미터에 상기 커맨드 패킷을 전송할 포트의 포트 번호(또는 인터페이스 핸들)를 삽입하여(단계 1505) HCI 계층(708)으로 전송한다(단계 1507).
HCI 계층(708)에서는 상기 전달받은 커맨드 패킷을 수신하여 인터페이스 핸들러 계층(710)으로 전송한다(단계 1509). 인터페이스 핸들러 계층(710)에서는 상기 전송된 커맨드 패킷을 수신하여 커맨드 패킷의 포트 번호에 상응하는 포트를 통하여 인터페이스 맵 테이블을 참조하여 상기 포트 번호에 상응하는 고유 주소를 가지고 있는 블루투스 동글로 상기 커맨드 패킷을 전송한다(단계 1511).
호스트의 인터페이스 디바이스 드라이버 계층(712)에서는 상기 커맨드 패킷에 응답하는 이벤트 패킷을 해당 블루투수 동글로부터 수신하여 인터페이스 핸들러 계층(710)으로 송신하고(단계 1515), 인터페이스 핸들러 계층(710)은 상기 이벤트 패킷에 커넥션 핸들, 블루투스 동글의 고유 주소 또는 포트 번호 중의 하나가 포함되어 있는지를 판단한다(단계 1517). 상기 이벤트 패킷에 커넥션 핸들, 블루투스 동글의 고유 주소 또는 포트 번호 중의 어느 하나도 포함되어 있지 않은 경우에는 상기 이벤트 패킷에 상기 커맨드 패킷에 저장된 포트 번호를 삽입하여(단계 1519) HCI 계층(708)으로 전송한다(단계 1521). HCI 계층(708)에서는 상기 전송받은 이벤트 패킷을 HCI 계층의 상위 계층으로 전달한다(단계 1523).
상기 인터페이스 핸들러 계층(710)은 도 7과 같이 독립된 계층으로 구성될 수도 있고, 호스트의 HCI 계층(708)에 포함되도록 구성될 수도 있다. 이하, 상기 인터페이스 핸들러 계층(710)이 호스트의 HCI 계층(708)에 포함되도록 구성될 경우의 처리 과정에 대하여 도 16 내지 도 18을 참조하여 설명한다.
도 16은 본 발명의 다른 실시예에 따른 호스트에서 수행되는 다중 블루투스 동글과의 연결 설정 과정을 설명하기 위한 순서도이다.
도 16을 참조하면, 호스트에 블루투스 동글이 연결되었음이 감지되면, 인터페이스 디바이스 드라이버 계층(712)에서는 블루투스 동글이 연결된 포트의 포트 번호를 포함하는 포트 정보를 생성하여(단계 1601) 포트 정보를 상위 계층인 HCI 계층(708)으로 전달한다(단계 1603).
HCI 계층(708)에서는 인터페이스 맵 테이블을 생성하여, 인터페이스 맵 테이블에 상기 전달받은 포트 번호를 저장한다(단계 1605).
HCI 계층의 상위 계층에서는 `Read_BD_ADDR'이라는 커맨드 패킷을 생성하고(단계 1607), `Read_BD_ADDR' 커맨드 패킷의 파라미터에 커넥션 핸들, 즉 채널 식별자가 존재하는지 여부를 판단한다(단계 1609). 판단 결과, 커넥션 핸들이 존재하지 않으면 인터페이스 맵 테이블을 참조하여 `Read_BD_ADDR' 커맨드 패킷의 파라미터에 상기 인터페이스 맵 테이블의 포트 번호, 즉 인터페이스 핸들을 삽입한다(단계 1611). HCI 계층의 상위 계층에서는 포트 번호가 삽입된 `Read_BD_ADDR' 커맨드 패 킷을 HCI 계층(708)으로 전달하고(단계 1613), HCI 계층(708)은 상기 전달된 `Read_BD_ADDR' 커맨드 패킷을 인터페이스 디바이스 드라이버 계층(712)으로 전달하여(단계 1615) 상기 포트 번호에 상응하는 포트로 전송한다.
인터페이스 디바이스 드라이버 계층(712)은 상기 현재 연결된 블루투스 동글로부터 `Read_BD_ADDR' 커맨드 패킷에 대한 응답인 'Command_Complete'라는 이벤트 패킷을 수신하여 HCI 계층(708)으로 전달한다(단계 1617). 'Command_Complete' 이벤트 패킷에는 상기 현재 연결된 블루투스 동글의 고유 주소(BD_ADDR)가 포함되어 있다. HCI 계층(708)은 상기 'Command_Complete' 이벤트 패킷에 포함된 현재 연결된 블루투스 동글의 고유 주소(BD_ADDR)를 상기 인터페이스 맵 데이블에 상기 포트 번호와 연계시켜 저장하고(단계 1619), 상기 전달받은 'Command_Complete' 이벤트 패킷을 HCI 계층(708)의 상위 계층으로 전송한다(단계 1621).
도 17은 본 발명의 다른 실시예에 따른 호스트에서 수행되는 블루투스 디바이스와의 연결 요청에 따른 처리 과정을 설명하기 위한 순서도이다.
도 17을 참조하면, 먼저, 호스트의 HCI 계층(708)의 상위 계층에서는 블루투스 디바이스와의 연결을 요청하는 커맨드인 `Create_Connection' 커맨드 패킷을 생성한다(단계 1701). 호스트의 HCI 계층(708)의 상위 계층에서는 `Create_Connection' 커맨드 패킷에 커넥션 핸들이 존재하는지 판단하고(단계 1703), 존재하지 않는 경우에 상기 인터페이스 맵 테이블을 참조하여 `Create_Connection' 커맨드 패킷의 패러미터에 상기 `Create_Connection' 커맨드 패킷을 전송할 포트의 포트 번호(또는 인터페이스 핸들)를 삽입하여(단계 1705) HCI 계층(708)으로 전송한다(단계 1707).
HCI 계층(708)에서는 상기 전달받은 `Create_Connection' 커맨드 패킷을 수신하여 인터페이스 디바이스 드라이버 계층(712)으로 전송하여 `Create_Connection' 커맨드 패킷의 포트 번호에 상응하는 포트로 전송한다. 상기 `Create_Connection' 커맨드 패킷을 전송받은 블루투스 동글과 원격 블루투스 디바이스간에 채널이 형성되면, 블루투스 동글은 호스트에게 `Connection_Complete'라는 이벤트 패킷을 전송한다. `Connection_Complete' 이벤트 패킷에는 상기 형성된 채널의 식별자를 나타내는 커넥션 핸들을 포함하고 있다.
호스트의 HCI 계층(708)에서는 `Connection_Complete' 이벤트 패킷을 수신하여 `Connection_Complete' 이벤트 패킷에 포함된 커넥션 핸들을 인터페이스 맵 테이블에 상기 포트 번호 및 상기 블루투스 동글의 고유 주소와 연계하여 저장한다(단계 1709). HCI 계층(708)에서는 `Connection_Complete' 이벤트 패킷을 HCI 계층(708)의 상위 계층으로 전송한다(단계 1711).
도 18은 본 발명의 다른 실시예에 따른 호스트에서 수행되는 다중 블루투스 동글과의 커맨드 패킷(command packet) 및 이벤트 패킷 처리 과정을 나타낸 순서도이다.
도 18을 참조하면, 먼저 호스트의 HCI 계층의 상위 계층에서는 소정의 커맨드 패킷을 생성하고(단계 1801), 전송할 커맨드 패킷에 커넥션 핸들이 존재하는지 판단한다(단계 1803). 존재하지 않는 경우에 HCI 계층의 상위 계층에서는 상기 인터페이스 맵 테이블을 참조하여 상기 커맨드 패킷의 패러미터에 상기 커맨드 패킷 을 전송할 포트의 포트 번호(또는 인터페이스 핸들)를 삽입하여(단계 1805) HCI 계층(708)으로 전송한다(단계 1807).
HCI 계층(708)에서는 상기 전달받은 커맨드 패킷을 수신하여 인터페이스 디바이스 드라이버 계층(712)으로 전송한다(단계 1809). 즉, HCI 계층(708)에서는 상기 전송된 커맨드 패킷의 포트 번호에 상응하는 포트를 통하여 인터페이스 맵 테이블을 참조하여 상기 포트 번호에 상응하는 고유 주소를 가지고 있는 블루투스 동글로 상기 커맨드 패킷을 전송한다.
호스트의 인터페이스 디바이스 드라이버 계층(712)에서는 상기 커맨드 패킷에 응답하는 이벤트 패킷을 해당 블루투수 동글로부터 수신하여 HCI 계층(708)으로 전달한다(단계 1813).
HCI 계층(708)에서는 상기 이벤트 패킷에 커넥션 핸들, 블루투스 동글의 고유 주소 또는 포트 번호 중의 하나가 포함되어 있는지를 판단한다(단계 1815). HCI 계층(708)에서는 상기 이벤트 패킷에 커넥션 핸들, 블루투스 동글의 고유 주소 또는 포트 번호 중의 어느 하나도 포함되어 있지 않은 경우에는 상기 이벤트 패킷에 상기 커맨드 패킷에 저장된 포트 번호를 삽입하여(단계 1817) HCI 계층(708)의 상위 계층으로 전송한다(단계 1819).
상기와 같은 근거리 무선 통신 시스템 및 방법에 의하면, 복수개의 호스트 컨트롤러를 동시에 호스트에 연결함으로써 하나의 호스트 컨트롤러에 연결된 블루투스 디바이스의 개수를 줄일 수 있다. 그 결과, 각각의 블루투스 디바이스의 최대 대역폭이 증가되고, 데이터 전송 속도가 증가되며, 전송되어지는 음성 신호의 음질을 향상시킬 수 있다.
또한, 사용자는 종래와 같이 단일의 호스트 컨트롤러만을 호스트에 연결해야 한다는 제한을 받지 않고 복수의 호스트 컨트롤러를 호스트에 연결할 수 있다. 즉, 사용자는 호스트 컨트롤러의 개수를 선택하여 선택적으로 호스트에 연결시킬 수 있고, 각각의 호스트 컨트롤러를 사용자가 원하는 블루투스 디바이스와 선택적으로 연결시킬 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (40)

  1. N(N은 1상의 자연수) 개의 근거리 무선 통신 디바이스와 N개의 근거리 무선 통신 채널을 통하여 연결된 L(L은 2 이상의 자연수) 개의 호스트 컨트롤러; 및
    상기 L 개의 호스트 컨트롤러와 L 개의 인터페이스를 통하여 각각 연결되고, 상기 L 개의 호스트 컨트롤러를 통하여 상기 N개의 근거리 무선 통신 디바이스와 소정의 데이터 패킷을 송수신하는 호스트를 포함하는 근거리 무선 통신 시스템.
  2. 제1항에 있어서, 상기 L개의 호스트 컨트롤러는 상기 N개의 근거리 무선 통신 디바이스와 주파수 호핑의 스펙트럼 확산 통신을 수행하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  3. 제1항에 있어서, 상기 호스트는
    상기 L 개의 호스트 컨트롤러가 상기 L 개의 인터페이스를 통하여 상기 호스트에 연결된 경우 상기 L 개의 호스트 컨트롤러 별로 포트 번호를 할당하고, 호스트 컨트롤러 식별자를 상기 L 개의 호스트 컨트롤러 별로 상기 포트 번호에 연계하여 할당하고, 상기 N 개의 근거리 무선 통신 채널의 채널 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  4. 제3항에 있어서, 상기 호스트는
    상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중 하나에 기초하여 상기 포트 번호 또는 상기 호스트 컨트롤러 식별자에 상응하는 호스트 컨트롤러를 통하여 상기 채널 식별자에 상응하는 근거리 무선 통신 디바이스와 상기 소정의 데이터 패킷을 송수신하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  5. 제3항에 있어서, 상기 호스트는
    상기 N 개의 근거리 무선 통신 디바이스와의 채널 연결을 요청하는 채널 연결 요청 커맨드에 상기 채널 식별자가 포함되지 않는 경우에 상기 채널 연결 요청 커맨드에 상기 포트 번호를 삽입하여 상기 포트 번호에 상응하는 포트를 통하여 상기 호스트 컨트롤러 식별자에 상응하는 호스트 컨트롤러로 전송하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  6. 제5항에 있어서, 상기 호스트는
    상기 채널 연결 요청 커맨드에 응답하여 채널 연결 완료 이벤트를 수신한 경우 상기 채널 연결 완료 이벤트에 포함된 채널 식별자를 상기 L개의 호스트 컨트롤러의 해당 채널 식별자로 할당하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  7. 제3항에 있어서, 상기 호스트는
    호스트 컨트롤러 식별자 요청 커맨드에 상기 채널 식별자가 존재하지 않는 경우에 상기 호스트 컨트롤러 식별자 요청 커맨드에 상기 포트 번호를 삽입하고, 상기 호스트 컨트롤러 식별자 요청 커맨드에 상응하는 호스트 컨트롤러 식별자 요청 커맨드 완료 이벤트에 포함된 호스트 컨트롤러 식별자를 상기 L개의 호스트 컨트롤러의 해당 호스트 컨트롤러 식별자로 할당하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  8. 제1항에 있어서, 상기 호스트는
    소정의 커맨드 패킷에 채널 식별자가 존재하지 않는 경우에 소정의 포트 번호를 상기 커맨드 패킷에 삽입하여 상기 커맨드 패킷을 상기 포트 번호에 상응하는 포트를 통하여 호스트 컨트롤러 식별자에 상응하는 호스트 컨트롤러로 전송하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  9. 제1항에 있어서, 상기 호스트는 상기 L 개의 호스트 컨트롤러로부터 커맨드 패킷에 상응하는 이벤트 패킷을 수신할 경우, 상기 이벤트 패킷에 포트 번호, 호스트 컨트롤러 식별자 및 채널 식별자 중의 적어도 하나가 존재하지 않는 경우에 상기 포트 번호를 상기 이벤트 패킷에 삽입하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  10. 제9항에 있어서, 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자는 상기 호스트와 연결된 상기 L 개의 호스트 컨트롤러 별로 맵 테이블에 저장되는 것을 특징으로 하는 근거리 무선 통신 시스템.
  11. 제1항에 있어서, 상기 호스트에 동시에 연결되는 호스트 컨트롤러의 개수 L은 사용자에 의해 조정 가능한 것을 특징으로 하는 근거리 무선 통신 시스템.
  12. 제1항에 있어서, 상기 L개의 인터페이스는 USB(Universal Serial Bus), UART(Universal Asynchronous Receiver/Transceiver), PCMCIA(Personal Computer Memory Card International Association) 또는 RS 232인 것을 특징으로 하는 근거리 무선 통신 시스템.
  13. 제1항에 있어서, 상기 호스트는 PC (Personal Computer)인 것을 특징으로 하는 근거리 무선 통신 시스템.
  14. 제13항에 있어서, 상기 PC용 소프트웨어는 응용 (application) 계층, 프로파일 (profile) 계층, 프로토콜 스택(protocol stack) 계층, 호스트 컨트롤 인터페이스(HCI; Host Control Interface) 계층, 인터페이스 핸들러(interface handler) 계층 및 인터페이스 디바이스 드라이버 계층을 포함하며,
    상기 소정의 데이터 패킷은 상기 인터페이스 핸들러 계층에 의해 상기 L개의 호스트 컨트롤러 별 포트 번호, 호스트 컨트롤러 식별자 및 채널 식별자 중 하나에 상응하는 포트를 통하여 상기 N개의 근거리 무선 통신 디바이스로 전송되는 것을 특징으로 하는 근거리 무선 통신 시스템.
  15. 제13항에 있어서, 상기 PC용 소프트웨어는 응용 (application) 계층, 프로파일 (profile) 계층, 프로토콜 스택(protocol stack) 계층, 호스트 컨트롤 인터페이스(HCI; Host Control Interface) 계층 및 인터페이스 디바이스 드라이버 계층을 포함하며,
    상기 소정의 데이터 패킷은 상기 호스트 컨트롤 인터페이스(HCI) 계층에 의해 상기 L개의 호스트 컨트롤러 별 포트 번호, 호스트 컨트롤러 식별자 및 채널 식별자 중 하나에 상응하는 포트를 통하여 상기 N개의 근거리 무선 통신 디바이스로 전송되는 것을 특징으로 하는 근거리 무선 통신 시스템.
  16. L(L은 2 이상의 자연수) 개의 호스트 컨트롤러;
    상기 L 개의 호스트 컨트롤러와 블루투스 통신 채널을 통하여 연결된 적어도 하나의 블루투스 디바이스;
    상기 L 개의 호스트 컨트롤러와 인터페이스를 통하여 연결되고, 상기 L 개의 호스트 컨트롤러 별로 할당된 포트 번호, 호스트 컨트롤러 식별자 및 채널 식별자-여기서, 상기 채널 식별자는 상기 블루투스 통신 채널의 채널 식별자임- 중 하나에 기초하여 상기 L 개의 호스트 컨트롤러를 통하여 상기 적어도 하나의 블루투스 디바이스와 소정의 데이터 패킷을 송수신하는 호스트를 포함하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  17. 제16항에 있어서, 상기 호스트는
    상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중 하나에 기초하여 상기 포트 번호 또는 상기 호스트 컨트롤러 식별자에 상응하는 호스트 컨트롤러를 통하여 상기 채널 식별자에 상응하는 근거리 무선 통신 디바이스와 상기 소정의 데이터 패킷을 송수신하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  18. 제16항에 있어서, 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자는 상기 호스트와 연결된 상기 L 개의 호스트 컨트롤러 별로 맵 테이블에 저장되는 것을 특징으로 하는 근거리 무선 통신 시스템.
  19. 제16항에 있어서, 상기 호스트는
    상기 호스트에 연결된 상기 L개의 호스트 컨트롤러의 식별자를 얻기 위한 호스트 컨트롤러 식별자 요청 커맨드에 상기 채널 식별자가 존재하지 않는 경우에 상기 호스트 컨트롤러 식별자 요청 커맨드에 상기 포트 번호를 삽입하고, 상기 호스트 컨트롤러 식별자 요청 커맨드에 응답하여 호스트 컨트롤러 식별자 요청 커맨드 완료 이벤트를 해당 호스트 컨트롤러로부터 수신한 경우 상기 호스트 컨트롤러 식 별자 요청 커맨드 완료 이벤트에 포함된 호스트 컨트롤러 식별자를 상기 L개의 호스트 컨트롤러의 해당 호스트 컨트롤러 식별자로 할당하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  20. 제16항에 있어서, 상기 호스트는
    상기 적어도 하나의 근거리 무선 통신 디바이스와의 채널 연결을 요청하는 채널 연결 요청 커맨드에 상기 채널 식별자가 존재하지 않는 경우에 상기 채널 연결 요청 커맨드에 상기 포트 번호를 삽입하여 상기 채널 연결 요청 커맨드를 상기 포트 번호에 상응하는 포트를 통하여 상기 호스트 컨트롤러로 전송하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  21. 제20항에 있어서, 상기 호스트는
    상기 채널 연결 요청 커맨드에 응답하여 채널 연결 완료 이벤트를 수신한 경우 상기 채널 연결 완료 이벤트에 포함된 채널 식별자를 해당 호스트 컨트롤러의 채널 식별자로 할당하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  22. 제16항에 있어서, 상기 호스트는
    소정의 커맨드 패킷에 채널 식별자가 존재하지 않는 경우에 소정의 포트 번호를 상기 커맨드 패킷에 삽입하여 상기 커맨드 패킷을 상기 포트 번호에 상응하는 포트를 통하여 해당 호스트 컨트롤러로 전송하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  23. 제22항에 있어서, 상기 호스트는
    상기 커맨드 패킷에 채널 식별자가 존재하는 경우 상기 채널 식별자에 대응하는 포트 번호에 상응하는 포트를 통하여 상기 커맨드 패킷을 해당 호스트 컨트롤러로 전송하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  24. 제16항에 있어서, 상기 호스트는 상기 L 개의 호스트 컨트롤러로부터 커맨드 패킷에 상응하는 이벤트 패킷을 수신할 경우, 상기 이벤트 패킷에 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중의 적어도 하나가 존재하지 않는 경우에 상기 포트 번호를 상기 이벤트 패킷에 삽입하는 것을 특징으로 하는 근거리 무선 통신 시스템.
  25. L(L은 2이상의 자연수) 개의 호스트 컨트롤러가 인터페이스를 통하여 호스트에 연결된 경우 상기 L 개의 호스트 컨트롤러 별로 포트 번호를 할당하는 단계;
    상기 호스트에 연결된 상기 L 개의 호스트 컨트롤러의 호스트 컨트롤러 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 단계;
    상기 호스트에 연결된 상기 L 개의 호스트 컨트롤러와 적어도 하나의 근거리 무선 통신 디바이스간에 근거리 무선 통신 채널이 연결된 경우 상기 근거리 무선 통신 채널의 채널 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연 계하여 할당하는 단계; 및
    상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중 하나에 기초하여 상기 L 개의 호스트 컨트롤러를 통하여 상기 적어도 하나의 근거리 무선 통신 디바이스와 소정의 데이터 패킷을 송수신하는 단계를 포함하는 것을 특징으로 하는 호스트와 복수의 호스트 컨트롤러간의 근거리 무선 통신 방법.
  26. 제25항에 있어서, 상기 L개의 호스트 컨트롤러는 상기 적어도 하나의 근거리 무선 통신 디바이스와 주파수 호핑의 스펙트럼 확산 통신을 수행하는 것을 특징으로 하는 근거리 무선 통신 방법.
  27. 제25항에 있어서, 상기 호스트는 상기 포트 번호 또는 상기 호스트 컨트롤러 식별자에 상응하는 호스트 컨트롤러를 통하여 상기 채널 식별자에 상응하는 근거리 무선 통신 디바이스로 상기 데이터 패킷을 송수신하는 것을 특징으로 하는 근거리 무선 통신 방법.
  28. 제25항에 있어서, 상기 호스트와 상기 L 개의 호스트 컨트롤러는 L 개의 인터페이스로 연결되는 것을 특징으로 하는 근거리 무선 통신 방법.
  29. 제25항에 있어서, 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자는 상기 호스트와 연결된 상기 L개의 호스트 컨트롤러 별로 맵 테이블에 저장되는 것을 특징으로 하는 근거리 무선 통신 방법.
  30. 제25항에 있어서, 상기 호스트에 연결된 상기 L 개의 호스트 컨트롤러의 상기 호스트 컨트롤러 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 단계는
    상기 연결된 호스트 컨트롤러의 호스트 컨트롤러 식별자를 얻기 위한 호스트 컨트롤러 식별자 요청 커맨드에 상기 채널 식별자가 존재하는지 판단하는 단계;
    상기 호스트 컨트롤러 식별자 요청 커맨드에 상기 채널 식별자가 존재하지 않는 경우에 상기 호스트 컨트롤러 식별자 요청 커맨드에 상기 포트 번호를 삽입하는 단계; 및
    상기 호스트 컨트롤러 식별자 요청 커맨드에 응답하여 호스트 컨트롤러 식별자 요청 커맨드 완료 이벤트를 수신한 경우 상기 호스트 컨트롤러 식별자 요청 커맨드 완료 이벤트에 포함된 호스트 컨트롤러 식별자를 상기 연결된 호스트 컨트롤러의 호스트 컨트롤러 식별자로 할당하는 단계를 포함하는 것을 특징으로 하는 근거리 무선 통신 방법.
  31. 제25항에 있어서, 상기 호스트에 연결된 상기 L 개의 호스트 컨트롤러의 상기 호스트 컨트롤러 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 단계는
    상기 근거리 무선 통신 채널 연결을 요청하는 채널 연결 요청 커맨드에 상기 채널 식별자가 존재하는지 판단하는 단계; 및
    상기 채널 연결 요청 커맨드에 상기 채널 식별자가 존재하지 않는 경우에 상기 채널 연결 요청 커맨드에 상기 포트 번호를 삽입하여 상기 포트 번호에 상응하는 포트를 통하여 상기 채널 연결 요청 커맨드를 상기 호스트 컨트롤러 식별자에 상응하는 호스트 컨트롤러로 전송하는 단계를 포함하는 것을 특징으로 하는 근거리 무선 통신 방법.
  32. 제31항에 있어서, 상기 근거리 무선 통신 채널의 상기 채널 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 단계는 상기 채널 연결 요청 커맨드에 응답하여 채널 연결 완료 이벤트를 수신한 경우 상기 채널 식별자를 상기 L 개의 호스트 컨트롤러별로 할당하는 단계를 더 포함하는 것을 특징으로 하는 근거리 무선 통신 방법.
  33. 제25항에 있어서, 상기 L 개의 호스트 컨트롤러를 통하여 상기 적어도 하나의 근거리 무선 통신 디바이스와 상기 소정의 데이터 패킷을 송수신하는 단계는
    커맨드 패킷에 상기 채널 식별자가 존재하는지 판단하는 단계; 및
    상기 커맨드 패킷에 상기 채널 식별자가 존재하지 않는 경우에 상기 포트 번호를 상기 커맨드 패킷에 삽입하여 상기 포트 번호에 상응하는 포트를 통하여 상기 커맨드 패킷을 상기 호스트 컨트롤러 식별자에 상응하는 호스트 컨트롤러로 전송하는 단계를 포함하는 것을 특징으로 하는 근거리 무선 통신 방법.
  34. 제25항에 있어서, 상기 연결된 호스트 컨트롤러로부터 커맨트 패킷에 응답하여 상기 커맨트 패킷에 상응하는 이벤트 패킷을 수신하는 단계를 더 포함하는 것을 근거리 무선 통신 방법.
  35. 제34항에 있어서, 상기 연결된 호스트 컨트롤러로부터 상기 커맨트 패킷에 응답하여 상기 커맨트 패킷에 상응하는 상기 이벤트 패킷을 수신하는 단계는
    상기 이벤트 패킷에 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중의 적어도 하나가 존재하는지 판단하는 단계; 및
    상기 이벤트 패킷에 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중의 적어도 하나가 존재하지 않는 경우에 상기 포트 번호를 상기 이벤트 패킷에 삽입하는 단계를 포함하는 근거리 무선 통신 방법.
  36. 제25항에 있어서, 상기 호스트용 소프트웨어는 응용 (application) 계층, 프로파일 (profile) 계층, 프로토콜 스택(protocol stack) 계층, 호스트 컨트롤 인터페이스(HCI; Host Control Interface) 계층, 인터페이스 핸들러(interface handler) 계층 및 인터페이스 디바이스 드라이버 계층을 포함하며,
    상기 인터페이스 핸들러 계층에서 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자를 할당하는 것을 특징으로 하는 근거리 무선 통신 방법.
  37. 제25항에 있어서, 상기 호스트용 소프트웨어는 응용 (application) 계층, 프로파일 (profile) 계층, 프로토콜 스택(protocol stack) 계층, 호스트 컨트롤 인터페이스(HCI; Host Control Interface) 계층 및 인터페이스 디바이스 드라이버 계층을 포함하며,
    상기 호스트 컨트롤 인터페이스(HCI) 계층에서 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자를 할당하는 것을 특징으로 하는 근거리 무선 통신 방법.
  38. 제25항에 있어서, 상기 호스트에는 상기 호스트에 연결된 L 개의 인터페이스 디바이스 드라이버가 각각 독립적으로 생성되고, 상기 L 개의 인터페이스 디바이스 드라이버를 제어하는 하나의 프로세스가 생성됨으로써 상기 호스트, 상기 L 개의 호스트 컨트롤러 및 상기 적어도 하나의 근거리 무선 통신 디바이스간에 데이터 패킷이 송수신이 이루어지는 것을 특징으로 하는 근거리 무선 통신 방법.
  39. 복수의 호스트 컨트롤러가 인터페이스를 통하여 호스트에 연결된 경우 상기 호스트에 연결된 상기 복수의 호스트 컨트롤러 별로 포트 번호를 할당하는 단계;
    상기 복수의 호스트 컨트롤러의 호스트 컨트롤러 식별자를 각 호스트 컨트롤러별로 할당하는 단계;
    상기 호스트와 연결된 상기 복수의 호스트 컨트롤러와 적어도 하나의 블루투스 디바이스간에 근거리 무선 통신 채널이 연결된 경우 채널 식별자를 각 호스트 컨트롤러별로 할당하는 단계; 및
    소정의 데이터 패킷을 상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중 하나에 상응하는 포트로 전송하는 단계를 포함하는 것을 특징으로 하는 호스트와 복수의 호스트 컨트롤러간의 근거리 무선 통신 방법.
  40. 호스트와 복수의 호스트 컨트롤러간의 근거리 무선 통신 방법이 디지털 처리 장치에서 실행되도록 기술된 소프트웨어를 상기 디지털 처리 장치에서 판독 가능하도록 기록한 기록매체로서, 상기 소프트웨어는
    L(L은 2이상의 자연수) 개의 호스트 컨트롤러가 인터페이스를 통하여 호스트에 연결된 경우 상기 L 개의 호스트 컨트롤러 별로 포트 번호를 할당하는 단계;
    상기 호스트에 연결된 상기 L 개의 호스트 컨트롤러의 호스트 컨트롤러 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 단계;
    상기 호스트에 연결된 상기 L 개의 호스트 컨트롤러와 적어도 하나의 근거리 무선 통신 디바이스간에 근거리 무선 통신 채널이 연결된 경우 상기 적어도 하나의 근거리 무선 통신 채널의 채널 식별자를 상기 L 개의 호스트 컨트롤러별로 상기 포트 번호에 연계하여 할당하는 단계; 및
    상기 포트 번호, 상기 호스트 컨트롤러 식별자 및 상기 채널 식별자 중 하나에 기초하여 상기 L 개의 호스트 컨트롤러를 통하여 상기 근거리 무선 통신 디바이스와 소정의 데이터 패킷을 송수신하는 단계를 포함하는 것을 특징으로 하는 기록매체.
KR1020040060814A 2004-08-02 2004-08-02 근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를수행하는 기록매체 KR100640561B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040060814A KR100640561B1 (ko) 2004-08-02 2004-08-02 근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를수행하는 기록매체
TW094106910A TWI360053B (en) 2004-08-02 2005-03-08 Enhanced bluetooth communication system
US11/085,918 US7596353B2 (en) 2004-08-02 2005-03-21 Enhanced bluetooth communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040060814A KR100640561B1 (ko) 2004-08-02 2004-08-02 근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를수행하는 기록매체

Publications (2)

Publication Number Publication Date
KR20060012094A KR20060012094A (ko) 2006-02-07
KR100640561B1 true KR100640561B1 (ko) 2006-10-31

Family

ID=35732967

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040060814A KR100640561B1 (ko) 2004-08-02 2004-08-02 근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를수행하는 기록매체

Country Status (3)

Country Link
US (1) US7596353B2 (ko)
KR (1) KR100640561B1 (ko)
TW (1) TWI360053B (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5209181B2 (ja) * 2005-03-15 2013-06-12 富士フイルム株式会社 化合物、組成物、位相差板、楕円偏光板および液晶表示装置
US8284768B2 (en) * 2005-10-06 2012-10-09 Sierra Wireless, Inc. Dynamic bus-based virtual channel multiplexing device driver architecture
KR20080003959A (ko) * 2006-07-04 2008-01-09 삼성전자주식회사 프로파일의 선택이 가능한 블루투스 장치 및 그의 데이터전송 방법
US7716379B2 (en) * 2007-04-26 2010-05-11 Microsoft Corporation Hardware control interface for IEEE standard 802.11 including transmission control interface component and a transmission status interface component
US8346974B2 (en) 2007-07-27 2013-01-01 Microsoft Corporation Hardware control interface for IEEE standard 802.11
US8190716B2 (en) * 2007-08-24 2012-05-29 Broadcom Corporation Method and system for managing bluetooth communication using software or firmware filtering
US8762504B2 (en) * 2007-11-04 2014-06-24 Surewaves Mediatech Private Limited System and method for creating networked short range zone through remote delivery of short range proxy server on a remotely located machine
US7979136B2 (en) * 2007-12-07 2011-07-12 Roche Diagnostics Operation, Inc Method and system for multi-device communication
US20110021147A1 (en) * 2009-07-21 2011-01-27 Tout Walid R System and method for determining connectivity status of short range wireless devices
US9467222B1 (en) * 2014-04-23 2016-10-11 Fortify Technologies, LLC Systems and methods for parallel communication with multiple bluetooth devices
CA3021671C (en) 2014-05-16 2020-12-15 Laird Technologies Inc. Method, system and related devices for operating multiple cranes in unison.
US10141974B2 (en) 2015-03-17 2018-11-27 Shai Waxman High-capacity FHSS-MA devices and methods
CN104780499B (zh) * 2015-04-01 2018-05-08 惠州Tcl移动通信有限公司 一种基于蓝牙的多设备智能互连方法及系统
US9906893B2 (en) * 2016-06-16 2018-02-27 I/O Interconnect, Ltd. Method for making a host personal computer act as an accessory in bluetooth piconet
US10165612B2 (en) * 2016-06-16 2018-12-25 I/O Interconnected, Ltd. Wireless connecting method, computer, and non-transitory computer-readable storage medium
US10862862B2 (en) * 2017-11-30 2020-12-08 AVAST Software s.r.o. Identifying devices on a remote network
CN117412273A (zh) * 2022-07-07 2024-01-16 瑞昱半导体股份有限公司 蓝牙网络协议封包传输装置及方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USH1944H1 (en) * 1998-03-24 2001-02-06 Lucent Technologies Inc. Firewall security method and apparatus
US6804237B1 (en) * 1999-06-23 2004-10-12 Nortel Networks Limited Method, devices and signals for multiplexing payload data for transport in a data network
US7269183B2 (en) * 2001-04-27 2007-09-11 Broadcom Corporation System and method for connecting bluetooth-enabled devices to a personal computer
US20030013411A1 (en) * 2001-07-13 2003-01-16 Memcorp, Inc. Integrated cordless telephone and bluetooth dongle
US20030134596A1 (en) * 2002-01-11 2003-07-17 Superbt Canada Inc. Bluetooth access point to provide more than seven users
KR100418724B1 (ko) 2002-03-12 2004-02-18 한국전자통신연구원 블루투스 장착 기기와 고속 무선 통신기기 간의 무선통신방법
EP1618598A4 (en) * 2003-04-11 2008-07-16 Flexiworld Technologies Inc AUTORUN FOR AN INTEGRATED MEMORY COMPONENT
US7272500B1 (en) * 2004-03-25 2007-09-18 Avaya Technology Corp. Global positioning system hardware key for software licenses

Also Published As

Publication number Publication date
TWI360053B (en) 2012-03-11
TW200606645A (en) 2006-02-16
US7596353B2 (en) 2009-09-29
US20060025075A1 (en) 2006-02-02
KR20060012094A (ko) 2006-02-07

Similar Documents

Publication Publication Date Title
KR100640561B1 (ko) 근거리 무선 통신 시스템, 근거리 무선 통신 방법 및 이를수행하는 기록매체
EP3893109B1 (en) Method and device for connecting bluetooth devices
CN101779419B (zh) 同时维持蓝牙和802.11连接以增加数据吞吐量
US8719472B2 (en) Method for controlling the output of devices in the network
US7468965B2 (en) System and method for communicating over a wireless time-division duplex channel
US6982962B1 (en) System and method for selecting a network access provider using a portable information device
US8594571B2 (en) System and method for streaming identical data over several links
US20040162027A1 (en) Bluetooth wireless communication apparatus and method of notifying users of devices connectable to ad-hoc networks to establish effective connections based on a user&#39;s selection
US20080062939A1 (en) Wireless communications between a peripheral and a mobile unit in a wireless network environment
JP2004274104A (ja) 電子機器およびコンテンツデータ出力方法
KR101345623B1 (ko) 무선 범용 직렬 버스 시스템 및 그 구동 방법
US20240090049A1 (en) Method and apparatus for establishing bluetooth link, device, and storage medium
US8014339B1 (en) Methods for providing universal network access within a wireless communication system
WO2021208980A1 (zh) Srs传输方法、设备及系统
KR20050018860A (ko) 유비쿼터스를 이용한 유/무선통합 제어시스템 및 제어장치
WO2020036003A1 (ja) 無線通信装置および無線通信方法
RU2782181C1 (ru) Способ и устройство соединения bluetooth-устройств
KR101241911B1 (ko) 무선 네트워크에서 통신 수행 방법 및 그를 위한 디바이스
KR100704693B1 (ko) 블루투스 액세스 포인트의 터널링 기능을 이용한 무선서비스 제공 방법 및 시스템
KR20050012573A (ko) 근거리 무선통신 제어방법
JP2010109776A (ja) 無線通信装置および無線通信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120925

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee