KR20180024209A - 유에스비 액세서리의 유에스비 통신 제어 방법 - Google Patents

유에스비 액세서리의 유에스비 통신 제어 방법 Download PDF

Info

Publication number
KR20180024209A
KR20180024209A KR1020160109970A KR20160109970A KR20180024209A KR 20180024209 A KR20180024209 A KR 20180024209A KR 1020160109970 A KR1020160109970 A KR 1020160109970A KR 20160109970 A KR20160109970 A KR 20160109970A KR 20180024209 A KR20180024209 A KR 20180024209A
Authority
KR
South Korea
Prior art keywords
usb
accessory
application
mobile device
head unit
Prior art date
Application number
KR1020160109970A
Other languages
English (en)
Other versions
KR101856930B1 (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 KR1020160109970A priority Critical patent/KR101856930B1/ko
Priority to US15/370,959 priority patent/US10089252B2/en
Priority to CN201611145192.0A priority patent/CN107783930B/zh
Publication of KR20180024209A publication Critical patent/KR20180024209A/ko
Application granted granted Critical
Publication of KR101856930B1 publication Critical patent/KR101856930B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

본 발명은 USB 호스트 디바이스의 USB 통신 제어 방법에 관한 것으로, USB 호스트와 USB 액세서리가 안드로이드 운영 체제를 기반으로 동작하는 경우, USB 케이블을 통해 USB 액세서리를 USB 호스트에 연결하여 사용하는 도중에 USB 액세서리에서 실행되고 있는 어플리케이션이 강제 종료되더라도 USB 호스트와 USB 액세서리를 연결하고 있는 USB 케이블의 물리적 연결 해제 과정이 필요치 않으면서 단절된 USB 통신이 재개될 수 있도록 한다.

Description

유에스비 액세서리의 유에스비 통신 제어 방법{USB COMMUNICATION CONTROL METHOD OF USB ACCESSORY}
본 발명은 안드로이드 기반의 USB 호스트와 USB 액세서리 사이의 통신에 관한 것으로, 특히 자동차의 헤드 유닛과 사용자의 모바일 디바이스 사이의 USB 통신 제어에 관한 것이다.
일명 “스마트폰”이라 불리는 최근의 모바일 디바이스에 연결하여 사용할 수 있는 장치는 기존의 단순한 입력 장치(키보드와 마우스, 스피커 등)에서 실생활에 필요한 다양한 제품들로 확장되고 있다. 자동차 분야에서도 자동차의 헤드 유닛에 사용자의 모바일 디바이스를 연결하여 모바일 디바이스의 다양한 기능을 자동차의 헤드 유닛에서도 이용할 수 있게 되었다.
USB 호스트와 USB 액세서리 사이의 통신을 위한 연결은 와이파이(Wi-Fi)나 블루투스(Bluetooth)와 같은 무선 통신이 있다. 무선 통신의 경우 무선 접속을 통해 제어나 데이터 전송이 가능하지만, 무선 통신을 채용할 경우 제품의 개발 비용이 많이 소요되고, 높은 안정성을 유지하기 위해서는 유지 비용이 높은 단점이 있다.
USB 호스트와 USB 액세서리 사이의 무선 통신을 대체하기 위한 대표적인 유선 통신으로는 USB 케이블을 이용한 통신이 있다. USB 케이블을 이용한 통신의 장점은 단순하고 직접적인 연결을 제공하고, USB를 이용하여 전원 공급이 가능하며, 데이터 성능이 보장되고, 안테나와 RF 설계에 대한 고려와 비용이 감소한다.
USB 액세서리를 USB 호스트에 연결하여 사용하기 위해서는 USB 호스트를 호스트 모드(Host Mode)로 설정하고 USB 케이블을 통해 USB 액세서리와 USB 호스트를 연결한다. 사용자의 모바일 디바이스와 자동차의 헤드 유닛을 예로 들면, USB 호스트 모드일 때 자동차의 헤드 유닛은 USB 호스트로 동작하고 모바일 디바이스는 USB 액세서리로 동작한다.
USB 호스트와 USB 액세서리가 안드로이드 운영 체제를 기반으로 동작하는 경우, USB 케이블을 통해 USB 액세서리를 USB 호스트에 연결하여 사용하는 도중에 USB 액세서리에서 실행되고 있는 어플리케이션이 강제 종료되면 USB 호스트와 USB 액세서리 사이의 USB 통신이 단절된다. 단절된 USB 통신이 재개되도록 하기 위해서는 USB 호스트와 USB 액세서리를 연결하고 있는 USB 케이블을 물리적으로 연결 해제한 후 다시 연결해야만 한다.
USB 호스트와 USB 액세서리가 안드로이드 운영 체제를 기반으로 동작하는 경우, USB 케이블을 통해 USB 액세서리를 USB 호스트에 연결하여 사용하는 도중에 USB 액세서리에서 실행되고 있는 어플리케이션이 강제 종료되더라도 USB 호스트와 USB 액세서리를 연결하고 있는 USB 케이블의 물리적 연결 해제 과정이 필요치 않으면서 단절된 USB 통신이 재개될 수 있도록 하는데 그 목적이 있다.
상술한 목적의 본 발명에 따른 유에스비(USB) 액세서리의 유에스비 통신 제어 방법은, 안드로이드 운영 체제를 기반으로 동작하는 유에스비 호스트와 유에스비 액세서리가 유에스비 케이블을 통해 연결된 상태에서 상기 유에스비 액세서리의 어플리케이션이 실행되면 상기 어플리케이션이 상기 유에스비 호스트와 상기 유에스비 액세서리의 연결 정보를 획득하는 단계와; 상기 유에스비 액세서리에서 실행 중인 상기 어플리케이션이 강제로 종료되면 상기 어플리케이션이 상기 유에스비 액세서리의 안드로이드 오픈 액세서리 프로토콜(AOAP)을 초기화하고 상기 유에스비 호스트와 상기 유에스비 액세서리의 유에스비 연결 정보를 상기 어플리케이션의 강제 종료 이전 상태로 수정하여 상기 유에스비 액세서리와 상기 유에스비 호스트 사이의 유에스비 통신이 재개되도록 하는 단계를 포함한다.
상술한 유에스비 액세서리의 유에스비 통신 제어 방법에서, 상기 유에스비 제어 권한은 상기 유에스비 호스트에 연결되어 있는 상기 유에스비 액세서리의 목록 및 연결 정보를 확인하는 권한과 상기 유에스비 액세서리의 유에스비 설정을 초기화하는 권한을 포함한다.
상술한 유에스비 액세서리의 유에스비 통신 제어 방법에서, 상기 유에스비 호스트의 상기 안드로이드 운영 체제의 플랫폼에 마련되는 유에스비 액세서리 폴더(/dev/usb_accessory)의 디바이스 노드(device node)의 데이터를 판독하여 상기 유에스비 액세서리의 목록 및 연결 정보를 확인한다.
상술한 유에스비 액세서리의 유에스비 통신 제어 방법은, 실행 중인 상기 어플리케이션에 상기 유에스비 제어 권한을 부여하는 단계를 더 포함한다.
상술한 유에스비 액세서리의 유에스비 통신 제어 방법은, 상기 어플리케이션이 상기 유에스비 액세서리에 설치될 때 상기 어플리케이션이 상기 유에스비 제어 권한을 획득하는 단계를 더 포함한다.
상술한 유에스비 액세서리의 유에스비 통신 제어 방법에서, 상기 유에스비 액세서리는 안드로이드 운영 체제 기반의 모바일 디바이스이다.
상술한 유에스비 액세서리의 유에스비 통신 제어 방법에서, 상기 유에스비 호스트는 안드로이드 운영 체제 기반의 자동차 헤드 유닛이다.
USB 호스트와 USB 액세서리가 안드로이드 운영 체제를 기반으로 동작하는 경우, USB 케이블을 통해 USB 액세서리를 USB 호스트에 연결하여 사용하는 도중에 USB 액세서리에서 실행되고 있는 어플리케이션이 강제 종료되더라도 USB 호스트와 USB 액세서리를 연결하고 있는 USB 케이블의 물리적 연결 해제 과정이 필요치 않으면서 단절된 USB 통신이 재개되도록 할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 자동차를 나타낸 도면이다.
도 2는 도 1에 나타낸 자동차의 실내 공간을 나타낸 도면이다.
도 3은 본 발명의 실시 예에 따른 자동차의 헤드 유닛의 구성을 나타낸 도면이다.
도 4는 본 발명의 실시 예에 따른 헤드 유닛과 모바일 디바이스 사이의 USB 연결을 설명하기 위한 도면이다.
도 5는 모바일 디바이스에 탑재되는 안드로이드 플랫폼을 나타낸 도면이다.
도 6은 도 5에 나타낸 안드로이드 플랫폼에서, 본 발명의 USB 연결 제어(USB Connectivity Control)를 위한 구성을 나타낸 도면이다.
도 7은 본 발명의 실시 예에 따른 USB 통신 제어 방법을 나타낸 도면이다.
도 8은 본 발명의 또 다른 실시 예에 따른 USB 통신 제어 방법을 나타낸 도면이다.
도 1은 본 발명의 일 실시 예에 따른 자동차를 나타낸 도면이다. 도 1에 나타낸 자동차(100)는 외형적으로 다음과 같은 구조를 갖는다.
윈드쉴드(112)는 본체(110)의 전방 상측에 마련되어 자동차(100) 내부의 탑승자에게 전방 시야를 제공하면서 바람으로부터 탑승자를 보호한다. 아웃사이드 미러(114)는 탑승자에게 자동차(100)의 측면 및 측후방의 시야를 제공한다. 아웃사이드 미러(114)는 좌측과 우측의 도어(190) 각각에 하나씩 마련될 수 있다.
도어(190)는 본체(110)의 좌측 및 우측에 회동 가능하게 마련되어 개방 시에 탑승자의 출입이 가능하며, 폐쇄 시에 자동차(100)의 내부를 외부로부터 차폐시킬 수 있다. 도어(190)는 도어 시건 장치(192)를 이용하여 잠금/해제할 수 있다. 도어 시건 장치(192)의 잠금/해제는 사용자가 자동차(100)에 접근하여 도어 시건 장치(192)의 버튼이나 레버를 직접 조작하는 방법과 자동차(100)로부터 떨어진 위치에서 원격 제어기(Remote Controller) 등을 이용하여 원격으로 잠금/해제하는 방법이 있다.
안테나(152)는 텔레매틱스와 DMB, 디지털 TV, GPS 등의 방송/통신 신호 등을 수신하기 위한 것으로서, 다양한 종류의 방송/통신 신호를 수신하는 다기능 안테나이거나 또는 어느 하나의 방송/통신 신호를 수신하기 위한 단일 기능 안테나일 수 있다.
전륜(122)과 후륜(124)은 각각 자동차(100)의 전방과 후방에 위치하며, 엔진(미도시)으로부터 동력을 제공받아 회전하도록 마련된다.
도 2는 도 1에 나타낸 자동차의 실내 공간을 나타낸 도면이다. 도 2에 나타낸 자동차(100)의 실내 공간은 다음과 같은 구조를 갖는다.
대시 보드(256)는 윈드쉴드(112)의 하부로부터 탑승자를 향하여 돌출되게 마련된다. 대시 보드(256)에는 탑승자가 자동차(100)를 조작하기 위한 각종 기기가 설치된다. 운전자는 운전석(258)에 앉아 전방을 주시한 상태로 대시 보드(256)에 설치된 각종 기기를 조작할 수 있다.
운전석(258)은 자동차(100)의 운전자가 착석하기 위한 좌석이다. 운전석(258)은 대시 보드(256)의 후방에 마련되어 운전자가 안정적인 자세로 자동차(100)의 전방과 대시 보드(256)의 각종 기기를 주시하며 자동차(100)를 운행할 수 있도록 한다.
클러스터 표시부(260)(262)는 대시 보드(256)의 운전석(258) 측 전면에 마련되며, 자동차(100)의 동작 정보 등을 표시한다. 클러스터 표시부(260)(262)는 자동차(100)의 운행 속도를 표시하는 주행 속도 게이지(260)와, 동력 장치(미도시)의 회전 속도를 표시하는 알피엠(rpm) 게이지(262)를 포함할 수 있다.
헤드 유닛(200)은 탑승자의 조작 명령에 따라 다양한 멀티미디어 기능을 수행하는 멀티미디어 기기일수 있다. 헤드 유닛(200)은 경로 안내를 위한 내비게이션 기능과 함께 오디오 기능 및 비디오 기능을 수행한다. 헤드 유닛(200)은 오디오와 비디오, 내비게이션 기능을 모두 포함하는 것이지만, 오디오와 비디오, 내비게이션 기능을 모두 포함하지 않고 일부 기능만을 포함할 수 있다.
헤드 유닛(200)은 자동차(100)가 주행하는 도로의 정보 또는 탑승자가 도달하고자 하는 목적지까지의 경로를 표시하기 위한 디스플레이(214)를 포함할 수 있다. 또한 헤드 유닛(200)은 스피커(216)와 전기적으로 연결됨으로써 헤드 유닛(200)의 음향 신호가 스피커(216)에 전달되어 출력될 수 있다.
또한 헤드 유닛(200)은 USB 케이블(Universal Serial Bus Cable)(292)과 같은 유선 방식으로 모바일 디바이스(250)와 연결될 수 있다. 또한, 헤드 유닛(200)은 근거리 무선 통신이 가능하다. 페어링(Paring) 등의 방법을 통해 등록된 탑승자의 모바일 디바이스(250)와 근거리 무선 통신을 수행할 수 있다.
헤드 유닛(200)은 음성 인식 제어를 기반으로 동작할 수 있다. 이를 위해 스티어링 휠(202)에는 음성 인식 버튼(204)이 설치되고, 운전석의 상부에는 마이크로폰(206)이 설치된다. 음성 인식 버튼(204)과 마이크로폰(206), 스피커(216) 등은 헤드 유닛(200)의 음성 인식 제어를 위한 보조 도구로 사용될 수 있다.
도 2에 나타낸 것처럼, 헤드 유닛(200)에는 모바일 디바이스(250)가 상호 통신 가능하도록 연결될 수 있다. 모바일 디바이스(250)는, '스마트폰(Smart Phone)'이나 태블릿(Tablet)과 같은 휴대용 통신/컴퓨팅 기기는 물론, 외장 HDD(Hard Disk Drive)와 외장 SSD(Solid State Device), USB 메모리(Universal Serial Bus Memory)와 같은 외부 저장 장치 등을 포함할 수 있다. 또한 사물 인터넷 기기(IoT Device)와 스트리밍 서비스 제공자도 모바일 디바이스(250)로서 헤드 유닛(200)에 연결될 수 있다. 헤드 유닛(200)은 모바일 디바이스(250)로부터 멀티미디어 컨텐츠를 제공받아 헤드 유닛(200)의 디스플레이(214) 또는 스피커(216)를 통해 출력할 수 있다.
모바일 디바이스(250)에서 헤드 유닛(200)으로 멀티미디어 컨텐츠를 전송하여 헤드 유닛(100)에서 멀티미디어 컨텐츠가 재생되도록 하는 방법은 다양하다. 예를 들면 모바일 디바이스(250)와 헤드 유닛(200) 사이에 형성된 유선/무선 통신 채널을 이용하여 모바일 디바이스(250)에서 헤드 유닛(200)으로 멀티미디어 컨텐츠를 전송하고, 헤드 유닛(200)에서 수신된 멀티미디어 컨텐츠를 재생하도록 할 수 있다.
또 다른 방법으로는, 모바일 디바이스(250)와 헤드 유닛(200) 사이에 유선/무선의 통신 채널이 형성된 상태에서 모바일 디바이스(250)에서 재생되는 멀티미디어 컨텐츠의 미러링(mirroring) 영상을 헤드 유닛(200)의 디스플레이(214)를 통해 표출할 수 있다. 예를 들면 모바일 디바이스(250)가 구글(Google)의 안드로이드 오토(Android Auto)와 같은 카 미러링(Car Mirroring)를 지원할 때, 모바일 디바이스(250)에서 구현되는 비디오 컨텐츠의 영상이나 내비게이션의 화면 등이 헤드 유닛(200)의 디스플레이(214) 상에 동일하게(mirroring) 표출될 수 있다.
도 3은 본 발명의 실시 예에 따른 자동차의 헤드 유닛의 구성을 나타낸 도면이다. 본 발명의 실시 예에 따른 자동차(100)에서, 헤드 유닛(200)은 오디오와 비디오, 내비게이션 기능을 모두 포함하는데, 오디오와 비디오, 내비게이션 기능을 모두 포함하지 않더라도 모바일 디바이스(250)의 카 미러링(Car Mirroring)을 지원하는 다른 헤드 유닛으로 대체될 수 있다.
도 3에 나타낸 바와 같이, 헤드 유닛(200)의 구성은 크게 음성 인식 기능을 위한 요소와, 일반적인 입력 기능을 위한 요소, 방송/통신 기능을 위한 요소, 내비게이션 기능을 위한 요소, 오디오/비디오 기능을 위한 요소, 복수의 기능에 공통적으로 사용될 수 있는 요소로 구분할 수 있다.
음성 인식 기능을 위한 구성 요소는 음성 인식 버튼(204)과 마이크로폰(206), 미들웨어(322), 음성 인식 처리부(308), 명령 출력 인터페이스(318)를 포함한다. 헤드 유닛(200)의 구성 요소는 아니지만, 원격지의 서버에 마련되는 모바일 음성 인식 처리부(324)가 헤드 유닛(200)에 유선/무선 방식으로 연결되는 외부 기기(미도시)를 통해 헤드 유닛(200)의 미들웨어(322) 및 제어부(312)에 통신 가능하도록 연결될 수 있다. 방송/통신 기능을 위한 구성 요소는 안테나(152)와 튜너부(354), 방송 신호 처리부(356), 통신 신호 처리부(358)를 포함한다. 내비게이션 기능을 위한 구성 요소는 내비게이션 데이터베이스(362)와 내비게이션 구동부(364)를 포함한다. 오디오/비디오 기능을 위한 구성 요소는 오디오/비디오 입력부(372)와 오디오/비디오 재생부(374)를 포함한다. 일반적인 입력 기능을 위한 구성 요소는 입력부(372)를 포함한다. 복수의 기능에 공통적으로 사용될 수 있는 요소는 메모리(310)와 제어부(312), 디스플레이(214), 스피커(216)를 포함한다. 이와 같은 기능 상의 구분은 위에 기재한 것에 한정되지 않으며, 어느 하나의 기능을 위한 요소가 다른 기능을 위해서도 사용될 수 있다.
음성 인식 버튼(204)은 탑승자가 헤드 유닛(200)의 오디오 기능과 비디오 기능, 내비게이션 기능, 정보 통신 기능 등의 복합 기능을 실행하여 이용할 수 있도록 한다. 이를 위해 음성 인식 버튼(204)은 푸쉬-투-토크(Push-To-Talk, PTT) 방식의 원-키 조작을 지원한다. 음성 인식 버튼(204)은 탑승자가 운전 중에도 편리하게 조작할 수 있도록 스티어링 휠(202)에 설치될 수 있다. 스티어링 휠(202)은 자동차(100)의 바퀴를 좌우로 움직여 자동차(100)의 진행 방향을 변경하는데 사용되는 조향 장치이다. 탑승자(운전자)는 운전하는 동안 항상 스티어링 휠(202)을 파지하기 때문에, 음성 인식 버튼(204)을 스티어링 휠(202)에 설치하면 탑승자가 운전 중에 음성 인식 버튼(204)을 편리하게 조작할 수 있다. 스티어링 휠(202) 외에, 탑승자가 운전 중에 음성 인식 버튼(204)을 용이하게 조작할 수 있는 위치라면 자동차(100)의 어느 위치에도 음성 인식 버튼(204)이 설치될 수 있다.
마이크로폰(206)은 음성 인식 제어 기능이 실행 중인 상태에서 탑승자가 발성하는 음성 신호를 수신하고 수신된 음성 신호를 전기 신호로 변환한다. 마이크로폰(206)은 음성 인식 제어를 위해 마련된 마이크로폰이거나, 자동차(100)의 핸즈프리용 마이크로폰을 공유하는 것일 수 있다. 또한 마이크로폰(206)은 탑승자가 휴대한 모바일 단말기의 마이크로폰 일 수 있다. 모바일 단말기의 마이크로폰을 이용할 경우 모바일 단말기와 헤드 유닛(200)은 블루투스 등의 근거리 통신을 통해 서로 연결되어야 한다.
헤드 유닛(200)의 음성 인식 처리부(308)는 마이크로폰(206)에 의해 변환된 전기 신호를 미들웨어(322)를 통해 전달받아 변환된 전기 신호를 대상으로 음성 인식을 수행하고, 음성 인식의 결과로서 음성 명령 정보로서의 텍스트 데이터를 추출한다. 음성 인식 처리부(308)에서 추출된 텍스트 데이터는 제어부(312)에 전달되기에 앞서 미들웨어(322)로 전달된다.
미들웨어(322)는 중계 수단으로서, 헤드 유닛(200)의 음성 인식 처리부(308)로부터 전달받은 텍스트 데이터가 헤드 유닛(200)의 음성 인식 제어를 위한 예약어인지 아니면 모바일 단말기(252)의 음성 인식 제어를 위한 예약어인지를 판단한다. 미들웨어(322)는 텍스트 데이터가 헤드 유닛(200)의 음성 인식 제어를 위한 예약어일 때 텍스트 데이터를 헤드 유닛(200)의 제어부(312)로 전송하여 헤드 유닛(200)의 음성 인식 제어가 이루어지도록 한다. 이와 달리, 만약 텍스트 데이터가 헤드 유닛(200)의 음성 인식 제어를 위한 예약어가 아닐 때 텍스트 데이터를 모바일 단말기(252)로 전송하여 모바일 단말기(252)의 음성 인식 제어가 이루어지도록 한다. 즉, 탑승자의 발화에 의해 생성되는 음성 신호가 헤드 유닛(200)의 음성 인식 제어를 위한 예약어인지 아니면 모바일 단말기(252)의 음성 인식 제어를 위한 예약어인지를 미들웨어(322)에서 자동으로 판단하여 중계한다. 이 과정에서 헤드 유닛(200)의 음성 인식 제어를 위한 예약어와 모바일 단말기(252)의 음성 인식 제어를 위한 예약어의 구분을 위한 탑승자의 의도된 개입은 필요치 않다.
명령 출력 인터페이스(318)는 음성 인식의 결과로서 추출되는 음성 명령 정보에 상응하는 제어 명령의 신호를 제어부(312)로부터 제어 대상 장치로 전달하기 위한 것이다.
안테나(152)는 방송 신호의 수신을 위한 목적 또는 통신 신호의 송신 및 수신을 위한 목적으로 공중의 전파를 받거나 또는 공중으로 전파를 보내기 위한 장치이다. 안테나(152)는 튜너부(354)에 통신 가능하도록 연결된다. 따라서 안테나(152)가 받은 전파는 튜너부(354)에 전달된다. 안테나(152)는 복수의 서로 다른 형태의 방송/통신 신호를 위해 복수의 형태의 안테나로 구성될 수 있다. 본 발명의 실시 예에서, 안테나(152)는 DMB 방송을 수신하고 또 3G/LTE(Long Term Evolution) 방식으로 텔레매틱스 신호를 송수신한다.
튜너부(354)는 안테나(152)가 받은 전파를 전달받아 중간 주파수 신호 등으로 변환한다. 또한 튜너부(354)는 송신하고자 하는 데이터 신호를 공중에 전파할 수 있는 형태로 변환하여 안테나(152)를 통해 공중으로 보낸다. 즉, 튜너부(354)는 특정 대역의 신호만을 추출하거나 반송파 신호에 데이터 신호를 결합하는 등의 작업을 수행한다. 튜너부(354)는 방송 신호의 수신과 통신 신호의 송신 및 수신을 수행한다. 방송 신호는 라디오 방송 신호와 디엠비(Digital Multimedia Broadcasting) 방송 신호를 포함할 수 있다. 통신 신호는 전지구 위치 파악 시스템(Global Positioning System) 위성(이하 GPS 위성)과의 위성 통신 신호를 포함할 수 있다. 또한 통신 신호는 텔레매틱스(Telematics)를 위한 통신 신호를 포함할 수 있다. 튜너부(354)에서 어떤 신호를 수신하여 처리할 것인지는 제어부(312)에서 튜너부(354)로 전달되는 제어 신호에 의해 결정된다. 예를 들면 제어부(312)에서 특정 채널의 라디오 방송 신호를 수신하도록 튜너부(354)로 제어 신호를 발생시키면 튜너부(354)는 제어부(312)로부터 전달되는 제어 신호에 응답하여 해당 채널의 라디오 방송 신호를 수신한다. 만약 제어부(312)에서 텔레매틱스 신호의 송신을 위한 제어 신호 및 송신 데이터를 튜너부(354)로 전달하면, 튜너부(354)는 제어부(312)로부터 전달되는 제어 신호에 응답하여 송신 데이터를 공중으로 보낼 수 있는 형태로 변환하고, 변환된 신호를 안테나(152)를 통해 공중으로 보낸다. 또한 튜너부(354)는 방송 신호에 포함되어 있는 방송 채널의 정보를 획득한다. 튜너부(354)에 입력되는 방송 신호에는 방송 채널의 명칭과 서비스 ID(IDentification), 방송 데이터가 포함된다. 튜너부(354)는 방송 신호에 포함되어 있는 방송 채널의 명칭과 서비스 ID, 방송 데이터를 추출하여 후단의 방송 신호 처리부(356)와 제어부(312)에 전달한다.
방송 신호 처리부(356)는 튜너부(354)를 거친 방송 신호를 비디오 방송 신호와 오디오 방송 신호로 구분하여 일련의 신호 처리를 수행한다. 방송 신호 처리부(356)에서 이루어지는 일련의 신호 처리는 아날로그-디지털 변환이나 디지털-아날로그 변환, 비디오 데이터를 디스플레이(214)를 구동할 수 있는 형태의 신호로 변환하는 것 등을 포함할 수 있다.
통신 신호 처리부(358)는 GPS 위성과의 통신 신호와 텔레매틱스 통신 신호의 처리를 수행한다. 즉, 통신 신호 처리부(358)는 수신되는 통신 신호를 제어부(312)에 전달하기 위한 데이터의 형태로 변환하거나, 튜너부(354) 및 안테나(152)를 통해 송신하고자 하는 데이터를 제어부(312)로부터 전달받아 통신 가능한 형태의 신호로 변환한다.
내비게이션 데이터베이스(362)는 내비게이션을 구현하기 위한 데이터들을 포함한다. 내비게이션 데이터베이스(362)는 메모리 카드나 DVD(Digital Versatile Disc) 형태일 수 있다. 또한 유선/무선 방식의 링크(예를 들면 안드로이드 오토(Android Auto))를 통해 연결되는 모바일 단말기로부터 제공되는 내비게이션 데이터를 내비게이션 데이터베이스로서 활용할 수도 있다.
내비게이션 구동부(364)는 내비게이션 데이터베이스(362)로부터 제공되는 데이터를 이용하여 디스플레이(214) 상에 내비게이션 화면을 구성한다. 이를 위해 탑승자가 설정한 목적지와 경유지, 경로 형태 등의 내비게이션 설정 정보를 제어부(312)로부터 제공받는다. 또한 내비게이션의 구현을 위해 GPS 위성과의 통신을 통해 확보한 자동차(100)의 현재 위치 정보를 제어부(312)로부터 제공받는다.
오디오/비디오 입력부(372)는 광 디스크 드라이브(Optical Disc Drive)일 수 있다. 또는 오디오/비디오 입력부(372)는 범용 직렬 버스(USB) 입출력 장치 또는 예비 입출력 단자(일명 AUX)일 수 있다. 또는 오디오/비디오 입력부(372)는 모바일 단말기와의 무선 연결을 위한 블루투스 장치일 수 있다. 오디오/비디오 입력부(372)에 블루투스를 통해 연결되는 모바일 단말기는 이동 전화 또는 휴대용 디지털 음원 재생 장치일 수 있다.
오디오/비디오 재생부(374)는 오디오/비디오 입력부(372)를 통해 입력되는 오디오/비디오 데이터를 스피커(216) 또는 디스플레이(214)로 출력될 수 있도록 한다. 예를 들면 오디오/비디오 입력부(372)가 광 디스크 드라이브일 때, 광 디스크 드라이브는 광 디스크(CD/DVD/BD 등)에 기록되어 있는 오디오/비디오 데이터를 판독하여 오디오/비디오 데이터를 인출하고, 오디오/비디오 재생부(374)는 오디오/비디오 입력부(372)에 의해 인출된 오디오/비디오 데이터를 스피커(216) 또는 디스플레이(214)를 구동할 수 있는 형태의 신호로 변환하여 스피커(216) 또는 디스플레이(214)로 전달함으로써 오디오/비디오가 재생될 수 있도록 한다. 광 디스크 이외의 다른 매체로부터 제공되는 오디오/비디오 데이터의 경우에도 오디오/비디오 재생부(374)를 거치면서 스피커(216) 또는 디스플레이(214)를 구동할 수 있는 형태의 신호로 변환될 수 있다.
입력부(382)는 헤드 유닛(200)에 마련되는 적어도 하나의 버튼 또는 디스플레이(214) 상에 구현되는 터치스크린일 수 있다. 탑승자는 입력부(382)의 조작을 통해 헤드 유닛(200)의 복합 기능 중 하나를 선택할 수 있고 선택한 기능으로부터 기대하는 작업이 이루어질 수 있도록 다양한 설정을 가할 수 있다. 앞서 설명한 스티어링 휠(202)의 음성 인식 버튼(204)도 입력부(382)를 구성하는 적어도 하나의 버튼에 포함될 수 있다.
통신 포트(392)는 예를 들면 USB 포트나 파이어와이어 포트 등을 포함할 수 있다. 이 통신 포트(392)에 통신 케이블을 삽입함으로써 헤드 유닛(200)이 통신 케이블에 연결된 모바일 디바이스(250)와 통신 가능하도록 연결될 수 있다. 또한 통신 포트(392)는 블루투스나 와이파이, 지그비, NFC(Near Field Communication) 등의 근거리 무선 통신을 위한 것일 수 있다. 근거리 무선 통신을 위한 통신 포트(392)는 모바일 디바이스(예를 들면 스마트폰 또는 태블릿 등)(250)로부터 전송되는 원격 제어 신호를 수신하여 헤드 유닛(200)의 제어부(312) 또는 다른 전자 제어 유닛(Electronic Control Unit, ECU)으로 전달되도록 한다. 여기서 원격 제어 신호는 자동차(100)의 도어(190)의 잠금/해제를 위한 원격 제어 신호이거나, 또는 엔진의 시동/정지를 원격 제어 신호일 수 있다.
제어부(312)는 헤드 유닛(200)의 동작 전반에 관여하여 필요한 제어를 수행한다. 예를 들면 음성 인식 버튼(204)의 조작에 응답하여 음성 인식 기능을 수행하기 위한 초기 진입 화면을 디스플레이(214)에 표출하거나 음성 인식 기능에 관련된 음성 안내 메시지를 스피커(216)를 통해 출력한다. 또한 제어부(312)는 음성 인식 처리부(308)로부터 제공되는 음성 명령 정보를 전달받아 해당 음성 명령 정보에 상응하는 제어 명령을 발생시켜서 음성 명령 정보에 해당하는 제어가 이루어지도록 한다. 또한 제어부(312)는 방송/통신 신호의 처리를 수행할 수 있다. 만약 방송/통신 신호의 처리 후 발생하는 오디오/비디오 데이터가 스피커(216) 또는 디스플레이(214)로 출력되어야 하는 경우 해당 오디오/비디오 데이터가 스피커(216) 또는 디스플레이(214)로 전달되도록 제어함으로써 필요한 오디오/비디오 데이터의 출력이 이루어질 수 있도록 한다. 또한 제어부(312)는 탑승자가 내비게이션 기능을 선택하는 경우 내비게이션 데이터베이스(362)와 내비게이션 구동부(364), 디스플레이(214), 스피커(216)를 제어하여 내비게이션이 구현될 수 있도록 한다. 또한 제어부(312)는 오디오/비디오 입력부(372)를 통해 입력되는 오디오/비디오 데이터가 오디오/비디오 재생부(374)에 의해 재생되어 스피커(216) 또는 디스플레이(214)로 전달되도록 제어함으로써 필요한 오디오/비디오 데이터의 출력이 이루어질 수 있도록 한다. 또한 제어부(312)는 튜너부(354)가 방송 신호로부터 추출한 방송 채널의 명칭을 텍스트로 변환하여 음성 인식 처리부(308)로 전달한다.
메모리(310)는 헤드 유닛(200)의 음성 인식 기능과 방송/통신 기능, 내비게이션 기능, 오디오/비디오 기능 각각을 수행하기 위해 실행되는 다양한 어플리케이션들과, 어플리케이션들의 실행에 필요한 화면 표시 데이터와 음성 데이터, 효과음 데이터 등이 저장된다.
디스플레이(214)는 헤드 유닛(200)의 음성 인식 기능과 방송/통신 기능, 내비게이션 기능, 오디오/비디오 기능 등의 복합 기능이 수행될 때 수반되는 비디오를 출력한다. 예를 들면 각 기능 별 안내 화면이나 메시지, 비디오 자료 등이 디스플레이(214)를 통해 출력된다. 또한 디스플레이(214)는 탑승자가 헤드 유닛(200)의 복수의 기능들을 조작할 수 있도록 하기 위한 사용자 인터페이스를 표시한다. 예를 들면, 헤드 유닛(200)에 마련되는 내비게이션 기능과 방송(라디오/DMB) 기능, 공조 기능, 그 밖에 오디오 기능 등이 수행되도록 하기 위해 사용자가 조작하는데 필요한 사용자 인터페이스가 디스플레이(214)에 표시된다. 다만, 자동차(100)가 주행 중인 동안에는 운전자가 안전 운전에 집중할 수 있도록 하기 위해 디스플레이(214)를 통한 비디오 컨텐츠의 표출이 제한될 수 있다.
스피커(216)는 헤드 유닛(200)의 음성 인식 기능과 방송/통신 기능, 내비게이션 기능, 오디오/비디오 기능 등의 복합 기능이 수행될 때 수반되는 오디오를 출력한다. 예를 들면, 각 기능 별 안내 멘트나 효과 음, 오디오 자료 등이 스피커(216)를 통해 출력된다.
도 4는 본 발명의 실시 예에 따른 헤드 유닛과 모바일 디바이스 사이의 USB 연결을 설명하기 위한 도면이다. 자동차(100)의 헤드 유닛(200)과 사용자의 모바일 디바이스(250)는 도 4에 나타낸 것처럼 USB 케이블(292)을 통해 상호 연결될 수 있다. 물론 자동차(100)의 헤드 유닛(200)과 사용자의 모바일 디바이스(250)가 무선 통신이 가능하도록 연결될 수도 있다. 이와 같이 자동차(100)의 헤드 유닛(200)과 사용자의 모바일 디바이스(250)가 유선/무선 형태로 통신 가능하도록 연결되면 카 미러링(Car Mirroring)과 같은 기능이 수행될 수 있다. 카 미러링은 자동차(100)의 헤드 유닛(200)과 모바일 디바이스(250)를 연동하여 모바일 디바이스(250)의 디스플레이(254)에 표출되는 내용이 헤드 유닛(200)의 디스플레이(214)에도 동일하게 표출되도록 함으로써 모바일 디바이스(250)에서 구현되는 멀티미디어 컨텐츠의 재생이나 내비게이션, 음성 통화, 메시지 수신의 확인 등의 기능이 헤드 유닛(200)의 디스플레이(214) 상에서도 동일하게 구현되도록 하는 기능이다. 이와 같은 카 미러링은 모바일 디바이스(250)의 작은 디스플레이(254) 대신 헤드 유닛(200)의 큰 디스플레이(214)를 활용할 수 있도록 하고, 또 모바일 디바이스(250)에서만 지원되는 음성 인식 기능을 자동차(100)의 헤드 유닛(200)에서도 활용할 수 있다는 점에서 매우 유용하다. 대표적인 카 미러링 기능은 구글(Google)의 안드로이드 오토(Android Auto)가 있다. 이와 같은 카 미러링은 자동차(100)의 헤드 유닛(200)과 사용자의 모바일 디바이스(250)가 유선/무선 통신이 가능하도록 연결된 상태일 때 정상적으로 동작할 수 있다.
도 5는 모바일 디바이스에 탑재되는 안드로이드 플랫폼을 나타낸 도면이다. 즉, 안드로이드 기반의 모바일 디바이스(250)(예를 들면 스마트폰)에는 안드로이드 운영 체제가 탑재된다. 도 5에 나타낸 것과 같은 안드로이드 플랫폼(500)이 모바일 디바이스(250)에 탑재되어 안드로이드 운영 체제로서 동작한다. 안드로이드 플랫폼(500)은 리눅스 커널(502)과 라이브러리(504), 런타임(506), 어플리케이션 프레임워크(508), 어플리케이션(510)을 포함을 포함하는 다수의 계층으로 이루어진다.
리눅스 커널(502)은 안드로이드 플랫폼(500)의 최하위 계층에 위치한다. 리눅스 커널(502)은 안드로이드 플랫폼(500)의 운영 체제(Operating System, OS)로서 기능한다. 즉 안드로이드 플랫폼(500)이 모바일 디바이스(250)에 탑재되면, 리눅스 커널(502)은 모바일 디바이스(250)의 운영 체제로서 동작한다. 리눅스 커널(502)은 모바일 디바이스(250)의 전원 공급과 파일 시스템 관리, 멀티태스킹 지원, 메모리 관리, 프로세스 실행/관리 등을 작업을 수행한다. 또한 리툭스 커널(502)은 네트워크 인터페이스 및 하드웨어 인터페이스를 위한 다양한 장치 드라이버들을 제공한다.
리눅스 커널(502)이 제공하는 장치 드라이버들은, 디스플레이 드라이버와 USB 드라이버, 블루투스 드라이버, 카메라 드라이버, 바인더 드라이버, 공유 메모리 드라이버, 오디오 드라이버, 와이파이 드라이버 등을 예로 들 수 있다. 이 중에서 USB 드라이버(Universal Serial Bus Driver)는 USB 호스트와 USB 액세서리 사이의 USB 통신을 지원한다. USB 액세서리 모드일 때, 사용자의 모바일 디바이스(250)와 자동차(100)의 헤드 유닛(200)이 USB 케이블(292)을 통해 연결된 환경에서는 헤드 유닛(200)이 USB 호스트이고 모바일 디바이스(250)가 USB 액세서리이다.
안드로이드 플랫폼(500)에서 라이브러리(504)는 리눅스 커널(502)의 상위 계층에 위치한다. 안드로이드 플랫폼(500)의 라이브러리(504)는 표준 자바 라이브러리와 안드로이드 라이브러리를 포함한다. 표준 자바 라이브러리는 문자열 처리 및 파일 처리, 네트워킹 등의 일반적인 작업을 지원한다. 안드로이드 라이브러리는 안드로이드 애플리케이션 개발에 특화된 다양한 자바 기반 라이브러리이다. 안드로이드 라이브러리는 사용자 인터페이스 생성, 그래픽 처리, 데이터베이스 액세스 등을 가능하게 한다.
안드로이드 플랫폼(500)에서 런타임(506)은 리눅스 커널(502)의 상위 계층에 라이브러리(504)와 같은 레벨의 계층에 위치한다. 안드로이드 플랫폼(500)의 런타임(506)은 자바(JAVA)로 작성된 안드로이드 어플리케이션이 실행되도록 하는 가상 머신이다. 하나의 어플리케이션이 칩셋의 종류와 하드웨어 조건이 서로 다른 다양한 환경에서도 호환성을 유지하면서 무리 없이 구동될 수 있는 것은 바로 이 런타임(506) 때문이다. 자바로 작성된 어플리케이션은 바이트 코드로 컴파일된 후 배포 및 설치되는데, 이 어플리케이션이 실행될 때마다 가상 머신인 런타임에서 실행 가능한 코드로 변환된다. 런타임은 달빅(Dalvik)이 주로 사용되고 있으며, 안드로이드 버전 가운데 킷캣 이후 버전에는 안드로이드 런타임(Android RunTime, ART)이 추가되어 달빅과 ART 가운데 하나를 선택할 수 있게 되었다.
안드로이드 플랫폼(500)에서 어플리케이션 프레임워크(508)는 라이브러리(502)와 런타임(506)의 상위 계층에 위치한다. 앞서 설명한 라이브러리(504)가 어플리케이션 프레임워크(508)와 동일한 계층으로 구분되기도 한다. 어플리케이션 프레임워크는 안드로이드 플랫폼(500)을 위한 어플리케이션 표준 구조를 구현하는 클래스의 모임이다. 어플리케이션 프레임워크(508)는 소프트웨어 어플리케이션이나 솔루션의 개발이 수월하도록 하기 위해 협업화된 형태의 소프트웨어 환경을 제공한다.
어플리케이션 프레임워크(508)에는 다양한 관리자들이 포함될 수 있다. 즉, 전화 관리자와 위치 관리자, 알림 관리자, 컨텐츠 제공자, 윈도우 관리자, 리소스 관리자, 안드로이드 오픈 액세서리 프로토콜(AOAP, Android Open Accessory Protocol), USB 관리자 등이 어플리케이션 프레임워크(508)에 포함될 수 있다. 안드로이드 오픈 액세서리 프로토콜(AOAP)은 안드로이드 환경에서 USB 통신을 통해 바이트 단위의 데이터 통신이 이루어지도록 한다. USB 관리자는, USB 호스트에 연결되어 있는 USB 액세서리의 목록 열거(enumerate)와, 통신을 위한 장치 열기(open) 및 권한 요청 등을 수행한다.
어플리케이션(510)은 안드로이드 환경에서 실행되는 응용 소프트웨어의 그룹이다.
어플리케이션(510)은 기본 어플리케이션과 써드파티 어플리케이션, 커스텀 어플리케이션 등으로 구분할 수 있다. 어플리케이션(510)은 '앱' 또는 '어플'로 축약되어 불리기도 한다. 기본 어플리케이션은 안드로이드 플랫폼(500)이 탑재되어 있는 디바이스(예를 들면 모바일 디바이스(250))에 공장 출고 시부터 설치되어 있는 어플리케이션이다. 예를 들면, 전화 어플리케이션과 주소록 어플리케이션, 웹 브라이우저 등을 예로 들 수 있다. 써드파티 어플리케이션(Third-Party Application)은 외부의 어플리케이션 공급자가 공급하는 어플리케이션이다. 구글의 구글 플레이(Google Play)나 애플의 앱스토어(Appstore)를 통해 제공되는 대부분의 유료/무료 어플리케이션이 써드파티 어플리케이션에 해당한다. 안드로이드 오토(Android Auto)는 구글 플레이를 통해 제공되는 차량용 써드파티 어플리케이션의 하나이다. 커스텀 어플리케이션은 특정 사용자를 대상으로 특화된 어플리케이션이다. 예를 들면 특정 자동차 제조사에서 특정 모델의 차량을 구입한 소비자에게 제공하는 차량용 텔레매틱스 어플리케이션을 예로 들 수 있다.
도 6은 도 5에 나타낸 안드로이드 플랫폼에서, 본 발명의 USB 연결 제어(USB Connectivity Control)를 위한 구성을 나타낸 도면이다. 본 발명의 실시 예에에서, 헤드 유닛(200)과 모바일 디바이스(250)가 USB를 통해 연결되어 있고 또 모바일 디바이스(250)에서 어플리케이션(예를 들면 안드로이드 오토(610) 또는 텔레매틱스 어플리케이션(608)과 같은 차량용 어플리케이션)이 실행되고 있는 상태에서, 만약 실행 중인 어플리케이션(510510)이 사용자에 의해 '강제 종료'되면 해당 어플리케이션(510)을 다시 실행하더라도 자동차(100)와 모바일 디바이스(250) 사이의 USB 통신이 이루어지지 않는다.
모바일 디바이스(250)와 USB 액세서리(예를 들면 헤드 유닛(200))이 USB 케이블(292)을 통해 연결되면, 모바일 디바이스(250)의 리눅스 커널(502)은 헤드 유닛(200)으로부터 프로토콜 패킷(Protocol Packet)을 수신하고, 이 수신에 응답하여 리눅스 커널(502)과 어플리케이션 프레임워크(508), 어플리케이션(510) 사이에 파일 디스크립터(File Descriptor)의 판독(read)과 기록(Write)이 차례로 이루어진 후 리눅스 커널(502)에서 헤드 유닛(200)으로 프로토콜 패킷의 전송한다. 이 과정이 정상적으로 이루어져야만 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 통신이 정상적으로 이루어진다. 그러나 어플리케이션이 사용자에 의해 강제 종료되면, 모바일 디바이스(250)의 리눅스 커널(502)이 헤드 유닛(200)으로부터 프로토콜 패킷을 수신하더라도 모바일 디바이스(250)의 리눅스 커널(502)과 어플리케이션 프레임워크(508), 어플리케이션(510) 사이에 파일 디스크립터(File Descriptor)의 판독(read)과 기록(Write)이 이루어지지 않아서 결국 헤드 유닛(200)과 모바일 디바이스(250) 사이의 정상적인 USB 통신이 이루어지지 않는다.
어플리케이션(510)의 강제 종료 시 이와 같은 이유로 USB 통신이 단절되면, 기존에는 헤드 유닛(200)과 모바일 디바이스(250)의 물리적 USB 연결(예를 들면 USB 케이블(292)을 통한 연결)을 강제로 해제한 후 다시 물리적인 USB 연결을 수행해야만 헤드 유닛(200)과 모바일 디바이스(250)의 USB 통신이 정상화될 수 있었다. 여기서 어플리케이션의 '강제 종료'는 어플리케이션의 메뉴 상에 마련되어 있는 자체 종료 기능을 통해 해당 어플리케이션을 종료하는 것이 아니라, 시스템 상의 작업 관리자 또는 어플리케이션 관리자 등에서 해당 어플리케이션을 강제로 종료하는 것을 의미한다.
그러나, 본 발명의 실시 예에서는 모바일 디바이스(250)에서 실행 중이던 어플리케이션(510)의 강제 종료로 인한 USB 통신의 단절 문제를 해결하기 위해 모바일 디바이스(250)에서 수행될 어플리케이션(510)에 USB 제어 권한을 부여하여 안드로이드 오픈 액세서리 프로토콜(AOAP)(606)를 초기화하고 USB 관리자(604)에 기록되어 있는 내용을 수정하여 어플리케이션의 강제 종료 이전 기록을 수정함으로써 USB 호스트인 헤드 유닛(200)과 USB 액세서리인 모바일 디바이스(250) 사이의 USB 통신이 원활히 재개될 수 있도록 한다. USB 드라이버(602)는 모바일 디바이스(250)가 다른 USB 호스트와 USB 통신을 수행할 수 있는 환경을 제공한다.
도 7은 본 발명의 실시 예에 따른 USB 통신 제어 방법을 나타낸 도면이다. 안드로이드 플랫폼이 탑재된 두 개의 디바이스가 USB 케이블을 통해 연결되어 USB 통신이 이루어지는 상태에서 어느 한 개의 디바이스에서 실행되고 있던 어플리케이션이 사용자에 의해 강제로 종료되면 이로 인해 두 개의 디바이스 사이의 USB 통신이 단절되어 강제 종료된 어플리케이션을 재실행하더라도 USB 통신이 재개되지 않고 단절된 상태로 유지된다. 기존에는 이 문제를 해결하기 위해 두 개의 디바이스 사이의 USB 케이블의 연결을 해제하고 재연결한 후 어플리케이션을 실행해야만 USB 통신이 재개될 수 있었다. 도 7에 나타낸 본 발명의 실시 예에 따른 USB 통신 제어 방법에서는, USB 케이블(292)을 통해 USB 호스트에 연결된 USB 액세서리에서 실행 중이던 어플리케이션이 강제 종료되더라도 USB 케이블(292)의 물리적 연결 해제 후 재 연결 과정 없이 USB 액세서리인 모바일 디바이스(250)의 안드로이드 플랫폼(500)의 AOAP(606)를 초기화하고 USB 관리자(604)를 수정하는 것만으로 USB 호스트인 헤드 유닛(200)과의 USB 통신이 재개될 수 있도록 한다.
안드로이드 플랫폼(500)을 탑재한 USB 호스트와 USB 액세서리, 예를 들면 자동차(100)의 헤드 유닛(200)과 사용자의 모바일 디바이스(250)가 USB 케이블(292)을 통해 서로 연결되면, 모바일 디바이스(250)의 안드로이드 플랫폼(500)은 USB 케이블(292)을 통한 미리 약속된 통신 패킷의 교환을 통해 헤드 유닛(200)과의 USB 연결을 인식한다(702).
헤드 유닛(200)과 모바일 디바이스(250)가 USB 케이블(292)을 통해 연결되어 상호 간에 USB 통신이 이루어지는 상태에서, 모바일 디바이스(250)에 설치되어 있는 어플리케이션(510)이 사용자에 의해 실행될 수 있다.
헤드 유닛(200)과 모바일 디바이스(250) 사이에 USB 통신이 이루어지고 있는 상태에서, 모바일 디바이스(250)는 헤드 유닛(200)으로부터 자동차(100)의 고유 정보들을 수신한다(704). 자동차(100)의 고유 정보들은, 예를 들면 등록 번호, 텔메매틱스 서비스를 위해 부여된 고유 번호, 현재 위치를 나타내는 GPS 좌표 등을 포함할 수 있다.
모바일 디바이스(250)의 어플리케이션(510)은 헤드 유닛(200)으로부터 자동차(100)의 고유 정보들을 수신함으로써 자동차(100)와 통신에 성공하였음을 확인할 수 있다(706).
모바일 디바이스(250)에서, 안드로이드 플랫폼(500)의 USB 관리자(604)는 어플리케이션(510)에 USB 제어 권한을 부여한다(708). 어플리케이션(510)에 부여되는 USB 제어 권한은 모바일 디바이스(250)에 연결된 USB 액세서리의 목록과 연결 정보를 확인할 수 있는 권한과 모바일 디바이스(250)의 USB 설정을 초기화할 수 있는 권한을 포함한다.
모바일 디바이스(250)에서 USB 관리자(604)가 어플리케이션(510)에 부여하는 USB 제어 권한은 모바일 디바이스(250)에서 어플리케이션(510)의 강제 종료로 인해 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 통신이 단절되었을 때 어플리케이션(510)이 USB 설정을 초기화할 수 있도록 하기 위한 권한이다. 모바일 디바이스(250)의 어플리케이션(510)이 부여된 권한을 이용하여 USB 설정을 초기화함으로써 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 통신이 재개될 수 있다.
모바일 디바이스(250)에서 실행되는 어플리케이션(510)이 안드로이드 플랫폼(500)의 USB 관리자(604)로부터 USB 제어 권한을 부여받는 것은 앞서 708의 과정에서 설명한 바 있다. 이와 같이 USB 제어 권한을 부여받은 어플리케이션(510)은 주어진 USB 제어 권한을 이용하여 헤드 유닛(200)의 USB 정보를 획득한다(710). 여기서 USB 정보는 USB 호스트인 헤드 유닛(200)에 연결된 USB 액세서리의 목록과 연결 정보를 포함한다. 호스트 모드에서 헤드 유닛(200)을 기준으로 할 때 사용자의 모바일 디바이스(250)는 USB 액세서리이다.
모바일 디바이스(250)에서, 어플리케이션(510)은 안드로이드 플랫폼(500)의 어플리케이션 프레임워크(508)에 마련되는 USB 액세서리 폴더(/dev/usb_accessory)의 디바이스 노드(device node) 데이터를 판독하여 USB 액세서리의 목록과 연결 정보를 획득한다. 이로써 모바일 디바이스(250)의 어플리케이션은 헤드 유닛(200)에 연결되어 있는 모든 USB 액세서리에 대한 정보를 획득할 수 있다.
모바일 디바이스(250)의 안드로이드 플랫폼(508)에서 어플리케이션(510)은 어플리케이션 프레임워크(508)로부터 제공되는 USB 정보로부터 파일 디스크립터(file descriptor)를 획득하고, 이 파일 디스크립터의 파일 입력 스트림(FileInputStream)과 파일 출력 스트림(FileOutputStream)을 통해 USB 액세서리 즉 헤드 유닛(200)과 데이터를 주고 받는다.
이 상태에서, 모바일 디바이스(250)에서 실행 중인 어플리케이션(510)이 사용자에 의해 강제 종료되었다가 필요에 의해 재실행될 수 있다(712).
여기서 '강제 종료'는 해당 어플리케이션의 종료 기능을 통해 해당 어플리케이션을 종료하는 것이 아니라, 작업 관리자 또는 어플리케이션 관리자를 통해 이루어지는 강제 종료를 의미한다.
강제 종료된 어플리케이션(510)을 재실행하더라도, 기존에는 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 통신이 재개되지 않아 USB 케이블(292)의 연결을 강제로 해제한 다음 다시 연결하는 물리적 초기화가 필요했는데, 본 발명의 실시 예에서는 이를 개선하여 다음에 설명하는 안드로이드 오픈 액세서리 프로토콜(AOAP)(606)의 초기화 및 USB 관리자(604)의 수정을 통해 USB 케이블(292)의 강제 해제 과정 없이 소프트웨어적인 제어를 통해 USB 호스트와 USB 액세서리 즉 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 통신이 재개될 수 있도록 한다(아래의 716 및 718의 설명 참조).
만약 모바일 디바이스(250)에서 실행 중인 어플리케이션(510)이 사용자에 의해 강제 종료되면(712의 '예'), 어플리케이션(510)은 어플리케이션 프레임워크(508)의 안드로이드 오픈 액세서리 프로토콜(AOAP)(606)을 초기화한다(716). 이 경우 어플리케이션(510)은 실행되고 있지 않으므로, 백그라운드 작업으로 안드로이드 오픈 액세서리 프로토콜(AOAP)(606)을 초기화할 수 있다.
어플리케이션(510)은, 안드로이드 오픈 액세서리 프로토콜(AOAP)(606)을 초기화한 다음 모바일 디바이스(250)가 연결되어 있는 USB 호스트 즉 헤드 유닛(200)의 액세서리 연결 정보를 반영하여 USB 관리자(604)의 USB 액세서리 목록 및 연결 정보를 수정한다(718). 앞서 710의 과정에서 헤드 유닛(200)의 USB 정보를 획득한 상태이므로 710의 과정에서 획득하여 저장한 USB 정보에 기초하여 USB 액세서리의 목록 및 연결 정보를 어플리케이션(510)의 강제 종료 이전 상태로 수정할 수 있다.
이와 같이, 어플리케이션 프레임워크(508)의 안드로이드 오픈 액세서리 프로토콜(AOAP)(606)을 초기화한 후 USB 관리자(604)의 USB 액세서리 목록 및 연결 정보를 어플리케이션(510)의 강제 종료 이전 상태로 수정함으로써 마치 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 케이블(292)을 통한 연결을 해제한 후 다시 연결한 것과 같은 효과를 얻을 수 있다.
어플리케이션 프레임워크(508)의 안드로이드 오픈 액세서리 프로토콜(AOAP)(606)을 초기화한 후 USB 관리자(604)의 USB 액세서리 목록 및 연결 정보를 어플리케이션(510)의 강제 종료 이전 상태로 수정함으로써 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 통신이 재개되면 모바일 디바이스(250)의 안드로이드 플랫폼(500)은 실행 중 강제 종료되었던 어플리케이션(510)을 자동으로 재실행한다(720).
이처럼, 본 발명의 실시 예에 따른 USB 통신 제어 방법에서는, 모바일 디바이스(250)에서 어플리케이션(510)의 강제 종료로 인해 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 통신이 단절되었을 때 어플리케이션(510)이 USB 설정을 소프트웨어적으로 초기화하여 헤드 유닛(200)과 모바일 디바이스(250) 사이의 USB 통신이 재개되도록 하기 때문에 USB 케이블(292)을 연결 해제 후 재 연결하는 물리적 과정이 필요치 않다.
재실행된 어플리케이션(510)은 자동차(100)의 헤드 유닛(200)과의 통신을 시도하여 통신이 정상적으로 이루어지는지를 확인한다(722).
도 8은 본 발명의 또 다른 실시 예에 따른 USB 통신 제어 방법을 나타낸 도면이다. 도 8에 나타낸 USB 통신 제어 방법이 도 7에 나타낸 USB 통신 제어 방법과 다른 부분만을 설명하면 다음과 같다. 도 7에서는 어플리케이션(510)의 실행(703) 후 모바일 디바이스(250)의 어플리케이션(510)에 USB 제어 권한을 부여했다(710). 이와 달리 도 8에서는 이미 실행된 어플리케이션(510)에 USB 제어 권한을 부여하지 않고, 이미 USB 제어 권한을 가진 어플리케이션(510)을 실행한다(803). 즉, 도 8의 실시 예에서 실행되는 어플리케이션(510)은 모바일 디바이스(250)에 설치될 때 이미 USB 제어 권한을 부여받는다. 이후의 과정은 도 7에 나타낸 실시 예의 경우와 동일하다.
위의 설명은 기술적 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 기술 분야에서 통상의 지식을 가진 자라면 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서 위에 개시된 실시 예 및 첨부된 도면들은 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 기술적 사상의 범위가 한정되는 것은 아니다. 그 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 자동차
110 : 본체
112 : 윈드쉴드
114 : 아웃사이드 미러
122, 124 : 휠
152 : 안테나
190 : 도어
192 : 시건 장치
200 : 헤드 유닛(USB 액세서리)
214 : 디스플레이
250 : 모바일 디바이스(USB 호스트)
254 : 디스플레이(외부 기기)
502 : 리눅스 커널
504 : 라이브러리
506 : 런타임
508 : 어플리케이션 프레임워크
510 : 어플리케이션
602 : USB 드라이버
604 : USB 관리자
606 : 안드로이드 오픈 액세서리 프로토콜(AOAP)
608 : 텔레매틱스 어플리케이션
610 : 안드로이드 오토 어플리케이션

Claims (7)

  1. 안드로이드 운영 체제를 기반으로 동작하는 유에스비(USB) 호스트와 유에스비 액세서리가 유에스비 케이블을 통해 연결된 상태에서 상기 유에스비 액세서리의 어플리케이션이 실행되면 상기 어플리케이션이 상기 유에스비 호스트와 상기 유에스비 액세서리의 연결 정보를 획득하는 단계와;
    상기 유에스비 액세서리에서 실행 중인 상기 어플리케이션이 강제로 종료되면 상기 어플리케이션이 상기 유에스비 액세서리의 안드로이드 오픈 액세서리 프로토콜(AOAP)을 초기화하고 상기 유에스비 호스트와 상기 유에스비 액세서리의 유에스비 연결 정보를 상기 어플리케이션의 강제 종료 이전 상태로 수정하여 상기 유에스비 액세서리와 상기 유에스비 호스트 사이의 유에스비 통신이 재개되도록 하는 단계를 포함하는 유에스비 액세서리의 유에스비 통신 제어 방법.
  2. 제 1 항에 있어서,
    상기 유에스비 제어 권한은 상기 유에스비 호스트에 연결되어 있는 상기 유에스비 액세서리의 목록 및 연결 정보를 확인하는 권한과 상기 유에스비 액세서리의 유에스비 설정을 초기화하는 권한을 포함하는 유에스비 호스트의 유에스비 통신 제어 방법.
  3. 제 1 항에 있어서,
    상기 유에스비 호스트의 상기 안드로이드 운영 체제의 플랫폼에 마련되는 유에스비 액세서리 폴더(/dev/usb_accessory)의 디바이스 노드(device node)의 데이터를 판독하여 상기 유에스비 액세서리의 목록 및 연결 정보를 확인하는 유에스비 호스트의 유에스비 통신 제어 방법.
  4. 제 2 항에 있어서,
    실행 중인 상기 어플리케이션에 상기 유에스비 제어 권한을 부여하는 단계를 더 포함하는 유에스비 호스트의 유에스비 통신 제어 방법.
  5. 제 2 항에 있어서,
    상기 어플리케이션이 상기 유에스비 액세서리에 설치될 때 상기 어플리케이션이 상기 유에스비 제어 권한을 획득하는 단계를 더 포함하는 유에스비 액세서리의 유에스비 통신 제어 방법.
  6. 제 1 항에 있어서,
    상기 유에스비 액세서리는 안드로이드 운영 체제 기반의 모바일 디바이스인 유에스비 액세서리의 유에스비 통신 제어 방법.
  7. 제 1 항에 있어서,
    상기 유에스비 호스트는 안드로이드 운영 체제 기반의 자동차 헤드 유닛인 유에스비 액세서리의 유에스비 통신 제어 방법.
KR1020160109970A 2016-08-29 2016-08-29 유에스비 액세서리의 유에스비 통신 제어 방법 KR101856930B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160109970A KR101856930B1 (ko) 2016-08-29 2016-08-29 유에스비 액세서리의 유에스비 통신 제어 방법
US15/370,959 US10089252B2 (en) 2016-08-29 2016-12-06 USB communication control method for USB accessory
CN201611145192.0A CN107783930B (zh) 2016-08-29 2016-12-13 用于usb附件的usb通信控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160109970A KR101856930B1 (ko) 2016-08-29 2016-08-29 유에스비 액세서리의 유에스비 통신 제어 방법

Publications (2)

Publication Number Publication Date
KR20180024209A true KR20180024209A (ko) 2018-03-08
KR101856930B1 KR101856930B1 (ko) 2018-05-11

Family

ID=61242724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160109970A KR101856930B1 (ko) 2016-08-29 2016-08-29 유에스비 액세서리의 유에스비 통신 제어 방법

Country Status (3)

Country Link
US (1) US10089252B2 (ko)
KR (1) KR101856930B1 (ko)
CN (1) CN107783930B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10934987B2 (en) * 2017-11-24 2021-03-02 Bezalel Hirsch Remote starter adapter for use with a communication device
CN108629175B (zh) * 2018-05-14 2020-07-17 深圳市江波龙电子股份有限公司 Usb大容量存储设备的访问控制方法及访问控制装置
CN109150926A (zh) * 2018-11-19 2019-01-04 炬星科技(深圳)有限公司 一种数据通信方法及人机交互系统
CN111787150B (zh) * 2019-04-04 2022-07-22 阿里巴巴集团控股有限公司 语音交互模组以及车载支架
CN112463690A (zh) * 2020-12-01 2021-03-09 苏州臻迪智能科技有限公司 一种实现数据传输的方法及装置
CN112799995B (zh) * 2021-01-14 2022-09-13 杭州新瀚光电科技有限公司 一种可控的usb主从模式互换的方法
EP4318230A1 (en) * 2021-05-12 2024-02-07 Samsung Electronics Co., Ltd. Electronic apparatus comprising usb connection terminal and operating method therefor
CN114048402B (zh) * 2022-01-12 2022-04-22 深圳软牛科技有限公司 Android系统的FRP锁移除方法、装置、设备及存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553375B1 (en) * 1998-11-25 2003-04-22 International Business Machines Corporation Method and apparatus for server based handheld application and database management
JP4116212B2 (ja) * 1999-12-28 2008-07-09 株式会社東芝 通信装置およびその制御方法
JP2001306413A (ja) 2000-04-25 2001-11-02 Sony Corp Usb通信デバイス
US7395366B1 (en) * 2002-09-27 2008-07-01 Cypress Semiconductor Corp. System, method, and apparatus for connecting USB peripherals at extended distances from a host computer
US7409563B2 (en) * 2003-07-22 2008-08-05 Lockheed Martin Corporation Method and apparatus for preventing un-authorized attachment of computer peripherals
CN100489827C (zh) * 2004-12-30 2009-05-20 诺基亚公司 利用访问控制信息使用具有多个配置的设备中的配置的方法、系统和设备
US7702825B2 (en) * 2005-06-29 2010-04-20 Intel Corporation Enhancements to universal serial bus (USB) suspend and resume operations
CN100580642C (zh) * 2006-02-28 2010-01-13 国际商业机器公司 通用串行总线存储设备及其访问控制方法
JP4343973B2 (ja) 2007-05-23 2009-10-14 シャープ株式会社 情報処理装置および情報処理方法
CN101419651A (zh) * 2007-10-23 2009-04-29 鸿富锦精密工业(深圳)有限公司 具有外设使用权管理功能的电子装置及方法
JP5566054B2 (ja) 2009-06-24 2014-08-06 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
KR101601307B1 (ko) 2010-09-29 2016-03-08 현대자동차주식회사 스마트폰을 이용한 주차 위치 확인 방법
WO2013074868A1 (en) * 2011-11-16 2013-05-23 Flextronics Ap, Llc Complete vehicle ecosystem
US8990329B1 (en) * 2012-08-12 2015-03-24 Google Inc. Access control list for a multi-user communication session
JP2014085857A (ja) * 2012-10-24 2014-05-12 Alpine Electronics Inc 電子装置、電子装置の通信制御方法、電子装置の通信制御プログラム、情報端末装置および電子システム
KR20150011897A (ko) 2013-07-24 2015-02-03 현대모비스 주식회사 와이파이 게이트웨이를 이용한 주차장 차량 위치 확인 장치 및 그 방법
KR101462912B1 (ko) 2013-07-31 2014-11-21 (주)텔레컨스 스마트폰용 앱을 차량의 avn장치에서 이용하기 위한 서비스 링크 방법 및 이를 수행하는 avn장치
US9268969B2 (en) * 2013-08-14 2016-02-23 Guardtime Ip Holdings Limited System and method for field-verifiable record authentication
KR101550055B1 (ko) 2014-03-18 2015-09-04 주식회사 오비고 템플릿 기반 ui를 이용하는 애플리케이션 커넥터를 제공하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
JP6381247B2 (ja) * 2014-03-25 2018-08-29 キヤノン株式会社 画像処理装置と携帯端末を有するシステム
KR102238214B1 (ko) * 2014-09-12 2021-04-12 삼성전자 주식회사 디스플레이장치 및 그 제어방법
KR101611204B1 (ko) 2014-09-25 2016-04-26 현대자동차주식회사 인터페이스 장치, 그를 가지는 차량 및 그의 제어 방법
CN104572564B (zh) * 2015-01-13 2018-04-20 上海动联信息技术股份有限公司 一种实现android移动设备与USB OTG主机通讯的方法
US9959024B2 (en) * 2015-01-27 2018-05-01 I/O Interconnect, Ltd. Method for launching applications of handheld computer through personal computer
CA2982244C (en) * 2015-04-14 2024-01-23 Gigavation, Inc. Paravirtualized security threat protection of a computer-driven system with networked devices
CN105549821A (zh) * 2015-12-18 2016-05-04 东软集团股份有限公司 移动设备与车机的互联方法、装置和系统

Also Published As

Publication number Publication date
US10089252B2 (en) 2018-10-02
KR101856930B1 (ko) 2018-05-11
US20180060251A1 (en) 2018-03-01
CN107783930A (zh) 2018-03-09
CN107783930B (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
KR101856930B1 (ko) 유에스비 액세서리의 유에스비 통신 제어 방법
US9233655B2 (en) Cloud-based vehicle information and control system
CN107783928B (zh) 用于usb主机的usb通信控制方法
US11330059B2 (en) Head unit of a vehicle, a vehicle having same, and a method of controlling a vehicle
CN104641622B (zh) 用于借助于移动电话控制车载计算机的系统
US20140164559A1 (en) Offline configuration of vehicle infotainment system
US20150193090A1 (en) Method and system for application category user interface templates
US9820308B2 (en) Apparatus and method for controlling outgoing calls in vehicle
JP5898195B2 (ja) 無線データ機能を備えたトランク設置型自動車ネットワークサーバ
JP6133993B2 (ja) 携帯型端末、車載装置、制御方法、及び制御プログラム
US20160197782A1 (en) Method and apparatus for connecting a mobile communication device to a head unit of a vehicle
JP2013546223A (ja) 車両においてモバイルアプリケーションを操作する方法及びシステム
US20210131819A1 (en) Portable vehicle touch screen device utilizing functions of smart phone
US11880701B2 (en) Extensible computing architecture for vehicles
US20140130063A1 (en) Systems and methods for low overhead remote procedure calls
CN106506583B (zh) 用于车辆计算系统无线传输数据的方法和系统
CN112667301A (zh) 车载操作系统的扩展坞实现方法和系统、电子设备
US20230007460A1 (en) Method and system for segmenting and transmiting data between computing devices and vehicle head units
KR102322920B1 (ko) 자동차의 소프트웨어 업데이트 장치 및 방법
US10567512B2 (en) Systems and methods to aggregate vehicle data from infotainment application accessories
KR20220139001A (ko) 차량 내 심리스한 컨텐츠 제공을 위한 서버 및 그 동작 방법
Nikhade et al. Advanced Android Based In-Vehicle Infotainment (IVI) Software Testing
KR20190026340A (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
GRNT Written decision to grant