KR20150142565A - 블루투스 프로토콜에 기반한 데이터 처리 방법 및 그 전자장치 - Google Patents

블루투스 프로토콜에 기반한 데이터 처리 방법 및 그 전자장치 Download PDF

Info

Publication number
KR20150142565A
KR20150142565A KR1020140115480A KR20140115480A KR20150142565A KR 20150142565 A KR20150142565 A KR 20150142565A KR 1020140115480 A KR1020140115480 A KR 1020140115480A KR 20140115480 A KR20140115480 A KR 20140115480A KR 20150142565 A KR20150142565 A KR 20150142565A
Authority
KR
South Korea
Prior art keywords
att
application
electronic device
path
protocol stack
Prior art date
Application number
KR1020140115480A
Other languages
English (en)
Other versions
KR102166381B1 (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 US14/738,131 priority Critical patent/US9654906B2/en
Publication of KR20150142565A publication Critical patent/KR20150142565A/ko
Application granted granted Critical
Publication of KR102166381B1 publication Critical patent/KR102166381B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R25/00Deaf-aid sets, i.e. electro-acoustic or electro-mechanical hearing aids; Electric tinnitus maskers providing an auditory perception
    • H04R25/55Deaf-aid sets, i.e. electro-acoustic or electro-mechanical hearing aids; Electric tinnitus maskers providing an auditory perception using an external connection, either wireless or wired
    • H04R25/558Remote control, e.g. of amplification, frequency

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurosurgery (AREA)
  • Otolaryngology (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명의 다양한 실시예는 블루투스 프로토콜에 기반한 데이터 처리 방법 및 그 전자장치에 관한 것으로, 상기 전자 장치는, 블루투스 제어 모듈; 상기 블루투스 제어 모듈은 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 저장하고, 상기 변경된 BLE 프로토콜 스택은 제1 ATT 프로토콜을 포함하여 상기 애플리케이션의 ATT 명령을 처리하는 제1 경로와 제2 ATT 프로토콜을 포함하여 상기 애플리케이션의 ATT 명령을 처리하는 제2 경로를 포함하고; 및 상기 블루투스 제어 모듈에 결합된 프로세서를 포함하고, 상기 프로세서는 상기 블루투스 제어 모듈의 상기 적어도 둘 이상의 ATT를 포함하는 변경된 BLE 프로토콜 스택을 이용하여 상기 ATT 명령을 포함하는 상기 애플리케이션의 데이터를 처리할 수 있다. 다양한 실시예가 가능하다.

Description

블루투스 프로토콜에 기반한 데이터 처리 방법 및 그 전자장치{METHOD FOR PROCESSING DATA BASED ON BLUETOOTH PROTOCOL AND ELECTRONIC DEVICE THEREOF}
본 발명의 다양한 실시예는 전자장치에서 블루투스 통신에 관한 것으로, 특히 변경된 블루투스 저전력 프로토콜 스택에 기반하여 다양한 종류의 데이터를 처리하기 위한 방법 및 그 전자장치에 관한 것이다.
최근 근거리 통신 기술 기반의 개인용 의료기기를 사용하여 사용자의 건강정보를 측정하고 측정된 건강정보를 게이트웨이 혹은 모바일 기기를 통해 서버로 전송하여 개인 건강관리를 제공하는 서비스가 개발되고 있다.
특히 블루투스 저전력(Bluetooth Low Energy: BLE) 기술이 전력 소모 및 제품크기에 효과적 이여서 헬스케어 관련 센서들에 많이 적용되고 있다.
현재까지 제정된 헬스케어 관련 블루투스 저전력 프로파일에는 혈압(Blood Pressure), 포도당(Glucose), 심박동수(Heart Rate), 온도계(Thermometer), 산소포화도(Pulse Oximeter) 등이 있다. 블루투스의 프로파일은 블루투스가 활용될 수 있는 기술들을 규격으로 만든 것으로서, 동일한 프로파일을 지원하는 기기들끼리 호환되어 동작할 수 있다.
한편, 보청기(hearing aid: HA)에 블루투스 저전력 기술이 도입되어, 다양한 형태의 기능을 사용자에게 제공하고 있다. 특히 텔레비전, 전화기, MP3 플레이어 같은 음향기기를 사용할 때 보청기의 음질을 향상시키기 위한 보조 장치 형태로 블루투스 기술이 적용되고 있다. 하지만 최근에는 블루투스 기술을 이용해서 음향을 받아들이는 마이크로폰 부분을 별도로 분리하고, 리시버는 블루투스 이어폰 형태로 제공하는 제품이 출시되고 있다.
이와 더불어, 스마트폰 같은 전자장치에는 보청기 애플리케이션을 통해, 보청기의 마이크로폰, 앰프를 제어하거나, 이어폰으로 사용하기 위해 보청기의 리시버를 제어할 수 있다.
상기 보청기는 블루투스 저전력 기술에 기반으로 하고 있지만, 상기 보청기와 관련된 다양한 애플리케이션들이 개발되면서, 상기 블루투스 저전력 기술과 관련이 없는 다양한 종류의 애플리케이션도 상기 블루투스 저전력 기술을 기반으로 하고 있는 보청기에서 이용될 수 있다,
그러므로, 상기 블루투스 저전력 프로토콜 스택에 기반하여 다양한 종류의 데이터를 처리하기 위한 방법 및 그 전자장치가 필요할 수 있다.
안드로이드 플랫폼(Android Platform) 구현상 제약으로 인해 보청기(Hearing Aid: HA) 애플리케이션에서 정의한 일부 명령어들을 블루투스 저전력 프로토콜 스택 구조에서 사용할 수 있다.
예컨대, 보청기 애플리케이션에서 정의한 일부 명령어(command)들은 하기 <표 1>과 같다.
Commands 비고
HA_SUSPEND 오디오 재생 중지(이어폰)
HA_RECONFIGURE 오디오 설정 변경(이어폰)
HA_START 오디오 재생 시작(이어폰)
HA_CHECK_BATTERY 배터리 체크(보청기)
HA_CHANGE_GAIN 이득 변경(보청기)
명령어(command) 중 HA_CHECK_BATTERY, HA_CHANGE_GAIN은 전자장치(예: 스마트폰)의 보청기 애플리케이션에서 Generic Attribute Profile(GATT) 및 Attribute Protocol(ATT)를 이용하여 보청기에 전달이 가능하다.
하지만, HA_SUSPEND, HA_START, HA_RECONFIGURE는 전자장치의 보청기 애플리케이션에서 접근이 불가능하다. 왜냐하면, 안드로이드 플랫폼에서 블루투스 저전력(Bluetooth Low Energy: BLE) 기반이 아닌 블루투스 BR/EDR 기반에서 AVDTP(Audio/Video Distribution Transport Protocol)의 오디오 재생을 위한 프로토콜이 존재하며, AVDTP를 이용하여 오디오 스트림(audio stream) 및 시작(start), 환경설정(configuration), 중지(suspend) 등을 상대 기기로 전달할 수 있다. 즉, 미디어 재생 애플리케이션을 이용하여 사용자가 사용자 인터페이스(UI)를 통해 음악을 시작 또는 중지를 시키면, 미디어 재생 프레임워크에서 해당 명령을 제공받아서 오디오 플링거(Audio Flinger)로 해당 명령을 전달하면, 상기 해당 명령은 상대 기기로 전달이 될 수 있다. 다양한 실시예에서, 코덱 환경 설정(codec configuration)은 사용자 입력과 상관없이 재생되는 음원에 따라서 직접 전달이 될 수도 있다. 예컨대, 사용자 입력이 직접 전달되는 부분은 미디어 재생 프레임워크(Framework)까지 이다. 따라서, 상기 코덱 환경 설정(codec configuration)은 사용자 입력과 직접 관련이 없고 재생되는 음원에 따라서 변경될 수 있다.
저전력 목적으로 개발된 블루투스 저전력 기술은 오디오 및 관련 명령 전송을 위한 프로토콜이 존재하지 않는다. 따라서, 오디오 및 관련 명령 전송을 위해 블루투스 저전력 프로토콜 스택에서 ATT(Attribute Protocol)를 이용하여 HA_SUSPEND, HA_START, HA_RECONFIGURE를 전송해야 하지만, 상술한 바와 같이, 미디어 재생 애플리케이션은 미디어 재생 프레임워크에만 직접 접근할 수 있고 해당 명령을 전송하는 미디어 태스크(Media task)에는 접근이 불가하다.
본 발명의 다양한 실시예는 블루투스 저전력 프로토콜 스택에 기반하여 다양한 종류의 데이터를 처리하기 위한 방법 및 그 전자장치를 제공할 수 있다.
본 발명의 다양한 실시예는 블루투스 저전력 프로토콜 스택에 기반한 환경에서, 오디오 또는 오디오 관련 명령을 상대 기기로 전달하기 위한 방법 및 장치를 제공할 수 있다.
본 발명의 다양한 실시예는 블루투스 저전력 프로토콜 스택에 기반한 환경에서, 오디오 또는 오디오 관련 명령을 상대 기기로 전달하기 위한 방법 및 장치를 제공할 수 있다.
본 발명의 다양한 실시예는 다수의 ATT(Attribute Protocol)를 포함하는 블루투스 저전력 프로토콜 스택에 기반하여, 통신을 수행하는 방법 및 장치를 제공할 수 있다.
상기한 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 전자 장치에서, 블루투스 제어 모듈; 상기 블루투스 제어 모듈은 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 저장하고, 상기 변경된 BLE 프로토콜 스택은 제1 ATT 프로토콜을 포함하여 상기 애플리케이션의 ATT 명령을 처리하는 제1 경로와 제2 ATT 프로토콜을 포함하여 상기 애플리케이션의 ATT 명령을 처리하는 제2 경로를 포함하고; 및 상기 블루투스 제어 모듈에 결합된 프로세서를 포함하고, 상기 프로세서는 상기 블루투스 제어 모듈의 상기 적어도 둘 이상의 ATT를 포함하는 변경된 BLE 프로토콜 스택을 이용하여 상기 ATT 명령을 포함하는 상기 애플리케이션의 데이터를 처리할 수 있다.
상기한 목적들을 달성하기 위한 본 발명의 제 2 견지에 따르면, 메모리; 하나 이상의 프로세서; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의하여 실행 가능하도록 구성되는 하나 이상의 모듈을 포함하는 전자장치로서, 상기 모듈은, 부팅 동안에, 제1 메모리에 저장된 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 제2 메모리에 로딩(loading)하고, 상기 변경된 BLE 프로토콜 스택에서 물리계층 및 링크계층을 통해 제2 전자 장치와 블루투스 연결을 수행하고, 상기 BLE 프로토콜 스택 내의 상기 링크계층의 상위계층에서 이벤트가 발생하는지를 판단하고, 상기 이벤트 종류에 따라, 상기 애플리케이션의 명령을 상기 제2 전자장치로 전달할 수 있다.
상기한 목적들을 달성하기 위한 본 발명의 제 3 견지에 따르면, 제1 전자 장치의 방법에 있어서, 부팅 동안에, 제1 메모리에 저장된 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 제2 메모리에 로딩(loading)하는 단계; 상기 변경된 BLE 프로토콜 스택에서 물리계층 및 링크계층을 통해 제2 전자 장치와 블루투스 연결을 수행하는 단계; 상기 BLE 프로토콜 스택 내의 상기 링크계층의 상위계층에서 이벤트가 발생하는지를 판단하는 단계; 상기 이벤트 종류에 따라, 상기 애플리케이션의 명령을 상기 제2 전자장치로 전달하는 단계를 포함할 수 있다.
상술한 바와 같이, 다수의 ATT(Attribute Protocol)를 포함하는 블루투스 저전력 프로토콜 스택을 사용함으로써, 동시 처리(concurrent processing)가 가능하다.
상기 복수의 ATT 중 하나를 통해 오디오 또는 오디오 관련 명령을 처리하는 미디어 태스크에 접근함으로써, 블루투스 저전력 프로토콜 스택 기반에서 오디오 또는 오디오 관련 명령을 처리할 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 전자장치를 포함하는 네트워크 환경을 도시한다.
도 2는 본 발명의 다양한 실시예에 따른 전자장치들간 연결을 위한 블루투스 프로토콜 스택 구조를 도시한다.
도 3(a)은 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택 구조를 도시한다.
도 3(b)은 본 발명의 다양한 실시예에 따른 오디오/비디오 시그널링을 위한 블루투스 프로토콜 스택 구조를 도시한다.
도 4(a) 내지 도 4(b)는 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택 기반에서 명령 전송을 도시한다.
도 5는 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택에 기반하여 다양한 종류의 데이터를 처리하기 위한 흐름도를 도시한다.
도 6은 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택에 기반하여 다양한 종류의 데이터를 처리하기 위한 흐름도를 도시한다.
도 7은 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택에 기반하여 다양한 종류의 데이터를 전송하기 흐름도를 도시한다.
도 8은 본 발명의 다양한 실시예들에 따른 전자장치의 블록도를 도시한다.
이하, 본 발명의 다양한 실시예가 첨부된 도면과 연관되어 기재된다. 본 발명의 다양한 실시예는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나, 이는 본 발명의 다양한 실시예를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 다양한 실시예의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.
본 발명의 다양한 실시예에서 사용될 수 있는“포함한다” 또는 “포함할 수 있다” 등의 표현은 개시(disclosure)된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한, 본 발명의 다양한 실시예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명의 다양한 실시예에서 “또는” 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, “A 또는 B”는, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 발명의 다양한 실시예에서 사용된 “제 1,”“제2,”“첫째,”또는“둘째,”등의 표현들은 다양한 실시예들의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제 2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 발명의 다양한 실시예의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 발명의 다양한 실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 다양한 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 다양한 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명의 다양한 실시예에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 다양한 실시예에 따른 전자장치는, 통신기능이 포함된 장치일 수 있다. 예를 들면, 전자장치는 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 전자 안경과 같은 head-mounted-device(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 또는 스마트 와치(smart watch))중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자장치는 통신 기능을 갖춘 스마트 가전 제품(smart home appliance)일 수 있다. 스마트 가전 제품은, 예를 들자면, 전자장치는 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSync ™, 애플TV™, 또는 구글 TV™), 게임 콘솔(game consoles), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자장치는 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛, 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller’s machine) 또는 상점의 POS(point of sales) 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에 따르면, 전자장치는 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 본 발명의 다양한 실시예에 따른 전자장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 발명의 다양한 실시예에 따른 전자장치는 플렉서블 장치일 수 있다. 또한, 본 발명의 다양한 실시예에 따른 전자장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.
이하, 첨부된 도면을 참조하여 다양한 실시예에 따른 전자장치에 대해서 살펴본다. 다양한 실시예에서 이용되는 사용자라는 용어는 전자장치를 사용하는 사람 또는 전자장치를 사용하는 장치(예: 인공지능 전자장치)를 지칭할 수 있다.
도 1은 다양한 실시예에 따른, 전자장치 101을 포함하는 네트워크 환경 100를 도시한다. 도 1을 참조하면, 상기 전자장치 101는 버스 110, 프로세서 120, 메모리 130, 입출력 인터페이스 140, 디스플레이 150, 통신 인터페이스 160 및 블루투스 제어 모듈 170을 포함할 수 있다.
상기 버스 110는 전술한 구성요소들을 서로 연결하고, 전술한 구성요소들 간의 통신(예: 제어 메시지)을 전달하는 회로일 수 있다.
상기 프로세서 120는, 예를 들면, 상기 버스 110를 통해 전술한 다른 구성요소들(예: 상기 메모리 130, 상기 입출력 인터페이스 140, 상기 디스플레이 150, 상기 통신 인터페이스 160, 또는 상기 블루투스 제어 모듈 170 등)로부터 명령을 수신하여, 수신된 명령을 해독하고, 해독된 명령에 따른 연산이나 데이터 처리를 실행할 수 있다.
상기 메모리 130는, 상기 프로세서 120 또는 다른 구성요소들(예: 상기 입출력 인터페이스 140, 상기 디스플레이 150, 상기 통신 인터페이스 160, 또는 상기 블루투스 제어 모듈 170 등)로부터 수신되거나 상기 프로세서 120 또는 다른 구성요소들에 의해 생성된 명령 또는 데이터를 저장할 수 있다. 상기 메모리 130는, 예를 들면, 커널 131, 미들웨어 132, 어플리케이션 프로그래밍 인터페이스(API: application programming interface) 133 또는 어플리케이션 134 등의 프로그래밍 모듈들을 포함할 수 있다. 전술한 각각의 프로그래밍 모듈들은 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다.
상기 커널 131은 나머지 다른 프로그래밍 모듈들, 예를 들면, 상기 미들웨어 132, 상기 API 133 또는 상기 어플리케이션 134에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 상기 버스 110, 상기 프로세서 120 또는 상기 메모리 130 등)을 제어 또는 관리할 수 있다. 또한, 상기 커널 131은 상기 미들웨어 132, 상기 API 133 또는 상기 어플리케이션 134에서 상기 전자장치 101의 개별 구성요소에 접근하여 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
상기 미들웨어 132는 상기 API 133 또는 상기 어플리케이션 134이 상기 커널 131과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 상기 미들웨어 132는 상기 어플리케이션 134로부터 수신된 작업 요청들과 관련하여, 예를 들면, 상기 어플리케이션 134 중 적어도 하나의 어플리케이션에 상기 전자장치 101의 시스템 리소스(예: 상기 버스 110, 상기 프로세서 120 또는 상기 메모리 130 등)를 사용할 수 있는 우선 순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 제어(예: 스케쥴링 또는 로드 밸런싱)을 수행할 수 있다.
상기 API 133는 상기 어플리케이션 134이 상기 커널 131 또는 상기 미들웨어 132에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
다양한 실시예에 따르면, 상기 어플리케이션 134는 SMS/MMS 어플리케이션, 이메일 어플리케이션, 달력 어플리케이션, 알람 어플리케이션, 건강 관리(health care) 어플리케이션(예: 운동량 또는 혈당 등을 측정하는 어플리케이션) 또는 환경 정보 어플리케이션(예: 기압, 습도 또는 온도 정보 등을 제공하는 어플리케이션) 등을 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 어플리케이션 134은 상기 전자장치 101와 외부 전자장치(예: 전자장치 104) 사이의 정보 교환과 관련된 어플리케이션일 수 있다. 상기 정보 교환과 관련된 어플리케이션은, 예를 들어, 상기 외부 전자장치에 특정 정보를 전달하기 위한 알림 전달(notification relay) 어플리케이션, 또는 상기 외부 전자장치를 관리하기 위한 장치 관리(device management) 어플리케이션을 포함할 수 있다.
예를 들면, 상기 알림 전달 어플리케이션은 상기 전자장치 101 의 다른 어플리케이션(예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션 또는 환경 정보 어플리케이션 등)에서 발생한 알림 정보를 외부 전자장치(예: 전자장치 104)로 전달하는 기능을 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 알림 전달 어플리케이션은, 예를 들면, 외부 전자장치(예: 전자장치 104)로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 상기 장치 관리 어플리케이션은, 예를 들면, 상기 전자장치 101와 통신하는 외부 전자장치(예: 전자장치 104)의 적어도 일부에 대한 기능(예: 외부 전자장치 자체(또는, 일부 구성 부품)의 턴온/턴오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 상기 외부 전자장치에서 동작하는 어플리케이션 또는 상기 외부 전자장치에서 제공되는 서비스(예: 통화 서비스 또는 메시지 서비스)를 관리(예: 설치, 삭제 또는 업데이트)할 수 있다.
다양한 실시예에 따르면, 상기 어플리케이션 134은 상기 외부 전자장치(예: 전자장치 104)의 속성(예: 전자장치의 종류)에 따라 지정된 어플리케이션을 포함할 수 있다. 예를 들어, 외부 전자장치가 MP3 플레이어인 경우, 상기 어플리케이션 134은 음악 재생과 관련된 어플리케이션을 포함할 수 있다. 유사하게, 외부 전자장치가 모바일 의료기기인 경우, 상기 어플리케이션 134은 건강 관리와 관련된 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 상기 어플리케이션 134은 전자장치 101에 지정된 어플리케이션 또는 외부 전자장치(예: 서버 106 또는 전자장치 104)로부터 수신된 어플리케이션 중 적어도 하나를 포함할 수 있다.
상기 입출력 인터페이스 140은, 입출력 장치(예: 센서, 키보드 또는 터치 스크린)를 통하여 사용자로부터 입력된 명령 또는 데이터를, 예를 들면, 상기 버스 110를 통해 상기 프로세서 120, 상기 메모리 130, 상기 통신 인터페이스 160, 또는 상기 블루투스 제어 모듈 170에 전달할 수 있다. 예를 들면, 상기 입출력 인터페이스 140은 터치 스크린을 통하여 입력된 사용자의 터치에 대한 데이터를 상기 프로세서 120로 제공할 수 있다. 또한, 상기 입출력 인터페이스 140은, 예를 들면, 상기 버스 110을 통해 상기 프로세서 120, 상기 메모리 130, 상기 통신 인터페이스 160, 또는 상기 블루투스 제어 모듈 170로부터 수신된 명령 또는 데이터를 상기 입출력 장치(예: 스피커 또는 디스플레이)를 통하여 출력할 수 있다. 예를 들면, 상기 입출력 인터페이스 140은 상기 프로세서 120를 통하여 처리된 음성 데이터를 스피커를 통하여 사용자에게 출력할 수 있다.
상기 디스플레이 150은 사용자에게 각종 정보(예: 멀티미디어 데이터 또는 텍스트 데이터 등)을 표시할 수 있다.
상기 통신 인터페이스 160은 상기 전자장치 101와 외부 장치(예: 전자장치 104, 105 또는 서버 106) 간의 통신을 연결할 수 있다. 예를 들면, 상기 통신 인터페이스 160은 무선 통신 또는 유선 통신을 통해서 네트워크 162에 연결되어 상기 외부 장치와 통신할 수 있다. 상기 무선 통신은, 예를 들어, Wifi(wireless fidelity), BT(Bluetooth), NFC(near field communication), GPS(global positioning system) 또는 cellular 통신(예: LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro 또는 GSM 등) 중 적어도 하나를 포함할 수 있다. 상기 유선 통신은, 예를 들어, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232) 또는 POTS(plain old telephone service) 중 적어도 하나를 포함할 수 있다.
한 실시예에 따르면, 상기 네트워크 162는 통신 네트워크(telecommunications network)일 수 있다. 상기 통신 네트워크 는 컴퓨터 네트워크(computer network), 인터넷(internet), 사물 인터넷(internet of things) 또는 전화망(telephone network) 중 적어도 하나를 포함할 수 있다. 한 실시예에 따르면, 상기 전자장치 101와 외부 장치 간의 통신을 위한 프로토콜(예: transport layer protocol, data link layer protocol 또는 physical layer protocol))은 어플리케이션 134, 어플리케이션 프로그래밍 인터페이스 133, 상기 미들웨어 132, 커널 131 또는 통신 인터페이스 160 중 적어도 하나에서 지원될 수 있다.
상기 블루투스 제어 모듈 170은, 다른 구성요소들(예: 상기 프로세서 120, 상기 메모리 130, 상기 입출력 인터페이스 140, 또는 상기 통신 인터페이스 160 등)로부터 획득된 정보 중 적어도 일부를 처리하고, 이를 다양한 방법으로 사용자에게 제공할 수 있다. 예를 들면, 상기 블루투스 제어 모듈 170는 전자장치 101과 외부 장치(예: 전자장치 105) 간의 블루투스 연결을 기반으로, 외부 장치(예: 보청기(hearing aid: HA))와 통신을 수행할 수 있다. 예컨대, 상기 블루투스 제어 모듈 170은 보청기 애플리케이션에 따라, 보청기의 마이크로폰, 앰프를 제어하고, 또한 오디오 신호를 보청기로 전달하기 위해 상기 보청기의 리시버를 제어할 수 있다.
현재, Bluetooth SIG Core Specification version 4.1의 Vol 3, part A, section 2.1에서 Attribute Protocol(ATT)을 위한 channel identifier(CID)는 0x0004로 고정되어 있다. 즉, ATT는 임의의 장치에 단 하나만 존재한다.
상기 ATT는 sequential request-response protocol이기 때문에 ATT를 사용하는 두 장치 간에 요청(request) 다음 응답(response) 전까지는 어떤 처리도 할 수 없을 것이다. 그러므로, 본 발명의 다양한 실시예는, 안드로이드(Android) 플랫폼과 같이 여러 가지 다양한 서비스를 제공하는 모듈화된 플랫폼의 경우 그 플랫폼 위에서 동작하는 다양한 애플리케이션들이 블루투스 저전력을 이용하기 위해서 현재의 단일구조의 ATT로는 동시에 다양한 동작을 하는데 한계가 있으므로, 다수의 ATT를 사용하는 구조를 제안한다. 예를 들어, 보청기(Hearing Aid: HA)의 경우 미디어 태스크(Media Task)와 보청기 애플리케이션 계층(Hearing Aid application layer)을 위해, 두 개의 ATT를 사용하는 구조가 보다 효율적일 수 있다.
전자 장치에서, 블루투스 제어 모듈; 상기 블루투스 제어 모듈은 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 저장하고, 상기 변경된 BLE 프로토콜 스택은 제1 ATT 프로토콜을 포함하여 상기 애플리케이션의 ATT 명령을 처리하는 제1 경로와 제2 ATT 프로토콜을 포함하여 상기 애플리케이션의 ATT 명령을 처리하는 제2 경로를 포함하고; 및 상기 블루투스 제어 모듈에 결합된 프로세서를 포함하고, 상기 프로세서는 상기 블루투스 제어 모듈의 상기 적어도 둘 이상의 ATT를 포함하는 변경된 BLE 프로토콜 스택을 이용하여 상기 ATT 명령을 포함하는 상기 애플리케이션의 데이터를 처리할 수 있다.
상기 제1 경로는 애플리케이션 계층, GATT(Generic Attribute Profile), 상기 제1 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성될 수 있다.
상기 제2 경로는 오디오 계층, 상기 제2 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성될 수 있다.
상기 애플리케이션의 ATT 명령어는 오디오 관련 명령일 수 있다.
상기 제1 ATT는 고정된 채널 식별자를 사용하고, 상기 제2 ATT는 예약 영역 또는 동적 할당 영역에 할당된 채널 식별자를 사용할 수 있다.
상기 변경된 BLE 프로토콜 스택은 DSP(Digital signal processing), L2CAP, 링크계층으로 구성되는 제3 경로를 더 포함할 수 있다.
도 2는 본 발명의 다양한 실시예에 따른 전자장치들(200, 250)간 연결을 위한 블루투스 프로토콜 스택 구조를 도시한다.
상기 도 2를 참조하면, 전자장치(200)(예컨대, 스마트폰)는 ATT 기반 데이터 또는 명령을 처리하는 제1 경로와 제2 경로를 포함하는 BLE 프로토콜 스택 구조(이하 변경된 BLE 프로토콜 스택 구조라 칭함)를 포함할 수 있다. 예컨대, 제2경로상의 데이터 또는 명령은, 블루투스 BR/EDR 기반에서 AVDTP(Audio/Video Distribution Transport Protocol)에 처리되는 오디오 관련 명령일 수 있다.
상기 BLE 기반 ATT 데이터 또는 명령을 처리하는 제1 경로는 애플리케이션 계층(201), GATT(Generic Attribute Profile)(202), ATT(Attribute Protocol)(203), L2CAP(Logical Link Control and Adaptation Protocol)(204), 링크계층(205)으로 구성될 수 있다.
상기 BLE 기반 ATT 데이터 또는 명령을 처리하는 제2 경로는 애플리케이션 계층(201), 오디오 플링거(audio flinger)(206), 오디오 HAL(hardware abstraction layer)(207), 미디어 태스크(208), ATT(203), L2CAP(204), 링크계층(205)으로 구성될 수 있다. 또는, 사용자 입력이 없는 경우에, 상기 BLE 기반 ATT 데이터 또는 명령을 처리하는 제2 경로는 미디어 태스크(208), ATT(203), L2CAP(204), 링크계층(205)으로 구성될 수도 있다.
다양한 실시예에서, DSP(digital signal processing)(209), L2CAP(204), 링크계층(205)으로 구성되는 제3 경로가 상기 변경된 BLE 프로토콜 스택 구조에 더 추가될 수 있다. 구현에 있어서, 오디오 데이터가 상기 제3 경로를 통해 전달될 수 있다. 상기 DSP(209)는 애플리케이션 계층(201)(예컨데, Voice Call 데이터) 혹은 미디어 태스크(208)(예컨데, Music 데이터)로부터의 입력 시그널링을 처리할 수 있다. 예컨대, 오디오 데이터는 ATT을 거치지 않고 미디어 태스크(208)에서 바로 L2CAP(204)로 전달되거나 DSP(209)로 전달될 수 있다.
비록, 도 2의 상기 변경된 BLE 프로토콜 스택 구조에 2개의 L2CAP(204)가 도시되지만, 당업자에 의해 하나의 L2CAP(204) 또는 2개 이상의 L2CAP(204)가 적용될 수도 있다.
또한, 애플리케이션 종류 및 애플리케이션 명령 종류에 따라, 상기 변경된 BLE 프로토콜 스택 구조에 2개 이상의 ATT(203)가 사용될 수도 있다. 예컨대, 애플리케이션 종류별로 상기 변경된 BLE 프로토콜 스택 구조에 ATT 개수가 존재하거나 애플리케이션 명령 종류별로 상기 변경된 BLE 프로토콜 스택 구조에 ATT가 존재할 수 있다.
다양한 실시예에서, 상기 변경된 BLE 프로토콜 스택 구조에서 각 응용 프로그램(201)은 GAP(Generic Access Profile)(미도시됨) 또는 GATT(202)의 상단에 구현될 수 있다. Bluetooth는 기본적으로 호스트(예컨대, GATT, ATT, L2CAP) 및 제어기, 두 부분으로 분할된다. 호스트는 보안 기능과 같은 높은 수준의 프로토콜을 수행한다. 제어기(예컨대, 링크계층, 물리계층)는 물리 채널에 링크 관리 또는 기저 동작처럼 낮은 수준의 기능을 수행한다. 호스트는 응용 프로그램의 나머지 부분이 포함될 수 있다.
상기 GAP(미도시)는 직접 응용 프로그램과 통신한다. GAP에서 유휴(idle) 및 연결(connecting) 모드 절차가 정의될 수 있다. 연결 모드 절차가 장치에 연결을 관리하는 동안, 유휴 모드 절차는 블루투스 장치들의 발견(discovery)을 포함한다. 상기 GAP는 또한 연결의 암호화와 같은 높은 수준의 보안 절차를 제공한다.
ATT(203)는 전용 L2CAP 채널 상위에서 서버와 클라이언트 각각의 역할을 수행하는 두 장치간 통신을 정의한다. 상기 서버는 속성(attribute) 세트를 관리한다. 속성은 ATT(203)의 상위에서 동작하는 GATT(202)에서 관리되는 정보를 저장하는 데이터 구조이고 슬레이브 혹은 마스터 역할과 별개이다. 예컨대, 상기 속성은 속성의 주소(Attribute Handle), 속성의 유형(Attribute Type), 속성의값(Attribute Value), 속성에 대한 접근 권한(Attribute Permissions)을 포함할 수 있다.
상기 클라이언트는, 상기 서버로부터 응답 메시지를 트리거하는 요청을 보냄으로써 상기 서버의 속성을 액세스할 수 있다. 또한, 상기 서버는 확인되지 않은 통지(notification) 및 상기 클라이언트에 확인을 보내도록 할 필요가 있는 지시(indication)를 상기 클라이언트에 전송할 수 있다. 그리고, 상기 클라이언트는 또한 속성값을 기록하도록(write) 하기 위해, 상기 서버에 명령(command)을 전송할 수 있다.
GATT(202)는 서비스의 발견을 위해 그리고 하나의 장치에서 다른 장치로 특성(characteristics) 교환을 위해, 상기 ATT(202)가 사용하는 프레임워크(framework)를 정의한다. 상기 특성은 값(value)과 성질(properties)을 포함하는 데이터 세트이다. 서비스들과 특성들과 관련된 데이터는 속성에 저장된다. 예를 들어, '온도 센서' 서비스를 동작하는 서버는 센서를 서술하기 위한 속성, 온도 측정을 저장하기 위한 속성, 그리고 측정 유닛을 명시하기 위한 추가 속성을 사용하는 '온도' 특성을 거래할 수 있다.
L2CAP(204)은 링크계층(205)에서 설정된 링크를 이용해서 상위층 프로토콜과 애플리케이션에 관한 논리링크를 설정/관리하는 프로토콜이다. L2CAP(204)에서 관리되는 논리링크의 트랜스포트 기능은 논리 채널 관리, 프로토콜 멀티플렉싱(Protocol Multiplexing), 패킷 분할(프래그먼트화) 및 재구축, QoS, 그룹화 등이 있다. 이런 기능을 이용해서 동작하는 상위층 프로토콜은 다수의 ATT(203)가 정의되어 있다. 상기 논리채널은 L2CAP(204) 상위의 계층 프로토콜이나 애플리케이션에서 전달된 데이터를 위해 설정된 채널을 의미한다.
예컨대, L2CAP(204)는 프로토콜 멀티플렉싱을 기반으로, 다수의 ATT(203)로부터 데이터가 전달된다면 이를 중재하고, 각각의 데이터를 논리 채널별로 설정하고 관리하여 하위 계층 프로토콜(예컨대, 링크계층(205))로 전달한다.
또한, 프로토콜에 대한 분할(Segmentation) 및 재조합(Reassembly)도 L2CAP(204)에서 이루어진다. 링크계층(205)은 MTU(Maximum Transfer Unit)와 관련되어 패킷의 길이가 제한되어 있다. 따라서, 애플리케이션이나 상위 계층 프로토콜에서 전달된 패킷의 길이가 길 경우에는 베이스밴드 패킷의 길이 제한에 맞게 분할(Segmentation)해야 한다. 반대로 여러 개로 분할되어 수신된 베이스밴드의 패킷은 상위 계층 프로토콜이나 애플리케이션으로 전달하기 전에 재조합(Reassembly)을 수행한다. 이외에도 L2CAP(204)에서는 QoS(Quality of Service)나 피코넷 구성 시의 그룹화(grouping)에 관련된 작업도 수행한다.
링크계층(205)은 블루투스 저전력 장치의 상태를 제어한다. 이 장치는 대기(standby), 광고(advertising), 스캐닝(scanning), 시작(initiating), 그리고 연결 상태로 진입할 수 있다. 상기 광고 상태는 BLE 장치가 다른 장치들을 발견 또는 다른 장치에 연결하거나, 사용자 데이터를 방송할 수 있도록 허용할 수 있다. 광고(advertisements)는 블루투스 기술명세서(specification) 4.0의 BLE 부분에 소개되고 있다. 3개 채널, 예컨대, 채널 37, 38, 및 39는 광고를 보내기 위해 예약되어 있다. 이로써 각각의 광고는 순차적으로 한 번에 각 채널에 전송된다. 광고를 청취하는 장치는 스캐닝 상태에 있을 필요가 있다. 상기 시작 상태는 연결 상태를 개시하기 위해 진입될 수 있고 상기 연결 상태는 능동적으로 연결에 참여할 수 있다. 상기 대기 상태는 아무런 메시지가 교환되지 않을 때, 안전한 전력 소비로 진입할 수 있다. 더하여, 링크계층(205)은 전송, 프레임화, 특정 링크상의 에러 방지를 담당하며, 에러 검출과 정정 기능을 수행할 수 있다.
상기 BLE 기반 ATT 데이터 또는 명령을 처리하는 제2 경로에서, 상기 오디오 플링거(audio flinger)(206)는 여러 애플리케이션의 오디오 데이터를 믹싱(mixing)해서 여러 가지 출력 장치로 내보내는 역할을 수행하고, 상기 오디오 HAL(hardware abstraction layer)(207)는 오디와 관련 입출력 인터페이스, 인터럽트 제어, 다중 프로세서 통신을 구현하는데 필요한 하드웨어 종속적인 세부 사항을 처리하는 루틴들의 집합체이고, 상기 미디어 태스크(208)는 오디오 관련 태스크들을 처리할 수 있다.
한편, 전자장치(200)에서 상기 제1 경로(예컨대, 애플리케이션 계층(201), GATT(202), ATT(203), L2CAP(204), 링크계층(205)으로 구성된 경로)를 통해, 해당 애플리케이션의 명령이 전자장치(250)로 전달될 수 있다.
상기 전자장치(250)는 링크계층(255), L2CAP(254), ATT(253)를 통해 전달되는 해당 애플리케이션의 명령에 따라, 제어/서비스 계층(251) 내에서 해당 처리를 수행한다. 예컨대, 보청기 애플리케이션의 볼륨 조절 또는 배터리 체크 명령에 따라, 상기 전자장치(250)는 보청기 볼륨을 조절하거나 현재 보청기의 배터리 상태를 확인하여 그 결과를 상기 전자장치(200)로 제공할 수 있다.
다양한 실시예에서, 전자장치(200)에서 상기 제2 경로(예컨대, 애플리케이션 계층(201), 오디오 플링거(206), 오디오 HAL, 미디어 태스크(208), ATT(203), L2CAP(204), 링크계층(205)으로 구성되는 경로, 또는 미디어 태스크(208), ATT(203), L2CAP(204), 링크계층(205)으로 구성되는 경로)를 통해, 관련 명령이 전자장치(250)로 전달될 수 있다. 예컨대, 오디오 관련 명령은 상기 제2 경로를 통해 상기 전자장치(250)로 전달될 수 있다.
상기 전자장치(250)는 링크계층(255), L2CAP(254), ATT(252)를 통해 전달되는 오디오 데이터를 처리하고, 오디오 관련 명령은 링크계층(255), L2CAP(254), ATT(252)를 통해 전달되어 처리될 수 있다.
또 다른 다양한 실시예에서, 전자장치(200)에서 상기 제3 경로(예컨대, DSP(209), L2CAP(204), 링크계층(205)으로 구성되는 경로)를 통해, 오디오 데이터가 전자장치(250)로 전달될 수 있다.
도 3(a)은 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택 구조를 도시한다.
상기 도 3(a)을 참조하면, 전자장치(101)의 BLE 프로토콜 스택 구조에서 패킷 데이터 처리 절차를 도시하고 있다. BLE 기반 패킷 데이터는 애플리케이션 계층(301), GATT(303), 제1 ATT(305), L2CAP(307), 링크계층(309)을 걸쳐서 상대 장치로 전달되고, GATT(303), 제1 ATT(305), L2CAP(307), 링크계층(309), L2CAP(307), 제1 ATT(305), GATT(303), 애플리케이션 계층(301)을 걸쳐서 상대 장치로부터 BLE 기반 패킷 데이터가 수신될 수 있다.
도 3(b)은 본 발명의 다양한 실시예에 따른 오디오 시그널링을 위한 블루투스 프로토콜 스택 구조를 도시한다.
상기 도 3(b)을 참조하면, 전자장치(101)의 BLE 프로토콜 스택 구조에서 오디오 시그널링을 처리하기 위한 절차를 도시하고 있다. BLE 기반에서 오디오 시그널링(예컨대, 제어신호, 또는 오디오 데이터)이 애플리케이션 계층(302), 미디어 플레이어(304), 오디오 플링거(audio flinger)(306), A2DP(Advanced Audio Distribution Profile) 오디오 HAL(308), 미디어 태스크(310), 제2 ATT(312), L2CAP(314), 링크계층(315)을 걸쳐서 상대 장치로 전달될 수 있다.
다양한 실시예에서, 제1 ATT(305)는 고정된 L2CAP CID(channel ID) 예컨대, 0x0004를 사용하고, 제2 ATT(312)는 고정되지 않은 L2CAP CID 예컨대, reserved 또는 dynamically allocated 영역에 새롭게 추가된 채널 식별자를 사용할 수 있다.
다양한 실시예에 따라서, 제1 ATT(305) 및 제2 ATT(312) 모두 고정되지 않은 L2CAP CID 예컨대, reserved 또는 dynamically allocated 영역에 새롭게 추가된 채널 식별자를 사용할 수 있다.
도 4(a) 내지 도 4(b)는 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택 기반에서 보청기 애플리케이션에서 정의한 명령의 전송 처리 절차를 도시한다.
상기 도 4(a)를 참조하면, 전자장치(400)에서 보청기 애플리케이션에서 check battery 요청 발생하면, check battery 명령은 GATT/ATT를 걸쳐서 전자장치(410)(예컨대, 보청기)로 전달되고, 전자장치(410)는 check battery 요청에 대응하는 응답을 GATT/ATT를 걸쳐서 전자장치(400)로 전달할 수 있다.
상기 도 4(b)를 참조하면, 전자장치(400)에서 보청기 애플리케이션에서 보청기의 볼륨 업/다운 명령 요청 발생하면, 볼륨 업/다운 명령은 GATT/ATT를 걸쳐서 전자장치(410)(예컨대, 보청기)로 전달되고, 전자장치(410)는 볼륨 업/다운 명령 요청에 따라 보청기 볼륨 크기를 조절한 후, 볼륨 업/다운 명령 요청에 대응하는 응답을 GATT/ATT를 걸쳐서 전자장치(400)로 전달할 수 있다.
도 5는 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택에 기반하여 보청기 애플리케이션에서 정의한 명령의 전송 처리 절차를 도시한다.
상기 도 5를 참조하면, 전자장치는 500단계에서 전원이 공급될 때 기정의된 절차에 따라 부팅 혹은 재부팅을 시작한다.
전자장치는 502단계에서 적어도 둘 이상의 ATT를 포함하는 블루투스 저전력 프로토콜 스택을 메모리에 저장할 수 있다. 예컨대, 부팅 또는 재부팅시, 전자장치는 블루투스 저전력 통신을 수행하기 위해 관련 프로토콜들을 메모리에 로딩시킬 수 있다. 그리고, 적어도 둘 이상의 ATT를 포함하는 블루투스 저전력 프로토콜 스택을 이용하는 이유는, 블루투스 저전력 기반의 데이터(예컨대, 보청기 애플리케이션의 사용자 입력신호)와 블루투스 저전력 기반이 아닌 데이터(예컨대, 오디오 관련 시그널링)를 처리하기 위함이다.
전자장치는 504단계에서 기정의된 절차에 따라 블루투스 저전력 기반의 연결을 시작할 수 있다.
전자장치는 506단계에서 상위계층(예컨대, ATT 계층의 상위계층으로, 미디어 태스크 계층, 또는 애플리케이션 계층)에서 이벤트가 발생하는지를 확인할 수 있다. 예컨대, 전자장치는 보청기 애플리케이션 내의 배터리 체크 요청, 볼륨 조절 요청, 오디오 관련 시그널링 등이 발생하는지를 확인한다.
전자장치는 508단계에서 이벤트에 대응하는 애플리케이션 종류 또는 애플리케이션 명령 종류를 확인하고, 510단계에서 이벤트에 대응하는 애플리케이션 종류 또는 애플리케이션 명령 종류에 따라, 적어도 둘 이상의 ATT 중 하나를 선택할 수 있다.
전자장치는 512단계에서 선택된 ATT를 이용하여 이벤트를 처리한다. 예컨대, 보청기 애플리케이션 명령 중 HA_CHECK_BATTERY, HA_CHANGE_GAIN은 GATT/ 및 ATT를 이용하여 보청기로 전달하고(도 2, 도 3(a) 참조), HA_SUSPEND, HA_START, HA_RECONFIGURE는 블루투스 BR/EDR 기반에서 AVDTP의 오디오 재생을 위한 프로토콜 및 다른 ATT를 이용하여 오디오 스트림(audio stream) 및 시작(start), 환경설정(configuration), 중지(suspend) 등을 상대 기기로 전달할 수 있다(도 2, 도 3(b) 참조).
도 6은 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택에 기반하여 다양한 종류의 데이터를 처리하기 위한 흐름도를 도시한다.
상기 도 6을 참조하면, 전자장치는 600단계에서 전원이 공급될 때 기정의된 절차에 따라 부팅 혹은 재부팅을 시작한다.
전자장치는 602단계에서 블루투스 저전력 프로토콜 스택을 메모리에 저장할 수 있다. 예컨대, 부팅 또는 재부팅시, 전자장치는 하나의 ATT를 포함하는 블루투스 저전력 통신을 수행하기 위해 관련 프로토콜들을 메모리에 로딩시킬 수 있다.
전자장치는 604단계에서 기정의된 절차에 따라 블루투스 저전력 기반의 연결을 시작할 수 있다.
전자장치는 606단계에서 상위계층(예컨대, ATT 계층의 상위계층으로, 미디어 태스크 계층, 또는 애플리케이션 계층)에서 이벤트가 발생하는지를 확인할 수 있다. 예컨대, 전자장치는 보청기 애플리케이션 내의 배터리 체크 요청, 볼륨 조절 요청, 오디오 관련 시그널링 등이 발생하는지를 확인한다.
전자장치는 608단계에서 이벤트에 대응하는 애플리케이션 종류 또는 애플리케이션 명령 종류를 확인하고, 610단계에서 이벤트에 대응하는 애플리케이션 종류 또는 애플리케이션 명령 종류에 따라, 다른 하나 이상의 ATT의 복사 여부를 결정한다.
전자장치는 612단계에서 해당 ATT를 이용하여 이벤트를 처리한다. 예컨대, 보청기 애플리케이션 명령 중 HA_CHECK_BATTERY, HA_CHANGE_GAIN은 GATT/ 및 ATT를 이용하여 보청기로 전달하고(도 2, 도 3(a) 참조), HA_SUSPEND, HA_START, HA_RECONFIGURE는 블루투스 BR/EDR 기반에서 AVDTP의 오디오 재생을 위한 프로토콜을 이용해야 함으로, 복사된 ATT를 이용하여 오디오 스트림(audio stream) 및 시작(start), 환경설정(configuration), 중지(suspend) 등을 상대 기기로 전달할 수 있다(도 2, 도 3(b) 참조).
도 7은 본 발명의 다양한 실시예에 따른 블루투스 저전력 프로토콜 스택에 기반하여 다양한 종류의 데이터를 전송하기 흐름도를 도시한다.
상기 도 7을 참조하면, 전자장치는 700단계에서, 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 설정할 수 있다.
전자장치는 702단계에서, 상기 설정된 상기 적어도 둘 이상의 ATT를 포함하는 BLE 프로토콜 스택을 기반으로, 패킷 데이터를 처리할 수 있다.
도 8 은 다양한 실시예들에 따른 전자장치 801의 블록도 800를 도시한다. 상기 전자장치 801는, 예를 들면, 도 1에 도시된 전자장치 101의 전체 또는 일부를 구성할 수 있다. 도 8을 참조하면, 상기 전자장치 801는 하나 이상의 어플리케이션 프로세서(AP: application processor) 810, 통신 모듈 820, SIM(subscriber identification module) 카드 824, 메모리 830, 센서 모듈 840, 입력 장치 850, 디스플레이 860, 인터페이스 870, 오디오 모듈 880, 카메라 모듈 891, 전력관리 모듈 895, 배터리 896, 인디케이터 897 및 모터 898 를 포함할 수 있다.
상기 AP 810는 운영체제 또는 응용 프로그램을 구동하여 상기 AP 810에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 멀티미디어 데이터를 포함한 각종 데이터 처리 및 연산을 수행할 수 있다. 상기 AP 810는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 상기 AP 810는 GPU(graphic processing unit, 미도시)를 더 포함할 수 있다.
상기 통신 모듈 820(예: 상기 통신 인터페이스 160)은 상기 전자장치 801(예: 상기 전자장치 101)와 네트워크를 통해 연결된 다른 전자장치들(예: 전자장치 104 또는 서버 106) 간의 통신에서 데이터 송수신을 수행할 수 있다. 한 실시예에 따르면, 상기 통신 모듈 820은 셀룰러 모듈 821, Wifi 모듈 823, BT 모듈 825, GPS 모듈 827, NFC 모듈 828 및 RF(radio frequency) 모듈 829를 포함할 수 있다.
상기 셀룰러 모듈 821은 통신망(예: LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro 또는 GSM 등)을 통해서 음성 통화, 영상 통화, 문자 서비스 또는 인터넷 서비스 등을 제공할 수 있다. 또한, 상기 셀룰러 모듈 821은, 예를 들면, 가입자 식별 모듈(예: SIM 카드 824)을 이용하여 통신 네트워크 내에서 전자장치의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 상기 셀룰러 모듈 821은 상기 AP 810가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 예를 들면, 상기 셀룰러 모듈 821은 멀티 미디어 제어 기능의 적어도 일부를 수행할 수 있다.
한 실시예에 따르면, 상기 셀룰러 모듈 821은 커뮤니케이션 프로세서(CP: communication processor)를 포함할 수 있다. 또한, 상기 셀룰러 모듈 821은, 예를 들면, SoC로 구현될 수 있다. 도 8에서는 상기 셀룰러 모듈 821(예: 커뮤니케이션 프로세서), 상기 메모리 830 또는 상기 전력관리 모듈 895 등의 구성요소들이 상기 AP 810와 별개의 구성요소로 도시되어 있으나, 한 실시예에 따르면, 상기 AP 810가 전술한 구성요소들의 적어도 일부(예: 셀룰러 모듈 821)를 포함하도록 구현될 수 있다.
한 실시예에 따르면, 상기 AP 810 또는 상기 셀룰러 모듈 821(예: 커뮤니케이션 프로세서)은 각각에 연결된 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 상기 AP 810 또는 상기 셀룰러 모듈 821은 다른 구성요소 중 적어도 하나로부터 수신하거나 다른 구성요소 중 적어도 하나에 의해 생성된 데이터를 비휘발성 메모리에 저장(store)할 수 있다.
상기 Wifi 모듈 823, 상기 BT 모듈 825, 상기 GPS 모듈 827 또는 상기 NFC 모듈 828 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 도 8에서는 셀룰러 모듈 821, Wifi 모듈 823, BT 모듈 825, GPS 모듈 827 또는 NFC 모듈 828이 각각 별개의 블록으로 도시되었으나, 한 실시예에 따르면, 셀룰러 모듈 821, Wifi 모듈 823, BT 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. 예를 들면, 셀룰러 모듈 821, Wifi 모듈 823, BT 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 각각에 대응하는 프로세서들 중 적어도 일부(예: 셀룰러 모듈 821에 대응하는 커뮤니케이션 프로세서 및 Wifi 모듈 823에 대응하는 Wifi 프로세서)는 하나의 SoC로 구현될 수 있다.
상기 RF 모듈 829는 데이터의 송수신, 예를 들면, RF 신호의 송수신을 할 수 있다. 상기 RF 모듈 829는, 도시되지는 않았으나, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter) 또는 LNA(low noise amplifier) 등을 포함할 수 있다. 또한, 상기 RF 모듈 829는 무선 통신에서 자유 공간상의 전자파를 송수신하기 위한 부품, 예를 들면, 도체 또는 도선 등을 더 포함할 수 있다. 도 8에서는 셀룰러 모듈 821, Wifi 모듈 823, BT 모듈 825, GPS 모듈 827 및 NFC 모듈 828이 하나의 RF 모듈 829을 서로 공유하는 것으로 도시되어 있으나, 한 실시예에 따르면, 셀룰러 모듈 821, Wifi 모듈 823, BT 모듈 825, GPS 모듈 827 또는 NFC 모듈 828 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호의 송수신을 수행할 수 있다.
상기 SIM 카드 824는 가입자 식별 모듈을 포함하는 카드일 수 있으며, 전자장치의 특정 위치에 형성된 슬롯에 삽입될 수 있다. 상기 SIM 카드 824는 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
상기 메모리 830(예: 상기 메모리 130)는 내장 메모리 832 또는 외장 메모리 834를 포함할 수 있다. 상기 내장 메모리 832는, 예를 들면, 휘발성 메모리(예를 들면, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등) 또는 비휘발성 메모리(non-volatile Memory, 예를 들면, OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, NAND flash memory, NOR flash memory 등) 중 적어도 하나를 포함할 수 있다.
한 실시예에 따르면, 상기 내장 메모리 832는 Solid State Drive (SSD)일 수 있다. 상기 외장 메모리 834는 flash drive, 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 등을 더 포함할 수 있다. 상기 외장 메모리 834는 다양한 인터페이스를 통하여 상기 전자장치 801과 기능적으로 연결될 수 있다. 한 실시예에 따르면, 상기 전자장치 801는 하드 드라이브와 같은 저장 장치(또는 저장 매체)를 더 포함할 수 있다.
상기 센서 모듈 840은 물리량을 계측하거나 전자장치 801의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 상기 센서 모듈 840은, 예를 들면, 제스처 센서 840A, 자이로 센서 840B, 기압 센서 840C, 마그네틱 센서 840D, 가속도 센서 840E, 그립 센서 840F, 근접 센서 840G, color 센서 840H(예: RGB(red, green, blue) 센서), 생체 센서 840I, 온/습도 센서 840J, 조도 센서 840K 또는 UV(ultra violet) 센서 840M 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 센서 모듈 840은, 예를 들면, 후각 센서(E-nose sensor, 미도시), EMG 센서(electromyography sensor, 미도시), EEG 센서(electroencephalogram sensor, 미도시), ECG 센서(electrocardiogram sensor, 미도시), IR(infra red) 센서(미도시), 홍채 센서(미도시) 또는 지문 센서(미도시) 등을 포함할 수 있다. 상기 센서 모듈 840은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 입력 장치 850은 터치 패널(touch panel) 852, (디지털) 펜 센서(pen sensor) 854, 키(key) 856 또는 초음파(ultrasonic) 입력 장치 858를 포함할 수 있다. 상기 터치 패널 852은, 예를 들면, 정전식, 감압식, 적외선 방식 또는 초음파 방식 중 적어도 하나의 방식으로 터치 입력을 인식할 수 있다. 또한, 상기 터치 패널 852은 제어 회로를 더 포함할 수도 있다. 정전식의 경우, 물리적 접촉 또는 근접 인식이 가능하다. 상기 터치 패널 852은 택타일 레이어(tactile layer)를 더 포함할 수도 있다. 이 경우, 상기 터치 패널 852은 사용자에게 촉각 반응을 제공할 수 있다.
상기 (디지털) 펜 센서 854는, 예를 들면, 사용자의 터치 입력을 받는 것과 동일 또는 유사한 방법 또는 별도의 인식용 쉬트(sheet)를 이용하여 구현될 수 있다. 상기 키 856는, 예를 들면, 물리적인 버튼, 광학식 키 또는 키패드를 포함할 수 있다. 상기 초음파(ultrasonic) 입력 장치 858는 초음파 신호를 발생하는 입력 도구를 통해, 전자장치 801에서 마이크(예: 마이크 888)로 음파를 감지하여 데이터를 확인할 수 있는 장치로서, 무선 인식이 가능하다. 한 실시예에 따르면, 상기 전자장치 801는 상기 통신 모듈 820를 이용하여 이와 연결된 외부 장치(예: 컴퓨터 또는 서버)로부터 사용자 입력을 수신할 수도 있다.
상기 디스플레이 860(예: 상기 디스플레이 150)은 패널 862, 홀로그램 장치 864 또는 프로젝터 866을 포함할 수 있다. 상기 패널 862은, 예를 들면, LCD(liquid-crystal display) 또는 AM-OLED(active-matrix organic light-emitting diode) 등일 수 있다. 상기 패널 862은, 예를 들면, 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 상기 패널 862은 상기 터치 패널 852과 하나의 모듈로 구성될 수도 있다. 상기 홀로그램 장치 864은 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 상기 프로젝터 866는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 상기 스크린은, 예를 들면, 상기 전자장치 801의 내부 또는 외부에 위치할 수 있다. 한 실시예에 따르면, 상기 디스플레이 860은 상기 패널 862, 상기 홀로그램 장치 864, 또는 프로젝터 866를 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 인터페이스 870는, 예를 들면, HDMI(high-definition multimedia interface) 872, USB(universal serial bus) 874, 광 인터페이스(optical interface) 876 또는 D-sub(D-subminiature) 878를 포함할 수 있다. 상기 인터페이스 870는, 예를 들면, 도 1에 도시된 통신 인터페이스 160에 포함될 수 있다. 추가적으로 또는 대체적으로, 상기 인터페이스 870는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD(secure Digital) 카드/MMC(multi-media card) 인터페이스 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
상기 오디오 모듈 880은 소리(sound)와 전기신호를 쌍방향으로 변환시킬 수 있다. 상기 오디오 모듈 880의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스 140에 포함될 수 있다. 상기 오디오 모듈 880은, 예를 들면, 스피커 882, 리시버 884, 이어폰 886 또는 마이크 888 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
상기 카메라 모듈 891은 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈(미도시), ISP(image signal processor, 미도시) 또는 플래쉬 (flash, 미도시)(예: LED 또는 xenon lamp)를 포함할 수 있다.
상기 전력 관리 모듈 895은 상기 전자장치 801의 전력을 관리할 수 있다. 도시하지는 않았으나, 상기 전력 관리 모듈 895은, 예를 들면, PMIC(power management integrated circuit), 충전 IC(charger integrated circuit) 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다.
상기 PMIC는, 예를 들면, 집적회로 또는 SoC 반도체 내에 탑재될 수 있다. 충전 방식은 유선과 무선으로 구분될 수 있다. 상기 충전 IC는 배터리를 충전시킬 수 있으며, 충전기로부터의 과전압 또는 과전류 유입을 방지할 수 있다. 한 실시예에 따르면, 상기 충전 IC는 유선 충전 방식 또는 무선 충전 방식 중 적어도 하나를 위한 충전 IC를 포함할 수 있다. 무선 충전 방식으로는, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등이 있으며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로 또는 정류기 등의 회로가 추가될 수 있다.
상기 배터리 게이지는, 예를 들면, 상기 배터리 896의 잔량, 충전 중 전압, 전류 또는 온도를 측정할 수 있다. 상기 배터리 896는 전기를 저장 또는 생성할 수 있고, 그 저장 또는 생성된 전기를 이용하여 상기 전자장치 801에 전원을 공급할 수 있다. 상기 배터리 896는, 예를 들면, 충전식 전지(rechargeable battery) 또는 태양 전지(solar battery)를 포함할 수 있다.
상기 인디케이터 897는 상기 전자장치 801 혹은 그 일부(예: 상기 AP 810)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 상기 모터 898는 전기적 신호를 기계적 진동으로 변환할 수 있다. 도시되지는 않았으나, 상기 전자장치 801는 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 상기 모바일 TV지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting) 또는 미디어플로우(media flow) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
본 발명의 다양한 실시예에 따른 전자장치의 전술한 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자장치의 종류에 따라서 달라질 수 있다. 본 발명의 다양한 실시예에 따른 전자장치는 전술한 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 본 발명의 다양한 실시예에 따른 전자장치의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.
본 발명의 다양한 실시예에 사용된 용어 “모듈”은, 예를 들어, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. “모듈”은 예를 들어, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component) 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. “모듈”은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. “모듈”은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. “모듈”은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, 본 발명의 다양한 실시예에 따른 “모듈”은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따르면, 본 발명의 다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그래밍 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어는, 하나 이상의 프로세서 (예: 상기 프로세서 122)에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 상기 메모리 130가 될 수 있다. 상기 프로그래밍 모듈의 적어도 일부는, 예를 들면, 상기 프로세서 210에 의해 구현(implement)(예: 실행)될 수 있다. 상기 프로그래밍 모듈 의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트 (sets of instructions) 또는 프로세스 등을 포함할 수 있다.
상기 컴퓨터로 판독 가능한 기록 매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 마그네틱 매체(Magnetic Media)와, CD-ROM(Compact Disc Read Only Memory), DVD(Digital Versatile Disc)와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 그리고 ROM(Read Only Memory), RAM(Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령(예: 프로그래밍 모듈)을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
본 발명의 다양한 실시예에 따른 모듈 또는 프로그래밍 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 본 발명의 다양한 실시예에 따른 모듈, 프로그래밍 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
다양한 실시예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 제1 전자 장치의 방법에 있어서, 부팅 동안에, 제1 메모리에 저장된 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 제2 메모리에 로딩(loading)하는 단계; 상기 변경된 BLE 프로토콜 스택에서 물리계층 및 링크계층을 통해 제2 전자 장치와 블루투스 연결을 수행하는 단계; 상기 BLE 프로토콜 스택 내의 상기 링크계층의 상위계층에서 이벤트가 발생하는지를 판단하는 단계; 상기 이벤트 종류에 따라, 상기 애플리케이션의 명령을 상기 제2 전자장치로 전달하는 단계를 포함할 수 있다.
상기 애플리케이션의 명령을 상기 제2 전자장치로 전달하는 단계는, 상기 이벤트가 제 1 경로와 관련이 있는 경우, 상기 변경된 BLE 프로토콜 스택에서의 제1 ATT 프로토콜을 포함하는 제1 경로를 통해 상기 애플리케이션의 ATT 명령을 상기 제2 전자장치로 전달하는 단계; 및 상기 이벤트가 제 2경로와 관련이 있는 경우, 상기 변경된 BLE 프로토콜 스택에서의 제2 ATT 프로토콜을 포함하는 제2 경로를 통해 상기 애플리케이션의 ATT 명령을 상기 제2 전자장치로 전달하는 단계를 포함할 수 있다.
상기 제1 경로는 애플리케이션 계층, GATT(Generic Attribute Profile), 상기 제1 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성될 수 있다.
상기 제2 경로는 오디오 계층, 상기 제2 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성될 수 있다.
상기 애플리케이션의 ATT 명령어는 오디오 관련 명령일 수 있다.
상기 제1 ATT는 고정된 채널 식별자를 사용하고, 상기 제2 ATT는 예약 영역 또는 동적 할당 영역에 할당된 채널 식별자를 사용할 수 있다.
상기 변경된 BLE 프로토콜 스택은 DSP(Digital signal processing), L2CAP, 링크계층으로 구성되는 제3 경로를 더 포함할 수 있다.
그리고 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 실시예에 따른 의 기술 내용을 쉽게 설명하고 본 발명의 실시예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 실시예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실시예의 범위는 여기에 개시된 실시예들 이외에도 본 발명의 다양한 실시예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실시예의 범위에 포함되는 것으로 해석되어야 한다.
120: 프로세서, 130: 메모리,
140: 입출력 인터페이스, 150: 디스플레이,
160: 통신 인터페이스, 170: 블루투스 제어 모듈,
201: 애플리케이션 계층; 202: GATT,
203: ATT; 204: L2CAP,
205: 링크계층; 206: audio flinger,
207: audio HAL; 208: media task,
209: DSP; 251: control&service,
252: audio system; 253: ATT,
254: L2CAP; 255: 링크계층.

Claims (20)

  1. 전자 장치에서,
    블루투스 제어 모듈; 상기 블루투스 제어 모듈은 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 저장하고, 상기 변경된 BLE 프로토콜 스택은 제1 ATT 프로토콜을 포함하여 상기 애플리케이션의 ATT 명령을 처리하는 제1 경로와 제2 ATT 프로토콜을 포함하여 상기 애플리케이션의 ATT 명령을 처리하는 제2 경로를 포함하고; 및
    상기 블루투스 제어 모듈에 결합된 프로세서를 포함하고,
    상기 프로세서는 상기 블루투스 제어 모듈의 상기 적어도 둘 이상의 ATT를 포함하는 변경된 BLE 프로토콜 스택을 이용하여 상기 ATT 명령을 포함하는 상기 애플리케이션의 데이터를 처리하는 전자장치.
  2. 제1항에 있어서,
    상기 제1 경로는 애플리케이션 계층, GATT(Generic Attribute Profile), 상기 제1 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성되는 것을 특징으로 하는 전자장치.
  3. 제1항에 있어서,
    상기 제2 경로는 오디오 계층, 상기 제2 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성되는 것을 특징으로 하는 전자장치.
  4. 제1항에 있어서,
    상기 애플리케이션의 제 2경로를 통해 전달되는 ATT 명령어는 오디오 관련 명령인 것을 특징으로 하는 전자장치.
  5. 제1항에 있어서,
    상기 제1 ATT는 고정된 채널 식별자를 사용하고, 상기 제2 ATT는 예약 영역 또는 동적 할당 영역에 할당된 채널 식별자를 사용하는 것을 포함하는 전자장치.
  6. 제1항에 있어서,
    상기 변경된 BLE 프로토콜 스택은 DSP(Digital signal processing), L2CAP, 링크계층으로 구성되는 제3 경로를 더 포함하는 것을 특징으로 하는 전자장치.
  7. 제1항에 있어서,
    상기 애플리케이션은 보청기 관련 애플리케이션인 것을 특징으로 하는 전자장치.
  8. 메모리;
    하나 이상의 프로세서; 및
    상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의하여 실행 가능하도록 구성되는 하나 이상의 모듈을 포함하는 전자장치로서,
    상기 모듈은,
    부팅 동안에, 제1 메모리에 저장된 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 제2 메모리에 로딩(loading)하고,
    상기 변경된 BLE 프로토콜 스택에서 물리계층 및 링크계층을 통해 제2 전자 장치와 블루투스 연결을 수행하고,
    상기 BLE 프로토콜 스택 내의 상기 링크계층의 상위계층에서 이벤트가 발생하는지를 판단하고,
    상기 이벤트 종류에 따라, 상기 애플리케이션의 명령을 상기 제2 전자장치로 전달하는 명령어를 포함하는 전자장치.
  9. 제8항에 있어서,
    상기 애플리케이션의 명령을 상기 제2 전자장치로 전달하는 명령어는,
    상기 이벤트가 제 1경로 상의 ATT 명령과 관련이 있는 경우, 상기 변경된 BLE 프로토콜 스택에서의 제1 ATT 프로토콜을 포함하는 제1 경로를 통해 상기 애플리케이션의 ATT 명령을 상기 제2 전자장치로 전달하고,
    상기 이벤트가 제 2경로 상의 ATT 명령과 관련이 있는 경우, 상기 변경된 BLE 프로토콜 스택에서의 제2 ATT 프로토콜을 포함하는 제2 경로를 통해 상기 애플리케이션의 ATT 명령을 상기 제2 전자장치로 전달하는 것을 포함하는 전자장치.
  10. 제9항에 있어서,
    상기 제1 경로는 애플리케이션 계층, GATT(Generic Attribute Profile), 상기 제1 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성되는 것을 특징으로 하는 전자장치.
  11. 제9항에 있어서,
    상기 제2 경로는 오디오 계층, 상기 제2 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성되는 것을 특징으로 하는 전자장치.
  12. 제9항에 있어서,
    상기 애플리케이션의 제 2경로를 통해 전달되는 ATT 명령어는 오디오 관련 명령인 것을 특징으로 하는 전자장치.
  13. 제9항에 있어서,
    상기 제1 ATT는 고정된 채널 식별자를 사용하고, 상기 제2 ATT는 예약 영역 또는 동적 할당 영역에 할당된 채널 식별자를 사용하는 것을 포함하는 전자장치.
  14. 제9항에 있어서,
    상기 변경된 BLE 프로토콜 스택은 DSP(Digital signal processing), L2CAP, 링크계층으로 구성되는 제3 경로를 더 포함하는 것을 특징으로 하는 전자장치.
  15. 제1 전자 장치의 방법에 있어서,
    부팅 동안에, 제1 메모리에 저장된 애플리케이션 사용을 위한 적어도 둘 이상의 ATT(Attribute Protocol)를 포함하는 변경된 블루투스 저전력(bluetooth low energy: BLE) 프로토콜 스택을 제2 메모리에 로딩(loading)하는 단계;
    상기 변경된 BLE 프로토콜 스택에서 물리계층 및 링크계층을 통해 제2 전자 장치와 블루투스 연결을 수행하는 단계;
    상기 BLE 프로토콜 스택 내의 상기 링크계층의 상위계층에서 이벤트가 발생하는지를 판단하는 단계;
    상기 이벤트 종류에 따라, 상기 애플리케이션의 명령을 상기 제2 전자장치로 전달하는 단계를 포함하는 방법.
  16. 제15항에 있어서,
    상기 애플리케이션의 명령을 상기 제2 전자장치로 전달하는 단계는,
    상기 이벤트가 제 1경로 상의 ATT 명령과 관련이 있는 경우, 상기 변경된 BLE 프로토콜 스택에서의 제1 ATT 프로토콜을 포함하는 제1 경로를 통해 상기 애플리케이션의 ATT 명령을 상기 제2 전자장치로 전달하는 단계; 및
    상기 이벤트가 제 2경로 상의 ATT 명령과 관련이 있는 경우, 상기 변경된 BLE 프로토콜 스택에서의 제2 ATT 프로토콜을 포함하는 제2 경로를 통해 상기 애플리케이션의 ATT 명령을 상기 제2 전자장치로 전달하는 단계를 포함하는 방법.
  17. 제16항에 있어서,
    상기 제1 경로는 애플리케이션 계층, GATT(Generic Attribute Profile), 상기 제1 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성되는 것을 특징으로 하는 방법.
  18. 제16항에 있어서,
    상기 제2 경로는 오디오 계층, 상기 제2 ATT, L2CAP(Logical Link Control and Adaptation Protocol), 링크계층으로 구성되는 것을 특징으로 하는 방법.
  19. 제16항에 있어서,
    상기 애플리케이션의 제 2경로를 통해 전달되는 ATT 명령어는 오디오 관련 명령인 것을 특징으로 하는 방법.
  20. 제16항에 있어서,
    상기 제1 ATT는 고정된 채널 식별자를 사용하고, 상기 제2 ATT는 예약 영역 또는 동적 할당 영역에 할당된 채널 식별자를 사용하는 것을 포함하는 방법.
KR1020140115480A 2014-06-12 2014-09-01 블루투스 프로토콜에 기반한 데이터 처리 방법 및 그 전자장치 KR102166381B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/738,131 US9654906B2 (en) 2014-06-12 2015-06-12 Method for processing data based on bluetooth protocol and electronic device thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462011323P 2014-06-12 2014-06-12
US62/011,323 2014-06-12

Publications (2)

Publication Number Publication Date
KR20150142565A true KR20150142565A (ko) 2015-12-22
KR102166381B1 KR102166381B1 (ko) 2020-10-16

Family

ID=55081831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140115480A KR102166381B1 (ko) 2014-06-12 2014-09-01 블루투스 프로토콜에 기반한 데이터 처리 방법 및 그 전자장치

Country Status (1)

Country Link
KR (1) KR102166381B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109275124A (zh) * 2018-08-24 2019-01-25 Tcl移动通信科技(宁波)有限公司 移动终端蓝牙协议栈加载处理方法、移动终端及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100079607A1 (en) * 2008-09-30 2010-04-01 Samsung Electronics Co., Ltd. Method and system for managing an imaging device by an electronic device located remotely to the imaging device
KR20120062639A (ko) * 2010-12-06 2012-06-14 브로드콤 코포레이션 블루투스 저에너지 디바이스들을 위한 윈도우즈 포터블 디바이스 인터페이스

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100079607A1 (en) * 2008-09-30 2010-04-01 Samsung Electronics Co., Ltd. Method and system for managing an imaging device by an electronic device located remotely to the imaging device
KR20120062639A (ko) * 2010-12-06 2012-06-14 브로드콤 코포레이션 블루투스 저에너지 디바이스들을 위한 윈도우즈 포터블 디바이스 인터페이스

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109275124A (zh) * 2018-08-24 2019-01-25 Tcl移动通信科技(宁波)有限公司 移动终端蓝牙协议栈加载处理方法、移动终端及存储介质
CN109275124B (zh) * 2018-08-24 2021-09-14 Tcl移动通信科技(宁波)有限公司 移动终端蓝牙协议栈加载处理方法、移动终端及存储介质

Also Published As

Publication number Publication date
KR102166381B1 (ko) 2020-10-16

Similar Documents

Publication Publication Date Title
US9654906B2 (en) Method for processing data based on bluetooth protocol and electronic device thereof
US9749730B2 (en) Method for processing data and electronic device therefor
US9805437B2 (en) Method of providing preview image regarding display setting for device
KR20150126484A (ko) 소스 코드를 머신 코드로 변환하는 전자 장치 및 방법
KR102199030B1 (ko) 주변 장치와의 통신 방법, 전자 장치 및 저장 매체
KR20150124741A (ko) 통신 방법, 전자 장치 및 저장 매체
US9516489B2 (en) Method of searching for device between electronic devices
KR20150105802A (ko) 전자 장치의 비콘신호 제어방법 및 그 전자 장치
KR20160046426A (ko) 전자 장치
KR20160111211A (ko) 데이터 통신 방법 및 그 전자 장치
KR20150055851A (ko) 전자 장치들의 통신 연결 방법 및 장치
KR102262826B1 (ko) 통신 제어 방법, 전자 장치 및 저장 매체
KR20160003450A (ko) 전자장치의 데이터를 공유하기 위한 방법 및 장치
KR20150125464A (ko) 메시지 표시 방법 및 전자 장치
KR20150145655A (ko) 통신 방법, 전자 장치 및 저장 매체
KR20150124128A (ko) 전자 장치 및 이의 작업 연계 방법
KR20160001438A (ko) 이어 잭 오작동을 방지하는 전자 장치 및 방법
KR20150098387A (ko) 전자 장치의 비콘 전달 방법 및 그 전자 장치
KR20150110202A (ko) 오디오 장치에 전원을 공급하기 위한 전자 장치, 오디오 장치, 및 방법
KR20150026775A (ko) 근거리 무선 통신 제어 방법 및 이를 지원하는 장치
KR20150073244A (ko) 스마트 홈 시스템의 피 제어 장치 검색 및 제어 방법과 장치
KR20150086150A (ko) 사용자 인터페이스 제어 방법 및 장치
KR20150118434A (ko) 이종 무선 통신 시스템 간 오프로딩을 하기 위한 정책 정보를 전달하는 방법 및 이를 구현하는 전자장치
KR20160000355A (ko) Ap 정보를 이용하여 다른 전자 장치를 채팅방에 초대하는 방법 및 전자 장치
KR20160022075A (ko) 전환 정보 제어 방법 및 그 전자 장치

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