KR20200032014A - 차량용 소프트웨어 제어 장치 - Google Patents

차량용 소프트웨어 제어 장치 Download PDF

Info

Publication number
KR20200032014A
KR20200032014A KR1020190114074A KR20190114074A KR20200032014A KR 20200032014 A KR20200032014 A KR 20200032014A KR 1020190114074 A KR1020190114074 A KR 1020190114074A KR 20190114074 A KR20190114074 A KR 20190114074A KR 20200032014 A KR20200032014 A KR 20200032014A
Authority
KR
South Korea
Prior art keywords
library
vehicle
kernel
hardware
operating system
Prior art date
Application number
KR1020190114074A
Other languages
English (en)
Other versions
KR102262926B1 (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 주식회사 드림에이스
Publication of KR20200032014A publication Critical patent/KR20200032014A/ko
Application granted granted Critical
Publication of KR102262926B1 publication Critical patent/KR102262926B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)

Abstract

실시예는 하드웨어; 상기 하드웨어와 연결되어 제1 운영 체제를 실행하는 커널; 상기 커널과 연결된 시스템 라이브러리; 상기 제1 운영 체제와 상이한 제2 운영 체제에 대한 라이브러리를 상기 시스템 라이브러리로 연결하는 제1 연결부; 및 상기 제2 운영 체제에서 실행되는 제1 어플리케이션을 포함하는 차량용 소프트웨어 제어 장치를 개시한다.

Description

차량용 소프트웨어 제어 장치{VEHICLE SOFTWARE CONTROL DEVICE}
실시예는 차량용 소프트웨어 제어 장치에 관한 것이다.
차량은 보다 높은 수준의 전산화로 점차 이동하고 있다. 대부분의 차량 작업, 기능 및 작업은 현재 컴퓨터 제어 중이거나 전산 장치로 모니터링될 수 있다. 디지털 시대가 도래함에 따라 소비자들은 휴대폰과 테블릿 컴퓨터 사이의 유사성을 요구하고 있다.
예컨대, 제너럴 모터스 (GM)와 포드 (Ford)는 보다 역동적인 사용자 인터페이스를 갖춘 차량용 인포테인먼트 시스템을 개발하고 있다. 예를 들어 Cadillac의 CUE ? 인포테인먼트 시스템은 터치 및 햅틱 피드백, 자연 언어 음성 상호 작용, 근접 감지 및 버튼 및 컨트롤을 갖춘 지능형 사용자 인터페이스가 있는 차량용 인포테인먼트 시스템을 통합하여보다 많은 차량 내 정보, 통신 내비게이션, 동시에 엔터테인먼트를 간소화하고 운전 사용에 맞게 조정하고 있다. Ford는 CUE ?와 유사한 기능을 제공하는 SYNC ? 및 MYFORD ? 시스템과 게임 및 기타 유형의 응용 프로그램을 위한 차량용 응용 프로그램 저장소를 개발했다. MYFORD ?는 개방형 아키텍처를 제공하므로 개발자는 웹 기반 자동차에서 맞춤형 디스플레이를 실행할 수 있는 소프트웨어를 개발할 수 있다.
그러나 자동차 제조업자는 스마트 폰, 태블릿 컴퓨터 및 랩톱 컴퓨터와 같은 탑승자의 개인 전자 장치를 차량 내 계산 시스템과 통합하는데 한계가 존재할 수 있다.
실시예는 상이한 운영 체제에서 실행되는 제1 어플리케이션이 이용 가능한 차량용 소프트웨어 제어 장치를 제공할 수 있다.
또한, 성능 저하 없이 제1 어플리케이션 실행 가능한 차량용 소프트웨어 제어 장치를 제공할 수 있다.
실시예에서 해결하고자 하는 과제는 이에 한정되는 것은 아니며, 아래에서 설명하는 과제의 해결수단이나 실시 형태로부터 파악될 수 있는 목적이나 효과도 포함될 수 있다고 할 것이다.
실시예에 따른 차량용 소프트웨어 제어 장치는 하드웨어; 상기 하드웨어와 연결되어 제1 운영 체제를 실행하는 커널; 상기 커널과 연결된 시스템 라이브러리; 상기 제1 운영 체제와 상이한 제2 운영 체제에 대한 라이브러리를 상기 시스템 라이브러리로 연결하는 제1 연결부; 및 상기 제2 운영 체제에서 실행되는 제1 어플리케이션을 포함한다.
상기 제1 연결부는 상기 시스템 라이브러리 내의 드라이버를 오픈하는 제1 호출부를 포함하고, 상기 시스템 라이브러리는 상기 시스템 라이브러리 내의 드라이버와 동일한 기능을 수행하는 상기 커널 내의 디바이스 드라이버를 오픈하는 제2 호출부를 포함할 수 있다.
상기 제1 호출부와 상기 제2 호출부는 하드웨어 추출층을 포함할 수 있다.
상기 커널은 상기 제2 호출부에 의해 오픈된 하드웨어 드라이버를 이용하여 API를 통해 상기 하드웨어에 액세스를 위한 호출을 수행할 수 있다.
상기 제1 어플리케이션의 실행을 위한 라이브러리를 포함하는 제1 어플리케이션 라이브러리; 상기 제1 어플리케이션의 실행을 위한 라이브러리를 상기 시스템 라이브러리의 라이브러리와 인터페이스되도록 변환하는 변환부; 및 상기 변환된 라이브러리를 상기 시스템 라이브러리로 전달하는 전달부;을 더 포함할 수 있다.
상기 제1 연결부의 시스템 파일은 상기 커널의 시스템 파일과 동일한 경로 정보를 포함할 수 있다.
상기 커널은 제어 신호를 상기 하드웨어로 제공할 수 있다.
상기 커널은 리눅스 기반일 수 있다.
상기 제1 운영 체제 및 상기 제2 운영 체제는 리눅스 기반일 수 있다.
상기 하드웨어는 차량의 제어 유닛 및 센서를 포함할 수 있다.
실시예에 따르면, 상이한 운영 체제에서 실행되는 차량용 소프트웨어 제어 장치를 구현할 수 있다.
또한, 하드웨어의 벤더(vendor)에 적용되는 운영 체제의 버전 등이 상이하더라도 모두 적용 가능한 개선된 호환성을 제공할 수 있다.
또한, 성능 저하 없이 어플리케이션 실행이 가능하고 차량 인포테인먼트 시스템이 이루어진 차량용 소프트웨어 제어 장치를 제작할 수 있다.
본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.
도 1은 실시예에 따른 차량용 소프트웨어 제어 장치를 도시한 개념도이고,
도 2는 실시예에 따른 하드웨어의 개념도이고,
도 3은 실시예에 따른 커널의 개념도이고,
도 4는 실시예에 따른 제1 연결부의 개념도이고,
도 5은 실시예에 따른 제1 호출부의 동작을 설명하는 도면이고,
도 6은 실시예에 따른 제1 연결부의 시스템 파일을 설명하는 도면이고,
도 7은 실시예에 따른 차량용 소프트웨어 제어 장치의 제1 어플리케이션 제어 방법에 대한 순서도이고,
도 8은 실시예에 따른 차량용 소프트웨어 제어 장치를 포함하는 차량을 도시하는 도면이고,
도 9은 인포테인먼트 차량용 소프트웨어 제어 장치를 설명하는 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제2, 제1 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
본 개시의 실시예는 차량 인포테이먼트를 위한 차량용 소프트웨어 제어 장치에 관한 것으로, 스마트폰 어플리케이션과 같은 어플리케이션(동일한 의미로 '앱')을 차량에서 이용함에 있어서, 차량 인포테인먼트와 접목한 시스템 환경을 제공하는 것을 내용으로 한다. 다만, 이러한 내용이 본 특허의 권리를 한정하는 것은 아니다.
도 1은 실시예에 따른 차량용 소프트웨어 제어 장치를 도시한 개념도이고, 도 2는 실시예에 따른 하드웨어의 개념도이고, 도 3은 실시예에 따른 커널의 개념도이고, 도 4는 실시예에 따른 시스템 라이브러리 개념도이고, 도 5는 실시예에 따른 제1 연결부의 개념도이고, 도 6은 실시예에 따른 제1 연결부의 시스템 파일을 설명하는 도면이다.
도 1을 참조하면, 또한, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 차량 인포테인먼트 시스템을 포함할 수 있다. 그리고 차량용 소프트웨어 제어 장치(10)는 사용자의 사용과 관련된 차량 콘솔 운영 시스템, 모바일 환경의 사용자 사용과 관련된 모바일 운영 시스템, 모바일 환경의 사용자 사용과 관련된 터미널 환경을 포함하고 복수 개의 어플리케이션은 커널 상에서 동시에 독립적으로 실행될 수 있다.
구체적으로, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 하드웨어(110), 커널(120), 시스템 라이브러리(130), 제1 연결부(140), 제1 어플리케이션(150), 제2 연결부(160) 및 제2 어플리케이션(170)을 포함할 수 있다.
도 2를 참조하면, 하드웨어(110)는 실시예에 따른 차량용 소프트웨어 제어 장치(10)의 예시적인 하드웨어(110) 아키텍쳐 구성을 포함할 수 있다. 일반적으로, 하드웨어(110)는 프로세서(111), 디스플레이부(112), 저장부(113), 메모리부(114), 콘트롤부(115), I/O 장치(116)를 포함할 수 있다.
프로세서(111)는 차량 인포테인먼트 기반 프로세서(111) 일 수 있다. 예컨대, 프로세서(111)는 Texas Instruments OMAP3430, Marvell PXA320, Freescale iMX51 또는 Qualcomm QSD8650 / 8250과 같은 ARM 기반 프로세서(111)를 포함할 수 있다. 또한, 프로세서(111)는 예를 들어, x86 기반 프로세서(111) 아키텍처 또는 다른 RISC 기반 프로세서(111) 아키텍처와 같은 다른 프로세서(111) 아키텍처에 기초한 다른 적합한 ARM 기반 프로세서(111)일 수 있다. 다만, 이에 한정되는 것은 아니며 제어를 수행하는 다양한 처리 장치를 포함할 수 있다.
디스플레이부(112)는 터치 스크린 디스플레이일 수 있다. 또한, 차량 내에서 실행되는 어플리케이션이 디스플레이부에 의해 구현된 그래픽 유저 인터페이스(GUI)에 의해 제어될 수 있다.
저장부(113)는 시스템 파일 등을 저장할 수 있으며, 메모리부(114)는 소정의 파일, 제어 신호에 대한 정보를 처리하고 저장할 수 있다.
콘트롤부(115)는 차량 내 여러 장치나 구성요소를 제어할 수 있다. 예컨대, 콘트롤부(115)를 통해 터치 스크린 디스플레이를 제어할 수 있다.
I/O 장치(116)는 포트(미도시됨)나 버튼(미도시됨) 및 차량용 소프트웨어 제어 장치(10)에 채용될 수 있는 다른 유저 인터페이스 구성요소를 포함할 수 있다. 예를 들어, 버튼은 클릭 휠, 스크롤 휠, 쿼티(QWERTY) 키보드 등을 포함할 수 있다. 또한, 다른 유저 인터페이스 구성요소는 GPS 장치, LAN 연결성, 마이크로폰, 스피커, 카메라, 가속도계, MS / MMC / SD / SDIO 카드 인터페이스 등을 포함 할 수 있다. 다만, 이러한 구성에 한정되는 것은 아니다.
뿐만 아니라, 하드웨어(110)는 상기 구성요소 이외에 전원부(117), 통신 장치 등 다양한 인터페이스 구성요소를 포함할 수 있다. 예컨대, 전원부(117)는 배터리와 연결될 수 있다. 이에, 전원부(117)는 배터리로부터 전기적 상태에 대한 정보 등을 수신할 수 있다. 이러한 구성에 의하여 전원부(117)는 차량용 소프트웨어 제어 장치(10)의 전원을 관리할 수 있다.
도 3을 참조하면, 커널(120)은 하드웨어(110)와 연결되어 제어 신호를 하드웨어(110)에 제공할 수 있다. 이러한 커널(120)은 인터럽트 처리, 프로세스 관리, 메모리 관리, 파일 시스템 관리, 프로그래밍 인터페이스를 제공하는 등 장치의 가장 기본적인 기능들을 관리하고 제어하는 영역이다. 커널(120)은 일반적으로 접근이 불가능한 메모리에 로드(load)되며, 하드웨어를 제어하기 위한 일종의 API(Application Program Interface)라고 볼 수 있다. 그리고 하드웨어(110)는 커널(120)로부터 수신한 제어 신호에 따라 기능을 수행할 수 있다.
차량용 소프트웨어 제어 장치(10)에서 커널(120)은 운영 체제를 실행할 수 있다. 즉, 운영 체제는 커널(120) 상에서 실행될 수 있다. 구체적으로, 운영 체제는 커널(120)을 통해 하드웨어(110)와 인터페이스로 차량용 소프트웨어 제어 장치(10)에 적용되는 관리자일 수 있다. 예컨대, 랩탑의 경우, 운영 체제는 Linux, Mac OS X 및 Windows 7 등을 포함할 수 있다. 뿐만 아니라, 모바일 운영 체제는 Android, Apple iOS (iPhone 및 iPad 용), Microsoft Windows Mobile (Windows Phone 7로 대체), Nokia Symbian 및 Palm OS (HP webOS가 대신 함)를 포함할 수 있다. 여기서, 커널(120)은 리눅스에 의해 작업을 수행함을 기준으로 이하 설명한다.
그리고 차량용 소프트웨어 제어 장치(10)는 커널(120)에 요청함으로써 커널(120)은 운영 체제의 CPU 스케쥴링, 메모리 접근(memory access), I/O와 같은 하드웨어(110)의 컴퓨터 리소스를 관리할 수 있다. 또한, 운영 체제는 차량 인포테인먼트의 운영 체제일 수 있다. 예컨대, 운영 체제는 QNX, GENIVI, AGL 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
또한, 하드웨어(110)가 존재하지 않더라도, 가상화에 의해 가상 메모리 또는 I / O 액세스없이 커널(120) 인터페이스를 통해 시스템 호출을 수행할 수도 있다. 다만, 이에 한정되지 않는다.
또한, 실시예에서 커널(120)은 리눅스(linux) 기반의 안드로이드 커널일 수 있다. 그리고 안드로이드 커널은 디스플레이 드라이버(121), 카메라 드라이버(122), 통신 드라이버(123), 공유 메모리(124)를 포함할 수 있다. 예컨대, 통신 드라이버(123)는 와이 파이 드라이버, 블루투스 드라이버를 포함할 수 있다.
실시예로, 커널(120)에서 디스플레이 드라이버(121)로서 DRM(direct Rendering Manager)를 포함할 수 있다. 이러한 디스플레이 드라이버(121)는 GPU접근을 가능케 하므로 리눅스 커널의 서브 시스템으로 그래픽 하드웨어를 제어하기 위한 커널 드라이버일 수 있다. 또한, 디스플레이 드라이버(121)는 DRM을 통해 디스플레이 컨트롤과 GPU 컨트롤을 함께 제어할 수도 있다.
커널(120)은 하드웨어(110) 장치에 대한 드라이버를 초기화할 수 있다. 이 경우, 커널(120)은 메모리 보호, 가상 메모리 모듈 및 스케줄 캐싱을 초기화 할 수 있다. 또한, 커널(120)은 운영 체제를 초기화할 수 있다. 실시예에서 커널(120)은 차량용 소프트웨어 제어 장치(10)의 프로세스를 실행하여 안드로이드 기반의 운영 체제에 대한 시스템 서비스 및 추가 시스템 파라미터를 기술하는 구성 파일을 읽을 수 있다.
또한, 실시예에 따른 커널(120)은 커널(120) 상에서 안드로이드 기반의 제1 어플리케이션(150)을 동시에 또는 독립적으로 실행할 수 있다. 이에 따라, 안드로이드 어플리케이션(후술하는 제1 어플리케이션)은 실시예에 따른 차량용 소프트웨어 제어 장치(10)에서 실행될 수 있다.
또한, 실시예에서는 제1 어플리케이션(150)을 통해 가상화 없이 제어 신호가 커널(120)을 통해 하드웨어(110)로 제공될 수 있다. 그리고 제1 어플리케이션(150)은 하드웨어(110)의 디스플레이에 표시될 수 있으며, 사용자가 디스플레이 상에 입력(예를 들어, 터치 스크린 상의 터치)을 함으로써 운영 체제에 액세스(accesse)할 수 있다. 실시예로, 사용자는 그래픽 유저 인터페이스(GUI)를 사용하여 커널(120) 상의 운영 체제에 접근할 수 있다.
또한, 실시예에서, 커널(120)은 제1 운영 체제를 구동하는 제1 연결부(140)에 필요한 커널 피쳐(feature)를 더 포함할 수 있다. 예컨대, 커널(120)은 LXC(linux container)에 필요한 Logger, ashmem, LMK, Binder, Namespace, Cgroup 등을 포함할 수 있다.
시스템 라이브러리(130)는 커널(120) 상에 위치하여 제1 어플리케이션(150)으로부터의 요청을 최종적으로 커널(120)로 제공할 수 있다. 그리고 앞서 설명한 바와 같이 커널(120)은 제1 어플리케이션(150)으로부터의 요청을 하드웨어(110)로 전달하여 하드웨어(110)를 제어할 수 있다. 여기서, 커널(120)이 하드웨어(110)로 전달하는 요청은 상기 상술한 다양한 제어 신호일 수 있다.
다만, 차량용 소프트웨어 제어 장치(10)의 커널(120) 상에서 실행되는 운영 체제는 시스템마다 실행되는 제1 어플리케이션(150)의 환경이 상이하여 랩탑이나 모바일 운영체제의 운영 체제와 상이할 수 있다. 이에, 모바일 운영 체제 상에 실행되는 제1 어플리케이션(150)이 차량용 소프트웨어 제어 장치(10) 상에서 수행되는데 제한이 존재할 수 있다.
도 4 및 도 5를 참조하면, 실시예에 따른 차량용 소프트웨어 제어 장치(10)의 제1 연결부(140)는 제1 어플리케이션 라이브러리(141), 변환부(142), 전달부(143) 및 제1 호출부(144)를 포함할 수 있다.
제1 어플리케이션 라이브러리(141)는 제1 어플리케이션(150) 실행이 필요한 라이브러리를 포함하여, 제1 어플리케이션(150)이 실행되면 필요한 라이브러리가 호출될 수 있다. 예컨대, 제1 어플리케이션 라이브러리(141)은 실행된 제1 어플리케이션(150)에 대한 I/O 및 문자열 조작(예를 들어, " C 라이브러리"), 그래픽 라이브러리, 데이터베이스 라이브러리, 통신 라이브러리 및 다른 라이브러리와 같은 공통 기능을 구현할 수 있다. 그리고 제1 어플리케이션 라이브러리(141)는 호출된 라이브러리를 변환부(142)로 제공할 수 있다.
변환부(142)는 호출된 라이브러리를 전달 받아 시스템 라이브러리(130)와 인터페이스 되도록 변환할 수 있다.
예를 들어, 변환부(142)는 차량용 소프트웨어 제어 장치(10)의 시스템 라이브러리(130)에 맞춰 호출된 라이브러리를 변환할 수 있다. 그리고 차량용 소프트웨어 제어 장치(10)의 운영 체제와 제1 어플리케이션(150)이 실행 가능한 운영 체제는 리눅스 기반일 수 있다.
예컨대, 제1 어플리케이션(150)이 구글의 안드로이드(Android)의 운영 체제에서 실행되는 경우, 리눅스를 기반으로 하는 안드로이드는 차량용 소프트웨어 제어 장치(10) 환경(시스템 라이브러리(130))과 커널(120)에 대한 수정이 포함될 수 있다. 그리고 앞서 설명한 바와 같이, 차량용 소프트웨어 제어 장치(10)는 리눅스(Linux) 기반의 커널(120)을 사용할 수 있다.
이와 같이, 리눅스 커널은 안드로이드 커널과 상이한 기반 프로세서(111)로 설계될 수 있으나, 리눅스 기반으로 설계된 점은 동일할 수 있다. 이에, 변환부(142)는 안드로이드 기반에 실행되는 제1 어플리케이션(150)이 터치 스크린, 모바일 연결(GSM / EDGE, CDMA, Wi-Fi 등), 배터리 관리, GPS, 가속도계 및 카메라 모듈을 포함한 하드웨어(110)에 작용하도록 차량용 소프트웨어 제어 장치(10)의 시스템 라이브러리(130)로 변환할 수 있다.
뿐만 아니라, 변환부(142)에서 변환된 라이브러리는 시스템 라이브러리(130), 커널(120)을 통해 하드웨어(110)로 제어 요청으로 전달될 수 있다. 그리고 하드웨어(110)는 제어 요청에 따라 제어될 수 있다.
그리고 커널(120)은 하드웨어(110)에서 제어 결과를 수신하고, 제어 결과를 시스템 라이브러리(130)로 전달하며, 시스템 라이브러리(130)로에서 전달된 제어 결과에 대한 라이브러리로서 전달부(143)로 전달될 수 있다. 그리고 전달부(143)는 제어 결과에 대한 라이브러리를 변환부(142)로 전달하고, 변환부(142)는 전달된 제어 결과에 대한 라이브러리를 제1 어플리케이션 라이브러리(141)에 매칭하여 변환할 수 있다. 즉, 제어 결과에 대한 라이브러리는 제1 어플리케이션 라이브러리(141)의 인터페이스에 맞게 변환되어 하드웨어(110)에 대한 제어 결과가 제1 어플리케이션(150)으로 전달될 수 있으며, 디스플레이 상으로 사용자에게 제공될 수 있다.
전달부(143)는 변환된 라이브러리를 시스템 라이브러리(130)로 전달할 수 있다. 또한, 전달부(143)는 앞서 설명한 바와 같이 제어 결과에 대한 라이브러리를 전달받을 수 있다.
이로써, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 커널(120) 상 차이가 존재하는 제1 어플리케이션(150) 운영 체제와 차량용 소프트웨어 제어 장치(10)의 운영 체제 사이에서 가상 머신 없이 제1 어플리케이션(150)을 실행하고 차량용 소프트웨어 제어 장치(10)의 하드웨어(110)를 제어할 수 있다.
이에 따라, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 커널(120)이 제1 운영 체제(리눅스)에 의해 실행되더라도, 상기 커널(120) 및 시스템 라이브러리(130) 상에 제1 운영 체제와 상이한 제2 운영 체제로 실행되는 제1 연결부(140)를 구성으로 할 수 있다. 이에 따라, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 리눅스 시스템 상에서 멀티 파티션 생성없이 배포할 수 있으며 안드로이드 장치 상에서 개선된 유연성과 안정성을 제공할 수 있다. 뿐만 아니라, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 후술하는 제1 운영 체제(리눅스) 상에서 실행되는 제2 연결부(160) 및 제2 어플리케이션(170)을 포함하며, 이를 기본(default)로 다양한 동작을 수행할 수 있다. 이에 따라, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 리눅스인 제1 운영 체제를 이용하기에 부팅 속도가 제2 운영 체제를 이용하는 경보다 개선되고, 오픈 소스로서의 활용도도 크게 증가할 수 있다.
또한, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 제1 연결부(140)를 통해 시스템 라이브러리(130) 상에서 가상 머신 또는 하이퍼 바이저에 의해 구동되지 않는다. 가상 머신 또는 하이퍼 바이저는 하드웨어(110)상에서 직접 구동되고 운영 체제의 개별 커널(120)을 통해 실행될 수 있다. 예컨대, 하이퍼 바이저나 가상 머신은 하나의 장치에서 여러 개의 가상 컴퓨터를 효과적으로 생성하므로 각 운영 체제에는 별도의 가상 컴퓨터가 존재할 수 있다. 따라서 하이퍼 바이저 및 가상 머신을 통해 동일한 장치에서 실행되는 여러 운영 체제가 차량용 소프트웨어 제어 장치(10)의 커널(120)이 아닌 게스트 운영 체제에서 실행될 수 있다. 이에, 가상화에 의해 실행되므로 각 운영 체제 별로 시스템 오버 헤드가 추가될 수 있다. 또한, 하이퍼 바이저는 CPU 및 기타 컴퓨팅 리소스를 할당해야하기 때문에 각 운영 체제가 프로세스 및 작업을 효과적으로 예약하지 못하는 문제가 있다. 이에 따라, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 하드웨어(110) 자원의 가상화 없이 시스템 성능 그대로 프로세스 및 작업을 효과적으로 수행하고 차량용 소프트웨어 제어 장치(10)의 커널(120) 상에서 실행될 수 있다.
제1 호출부(144)는 커널(120)이 아닌 시스템 라이브러리(130)을 호출할 수 있다. 실시예로, 제1 호출부(144)는 제2 운영 체제를 구현 및 동작하게 하는 시스템의 라이브러리 내에 위치할 수 있다. 그리고 제1 호출부(144)는 커널(120)이 아닌 시스템 라이브러리(130)를 먼저 호출할 수 있다. 다시 말해, 제2 운영 체제를 구현/동작하게 하는 제1 호출부(144)는 제2 운영 체제와 상이한 제1 운영 체제 구현/동작하게 하는 시스템 라이브러리(120)를 호출할 수 있다. 그리고 시스템 라이브러리(120) 내의 제2 호출부(131)가 커널(120)을 호출할 수 있다. 이로써, 커널(120)은 호출된 드라이버(예를 들어, 하드웨어 드라이버)를 이용하여 하드웨어 드라이브 등을 API(Application Program Interface)를 통해 하드웨어(110) 내의 대응하는 디바이스에 액세스를 위한 호출을 수행할 수 있다. 여기서, 하드웨어(110) 내의 대응하는 디바이스는 커널(120)을 통해 호출된 하드웨어 드라이버에서의 디바이스와 동일할 수 있다.
일 실시예로, 제1 호출부(144)가 안드로이드 운영 체제의 시스템 라이브러리 내에서 커널(120)이 아닌 시스템 라이브러리(130)를 호출한 후에 시스템 라이브러리(130)가 커널(120)을 호출하면서 디바이스 액세스가 이루어질 수 있다. 이러한 구성에 의하여, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 하드 웨어(110)가 변경되더라도 연결부(140) 내의 제2 운영 체제 상의 시스템 라이브러리의 수정 없이 시스템 라이브러리(120)의 수정만으로 변경된 하드 웨어에 대한 액세스가 용이하게 이루어질 수 있다. 또한, 실시예에 따른 차량용 소프트웨어 제어 장치(10)는 다양한 칩 제조사가 소정의 운영 체제의 버전에서만 하드웨어에 의존적인 라이브러리를 제공하더라도 각 하드웨어에 대한 액세스가 수행되므로 향상된 호환성을 제공할 수 있다. 즉, 운영 체제의 종류 또는 버전에 구애받지 않을 수 있다.
보다 구체적으로, 호스트(host) 운영 체제(여기서, 제1 운영 체제에 대응)와 부(sub) 운영 체제(여기서, 제2 운영 체제에 대응하며, 예로 컨테이너 상에 존재)가 동일한 운영 체제를 갖는 시스템 구조에서는 호스트 운영 체제의 시스템 라이브러리와 부 운영 체제의 시스템 라이브러리가 동일하여 커널(120)을 공유하듯이 디바이스 액세스가 이루어질 수 있다. 다만, 실시예에서는 호스트 운영 체제와 부 운영 체제가 상이한 운영 체제(각각 제1 운영 체제와 제2 운영 체제)를 갖는 시스템 구조가 이루어지므로, 호스트 운영 체제의 시스템 라이브러리(시스템 라이브러리(130)에 대응)와 부 운영 체제의 시스템 라이브러리(연결부 내의 시스템 라이브러리)가 상이할 수 있다. 이 때, 부 운영 체제의 시스템 라이브러리 내의 제1 호출부(144)가 호스트 운영 체제의 시스템 라이브러리를 호출함으로써 하드웨어에 대한 액세스가 수행될 수 있다.
그리고 제1 호출부(144)는 커널(120)로 제어 신호를 송신하는 경우에 상술한 커널(120) 내의 다양한 디바이스 드라이버(디스플레이 드라이버, 카메라 드라이버 등)를 오픈하기 전에 시스템 라이브러리(130)를 호출할 수 있다. 즉, 호출에 의해 1차적으로 시스템 라이브러리(130)로 호출 신호가 제공되고, 시스템 라이브러리(130) 내의 제2 호출부(131)는 상기 호출 신호에 대응하여 커널(120) 내의 디바이스 드라이버를 다시 오픈할 수 있다. 즉, 제2 호출부(131)는 오픈된 디바이스 드라이버와 기능이 동일한 커널(120) 내의 디바이스 드라이버를 오픈할 수 있다. 이러한 제2 호출부(131)는 제1 호출부(144)에 의한 호출 뿐만 아니라 제2 연결부(160) 내의 시스템 라이브러리에 의한 호출도 이루어질 수 있다.
그리고 상술한 방식에 의하여, 커널(120)은 제1 연결부(140)로부터 제어 정보를 수신할 수 있다. 또한, 하드웨어를 통해 이벤트 입력을 수신하는 경우에도 진행 순서가 반대로 변경될 뿐이다.
또한, 제1 호출부(144) 및 제2 호출부(131)는 하드웨어 추출층(Hardware Abstraction Layer, HAL)을 포함할 수 있다. 이에 따라, 제1 호출부(144) 및 제2 호출부(131)는 여러 라이브러리 모듈로 이루어질 수 있다.
도 6을 참조하면, 실시예의 커널(120)에서 부팅이 수행될 수 있다. 즉, 커널 정보를 메모리로 적재하고, 커널에 시스템 제어 권한이 넘어올 수 있다. 또한, 커널(120)은 제1 운영 체제(예, 리눅스)의 동작을 시작하고, 하드웨어(110)를 점검할 수 있다. 그리고 커널에 의해 첫번째 프로세스가 실행될 수 있다. 이 때, 실시예에 따른 제1 연결부(140)는 제2 운영 체제에 대한 시스템 파일의 경로에 상술한 커널(120) 내의 시스템 파일의 경로를 더 포함할 수 있다. 즉, 제1 연결부(140)의 시스템 파일은 제1 운영 체제에 대한 시스템 파일 경로를 포함할 수 있다.
실시예로, 제1 연결부(140)에서 시스템 파일(L1)은 커널(120)에서의 시스템 파일과 동일한 정보를 포함할 수 있다. 예컨대, 제1 연결부(140)에서 lib 파일(L1)은 제2 운영 체제에 적용 가능한 lib 파일(L1a)과 커널(120)에서 lib 파일(L2)와 동일하며 lib 파일(L1b)을 포함할 수 있다.
다시 도 1을 참조하면, 제2 연결부(160)는 제1 운영 체제를 기반으로 실행될 수 있다. 실시예에서 제2 연결부(160)는 오토모티브 그레이드 리눅스(Automotive Grade Linux, AGL)일 수 있다. 이러한 제2 연결부(160)는 AGL 서비스, AGL 프레임 워크를 포함할 수 있다. 또한, AGL 서비스는 네트워크 기능을 컨트롤 하는 네트워크(network), 화면 출력 관련 기능을 컨트롤 하는 그래픽(graphics), 리소스 관련 기능을 컨트롤 하는 리소스 매니저(resource manager), 오디오 관련 기능을 컨트롤 하는 오디오(audio), 통신 관련 기능을 컨트롤 하는 델레매틱(telematics), 스마트폰과의 연결 기능을 컨트롤하는 스마트폰 링크(smartphone link) 등 다양한 서비스를 포함할 수 있다.
또한, AGL 프레임 워크는 AGL에서 실행되는 어플리케이션(후술하는 제2 어플리케이션)의 라이프 사이클을 관리하는 어플리케이션 매니저(app Manager), AGL 상의 제2 어플리케이션의 화면 디스플레이 레이아웃(layout)을 관리하는 윈도우 매니저(window manager), 제2 어플리케이션으로부터 입력 받는 부분을 관리하는 입력 매니저(input manager), 제2 어플리케이션들의 정보와 리소스를 관리하는 폴리시 매니저(policy manager), 다중 사용자 기능을 관리하는 유저 매니저(user manager), 오디오 관련 기능을 관리하는 사운드 매니저(sound manager) 등의 관리자를 포함할 수 있다.
제2 어플리케이션(170)은 제2 연결부(160) 상에서 실행되는 다양한 어플리케이션을 포함할 수 있다. 예컨대, 제2 어플리케이션(170)은 미디어 재생 어플리케이션인 미디어 플레이어(media player), 웬 브라우저(web browser), 컨테이너 관리 어플리케이션인 안드로이드 컨테이너 모니터링(android container monitoring)을 포함할 수 있다. 이러한 제2 어플리케이션(170)은 상술한 바와 같이 제1 운영 체제 예컨대 리눅스 상에서 실행될 수 있다.
도 7은 실시예에 따른 차량용 소프트웨어 제어 장치의 제1 어플리케이션 제어 방법에 대한 순서도이다
도 7을 참조하면, 실시예에 따른 차량용 소프트웨어 제어 장치의 제1 어플리케이션 제어 방법은 제1 어플리케이션을 실행하는 단계(S310), 제1 연결부에서 시스템 라이브러리에 맞춰 신호를 생성하는 단계(S320), 신호를 시스템 라이브러리 및 커널에 전달하는 단계(S330), 커널이 신호에 따라 하드웨어를 제어하는 단계(S340), 제어 결과를 제1 어플리케이션에 전달하는 단계(S350)을 포함할 수 있다.
앞서 설명한 바와 같이, 제1 어플리케이션이 사용자에 의해 실행될 수 있다. 예컨대, 제1 어플리케이션은 모바일 앱일 수 있다. 그리고 제1 어플리케이션은 안드로이드 운영 체제에서 실행될 수 잇다.
제1 어플리케이션 실행 이후에 제1 연결부에서 신호를 생성할 수 있다. 이러한 신호는 하드웨어의 디바이스를 제어하는 신호일 수 있다. 구체적으로, 제1 어플리케이션의 실행으로 해당 요청이 제1 연결부로 전달될 수 있다. 제1 연결부는 상기 설명과 같이 제1 어플리케이션의 요청에 의해 제1 어플리케이션 라이브러리를 호출할 수 있다. 이에, 제1 어플리케이션 라이브러리는 문자열 등을 포함하는 호출된 라이브러리를 변환부로 제공할 수 있다.
그리고 변환부는 호출된 라이브러리를 전달받아 차량용 소프트웨어 제어 장치의 시스템 라이브러리와 인터페이스 되도록 변환하고, 전달부는 변환된 라이브러리를 시스템 라이브러리로 전달할 수 있다. 이 그리고 제1 호출부는 시스템 라이브러리로 해당 하드웨어 드라이버를 오픈하도록 제2 호출부를 호출할 수 있고, 최종적으로 커널 내의 각 하드웨어를 용이하게 조작하도록 인터페이스를 제공할 수 있다.
그리고 변환된 라이브러리는 시스템 라이브러리에서 차량용 소프트웨어 제어 장치의 운영 체제에 맞는 신호로 변환되어 상기 커널로 전달될 수 있다 그리고 커널은 신호에 따라 하드웨어를 제어할 수 있다.
그리고 커널은 하드웨어에서 제어 결과를 수신하고, 제어 결과를 시스템 라이브러리로 전달하며, 시스템 라이브러리로에서 전달된 제어 결과에 대한 라이브러리로서 전달부로 전달될 수 있다. 그리고 전달부는 제어 결과에 대한 라이브러리를 변환부로 전달하고, 변환부는 전달된 제어 결과에 대한 라이브러리를 제1 어플리케이션 라이브러리에 맞게 변환할 수 있다.
도 8은 실시예에 따른 차량용 소프트웨어 제어 장치를 포함하는 차량을 도시하는 도면이다.
도 8을 참조하면, 차량은 차량 구성 요소(1100), 처리 모듈(1200) 및 버스(1300)를 포함할 수 있다.
차량 구성 요소(1100)는 버스(1300)에 연결된 예시적인 구성일 수 있다.
예컨대, 차량(1000)은 휠, 전원, 스티어링 휠, 디스플레이 패널(예를 들어, 계기판) 및 탑승자 좌석 시스템을 포함한다.
차량(1000)의 차량 구성 요소(1100)는 무선 신호 수신기 및 위성 위치 확인 시스템 수신기(예를 들어, 위성 위치 확인 시스템 (GPS), GLONASS (러시아), 갈릴레오 포지셔닝 시스템 (EU), 나침반 네비게이션 시스템 (중국), 인도 위성 수신기 (Regional Navigational Satellite System)를 포함할 수 있다)
또한, 차량(1000)은 차량 구성 요소(1100)로 다수의 제어 유닛 및 센서를 포함한다. 예를 들어, 제어 유닛 및 센서는 차량 속도, 가속, 감속, 휠 회전, 휠 속도(예를 들어, 차량 바퀴의 분당 회전 수), 휠 슬립 등을 감지할 수 있다.
또한, 제어 유닛 및 센서는 전원 제어기 및 에너지 출력 센서를 포함하고, 전원 제어기 및 에너지 출력 센서는 연료(예를 들어, 가솔린, 천연 가스 또는 기타의 혼합물)의 균형을 제어하거나, 에너지 입력 또는 출력(예를 들어, 전압, 전류, 연료 소비 및 토크) 중 하나 이상을 측정할 수 있다.
또한, 차량 구성 요소(1100)는 변속기 제어 유닛을 포함할 수 있다. 변속기 제어 유닛은 변속기(예를 들어, 기어 선택 또는 설정)의 현재 상태를 제어할 수 있다.
제어 유닛 및 센서는 안전을 위한 에어백 시스템을 포함할 수 있다. 에어백 시스템은 에어백 제어 유닛 및 충돌 센서를 포함할 수 있다. 충돌 센서에 의해 충돌이 검출 될 때, 검출된 데이터는 에어백 방출 제어 유닛에 전송되며, 에어백 방출 제어 유닛은 데이터 수신에 기초하여 에어백을 전개할지 여부를 결정할 수 있다. 이외 안전 구성 요소는 시트 벨트 제어 장치, 헤드 라이트 제어 장치 및 카메라 또는 기타 이미지 센서를 포함할 수 있으나, 이에 한정되는 것은 아니다.
또한, 차량 구성 요소(1100)는 탑승자를 위한 음악 또는 비디오와 같은 엔터테인먼트 옵션을 제공할 수 도 있다.
처리 모듈(1200)은 앞서 설명한 센서 및 제어 유닛을 모니터링하거나 제어할 수 있다. (예를 들어, 엔진, 변속기, 견인 및 안전 제어, 평행 주차 보조 장치, 탑승자 보호 시스템, 파워 스티어링 보조 장치, 자가 진단 장치, 이벤트 데이터 기록 장치, 스티어 바이 텔레매틱스, 네비게이션, 멀티미디어 시스템, 오디오 시스템, 뒷좌석 엔터테인먼트 시스템, 자동차 및 기타 차량용 소프트웨어 제어 장치, 차량 및 차량 간 상호 작용, 차량 간 상호 작용, 게임 콘솔, 적응 형 크루즈 컨트롤, 적응 형 헤드 라이트, 충돌 경고, 사각 지능 센서, 주차/역지 원조, 타이어 압력 모니터링, 계기판, 조명, 시트, 기후 제어, 음성 인식, 원격 제어, 보안 경보 시스템 및 와이퍼 / 창 제어)
상기 설명한 바와 같이, 처리 모듈(1200)은 차량의 다양한 위치에 배치 될 수 있다. 또한, 처리 모듈(1200)은 동일한 감지 기능을 수행하더라도 다양한 위치에 복수개 배치될 수 있다. 예를 들어, 차량(1000)의 후방과의 충돌을 제어하는 처리 모듈(1200)이 손상 되더라도 차량의 다른 위치에 배치된 처리 모듈(1200)은 손상되지 않을 수 있다.
처리 모듈(1200)을 통해 액세스 가능한 애플리케이션은 예를 들어, 다이얼, 게이지(예를 들어, 주행계, 속도계, 오일 압력, 엔진 온도, 실내 / 실외 온도, 트립 컴퓨터, 유지 보수 타이어 압력, 차량/부품 성능 모니터링 및 기타 차량 관련 감지 정보), 핸디캡 및 접근성 그래픽 사용자 인터페이스(예를 들어, 큰 글꼴, 컨트롤, 텍스트 음성 변환, 텍스트 인터페이스, 음성 명령 인터페이스 등)와 관련된 응용 프로그램, 전자 메일 클라이언트, 웹 브라우저, 통신 응용 프로그램 (예를 들어, 전자 메일 응용 프로그램, 문자 메시지 응용 프로그램, 전화 통신 응용 프로그램 등), 게임(솔로 또는 다중 당사자 게임, 다른 dr 멀티미디어 파일, 특히 오디오 및 / 또는 비디오 파일에 대한 액세스, 시청 또는 듣기), 위성 위치 확인 시스템 수신기 응용 프로그램(예를 들어, 위치 추적, 차량 추적, 지도 애플리케이션, 의료 정보 애플리케이션, 응급 서비스 애플리케이션), 잡음 억제 애플리케이션, 뉴스 관련 애플리케이션, 생체 인식 제1 어플리케이션 (예를 들어, 사용자 신원확인을 위한 홍채 인식 시스템 등), 여행 애플리케이션을 포함할 수 있다.
그리고 버스(1300)는 각 처리 모듈(1200)과 연결될 수 있다. 버스(1300)는 표준화된 통신 네트워크를 포함할 수 있다. 통신 표준 네트워크는 이더넷, Wi-Fi, USB, I2C, RS232, RS485 및 FireWire를 포함할 수 있다. 예컨대, 버스(1300)는 캔(CAN)과 같이 표준화된 버스(1300)들을 포함하고 지원할 수 있다.
상기 설명한 차량(1000)의 차량 구성 요소(1100), 처리 모듈(1200) 및 버스(1300)는 앞서 설명한 차량용 소프트웨어 제어 장치의 하드웨어에 포함될 수 있다. 이에, 제1 어플리케이션에 의한 요청에 따란 차량(1000)의 차량 구성 요소(110), 처리 모듈(1200) 및 버스(1300)는 동작할 수 있다.
도 9는 인포테인먼트 차량용 소프트웨어 제어 장치를 설명하는 도면이다.
도 9를 참조하면, 차량의 인포테인먼트 시스템 복수 개의 입력/출력 시스템(2100a, 2100b, 2100n)을 포함하여, 사용자 주위의 미디어 제어부(2200), 디스플레이 제어부(2300), 오디오 제어부(2400)으로부터 사용자의 입력을 수신하고 복수 개의 입력/출력 시스템(2100a, 2100b, 2100n)에 의해 입력에 대응하는 출력을 제공할 수 있다.
예컨대, 사용자가 제1 어플리케이션의 실행으로 복수 개의 입력/출력 시스템(2100a, 2100b, 2100n)을 통해 음성 컨트롤에 대한 입력이 수신되면, 그에 상응하는 음성 출력이 사용자에게 제공될 수 있다. 또한, 애플리케이션을 통한 음성 출력은 차량 구성 요소 중 스피커로 스트리밍되거나 사용자가 선택한 인터페이스로 전송 될 수도 있다.
그리고 본 실시예에서 설명한 차량용 소프트웨어 제어 장치는 컴퓨터 구현 가능한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 또한, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행할 수 있다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
이상에서 실시예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (10)

  1. 하드웨어;
    상기 하드웨어와 연결되어 제1 운영 체제를 실행하는 커널;
    상기 커널과 연결된 시스템 라이브러리;
    상기 제1 운영 체제와 상이한 제2 운영 체제에 대한 라이브러리를 상기 시스템 라이브러리로 연결하는 제1 연결부; 및
    상기 제2 운영 체제에서 실행되는 제1 어플리케이션을 포함하는 차량용 소프트웨어 제어 장치.
  2. 제1항에 있어서,
    상기 제1 연결부는 상기 시스템 라이브러리 내의 드라이버를 오픈하는 제1 호출부를 포함하고,
    상기 시스템 라이브러리는 상기 시스템 라이브러리 내의 드라이버와 동일한 기능을 수행하는 상기 커널 내의 디바이스 드라이버를 오픈하는 제2 호출부를 포함하는 차량용 소프트웨어 제어 장치.
  3. 제2항에 있어서,
    상기 제1 호출부와 상기 제2 호출부는 하드웨어 추출층을 포함하는 차량용 소프트웨어 제어 장치.
  4. 제2항에 있어서,
    상기 커널은 상기 제2 호출부에 의해 오픈된 하드웨어 드라이버를 이용하여 API를 통해 상기 하드웨어에 액세스를 위한 호출을 수행하는 차량용 소프트웨어 제어 장치.
  5. 제2항에 있어서,
    상기 제1 어플리케이션의 실행을 위한 라이브러리를 포함하는 제1 어플리케이션 라이브러리;
    상기 제1 어플리케이션의 실행을 위한 라이브러리를 상기 시스템 라이브러리의 라이브러리와 인터페이스되도록 변환하는 변환부; 및
    상기 변환된 라이브러리를 상기 시스템 라이브러리로 전달하는 전달부;을 더 포함하는 차량용 소프트웨어 제어 장치.
  6. 제1항에 있어서,
    상기 제1 연결부의 시스템 파일은 상기 커널의 시스템 파일과 동일한 경로 정보를 포함하는 차량용 소프트웨어 제어 장치.
  7. 제1항에 있어서,
    상기 커널은 제어 신호를 상기 하드웨어로 제공하는 차량용 소프트웨어 제어 장치
  8. 제1항에 있어서,
    상기 커널은 리눅스 기반인 차량용 소프트웨어 제어 장치.
  9. 제1항에 있어서,
    상기 제1 운영 체제 및 상기 제2 운영 체제는 리눅스 기반인 차량용 소프트웨어 제어 장치.
  10. 제1항에 있어서,
    상기 하드웨어는 차량의 제어 유닛 및 센서를 포함하는 차량용 소프트웨어 제어 장치.
KR1020190114074A 2018-09-17 2019-09-17 차량용 소프트웨어 제어 장치 KR102262926B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20180111097 2018-09-17
KR1020180111097 2018-09-17
KRPCT/KR2018/015098 2018-11-30
PCT/KR2018/015098 WO2020059957A1 (ko) 2018-09-17 2018-11-30 차량용 소프트웨어 제어 장치

Publications (2)

Publication Number Publication Date
KR20200032014A true KR20200032014A (ko) 2020-03-25
KR102262926B1 KR102262926B1 (ko) 2021-06-09

Family

ID=69888518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190114074A KR102262926B1 (ko) 2018-09-17 2019-09-17 차량용 소프트웨어 제어 장치

Country Status (4)

Country Link
US (1) US11059435B2 (ko)
EP (1) EP3855310A4 (ko)
KR (1) KR102262926B1 (ko)
WO (1) WO2020059957A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113176903A (zh) * 2021-04-15 2021-07-27 常州易控汽车电子股份有限公司 Simulink模型应用于不同汽车控制器平台的软件集成方法及系统
CN114333231A (zh) * 2021-12-16 2022-04-12 广州小鹏汽车科技有限公司 紧急呼叫的管理方法、装置、车辆及存储介质
WO2022163983A1 (ko) * 2021-02-01 2022-08-04 주식회사 드림에이스 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614900B (zh) * 2020-05-26 2022-07-15 上海龙旗科技股份有限公司 相机驱动方法及设备
CN113538207B (zh) * 2021-09-17 2022-03-01 北京鲸鲮信息系统技术有限公司 跨进程调用的图形渲染方法、装置、电子设备与存储介质
WO2024072117A1 (ko) * 2022-09-30 2024-04-04 삼성전자 주식회사 전자 장치 및 어플리케이션 간의 통신 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240941A1 (en) * 2004-04-21 2005-10-27 Hufferd John L Method, system, and program for executing data transfer requests
KR20120062568A (ko) * 2010-12-06 2012-06-14 (주)누스코 이종 운영체제 바이너리를 동작시키는 방법
KR101249735B1 (ko) * 2011-04-04 2013-04-03 주식회사 인프라웨어테크놀러지 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
US20130167159A1 (en) * 2010-10-01 2013-06-27 Flextronics Ap, Llc Vehicle comprising multi-operating system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379431A (en) * 1993-12-21 1995-01-03 Taligent, Inc. Boot framework architecture for dynamic staged initial program load
JP4130713B2 (ja) * 1998-10-21 2008-08-06 松下電器産業株式会社 プログラム変換装置
US8549114B2 (en) * 2002-06-12 2013-10-01 Bladelogic, Inc. Method and system for model-based heterogeneous server configuration management
US7493465B2 (en) * 2004-05-17 2009-02-17 Oracle International Corporation Method and system for extended memory with user mode input/output operations
US7707578B1 (en) * 2004-12-16 2010-04-27 Vmware, Inc. Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system
KR101015573B1 (ko) * 2010-07-29 2011-02-16 (주)제이모바일 Rtos 기반의 안드로이드 어플리케이션 실행 장치
US20110252459A1 (en) * 2010-04-12 2011-10-13 Walsh Robert E Multiple Server Access Management
GB2508433A (en) * 2012-12-03 2014-06-04 Ibm Migration of processes in heterogeneous computing environments using emulating and compiling source code on target system
US20160077850A1 (en) * 2013-04-19 2016-03-17 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for binary compatibility
US20150074219A1 (en) * 2013-07-12 2015-03-12 Brocade Communications Systems, Inc. High availability networking using transactional memory
US10255093B2 (en) * 2013-12-17 2019-04-09 Intel Corporation Techniques for portable computing device virtualization
KR101577285B1 (ko) * 2014-01-14 2015-12-14 호서대학교 산학협력단 유헬스 애플리케이션 개발을 위한 안드로이드 기반 센서 추상화 장치
KR102303417B1 (ko) * 2015-06-19 2021-09-23 삼성전자주식회사 복수의 운영 체제를 지원하는 전자 장치 제어 방법
US11076022B2 (en) * 2018-12-31 2021-07-27 Lyft, Inc. Systems and methods for implementing robotics frameworks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240941A1 (en) * 2004-04-21 2005-10-27 Hufferd John L Method, system, and program for executing data transfer requests
US20130167159A1 (en) * 2010-10-01 2013-06-27 Flextronics Ap, Llc Vehicle comprising multi-operating system
KR20120062568A (ko) * 2010-12-06 2012-06-14 (주)누스코 이종 운영체제 바이너리를 동작시키는 방법
KR101249735B1 (ko) * 2011-04-04 2013-04-03 주식회사 인프라웨어테크놀러지 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022163983A1 (ko) * 2021-02-01 2022-08-04 주식회사 드림에이스 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치
KR20220111035A (ko) * 2021-02-01 2022-08-09 주식회사 드림에이스 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치
US11977619B2 (en) 2021-02-01 2024-05-07 Drimaes, Inc. Method and device for controlling device based on vehicle virtual structure
CN113176903A (zh) * 2021-04-15 2021-07-27 常州易控汽车电子股份有限公司 Simulink模型应用于不同汽车控制器平台的软件集成方法及系统
CN113176903B (zh) * 2021-04-15 2024-04-26 常州易控汽车电子股份有限公司 Simulink模型应用于不同汽车控制器平台的软件集成方法及系统
CN114333231A (zh) * 2021-12-16 2022-04-12 广州小鹏汽车科技有限公司 紧急呼叫的管理方法、装置、车辆及存储介质
CN114333231B (zh) * 2021-12-16 2023-06-30 广州小鹏汽车科技有限公司 紧急呼叫的管理方法、装置、车辆及存储介质

Also Published As

Publication number Publication date
US20200290530A1 (en) 2020-09-17
EP3855310A1 (en) 2021-07-28
KR102262926B1 (ko) 2021-06-09
US11059435B2 (en) 2021-07-13
EP3855310A4 (en) 2022-05-18
WO2020059957A1 (ko) 2020-03-26

Similar Documents

Publication Publication Date Title
KR102262926B1 (ko) 차량용 소프트웨어 제어 장치
US9324234B2 (en) Vehicle comprising multi-operating system
US11042341B2 (en) Integrated functionality of center display, driver display, and shared-experience display
EP3092566B1 (en) Vehicle with multiple user interface operating domains
US10860208B2 (en) Multi-window display controller
US10891921B2 (en) Separate operating systems for dashboard display
CN103493030B (zh) 通过添加来自便携式设备的远程传感器来增强车辆信息娱乐系统
WO2015103374A1 (en) Vehicle with multiple user interface operating domains
JP6567642B2 (ja) オペレーティングシステム起動加速
CN106462517B (zh) 在多处理器架构中的早期标识显示
US11325473B2 (en) Electronic device including display and operating method thereof
JP7043563B2 (ja) 車両のための拡張可能なコンピューティングアーキテクチャ
KR102631745B1 (ko) 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
KR20200042793A (ko) 복수의 운영체제들을 실행하는 전자장치 및 그 제어 방법
JP6564845B2 (ja) オペレーティングシステム起動加速
US10606786B2 (en) Upgradable vehicular computing methods and apparatuses
US10303462B2 (en) Windows support of a pluggable ecosystem for universal windows application stores
US20160104417A1 (en) Messaging system for vehicle
KR102367725B1 (ko) 차량 시스템
KR102491362B1 (ko) 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치
KR20180074305A (ko) 전자 장치 및 그의 제어 방법
Pajic et al. Integrating Android to Next Generation Vehicles
JP7484746B2 (ja) 車両用装置、車両用システム
JP7363851B2 (ja) 車両用システム
US20220164193A1 (en) Electronic device for executing heterogeneous operating systems and method therefor

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant