KR20230086572A - 차량용 네비게이션 장치 및 이의 동작 방법 - Google Patents
차량용 네비게이션 장치 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR20230086572A KR20230086572A KR1020220112209A KR20220112209A KR20230086572A KR 20230086572 A KR20230086572 A KR 20230086572A KR 1020220112209 A KR1020220112209 A KR 1020220112209A KR 20220112209 A KR20220112209 A KR 20220112209A KR 20230086572 A KR20230086572 A KR 20230086572A
- Authority
- KR
- South Korea
- Prior art keywords
- mobile device
- information
- class
- avn
- layer
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 59
- 230000004913 activation Effects 0.000 claims abstract description 7
- 238000011017 operating method Methods 0.000 claims abstract 2
- 230000006870 function Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
Abstract
차량용 네비게이션 장치가 모바일 장치와 연결되는 동작 방법으로서, 연결을 시도하는 모바일 장치로부터 디바이스 디스크립터를 수신하고, 디바이스 디스크립터를 기초로 모바일 장치의 복수의 구성들과 인터페이스들을 확인한다. 모바일 장치로 복수의 구성들 중 선택한 특정 구성의 활성화를 요청하고, 활성화된 특정 구성에서 제공하는 서비스를 모바일 장치가 연결된 차량용 네비게이션을 통해 제공한다. 이때, 모바일 장치는 iOS 운영체제 또는 iPadOS 운영체제가 탑재되어 있다.
Description
본 발명은 차량 AVN(Audio Video Navigation) 기기인 네비게이션 장치에 iOS 및 iPadOS가 탑재되어 있는 모바일 장치가 연결을 시도할 때 모바일 장치를 네비게이션 장치에 연결하기 위한 동작 방법에 관한 것이다.
급격한 IT 서비스의 발전과 더불어 차량 내 인포테인먼트(In-vehicle Infotainment)에 대한 관심이 증가함에 따라, 관련 기술들이 활발히 개발되고 있다. 그리고, 소비자들이 모바일 장치에서 이용 가능한 서비스를 차량 내에서도 연동하여 이용하고자 하는 수요도 증가하고 있다. 이에 따라, AVN, CID(Center Information Display), 클러스터(계기판) 등으로 구성된 차량 디지털 콕핏(Cockpit) 시스템과 모바일 장치를 연동하는 커넥티드 카(Connected Car) 기술이 발전하고 있다.
특히, 모바일 장치에서 사용되는 OS(Operating Systems)의 점유율의 대부분을 차지하는 주요 공급사(애플(Apple)과 구글(Google))는 각각 독자적인 연결(Connectivity) 규격인 카플레이(CarPlay)와 Android Auto를 출시하였다. 또한, 알리바바(Alibaba), 바이두(Baidu), 텐센트(Tencent) 등 중국의 기업들도 독자적으로 규격화한 연결 기술을 개발하고 있다. 이와 같이, IT 시장을 주도하고 있는 다양한 기업들이 출시한 모바일 장치 및 연결 기술에 대응하여, 해당 모바일 장치와의 연동을 원활하게 지원할 수 있는 차량 내 시스템 또한 요구되고 있다.
그러나 표준 기술 사양서는 해당 프로토콜에 상응하기 위해 차량 내 시스템이 지원해야 하는 기능이 어떤 기능인지만 명시하고 있고, 실제로 해당 기능을 어떻게 구현해야 하는지에 대한 내용은 명확하게 기술하고 있지 않다. 따라서, 모바일 장치와 연동하는 차량 내 시스템이 지원해야 하는 기능은, 차량 내 시스템을 개발하는 각 주체 별로 상이하게 구현되고 있다.
이에 따라, 임의의 기능이 차량 내 시스템 내부에 존재하는 다른 구성 요소에 의존성이 큰 형태로 구현되었다면, 해당 기능에서 문제가 발생했을 때 차량 내 시스템 전체에 영향을 미치는 일이 생길 수 있다. 특히, 차량은 사용자의 안전과 직결되는 수단이므로 오류 상황에 대해 충분히 고려되지 않은 채로 개발된 기능은 차량 및 운전자에게 치명적일 수 있다.
그리고, 애플에서 출시한 iOS 및 iPadOS 모바일 장치는, 모바일 장치가 지원할 수 있는 특성(feature)을 사용자가 자신의 모바일 장치에서 직접 설정할 수 있는 옵션을 제공한다. 그러나, 애플의 연결 규격인 카플레이(CarPlay)를 따르기 위한 애플 MFi(Made for iPhone/iPod/iPad) 액세서리 인터페이스 설명서(accessory interface specification)는, 모바일 장치가 연결된 차량 내 시스템에서 지원할 수 있는 특성을 사용자가 선택적으로 설정할 수 있다고 정의하지는 않는다.
만약 차량 내 시스템과 모바일 장치의 연동 과정에서 모바일 장치에 설정되어 있는 특성 보다 포괄적인 특성으로 임의로 변경되는 오류가 발생하는 경우, 실제로 해당 시스템에서는 모바일 장치에서 임의로 변경된 특성을 지원할 수 없음에도 불구하고 해당 특성으로 동작하려는 오류가 발생할 수 있다. 이처럼 차량 내 시스템에서 해당 시스템이 지원 가능한 특성을 선택적으로 설정할 수 없는 경우, 모바일 장치의 오동작 상황대로 해당 시스템이 동작할 수 있는 종속성의 문제점이 있다.
따라서, 본 발명은 MFi 설명서에 정의되어 있는 벤더 고유 명령어를 사용하여, 특정 운영체제가 탑재된 모바일 장치가 AVN 기기에 연결되는 것을 지원하는 차량용 네비게이션 장치 및 이의 동작 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 차량용 네비게이션 장치의 동작 방법으로서,
연결을 시도하는 모바일 장치로부터 디바이스 디스크립터를 수신하고, 상기 디바이스 디스크립터를 기초로 상기 모바일 장치가 제공하는 복수의 기능들 각각에 대한 복수의 구성들과 인터페이스들을 확인하는 단계, 상기 모바일 장치로 상기 복수의 구성들 중 선택한 특정 구성의 활성화를 요청하는 단계, 그리고 상기 활성화된 특정 구성에서 제공하는 서비스를 상기 모바일 장치가 연결된 차량용 네비게이션을 통해 제공하는 단계를 포함하고, 상기 모바일 장치는 iOS 운영체제 또는 iPadOS 운영체제가 탑재된 모바일 장치이다.
상기 활성화를 요청하는 단계는, 상기 디바이스 디스크립터에 포함된 상기 모바일 장치의 제조사 식별 정보를 확인하는 단계, 상기 제조사 식별 정보를 기초로 상기 모바일 장치가 미리 설정된 특정 제조사이면, 상기 복수의 구성들 중 어느 하나의 구성의 인터페이스 클래스를 확인하는 단계, 그리고 상기 인터페이스 클래스가 오디오 클래스 또는 HID(Human Interface Devices) 중 하나이면, 오디오 클래스 또는 HID 클래스가 지원되도록 설정할 수 있다.
상기 인터페이스 클래스를 확인하는 단계는, 상기 어느 하나의 구성의 인터페이스 클래스가 상기 오디오 클래스와 상기 HID 클래스가 아니면, 상기 모바일 장치의 모든 구성들이 확인되었는지 판단하는 단계를 더 포함할 수 있다.
상기 모바일 장치의 모든 구성들이 확인되었는지 판단하는 단계는, 상기 모든 구성들이 확인되었으면, 상기 모바일 장치가 오디오 클래스 또는 HID 클래스를 지원하는지 판단하는 단계, 그리고 상기 모바일 장치가 상기 오디오 클래스 또는 HID 클래스 중 적어도 하나를 지원하면, 지원하는 클래스의 구성을 선택하는 단계를 더 포함할 수 있다.
상기 복수의 구성들과 인터페이스들을 확인하는 단계는, 연결된 상기 모바일 장치의 장치 경로를 확인하는 단계, 그리고 상기 장치 경로를 기초로 상기 모바일 장치의 장치 착탈 여부를 확인하고, 상기 모바일 장치의 롤(role)을 디바이스 롤에서 호스트 롤로 롤 스위칭하는 단계를 포함할 수 있다.
상기 차량용 네비게이션을 통해 제공하는 단계 이후에, 상기 모바일 장치의 연결이 해제되면, 상기 모바일 장치의 장치 상태 정보를 기초로 네트워크 제어 모델 드라이버를 해제하는 단계를 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 모바일 장치와 연결되는 차량용 네비게이션 장치로서,
상기 모바일 장치가 연결되는 인터페이스, 그리고 프로세서를 포함하고, 상기 프로세서는, 상기 모바일 장치가 연결되면 상기 모바일 장치의 디바이스 디스크립터와 상기 모바일 장치가 연결된 경로 정보를 등록하고, 상기 경로 정보를 기초로 상기 모바일 장치의 연결 여부를 확인하며, 상기 모바일 장치가 연결되면 상기 모바일 장치에 대한 구성 정보를 기초로 상기 모바일 장치가 제공하는 서비스를 위한 드라이버를 구동한다.
상기 디바이스 디스크립터는 상기 모바일 장치의 종류, 제조사, 그리고 상기 모바일 장치가 지원하는 구성 개수 중 적어도 하나의 정보를 포함하며, 상기 모바일 장치는 iOS 운영체제 또는 iPadOS 운영체제가 탑재될 수 있다.
상기 구성 정보는 상기 모바일 장치가 어떤 구성으로 연결되어 있는지를 포함할 수 있다.
상기 프로세서는, 상기 모바일 장치가 지원하는 특성을 식별하고, 식별한 특성에 따른 시스템 속성을 설정할 수 있다.
상기 프로세서는, 가상 파일 시스템을 제어하여 상기 모바일 장치가 호스트로 동작하도록 롤 스위치를 수행할 수 있다.
상기 프로세서는, 물리적으로 연결된 상기 모바일 장치의 식별 정보를 수집하거나, 상기 모바일 장치에 의해 발생하는 이벤트 정보를 수집하는 리눅스 커널 레이어, 상기 이벤트 정보에 포함된 경로 정보를 기초로 상기 모바일 장치의 착탈 여부를 확인하는 라이브러리 레이어, 상기 라이브러리 레이어에서 확인한 상기 모바일 장치의 착탈 여부에 대한 정보를 인텐트 형태로 어플리케이션 레이어로 전달하는 어플리케이션 프레임워크 레이어, 그리고 상기 모바일 장치로 상기 디바이스 디스크립터를 요청하고, 상기 디바이스 디스크립터를 기초로 상기 모바일 장치가 지원하는 특성들을 식별하고, 특성들 중 어느 하나의 특성이 선택되면 선택된 특성에 대한 드라이버를 구동하는 상기 어플리케이션 레이어의 기능을 수행할 수 있다.
본 발명에 따르면, 특정 운영체제가 탑재된 모바일 장치에서 지원하거나 해당 모바일 장치가 요구하는 서비스 또는 기능들을, 모바일 장치가 연결된 AVN 기기를 통해 사용자에게 제공할 수 있다.
또한, 커널 레이어의 USB 드라이버에서 차량 AVN 기기와 특정 운영체제가 탑재된 모바일 장치를 연결할 때 수행되는 컨피겨레이션 과정의 일부분을 생략함으로써, 모바일 장치의 연결 시간을 기존 대비 단축시킬 수 있다.
또한, 모바일 장치 연결을 위한 안드로이드 서비스에 저장된 제품 ID 목록에 존재하는 레거시 모델들을 포함하여 모든 모델의 모바일 장치의 연결을 지원하고, Apple MFi 사양에 정의된 프로토콜이 변경되지 않는 조건에서 신규 모델들에 대한 호환성도 보장하여 넓은 커버리지를 제공할 수 있다.
또한, 모바일 장치에서 요구하는 Apple MFi 사양을 따르는 프로토콜을 지원할 수 있고, 차량 AVN 기기에서도 CarPlay, digital audio 등의 특성 지원 여부를 사용자가 선택적으로 설정할 수 있게 하여 모바일 장치의 특성 지원 여부에만 종속되지 않으며, 사용자의 목적에 맞게 서비스를 제공할 수 있다.
또한, 서비스가 정상적으로 동작하지 않거나 문제를 발생시키더라도 동일한 어플리케이션 레이어에 존재하는 다른 서비스들 뿐만 아니라 전체 안드로이드 시스템에 미치는 영향을 최소화할 수 있다.
도 1은 본 발명의 실시예에 따라 AVN 기기와 모바일 장치의 연결을 나타낸 예시도이다.
도 2는 본 발명의 실시예에 따라 모바일 장치가 AVN 기기로 연결되는 절차를 나타낸 예시도이다.
도 3은 본 발명의 실시예에 따라 모바일 장치가 AVN 기기로부터 해제되는 절차를 나타낸 예시도이다.
도 4는 본 발명의 실시예에 따라 AVN 기기와 모바일 장치가 연결된 후의 동작에 대한 흐름도이다.
도 5는 본 발명의 실시예에 따라 AVN 기기가 모바일 장치의 구성을 선택하는 흐름도이다.
도 6은 본 발명의 실시예에 따른 모바일 장치(200)의 연결 시간 단축 방법에 대한 예시도이다.
도 7은 본 발명의 실시예에 따른 컴퓨팅 장치의 구조도이다.
도 2는 본 발명의 실시예에 따라 모바일 장치가 AVN 기기로 연결되는 절차를 나타낸 예시도이다.
도 3은 본 발명의 실시예에 따라 모바일 장치가 AVN 기기로부터 해제되는 절차를 나타낸 예시도이다.
도 4는 본 발명의 실시예에 따라 AVN 기기와 모바일 장치가 연결된 후의 동작에 대한 흐름도이다.
도 5는 본 발명의 실시예에 따라 AVN 기기가 모바일 장치의 구성을 선택하는 흐름도이다.
도 6은 본 발명의 실시예에 따른 모바일 장치(200)의 연결 시간 단축 방법에 대한 예시도이다.
도 7은 본 발명의 실시예에 따른 컴퓨팅 장치의 구조도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여, 본 발명의 실시예에 따른 차량용 네비게이션 장치와 모바일 장치의 연결 방법에 대해 설명한다.
도 1은 본 발명의 실시예에 따라 AVN 기기와 모바일 장치의 연결을 나타낸 예시도이다.
도 1에 도시된 바와 같이 네비게이션 기기(이하, 설명의 편의를 위하여 'AVN 기기'라 지칭함)(100)에 iOS 또는 iPadOS와 같은 특정 운영체제가 탑재된 모바일 장치(200)가 연결된다. 모바일 장치(200)에서 지원하는 서비스를 AVN 기기(100)를 통해 사용자에게 제공하기 위해, 안드로이드 시스템인 AVN 기기(100)는 리눅스 커널 레이어(110), 라이브러리 레이어(120), 어플리케이션 프레임워크 레이어(130), 그리고 어플리케이션 레이어(140)로 구성된다. 본 발명의 실시예에서는 설명의 편의를 위하여 AVN 기기(100)가 복수의 레이어들로 구성되는 것을 예로 하여 설명하나, AVN 기기(100)의 프로세서가 각 레이어의 기능을 실행하는 것으로 설명될 수 있다.
모바일 장치(200)가 물리적으로 AVN 기기(100)에 연결되면, 리눅스 커널 레이어(110)는 모바일 장치(200)가 AVN 기기(100)에 연결된 경로 정보를 라이브러리 레이어(120)로 전달한다. 여기서, 경로 정보에는 모바일 장치(200)가 AVN 기기(100)에 물리적으로 연결되어 있는 연결 포트 정보 및 모바일 장치(200)의 식별 정보가 포함되어 있다. 경로 정보가 라이브러리 레이어(120)에 전달됨으로써, 모바일 장치(200)에 대한 정보가 라이브러리 레이어(120)에 추가되거나 삭제된다.
또한, 리눅스 커널 레이어(110)는 모바일 장치(200)가 AVN 기기(100)에 물리적으로 연결되었는지, 구성되었는지(configured), 그리고 모바일 장치(200)가 AVN 기기(100)로부터 물리적인 연결이 해제되었는지 등 다양한 이벤트 정보들을 수집한다.
여기서, 모바일 장치(200)가 AVN 기기(100)에 구성되었다 함은, 리눅스 커널 레이어(110)가 AVN 기기(100)에 연결된 하나의 모바일 장치(200)가 어떤 기능으로 동작하는지 파악하는 것을 의미한다. 예를 들어, 모바일 장치(200)는 미디어 파일들을 담고 있는 저장 장치로 동작할 수도 있고, 음악을 재생하는 오디오 장치로도 동작할 수도 있다. 만약 모바일 장치(200)가 음악을 재생하는 오디오 장치처럼 동작한다면, 리눅스 커널 레이어(110)는 모바일 장치(200)가 오디오 장치로 구성되어 있음(Configured)을 나타내는 이벤트 정보를 수집한다.
여기서, 이벤트 정보에는 모바일 장치(200)의 종류(예를 들어, 스마트폰, 패드 등), 제조사, 모바일 장치(200)가 AVN 기기(100)와 물리적으로 연결되어 있는지 여부에 대한 연결 여부 정보, 모바일 장치(200)가 물리적으로 연결되어 있는 상태라면 연결이 해제되었는지 여부를 나타내는 연결 상태 정보, 모바일 장치(200)가 물리적으로 연결되어 있다면 어떤 구성으로 연결되어 있는지에 대한 구성 정보 중 적어도 하나의 정보가 포함되어 있다.
또한, 리눅스 커널 레이어(110)는 수집한 이벤트 정보를 어플리케이션 레이어(140)로 전달한다. 어플리케이션 레이어(140)는 복수의 모듈들로 구성되며, 리눅스 커널 레이어(110)는 복수의 모듈들 중 iOS 또는 iPadOS 기반 모바일 장치 연결 안드로이드 서비스 모듈(이하, 설명의 편의를 위하여 '안드로이드 서비스 모듈'이라 지칭함)에 전달한다.
라이브러리 레이어(120)는 리눅스 커널 레이어(110)로부터 모바일 장치(200)가 연결된 경로 정보를 전달받아, 모바일 장치(200)의 착탈 여부를 확인한다.
그리고, 라이브러리 레이어(120)는 모바일 장치(200)의 착탈 여부에 대한 정보를 어플리케이션 프레임워크 레이어(130)의 서비스 모듈로 전달한다. 본 발명의 실시예에서는 설명의 편의를 위하여 다양한 연결 방식 중 USB 연결 방식을 예로 하여 설명하나, 유선(wired) 연결 방식 또는 무선(wireless) 연결 방식 들 중 어느 연결 방식을 적용하여도 무방하다.
어플리케이션 프레임워크 레이어(130)의 USB 서비스 모듈인 연결 서비스 모듈은 라이브러리 레이어(120)로부터 모바일 장치(200)의 착탈 여부에 대한 착탈 여부 정보를 인텐트(intent) 형태로 수신한다. 여기서, 인텐트는 이미 알려진, 데이터를 담는 다양한 형태(예를 들어, 이벤트(UEvent), 인텐트, 노드 등) 중 하나이므로 본 발명의 실시예에서는 상세한 설명은 생략한다. 어플리케이션 프레임워크 레이어(130)는 수신한 착탈 여부 정보를 어플리케이션 레이어(140)의 안드로이드 서비스 모듈로 전달한다.
어플리케이션 레이어(140)의 안드로이드 서비스 모듈은 AVN 기기(100)에 물리적으로 연결된 모바일 장치(200)의 식별 정보를 기초로, 모바일 장치(200)가 디지털 오디오, 카플레이(CarPlay) 등 어떤 특성(feature)을 지원하는지 식별한다.
즉, AVN 기기(100)의 리눅스 커널 레이어(110)는 물리적으로 연결된 모바일 장치(200)로 디바이스 디스크립터를 요청한다. 그리고, 모바일 장치(200)로부터 디바이스 디스크립터를 수신하면 이를 기초로 모바일 장치(200)가 지원하는 구성(Configuration) 개수를 확인하여, 모바일 장치(200)가 지원하는 구성들에 대한 식별 정보를 식별한다.
리눅스 커널 레이어(110)는 식별한 정보를 UEvent의 형태 또는 인텐트 형태 등 다양한 형태로 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈로 전달된다. 어플리케이션 레이어(140)는 수신한 식별 정보를 통해 모바일 장치(200)가 어떤 특성을 지원하는지 식별할 수 있다.
그리고, 모바일 장치 연결 안드로이드 서비스 모듈과 동일한 어플리케이션 레이어(140)에 있는 iAP2/카플레이 서비스 모듈(이하, '카플레이(CarPlay) 서비스 모듈'이라 지칭함)에 인텐트 형태로 식별 정보를 전달한다.
또한, 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈은 하위 레이어로부터 수신한 인텐트 형태의 정보를 확인하고, 그에 따라 시스템 프로퍼티에 특정한 값을 설정한다. 이를 통해, 모바일 장치 연결 안드로이드 서비스 모듈은 init 프로세스(이하, 설명의 편의를 위하여 '초기화 프로세스 모듈'이라 지칭함)를 이용할 수 있다.
초기화 프로세스 모듈은 모바일 장치 연결 안드로이드 서비스 모듈이 안드로이드 시스템 속성(property)이라는 일종의 변수에 값을 저장한다. 초기화 프로세스 모듈은 안드로이드 시스템 속성에 어떤 값이 저장되어 있는지 확인하다가, 미리 설정된 특정 값으로 저장된 값이 갱신되면 자동적으로 다음 동작을 수행하도록 구현되어 있는 초기 프로세스를 이용할 수 있다. 초기화 프로세스 모듈은 리눅스 커널 부팅이 완료된 뒤 실행되는 첫 번째 프로세스로 프로세스와 시스템의 초기화와 관리를 수행한다.
어플리케이션 레이어(140)의 초기화 프로세스 모듈은 기 설정된 시스템 속성에 따라 카플레이(CarPlay) 서비스 모듈과 관련된 NCM(Network Control Model) 드라이버를 구동하거나 해제할 수 있다.
또한, 어플리케이션 레이어(140)의 초기화 프로세스 모듈은 동일 레이어에 있는 모바일 장치 연결 안드로이드 서비스 모듈에 의해 설정된 시스템 설정에 따라, 리눅스 커널 레이어(110)의 가상 파일 시스템인 sysfs를 제어한다. 이를 통해 AVN 장치(100)의 연결 모드 즉, USB 모드를 호스트에서 디바이스로 또는 디바이스에서 호스트로 변경하는 롤 스위치(role switch)를 수행할 수 있다.
이와 같은 환경에서 모바일 장치(200)가 AVN 기기(100)에 연결되는 절차와 모바일 장치(200)가 AVN 기기(100)로부터 해제되는 예에 대해 도 2 및 도 3을 참조로 설명한다.
도 2는 본 발명의 실시예에 따라 모바일 장치가 AVN 기기로 연결되는 절차를 나타낸 예시도이고, 도 3은 본 발명의 실시예에 따라 모바일 장치가 AVN 기기로부터 해제되는 절차를 나타낸 예시도이다.
도 2의 (a)는 AVN 기기(100)가 호스트일 때의 예시도이고, (b)는 모바일 장치(200)가 AVN 기기(100)에 연결되고 롤 스위치에 따라 모바일 장치(200)가 호스트로 동작할 때의 예시도이다. 그리고 도 3의 (a)는 AVN 기기(100)가 디바이스로 동작할 때의 예시도이고, 도 3의 (b)는 모바일 장치(200)가 AVN 기기(100)에서 연결 해제되어 롤 스위치에 따라 모바일 장치(200)가 AVN 기기(100)로부터 연결이 해제된 상태의 예시도이다.
먼저, 도 2에 도시된 바와 같이, 모바일 장치(200)인 iOS 및 iPodOS 모바일 장치가 AVN 기기(100)에 연결을 시도하면, 리눅스 커널 레이어(110)의 드라이버 모듈은 라이브러리 레이어(120)로 경로 정보를 전달하여, 모바일 장치(200)에 대한 USB 버스 경로의 추가를 요청한다.
라이브러리 레이어(120)는 UBS 버스 경로를 추가한 뒤, 어플리케이션 프레임워크 레이어(130)로 모바일 장치(200)가 UBS로 접속되도록 모바일 장치(200)의 연결 정보를 포함하는 정보를 전달한다.
어플리케이션 프레임워크 레이어(130)의 연결 서비스 모듈은 라이브러리 레이어(120)로부터 모바일 장치(200)의 연결 여부에 대한 정보를 전달받는다. 그리고, 연결 서비스 모듈은 모바일 장치(200)가 연결되었는지, 구성되었는지, 그리고 연결 해제되었는지 등에 대한 정보를 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈에 전달한다
모바일 장치 연결 안드로이드 서비스 모듈은 카플레이(CarPlay) 서비스 모듈로 인텐트 정보를 전달한다. 본 발명의 실시예에서는 모바일 장치(200)로 iPhone을 예로하여 설명하므로, 어플리케이션 레이어(140)를 구성하는 카플레이(CarPlay) 서비스 모듈과 iAP2 모듈에 인텐트 정보가 전달된다.
카플레이(CarPlay) 서비스 모듈은 인텐트 정보를 기초로 모바일 장치(200)에서 지원하는 서비스를 AVN 기기(100)를 통해 제공할 수 있도록 드라이버를 구동한다. 이때, 모바일 장치(200)가 처음 AVN 기기(100)로 연결을 시도할 때, AVN 기기(100)는 호스트이고, 모바일 장치(200)는 디바이스로 동작한다.
그리고 어플리케이션 레이어(140)는 초기화 프로세스 모듈의 동작에 따라 커널 레이어의 sysfs를 컨트롤하여, AVN 기기(100)의 USB 모드를 호스트에서 디바이스로 롤 스위치를 수행한다. 이에 따라 AVN 기기(100)는 디바이스로, 모바일 장치(200)는 호스트로 동작한다.
도 2의 (a) 및 (b)를 참조하여 상세히 설명하면, 라이브러리 레이어(120)의 라이브러리 모듈은 모바일 장치(200)가 물리적으로 연결되면 리눅스 커널 레이어(110)의 드라이버 모듈로부터 모바일 장치(200)가 연결된 경로 정보를 전달받는다(①). 라이브러리 레이어(120)의 라이브러리 모듈은 모바일 장치(200)의 착탈 여부에 대한 정보를 어플리케이션 프레임워크 레이어(130)의 연결 서비스 모듈에 전달한다(②).
어플리케이션 프레임워크 레이어(130)의 연결 서비스 모듈은 라이브러리 레이어(120)의 라이브러리 모듈로부터 모바일 장치(200)의 착탈 여부에 대한 정보를 수신하면(③), 모바일 장치(200)가 연결되었는지, 구성되었는지, 그리고 연결 해제되었는지 등 모바일 장치(200)의 상태에 대한 상태 정보를 확인한다. 그리고, 연결 서비스 모듈은 모바일 장치(200)의 상태 정보를 인텐트 형태로 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈에 전달한다(④).
어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈은 인텐트 형태 또는 이벤트 형태로 수신한 모바일 장치(200)의 상태 정보를 확인한다. 모바일 장치 연결 안드로이드 서비스 모듈은 확인한 상태 정보에 상응하는 특정 값을 초기화 프로세스 모듈로 전달하여, 안드로이드 시스템 프로퍼티 형태로 설정하도록 모바일 장치 상태 설정을 요청한다(⑤).
이때, 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈은, AVN 기기(100)에 연결된 모바일 장치(200)가 디지털 오디오, 카플레이(CarPlay) 등 어떤 특성을 지원할 수 있는지 식별한다. 그리고 동일한 어플리케이션 레이어(140)에 존재하는 카플레이(CarPlay) 서비스 모듈에 모바일 장치(200)에 대한 정보를 전달한다.
이에 대해 상세하게 설명하면, 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈은, AVN 기기(100) 자체에서 디지털 오디오, 카플레이(CarPlay) 등 어떤 특성을 지원할 수 있는지 확인한다. AVN 기기(100)가 지원할 수 있는 특성을 확인한 다음 모바일 장치(200)가 연결되면, 연결된 모바일 장치(200)가 지원할 수 있는 연결 클래스(예를 들어, USB 클래스)를 확인한다.
만약 모바일 장치(200)가 USB 대용량 스토리지 클래스만 지원한다면, AVN 기기(100)는 모바일 장치(200)를 대용량 스토리지 장치로 간주한다. 그리고 Apple MFi 명세에 정의된 프로토콜에 따라, 모바일 장치(200)가 대용량 스토리지 장치로 연결되도록 연결을 시도한다.
초기화 프로세스 모듈이 안드로이드 시스템 프로퍼티 형태로 설정한 후, 어플리케이션 레이어(140)의 초기화 프로세스 모듈은 인텐트 형태로 수신한 모바일 장치(200)의 상태 정보를 기초로, 리눅스 커널 레이어(110)가 모드를 변경하도록 리눅스 커널 레이어(110)의 가상 파일 시스템인 sysfs를 제어한다(⑥).
그러면 도 2의 (b)에 도시된 바와 같이, AVN 기기(100)와 모바일 장치(200)의 역할이 롤 스위치(⑦)되어, 모바일 장치(200)가 호스트로 AVN 기기(100)가 디바이스로 동작한다. 즉, 리눅스 커널 레이어(110)의 드라이버 모듈이 장치 상태를 어플리케이션 레이어(110)의 모바일 장치 연결 안드로이드 서비스 모듈로 전달한다(⑧). 이때, 장치 상태는 UEvent 형태로 전달된다.
모바일 장치 연결 안드로이드 서비스 모듈은 AVN 기기(100)의 어플리케이션 레이어(140)에 독립적인 서비스 형태로 구현된다. 따라서 해당 서비스가 정상적으로 동작하지 않거나 문제를 발생시키더라도 동일한 어플리케이션 레이어(140)에 존재하는 다른 모듈들뿐만 아니라 전체 AVN 기기(100)에 미치는 영향을 최소화할 수 있는 모듈성을 갖는 장점이 있다.
또한, 모바일 장치 연결 안드로이드 서비스 모듈은 AVN 기기(100)의 어플리케이션 레이어(140)에 독립적인 서비스 형태로 구현되므로, 안드로이드 OS 버전이 업데이트 되더라도, AVN 기기(100)를 구성하는 하드웨어뿐 아니라 다른 레이어들에도 종속되지 않고 이식될 수 있는 우수한 이식성을 제공할 수 있다.
어플리케이션 레이어(140)의 초기화 프로세스 모듈 동일 레이어에 존재하는 모바일 장치 연결 안드로이드 서비스 모듈이 안드로이드 시스템 프로퍼티 형태로 설정한 USB 구성 정보에 따라, 카플레이(CarPlay) 서비스 모듈은 카플레이(CarPlay) 서비스 동작에 필요한 NCM(Network Control Model) 드라이버를 구동한다(⑩). 롤 스위치가 완료되면, 리눅스 커널 레이어(110)의 드라이버 모듈은 모바일 장치(200)의 상태 정보를 수신하고(⑪), 수신한 상태 정보를 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈을 통해 카플레이(CarPlay) 서비스 모듈로 전달한다(⑫).
만약 AVN 기기(100)가 디바이스 롤에서 호스트 롤로 롤 스위치 되면, 어플리케이션 레이어(140)는 구동중인 NCM 드라이버를 해제한다. 또한, 모바일 장치 연결 안드로이드 서비스 모듈이 AVN 기기(100)의 프로퍼티 형태로 설정한 연결 구성 정보 즉, USB 구성 정보에 따라, 리눅스 커널 레이어(110)의 USB 드라이버 sysfs에 값을 사용하여, AVN 기기(100)의 USB 모드를 호스트에서 디바이스로 변경하거나 디바이스에서 호스트로 변경하는 USB 롤 스위치를 수행할 수 있다.
다음은 AVN 기기(100)에 연결된 모바일 장치(200)가 연결을 해제한 경우의 롤 스위치에 대해 도 3을 참조로 설명한다.
호스트로 동작하는 모바일 장치(200)가 연결된 AVN 기기(100)와 연결 해지를 시도하면, 도 3에 도시된 바와 같이 리눅스 커널 레이어(110)는 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈로 연결 해지 이벤트가 발생하였음을 전달한다(1).
모바일 장치 연결 안드로이드 서비스 모듈은 초기화 프로세스 모듈로 속성 설정을 요청하고, 초기화 프로세스 모듈은 카플레이(CarPlay) 서비스 모듈로 NCM 구동 해제를 요청한다. 그리고, 초기화 프로세스 모듈은 리눅스 커널 레이어(110)로 동작 모드의 변경을 요청하면, 호스트로 동작하는 모바일 장치(200)와 디바이스로 동작하던 AVN 기기(100)가 롤 스위치되어, AVN 기기(100)는 호스트로 동작하고 모바일 장치(200)는 디바이스로 동작한다.
즉, 도 3의 (a)에 도시된 바와 같이, 모바일 장치(200)가 AVN 기기(100)에서 물리적으로 이탈되면, 리눅스 커널 레이어(110)의 드라이버 모듈은 어플리케이션 레이어(140)의 모바일 장치 연결 안드로이드 서비스 모듈로 모바일 장치(200)의 장치 상태 정보를 전달한다(2). 모바일 장치 연결 안드로이드 서비스 모듈은 같은 레이어에 있는 초기화 프로세스 모델로 구성 정보를 전달하고(3), 초기화 프로세스 모델은 수신한 구성 정보를 통해 카플레이(CarPlay) 서비스 모듈로 NCM 해제를 요청한다(4).
모바일 장치 연결 안드로이드 서비스 모듈은 카플레이(CarPlay) 서비스 모듈로 모바일 장치(200)의 연결 상태를 전달한다(5). 초기화 프로세스 모델은 리눅스 커널 레이어(110)의 드라이버 모듈의 sysfs를 사용하여(6) AVN 기기(100)의 모드가 디바이스에서 호스트로 변경하는, 도 3의 (b)와 같이 롤 스위치가 발생한다(7). 이를 토대로, AVN 기기(100)는 호스트로 동작하고, 모바일 장치(200)는 디바이스로 동작한다.
다음은 ANV 기기(100)에 모바일 장치(200)가 연결된 후의 동작 흐름에 대해 도 4를 참조로 설명한다.
도 4는 본 발명의 실시예에 따라 AVN 기기와 모바일 장치가 연결된 후의 동작에 대한 흐름도이다.
본 발명의 실시예에서는 리눅스 커널 레이어(110)에서 기존에 차량 AVN 기기(100)와 모바일 장치(200) 연결 시 필수적으로 수행되어야 하는 구성(configuration) 선택 과정의 일부분을 생략함으로써, 모바일 장치(200)의 연결 시간을 단축시킬 수 있다.
이에 대해 도 4를 참조로 설명하면, 네비게이션 기기인 AVN 기기(100)와 모바일 장치(200)가 물리적으로 연결될 때, AVN 기기(100)는 모바일 장치(200)로 디바이스 디스크립터(device descriptor)를 요청한다(S100).
모바일 장치(200)는 AVN 기기(100)의 요청에 따라 자신에 저장되어 있는 디바이스 디스크립터를 AVN 기기(100)로 제공한다(101). 여기서, 디바이스 디스크립터에는 모바일 장치의 제품 정보, 모바일 장치의 버전 정보, 공급업체 정보, 제조사 식별 정보, 지원하는 구성 개수, 시리얼 번호 등의 정보가 포함되어 있다.
AVN 기기(100)는 S101 단계에서 수신한 디바이스 디스크립터를 기초로, 물리적으로 연결된 모바일 장치(200)의 구성 개수를 확인하고, 복수의 구성들 중 특정 구성을 선택한다(S102). 그리고, AVN 기기(100)는 모바일 장치(200)로 선택한 구성의 활성화를 요청한다(S103).
이때, S102 단계에서 AVN 기기(100)가 복수의 구성들 중 특정 구성을 선택하기 위해, 리눅스 커널 레이어(110)의 드라이버 모듈에서는 모바일 장치(200)로부터 획득한 디바이스 디스크립터를 기초로 모바일 장치(200)가 지원하는 구성 개수를 확인한다. 그리고 각각의 구성의 종류가 무엇인지 하나씩 차례로 확인하고, 드라이버 모듈에 미리 설정된 기준을 충족하면, AVN 기기(100)는 기준을 충족하는 구성을 선택한다.
본 발명의 실시예에서는 미리 설정된 기준에 우선시되는 구성이 설정되어 있는 것을 예로 하여 설명한다. 예를 들어, 구성이 오디오 구성이면 먼저 선택되고, 그렇지 않으면 모바일 장치(200)에 가장 처음 명시 되어있는 구성이 선택되도록 하는 등의 기준에 따른다. 기준은 설정하기 나름이며 본 발명의 실시예에서는 어느 하나의 형태로 한정하지 않는다.
모바일 장치(200)는 AVN 기기(100)가 요청한 활성화 요청 구성을 활성화하고(S104), 활성화한 설정 상태로 전환한다(S105).
여기서, S102 단계에서 AVN 기기(100)가 모바일 장치(200)의 구성 개수를 확인하고 구성을 선택하는 과정에 대해 도 5를 참조로 상세히 설명한다.
도 5는 본 발명의 실시예에 따라 AVN 기기가 모바일 장치의 구성을 선택하는 흐름도이다.
AVN 기기(100)는 연결된 모바일 장치(200)의 제조사가 특정 제조사, 즉, 애플인지 확인하고, 모바일 장치(200)가 오디오 또는 HID 클래스를 지원하는지 확인하여 구성 선택 과정을 생략함으로써, 설정과 연결 시간을 단축할 수 있다.
즉, 도 5에 도시된 바와 같이, AVN 기기(100)는 모바일 장치(200)로부터 수신한 디바이스 디스크립터를 기초로, 모바일 장치(200)의 구성 개수와 모바일 장치(200)의 제조사 식별 정보를 확인한다(S200, S201). AVN 기기(100)는 S201 단계에서 확인한 결과, 모바일 장치(200)의 제조사가 미리 설정한 특정 제조사, 즉 iOS와 iPadOS가 탑재된 모바일 장치인지 확인한다(S202).
모바일 장치(200)의 제조사가 특정 제조사 즉, 애플이 아니라면. AVN 기기(100)는 일반적인 모바일 장치(200)의 구성 선택 과정을 수행한다(S203). 그러나, 모바일 장치(200)의 제조사가 특정 제조사 즉, 애플이라면, AVN 기기(100)는 모바일 장치(200)의 구성 개수만큼 확인했는지 확인한다(S204). 즉, 리눅스 커널 레이어(110)의 드라이버 모듈이 모바일 장치(200)로부터 획득한 디바이스 디스크립터에서, 구성될 수 있는 종류의 개수를 확인하고 확인한 개수만큼 반복하여 구성의 종류가 무엇인지 차례로 확인한다.
모바일 장치(200)의 모든 구성을 확인하였다면, AVN 기기(100)는 해당 모바일 장치(200)가 오디오 클래스 또는 HID 클래스를 지원하는지 확인한다(S205). 모바일 장치(200)가 오디오 클래스 또는 HID 클래스를 지원하지 않는다면, S203 단계를 수행한다. 그러나, 모바일 장치(200)가 오디오 클래스 또는 HID 클래스 중 하나를 지원하면, AVN 기기(100)는 모바일 장치(200)의 구성 선택 절차를 종료한다.
한편, S204 단계에서 확인한 결과 AVN 기기(100)가 모바일 장치(200)의 모든 구성 개수만큼 확인하지 않았다면, AVN 기기(100)는 모바일 장치(200)에서 지원하는 모든 인터페이스의 클래스를 확인하였는지 판단한다(S206).
모바일 장치(200)는 하나 이상의 구성 디스크립터를 가지고, 구성 디스크립터는 하나 이상의 인터페이스 디스크립터를 가진다. 모바일 장치(200)가 지원하는 구성을 선택하는 과정에서는 모바일 장치(200)가 지원하는 모든 구성 디스크립터와 각 인터페이스 디스크립터를 하나씩 확인한다.
모든 인터페이스들을 확인하지 않았다면, 다음 확인한 인터페이스의 클래스가 오디오인지 확인한다(S207).
확인한 인터페이스의 클래스가 오디오라면, AVN 기기(100)는 오디오 클래스를 지원하기 위해 설정한다(S208). 즉, 커널 USB 드라이버 상에서 정보를 저장할 수 있는 특정 지역 변수를 선언하여, 해당 변수에 오디오 클래스를 지원함을 나타내는 정보를 저장한다.
오디오 클래스 지원 설정이 완료되면, AVN 기기(100)는 다음 확인한 인터페이스의 클래스가 HID인지 확인한다(S209). 만약 확인한 인터페이스의 클래스가 HID가 아니라면, 인터페이스 개수를 하나 증가시키고(S210), S204 단계 이후의 절차를 반복 수행한다.
그러나, 확인한 인터페이스의 클래스가 HID라면 AVN 기기(100)는 HID 클래스를 지원하기 위하여 설정하고(S211), 모바일 장치(200)의 구성을 선택하기 위한 절차를 종료한다.
다음은, 본 발명의 실시예에 따라 AVN 기기(100)와 모바일 장치(200)의 연결 시에, 리눅스 커널 레이어(110)의 드라이버 모듈에서 수행되는 구성 과정의 일부분을 생략하여, 모바일 장치(200)의 연결 시간을 단축시키는 방법에 대해 도 6을 참조로 설명한다.
도 6은 본 발명의 실시예에 따른 모바일 장치(200)의 연결 시간 단축 방법에 대한 예시도이다.
도 6에 도시된 바와 같이, 리눅스 커널 레이어(110)의 드라이버 모듈에서 AVN 기기(100)와 모바일 장치(200) 연결 시에 수행되는 구성 과정의 일부분을 생략한다. 이에 따라 모바일 장치(200)의 연결 시간을 기존 절차 대비 수백 ms 단축시킬 수 있다.
즉, 본 발명의 실시예에서는 AVN 기기(100)가 모바일 장치(200)로 디바이스 디스크립터를 요청하여 모바일 장치(200)로부터 모바일 장치(200)가 제공하는 기능들에 대한 디바이스 구성 정보를 확인한 후, 구성 개수를 확인한다.
종래에는 모바일 장치(200)가 제공하는 기능들에 대한 구성 개수를 하나씩 선택하여 모바일 장치(200)로 구성 활성화를 요청한다. 모바일 장치(200)는 AVN 기기(100)로부터 요청된 구성을 활성화한 후, 구성 상태를 전환한다. 이러한 절차를 구성 개수만큼 반복하여 실행하였다.
그러나 본 발명의 실시예에서는 AVN 기기(100)가 디바이스 디스크립터 정보를 통해 구성 개수를 확인한 후 모바일 장치(200)로 구성 상태의 전환을 요청하지 않기 때문에, 모바일 장치(200)의 연결 시간을 단축시킬 수 있다.
도 7은 본 발명의 실시예에 따른 컴퓨팅 장치의 구조도이다.
도 7에 도시된 바와 같이, AVN 기기(100)인 컴퓨팅 장치(300)의 하드웨어는 적어도 하나의 프로세서(310), 메모리(320), 스토리지(330), 통신 인터페이스(140)를 포함할 수 있고, 버스를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 컴퓨팅 장치(300)는 프로그램을 구동할 수 있는 운영 체제를 비롯한 각종 소프트웨어가 탑재될 수 있다.
프로세서(310)는 AVN 기기(100)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서(310)일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다.
메모리(320)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(310)에 의해 처리되도록 해당 프로그램을 로드한다. 메모리(320)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다.
스토리지(330)는 본 발명의 동작을 실행하는데 요구되는 각종 데이터, 프로그램 등을 저장한다.
인터페이스(340)는 유/무선으로 모바일 디바이스(200)와 연결될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (12)
- 차량용 네비게이션 장치의 동작 방법으로서,
연결을 시도하는 모바일 장치로부터 디바이스 디스크립터를 수신하고, 상기 디바이스 디스크립터를 기초로 상기 모바일 장치가 제공하는 복수의 기능들 각각에 대한 복수의 구성들과 인터페이스들을 확인하는 단계,
상기 모바일 장치로 상기 복수의 구성들 중 선택한 특정 구성의 활성화를 요청하는 단계, 그리고
상기 활성화된 특정 구성에서 제공하는 서비스를 상기 모바일 장치가 연결된 차량용 네비게이션을 통해 제공하는 단계
를 포함하고,
상기 모바일 장치는 iOS 운영체제 또는 iPadOS 운영체제가 탑재된 모바일 장치인, 동작 방법. - 제1항에 있어서,
상기 활성화를 요청하는 단계는,
상기 디바이스 디스크립터에 포함된 상기 모바일 장치의 제조사 식별 정보를 확인하는 단계,
상기 제조사 식별 정보를 기초로 상기 모바일 장치가 미리 설정된 특정 제조사이면, 상기 복수의 구성들 중 어느 하나의 구성의 인터페이스 클래스를 확인하는 단계, 그리고
상기 인터페이스 클래스가 오디오 클래스 또는 HID(Human Interface Devices) 중 하나이면, 오디오 클래스 또는 HID 클래스가 지원되도록 설정하는 단계
를 포함하는, 동작 방법. - 제2항에 있어서,
상기 인터페이스 클래스를 확인하는 단계는,
상기 어느 하나의 구성의 인터페이스 클래스가 상기 오디오 클래스와 상기 HID 클래스가 아니면, 상기 모바일 장치의 모든 구성들이 확인되었는지 판단하는 단계
를 더 포함하는, 동작 방법. - 제3항에 있어서,
상기 모바일 장치의 모든 구성들이 확인되었는지 판단하는 단계는,
상기 모든 구성들이 확인되었으면, 상기 모바일 장치가 오디오 클래스 또는 HID 클래스를 지원하는지 판단하는 단계, 그리고
상기 모바일 장치가 상기 오디오 클래스 또는 HID 클래스 중 적어도 하나를 지원하면, 지원하는 클래스의 구성을 선택하는 단계
를 더 포함하는, 동작 방법. - 제1항에 있어서,
상기 복수의 구성들과 인터페이스들을 확인하는 단계는,
연결된 상기 모바일 장치의 장치 경로를 확인하는 단계, 그리고
상기 장치 경로를 기초로 상기 모바일 장치의 장치 착탈 여부를 확인하고, 상기 모바일 장치의 롤(role)을 디바이스 롤에서 호스트 롤로 롤 스위칭하는 단계,
를 포함하는 동작 방법. - 제5항에 있어서,
상기 차량용 네비게이션을 통해 제공하는 단계 이후에,
상기 모바일 장치의 연결이 해제되면, 상기 모바일 장치의 장치 상태 정보를 기초로 네트워크 제어 모델 드라이버를 해제하는 단계
를 포함하는 동작 방법. - 모바일 장치와 연결되는 차량용 네비게이션 장치로서,
상기 모바일 장치가 연결되는 인터페이스, 그리고
프로세서
를 포함하고,
상기 프로세서는,
상기 모바일 장치가 연결되면 상기 모바일 장치의 디바이스 디스크립터와 상기 모바일 장치가 연결된 경로 정보를 등록하고, 상기 경로 정보를 기초로 상기 모바일 장치의 연결 여부를 확인하며, 상기 모바일 장치가 연결되면 상기 모바일 장치에 대한 구성 정보를 기초로 상기 모바일 장치가 제공하는 서비스를 위한 드라이버를 구동하는, 차량용 네비게이션 장치. - 제7항에 있어서,
상기 디바이스 디스크립터는 상기 모바일 장치의 종류, 제조사, 그리고 상기 모바일 장치가 지원하는 구성 개수 중 적어도 하나의 정보를 포함하며,
상기 모바일 장치는 iOS 운영체제 또는 iPadOS 운영체제가 탑재되어 있는, 차량용 네비게이션 장치. - 제8항에 있어서,
상기 구성 정보는 상기 모바일 장치가 어떤 구성으로 연결되어 있는지를 포함하는 차량용 네비게이션 장치. - 제9항에 있어서,
상기 프로세서는,
상기 모바일 장치가 지원하는 특성을 식별하고, 식별한 특성에 따른 시스템 속성을 설정하는, 차량용 네비게이션 장치. - 제10항에 있어서,
상기 프로세서는,
가상 파일 시스템을 제어하여 상기 모바일 장치가 호스트로 동작하도록 롤 스위치를 수행하는, 차량용 네비게이션 장치. - 제11항에 있어서,
상기 프로세서는,
물리적으로 연결된 상기 모바일 장치의 식별 정보를 수집하거나, 상기 모바일 장치에 의해 발생하는 이벤트 정보를 수집하는 리눅스 커널 레이어,
상기 이벤트 정보에 포함된 경로 정보를 기초로 상기 모바일 장치의 착탈 여부를 확인하는 라이브러리 레이어,
상기 라이브러리 레이어에서 확인한 상기 모바일 장치의 착탈 여부에 대한 정보를 인텐트 형태로 어플리케이션 레이어로 전달하는 어플리케이션 프레임워크 레이어, 그리고
상기 모바일 장치로 상기 디바이스 디스크립터를 요청하고, 상기 디바이스 디스크립터를 기초로 상기 모바일 장치가 지원하는 특성들을 식별하고, 특성들 중 어느 하나의 특성이 선택되면 선택된 특성에 대한 드라이버를 구동하는 상기 어플리케이션 레이어
의 기능을 수행하는, 차량용 네비게이션 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210174579 | 2021-12-08 | ||
KR1020210174579 | 2021-12-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230086572A true KR20230086572A (ko) | 2023-06-15 |
Family
ID=86764079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220112209A KR20230086572A (ko) | 2021-12-08 | 2022-09-05 | 차량용 네비게이션 장치 및 이의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230086572A (ko) |
-
2022
- 2022-09-05 KR KR1020220112209A patent/KR20230086572A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8171502B2 (en) | Methods, devices and computer program products for automatically installing device drivers from a peripheral device onto a host computer | |
US8352577B2 (en) | Method and apparatus for updating information on an embedded system | |
KR101969726B1 (ko) | 범용 직렬 버스 호스트 식별 방법 및 그 전자 장치 | |
CN110413213B (zh) | 存储卷在存储阵列之间的无缝迁移 | |
CN101110039B (zh) | 终端设备自安装及自启动系统及方法 | |
EP2711845B1 (en) | PCI express switch with logical device capability | |
JP2010526388A (ja) | ホストコンピュータに対して露出するためのusb対応周辺装置のための代替usb構成を自動的に提供する方法、装置及び記憶媒体 | |
JP2014085857A (ja) | 電子装置、電子装置の通信制御方法、電子装置の通信制御プログラム、情報端末装置および電子システム | |
CN110851271A (zh) | 资源共享方法及装置、存储介质 | |
US10042800B2 (en) | Active USB device and switching method for operating mode thereof | |
US20140351833A1 (en) | Multi-computing environment operating on a single native operating system | |
CN114185603B (zh) | 一种智能加速卡的控制方法、服务器及智能加速卡 | |
CN114296808B (zh) | 一种引脚配置方法、装置、电子设备及存储介质 | |
KR102177407B1 (ko) | 가상화를 이용한 차량용 avn 시스템 및 그 작동 방법 | |
KR102109125B1 (ko) | Autosar 기반 차량 ecu 상태 관리 방법 | |
CN108234174B (zh) | 虚拟网络功能的管理方法和装置 | |
EP3968170A1 (en) | Smart device management method and apparatus, network device, and readable storage medium | |
GB2504696A (en) | Detecting whether to install modem software or to use intrinsic software of a host | |
KR20230086572A (ko) | 차량용 네비게이션 장치 및 이의 동작 방법 | |
JP4141409B2 (ja) | 外付周辺機器 | |
JP4063573B2 (ja) | デバイスドライバの組み込み・実行方式、組み込み・実行方法、及びプログラム | |
CN114564212A (zh) | 基于K3s的车载边缘计算装置的应用部署方法、装置、存储介质及终端设备 | |
CN115220747A (zh) | 车载多媒体系统的升级方法、车载多媒体系统及车辆 | |
JP4666231B2 (ja) | アプリケーション競合管理システム及びその方法並びにそれを用いた情報処理端末 | |
EP4250105A1 (en) | Communication method between virtual machines using mailboxes, system-on chip performing communication method, and in-vehicle infotainment system including same |