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

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

Info

Publication number
WO2020059957A1
WO2020059957A1 PCT/KR2018/015098 KR2018015098W WO2020059957A1 WO 2020059957 A1 WO2020059957 A1 WO 2020059957A1 KR 2018015098 W KR2018015098 W KR 2018015098W WO 2020059957 A1 WO2020059957 A1 WO 2020059957A1
Authority
WO
WIPO (PCT)
Prior art keywords
library
vehicle
kernel
hardware
unit
Prior art date
Application number
PCT/KR2018/015098
Other languages
English (en)
French (fr)
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 EP18808203.6A priority Critical patent/EP3855310A4/en
Priority to US16/308,246 priority patent/US11059435B2/en
Priority to KR1020190114074A priority patent/KR102262926B1/ko
Publication of WO2020059957A1 publication Critical patent/WO2020059957A1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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

Definitions

  • the embodiment relates to a software control device for a vehicle.
  • GM and Ford are developing automotive infotainment systems with a more dynamic user interface.
  • Cadillac's CUE ⁇ infotainment system incorporates an in-vehicle infotainment system with an intelligent user interface with touch and haptic feedback, natural language voice interaction, proximity sensing and buttons and controls to provide more in-vehicle information, communication navigation, and simultaneously It simplifies entertainment and adapts to driving use.
  • Ford has developed a SYNC ⁇ and MYFORD ⁇ system that provides functionality similar to CUE ⁇ , and an in-vehicle application repository for games and other types of applications.
  • MYFORD ⁇ offers an open architecture, allowing developers to develop software to run custom displays on a web-based vehicle.
  • Embodiments may provide a software control device for a vehicle that can be used by a first application running on a different operating system.
  • the problem to be solved in the embodiment is not limited to this, and it will be said that the object or effect that can be grasped from the solution means or the embodiment of the problem described below may be included.
  • a software control device for a vehicle includes hardware; A kernel connected to the hardware to execute a first operating system; A system library connected to the kernel; A first connection unit connecting a library for a second operating system different from the first operating system to the system library; And a first application running on the second operating system.
  • the first connection unit may include a first call unit that opens a driver in the system library, and the system library may include a second call unit that opens a device driver in the kernel that performs the same function as the driver in the system library. have.
  • the first call unit and the second call unit may include a hardware extraction layer.
  • the kernel may make a call to access the hardware through an API using a hardware driver opened by the second calling unit.
  • a first application library including a library for executing the first application; A conversion unit for converting the library for the execution of the first application to interface with the library of the system library; And a delivery unit that delivers the converted library to the system library.
  • the system file of the first connection part may include the same path information as the system file of the kernel.
  • the kernel may provide control signals to the hardware.
  • the kernel may be Linux based.
  • the first operating system and the second operating system may be Linux-based.
  • the hardware may include a vehicle control unit and sensors.
  • FIG. 1 is a conceptual diagram showing a software control device for a vehicle according to an embodiment
  • FIG. 3 is a conceptual diagram of a kernel according to an embodiment
  • FIG. 4 is a conceptual diagram of a first connection unit according to an embodiment
  • FIG. 6 is a view for explaining a system file of the first connection unit according to the embodiment.
  • FIG. 7 is a flowchart of a first application control method of a software control device for a vehicle according to an embodiment
  • FIG. 8 is a view showing a vehicle including a vehicle software control device according to an embodiment
  • FIG. 9 is a view for explaining a software control device for an infotainment vehicle.
  • first and second may be used to describe various components, but the components are not limited by the terms. The terms are used only for the purpose of distinguishing one component from other components.
  • the second component may be referred to as a first component without departing from the scope of the present invention, and similarly, the first component may also be referred to as a second component.
  • An embodiment of the present disclosure relates to a software control device for a vehicle for vehicle infotainment, and provides a system environment grafted with vehicle infotainment when using an application such as a smartphone application ('app' in the same sense) in a vehicle Do what you do.
  • an application such as a smartphone application ('app' in the same sense) in a vehicle Do what you do.
  • this does not limit the rights of this patent.
  • FIG. 1 is a conceptual diagram illustrating a software control device for a vehicle according to an embodiment
  • FIG. 2 is a conceptual diagram of hardware according to an embodiment
  • FIG. 3 is a conceptual diagram of a kernel according to an embodiment
  • FIG. 4 is a system library according to an embodiment
  • 5 is a conceptual diagram of a first connection unit according to an embodiment
  • FIG. 6 is a diagram illustrating a system file of the first connection unit according to an embodiment.
  • the vehicle software control device 10 may also include a vehicle infotainment system.
  • the vehicle software control device 10 includes a vehicle console operating system related to user use, a mobile operating system related to user use in a mobile environment, and a terminal environment related to user use in a mobile environment, and a plurality of applications are simultaneously independent on the kernel. Can be executed as
  • the vehicle software control device 10 includes a hardware 110, a kernel 120, a system library 130, a first connection unit 140, a first application 150, and a second connection unit 160 ) And the second application 170.
  • the hardware 110 may include an exemplary hardware 110 architecture configuration of the software control device 10 for a vehicle according to an embodiment.
  • the hardware 110 may include a processor 111, a display unit 112, a storage unit 113, a memory unit 114, a control unit 115, and an I / O device 116.
  • the processor 111 may be a vehicle infotainment based processor 111.
  • the processor 111 may include an ARM-based processor 111 such as Texas Instruments OMAP3430, Marvell PXA320, Freescale iMX51 or Qualcomm QSD8650 / 8250.
  • the processor 111 may be another suitable ARM-based processor 111 based on another processor 111 architecture, such as, for example, an x86 based processor 111 architecture or another RISC based processor 111 architecture.
  • the present invention is not limited thereto, and may include various processing devices that perform control.
  • the display unit 112 may be a touch screen display.
  • an application executed in the vehicle may be controlled by a graphical user interface (GUI) implemented by the display unit.
  • GUI graphical user interface
  • the storage unit 113 may store system files, and the like, and the memory unit 114 may process and store information about a predetermined file or control signal.
  • the control unit 115 may control various devices or components in the vehicle.
  • the touch screen display may be controlled through the control unit 115.
  • I / O device 116 may include ports (not shown) or buttons (not shown) and other user interface components that may be employed in vehicle software control device 10.
  • the button may include a click wheel, a scroll wheel, a QWERTY keyboard, and the like.
  • other user interface components may include a GPS device, LAN connectivity, microphone, speaker, camera, accelerometer, MS / MMC / SD / SDIO card interface, and the like. However, it is not limited to this configuration.
  • the hardware 110 may include various interface components such as a power supply unit 117 and a communication device in addition to the above components.
  • the power supply unit 117 may be connected to a battery. Accordingly, the power supply unit 117 may receive information about an electric state from a battery. By such a configuration, the power supply unit 117 can manage the power of the software control device 10 for a vehicle.
  • the kernel 120 is connected to the hardware 110 to provide a control signal to the hardware 110.
  • the kernel 120 manages and controls the most basic functions of the device, such as providing interrupt processing, process management, memory management, file system management, and programming interface.
  • the kernel 120 is loaded into a memory that is generally inaccessible, and can be regarded as a kind of application program interface (API) for controlling hardware.
  • API application program interface
  • the hardware 110 may perform a function according to a control signal received from the kernel 120.
  • the kernel 120 may execute an operating system. That is, the operating system can run on the kernel 120.
  • the operating system may be an administrator applied to the vehicle software control device 10 in an interface with the hardware 110 through the kernel 120.
  • the operating system may include Linux, Mac OS X and Windows 7.
  • mobile operating systems can include Android, Apple iOS (for iPhone and iPad), Microsoft Windows Mobile (replaced by Windows Phone 7), Nokia Symbian and Palm OS (HP webOS takes over).
  • the kernel 120 will be described below based on the operation performed by Linux.
  • the vehicle software control device 10 requests the kernel 120 so that the kernel 120 can manage computer resources of the hardware 110 such as CPU scheduling, memory access, and I / O of the operating system.
  • the operating system may be the operating system of the vehicle infotainment.
  • the operating system may be any one of QNX, GENIVI, and AGL, but is not limited thereto.
  • a system call may be performed through the kernel 120 interface without virtual memory or I / O access by virtualization.
  • a system call may be performed through the kernel 120 interface without virtual memory or I / O access by virtualization.
  • it is not limited to this.
  • the kernel 120 may be a Linux-based Android kernel.
  • the Android kernel may include a display driver 121, a camera driver 122, a communication driver 123, and a shared memory 124.
  • the communication driver 123 may include a Wi-Fi driver and a Bluetooth driver.
  • the kernel 120 may include a Direct Rendering Manager (DRM) as the display driver 121. Since the display driver 121 enables GPU access, it may be a kernel driver for controlling graphics hardware as a subsystem of the Linux kernel. Also, the display driver 121 may control the display control and the GPU control together through DRM.
  • DRM Direct Rendering Manager
  • the kernel 120 may initialize drivers for the hardware 110 device.
  • the kernel 120 may initialize memory protection, virtual memory module, and schedule caching.
  • the kernel 120 may initialize the operating system.
  • the kernel 120 may execute a process of the vehicle software control device 10 to read a configuration file describing system services and additional system parameters for an Android-based operating system.
  • the kernel 120 according to the embodiment may simultaneously or independently execute the Android-based first application 150 on the kernel 120. Accordingly, the Android application (the first application described later) may be executed in the vehicle software control device 10 according to the embodiment.
  • a control signal may be provided to the hardware 110 through the kernel 120 without virtualization through the first application 150.
  • the first application 150 may be displayed on the display of the hardware 110, and the user may access the operating system by input on the display (eg, a touch on the touch screen).
  • a user may access an operating system on the kernel 120 using a graphical user interface (GUI).
  • GUI graphical user interface
  • the kernel 120 may further include kernel features required for the first connection unit 140 that drives the first operating system.
  • the kernel 120 may include Logger, ashmem, LMK, Binder, Namespace, Cgroup, etc. required for the Linux container (LXC).
  • the system library 130 is located on the kernel 120 to finally provide a request from the first application 150 to the kernel 120.
  • the kernel 120 may control the hardware 110 by transmitting a request from the first application 150 to the hardware 110.
  • the request transmitted by the kernel 120 to the hardware 110 may be various control signals described above.
  • the operating system executed on the kernel 120 of the vehicle software control device 10 may be different from the operating system of the laptop or mobile operating system because the environment of the first application 150 executed for each system is different. Accordingly, there may be a limitation that the first application 150 executed on the mobile operating system is performed on the vehicle software control device 10.
  • the first connection unit 140 of the vehicle software control device 10 includes a first application library 141, a conversion unit 142, a transmission unit 143, and a first It may include a calling unit 144.
  • the first application library 141 includes a library that needs to execute the first application 150, and when the first application 150 is executed, the required library can be called.
  • the first application library 141 may perform I / O and string manipulation (eg, “C library”), a graphic library, a database library, a communication library, and other libraries for the executed first application 150. Common functions can be implemented.
  • the first application library 141 may provide the called library to the conversion unit 142.
  • the conversion unit 142 may receive the called library and convert it to interface with the system library 130.
  • the conversion unit 142 may convert the called library to the system library 130 of the vehicle software control device 10.
  • the operating system of the vehicle software control device 10 and the operating system that the first application 150 can execute may be Linux-based.
  • the vehicle software control device 10 when the first application 150 is executed in the operating system of Google's Android, Android based on Linux is a vehicle software control device 10 environment (system library 130) and a kernel 120 Modifications to may be included.
  • the vehicle software control device 10 may use a Linux-based kernel 120.
  • the Linux kernel may be designed with a different based processor 111 from the Android kernel, but the Linux-based design may be the same.
  • the conversion unit 142 is a hardware that includes a touch screen, a mobile connection (GSM / EDGE, CDMA, Wi-Fi, etc.), battery management, GPS, accelerometer, and camera module, the first application 150 running on the Android base It can be converted to the system library 130 of the vehicle software control device 10 to act on (110).
  • the library converted by the conversion unit 142 may be delivered as a control request to the hardware 110 through the system library 130 and the kernel 120.
  • the hardware 110 may be controlled according to a control request.
  • the kernel 120 receives control results from the hardware 110, transfers the control results to the system library 130, and transfers the control results to the system library 130 as a library for the control results transferred from the system library 130 to the delivery unit 143. Can be delivered. And the transfer unit 143 transfers the library for the control result to the conversion unit 142, and the conversion unit 142 can be converted by matching the library for the control result to the first application library 141. . That is, the library for the control result is converted according to the interface of the first application library 141 so that the control result for the hardware 110 can be delivered to the first application 150 and provided to the user on the display. have.
  • the transfer unit 143 may transfer the converted library to the system library 130.
  • the delivery unit 143 may receive a library of control results as described above.
  • the vehicle software control device 10 has a first application without a virtual machine between the operating system of the first application 150 operating system and the vehicle software control device 10 in which a difference exists in the kernel 120. It is possible to execute 150 and control the hardware 110 of the vehicle software control device 10.
  • the vehicle software control apparatus 10 may be configured to have a first operating system on the kernel 120 and the system library 130 even if the kernel 120 is executed by the first operating system (Linux).
  • the first connection unit 140 running with a different second operating system may be configured.
  • the vehicle software control device 10 according to the embodiment can be distributed without creating a multi-partition on the Linux system and can provide improved flexibility and stability on the Android device.
  • the vehicle software control apparatus 10 according to the embodiment includes a second connection unit 160 and a second application 170 executed on a first operating system (Linux), which will be described later, and this is the default.
  • Various operations can be performed. Accordingly, in the vehicle software control apparatus 10 according to the embodiment, the boot speed is improved compared to the case of using the second operating system because the first operating system is Linux, and utilization as an open source can be greatly increased.
  • the vehicle software control device 10 is not driven by the virtual machine or the hypervisor on the system library 130 through the first connection unit 140.
  • the virtual machine or hypervisor can run directly on the hardware 110 and run through a separate kernel 120 of the operating system.
  • a hypervisor or a virtual machine effectively creates multiple virtual machines on one device, so each operating system may have separate virtual machines. Accordingly, multiple operating systems running on the same device through the hypervisor and the virtual machine can be executed in the guest operating system, not the kernel 120 of the in-vehicle software control device 10. Accordingly, since it is executed by virtualization, system overhead may be added for each operating system.
  • the hypervisor needs to allocate CPU and other computing resources, there is a problem that each operating system cannot effectively schedule processes and tasks. Accordingly, the software control device 10 for a vehicle according to an embodiment may effectively perform processes and tasks without system virtualization of hardware 110 resources and be executed on the kernel 120 of the vehicle software control device 10.
  • the first calling unit 144 may call the system library 130 rather than the kernel 120.
  • the first caller 144 may be located in a library of systems that implement and operate the second operating system.
  • the first call unit 144 may call the system library 130 first, not the kernel 120.
  • the first calling unit 144 that implements / operates the second operating system may call the system library 120 that implements / operates the first operating system different from the second operating system.
  • the second call unit 131 in the system library 120 may call the kernel 120.
  • the kernel 120 may perform a call for access to a corresponding device in the hardware 110 through an API (Application Program Interface), such as a hardware drive using the called driver (for example, a hardware driver). have.
  • the corresponding device in the hardware 110 may be the same as the device in the hardware driver called through the kernel 120.
  • the vehicle software control device 10 after the first calling unit 144 calls the system library 130, not the kernel 120, in the system library of the Android operating system, the system library 130 calls the kernel 120 and then the device Access can be made.
  • the vehicle software control device 10 is hard to change only by the modification of the system library 120 without modification of the system library on the second operating system in the connection unit 140 even if the hardware 110 is changed Access to the wear can be made easily.
  • the software control device 10 for a vehicle according to an embodiment may provide improved compatibility since access to each hardware is performed even if various chip manufacturers provide hardware-dependent libraries only in a version of a predetermined operating system. That is, it may be independent of the type or version of the operating system.
  • the host operating system (here, corresponding to the first operating system) and the sub operating system (here, corresponding to the second operating system, eg present on a container) have the same operating system.
  • the system library of the host operating system and the system library of the sub-operating system are the same, so device access can be performed as if the kernel 120 is shared.
  • a system library (system library 130) of the host operating system )
  • the system library of the secondary operating system (system library in the connection) may be different.
  • access to hardware may be performed by the first calling unit 144 in the system library of the sub-operating system calling the system library of the host operating system.
  • the first call unit 144 when the first call unit 144 transmits a control signal to the kernel 120, it calls the system library 130 before opening various device drivers (display drivers, camera drivers, etc.) in the above-described kernel 120. can do. That is, a call signal is primarily provided to the system library 130 by a call, and the second call unit 131 in the system library 130 reopens the device driver in the kernel 120 in response to the call signal. can do. That is, the second calling unit 131 may open the device driver in the kernel 120 having the same function as the opened device driver. The second call unit 131 may not only be called by the first call unit 144, but also by a system library in the second connection unit 160.
  • the kernel 120 may receive control information from the first connection unit 140.
  • the order of progress is only reversed.
  • first calling unit 144 and the second calling unit 131 may include a hardware abstraction layer (HAL). Accordingly, the first calling unit 144 and the second calling unit 131 may be made of various library modules.
  • HAL hardware abstraction layer
  • booting may be performed in the kernel 120 of the embodiment. That is, the kernel information is loaded into memory, and system control authority may be transferred to the kernel.
  • the kernel 120 may start the operation of the first operating system (eg, Linux) and check the hardware 110.
  • the first process can be executed by the kernel.
  • the first connection unit 140 according to the embodiment may further include the path of the system file in the above-described kernel 120 in the path of the system file for the second operating system. That is, the system file of the first connection unit 140 may include a system file path for the first operating system.
  • the system file L1 in the first connection unit 140 may include the same information as the system file in the kernel 120.
  • the lib file L1 in the first connection unit 140 is the same as the lib file L1a applicable to the second operating system and the lib file L2 in the kernel 120, and may include the lib file L1b. have.
  • the second connection unit 160 may be executed based on the first operating system.
  • the second connection unit 160 may be Automotive Grade Linux (AGL).
  • the second connection unit 160 may include an AGL service and an AGL framework.
  • the AGL service includes networks that control network functions, graphics that control screen output-related functions, resource managers that control resource-related functions, and audio that controls audio-related functions. , Telematics to control communication-related functions, and a smart phone link to control the connection function with a smart phone.
  • the AGL framework includes an application manager that manages the life cycle of an application running in AGL (the second application described later), and a window manager that manages the screen display layout of the second application on AGL. manager), an input manager that manages the part received from the second application, a policy manager that manages information and resources of the second applications, a user manager that manages multi-user functions, And a manager such as a sound manager managing audio-related functions.
  • the second application 170 may include various applications executed on the second connection unit 160.
  • the second application 170 may include a media player that is a media playback application, a web browser, and android container monitoring that is a container management application.
  • the second application 170 may be executed on the first operating system such as Linux.
  • FIG. 7 is a flowchart of a first application control method of a software control device for a vehicle according to an embodiment
  • a method for controlling a first application of a software control device for a vehicle includes: executing a first application (S310); generating a signal according to a system library at a first connection (S320); It may include the step of delivering to the system library and the kernel (S330), the kernel controlling the hardware according to the signal (S340), and passing the control result to the first application (S350).
  • the first application may be executed by the user.
  • the first application may be a mobile app.
  • the first application can run on the Android operating system.
  • the signal may be generated by the first connection unit after the first application is executed.
  • a signal may be a signal that controls a device of hardware.
  • a request may be delivered to the first connection unit by executing the first application.
  • the first connection unit may call the first application library at the request of the first application.
  • the first application library may provide a called library including a character string as a conversion unit.
  • the conversion unit receives the called library and converts it to interface with the system library of the vehicle software control device, and the transmission unit may transfer the converted library to the system library.
  • the first calling unit may call the second calling unit to open the corresponding hardware driver into the system library, and finally, provide an interface to easily manipulate each hardware in the kernel.
  • the converted library may be converted from a system library to a signal suitable for an operating system of a vehicle software control device and transmitted to the kernel, and the kernel may control hardware according to the signal.
  • the kernel receives control results from hardware, transfers control results to a system library, and can be delivered to a delivery unit as a library for control results transferred from the system library.
  • the delivery unit may transmit a library for the control result to the conversion unit, and the conversion unit may convert the library for the transmitted control result to match the first application library.
  • FIG. 8 is a diagram illustrating a vehicle including a software control device for a vehicle according to an embodiment.
  • a vehicle may include a vehicle component 1100, a processing module 1200, and a bus 1300.
  • Vehicle component 1100 may be an exemplary configuration coupled to bus 1300.
  • vehicle 1000 includes a wheel, a power source, a steering wheel, a display panel (eg, an instrument panel), and an occupant seat system.
  • a display panel eg, an instrument panel
  • the vehicle component 1100 of the vehicle 1000 includes a wireless signal receiver and a satellite positioning system receiver (e.g., satellite positioning system (GPS), GLONASS ( Russia), Galileo Positioning System (EU), compass navigation system ( China), Indian satellite receiver (may include Regional Navigational Satellite System)
  • satellite positioning system GPS
  • GLONASS Russian
  • EU Galileo Positioning System
  • compass navigation system China
  • Indian satellite receiver may include Regional Navigational Satellite System
  • the vehicle 1000 is a vehicle component 1100 and includes a plurality of control units and sensors.
  • the control unit and sensors can detect vehicle speed, acceleration, deceleration, wheel rotation, wheel speed (eg, number of revolutions per minute of vehicle wheels), wheel slip, and the like.
  • control unit and sensors include a power controller and an energy output sensor, and the power controller and energy output sensor controls the balance of fuel (eg, gasoline, natural gas, or other mixtures), or the energy input or output ( For example, one or more of voltage, current, fuel consumption and torque) can be measured.
  • fuel eg, gasoline, natural gas, or other mixtures
  • energy input or output For example, one or more of voltage, current, fuel consumption and torque
  • the vehicle component 1100 may include a transmission control unit.
  • the transmission control unit can control the current state of the transmission (eg, gear selection or setting).
  • the control unit and sensor may include an airbag system for safety.
  • the airbag system can include an airbag control unit and a collision sensor. When a collision is detected by the collision sensor, the detected data is transmitted to the airbag emission control unit, and the airbag emission control unit can determine whether to deploy the airbag based on data reception.
  • Other safety components may include, but are not limited to, a seat belt control device, a headlight control device, and a camera or other image sensor.
  • vehicle component 1100 may provide entertainment options such as music or video for the occupant.
  • the processing module 1200 may monitor or control the sensors and control units described above.
  • engine transmission, towing and safety control, parallel parking assist, occupant protection system, power steering assist, self-diagnostics, event data recorder, steer by telematics, navigation, multimedia system, audio system, rear seat Entertainment systems, software control devices for cars and other vehicles, vehicle-to-vehicle interaction, vehicle-to-vehicle interaction, game consoles, adaptive cruise control, adaptive headlights, collision warning, blind intelligence sensors, parking / check-out assistance, tire pressure Monitoring, instrument panel, lighting, seat, climate control, voice recognition, remote control, security alarm system and wiper / window control)
  • the processing module 1200 may be disposed at various positions of the vehicle.
  • a plurality of processing modules 1200 may be arranged at various locations even if they perform the same sensing function. For example, even if the processing module 1200 that controls collision with the rear of the vehicle 1000 is damaged, the processing module 1200 disposed at another location of the vehicle may not be damaged.
  • Applications accessible through processing module 1200 include, for example, dials, gauges (e.g. odometer, speedometer, oil pressure, engine temperature, indoor / outdoor temperature, trip computer, maintenance tire pressure, vehicle / parts) Performance monitoring and other vehicle-related detection information), handicap and accessibility graphical user interfaces (e.g., large fonts, controls, text-to-speech, text-interface, voice-command interface, etc.), e-mail clients, web browsers Communication applications (e.g.
  • e-mail applications text messaging applications, telephony applications, etc.
  • games sol or multi-party games, access to other dr multimedia files, especially audio and / or video files, viewing Or listening
  • satellite positioning system receiver application eg, above Includes tracking, vehicle tracking, map applications, medical information applications, emergency services applications), noise suppression applications, news related applications, first biometric applications (e.g., iris recognition systems for user identification), travel applications can do.
  • the bus 1300 may be connected to each processing module 1200.
  • the bus 1300 may include a standardized communication network.
  • Communication standard networks can include Ethernet, Wi-Fi, USB, I2C, RS232, RS485 and FireWire.
  • the bus 1300 may include and support standardized buses 1300, such as a CAN.
  • the vehicle component 1100, the processing module 1200, and the bus 1300 of the vehicle 1000 described above may be included in hardware of the software control device for a vehicle described above. Accordingly, the vehicle component 110, the processing module 1200, and the bus 1300 of the vehicle 1000 according to the request by the first application may operate.
  • FIG. 9 is a view for explaining a software control device for an infotainment vehicle.
  • the vehicle's infotainment system includes a plurality of input / output systems 2100a, 2100b, and 2100n, and includes a user's media control unit 2200, a display control unit 2300, and an audio control unit 2400.
  • An input may be received and output corresponding to the input may be provided by a plurality of input / output systems 2100a, 2100b, and 2100n.
  • a corresponding voice output may be provided to the user.
  • the audio output through the application may be streamed to a speaker among vehicle components or transmitted to a user-selected interface.
  • the vehicle software control device described in this embodiment may be implemented as a computer program stored in a computer-implemented storage medium.
  • the term ' ⁇ unit' used in the present embodiment means a hardware component such as software or a field-programmable gate array (FPGA) or an ASIC, and the ' ⁇ unit' may perform certain roles. However, ' ⁇ wealth' is not limited to software or hardware.
  • the ' ⁇ unit' may be configured to be in an addressable storage medium or may be configured to reproduce one or more processors.
  • ' ⁇ unit' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, and procedures.
  • Subroutines segments of program code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays, and variables.
  • the functions provided within components and ' ⁇ units' may be combined into a smaller number of components and ' ⁇ units', or further separated into additional components and ' ⁇ units'.
  • the components and ' ⁇ unit' may be implemented to play one or more CPUs in the device or secure multimedia card.

Abstract

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

Description

차량용 소프트웨어 제어 장치
실시예는 차량용 소프트웨어 제어 장치에 관한 것이다.
차량은 보다 높은 수준의 전산화로 점차 이동하고 있다. 대부분의 차량 작업, 기능 및 작업은 현재 컴퓨터 제어 중이거나 전산 장치로 모니터링될 수 있다. 디지털 시대가 도래함에 따라 소비자들은 휴대폰과 테블릿 컴퓨터 사이의 유사성을 요구하고 있다.
예컨대, 제너럴 모터스 (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항에 있어서,
    상기 하드웨어는 차량의 제어 유닛 및 센서를 포함하는 차량용 소프트웨어 제어 장치.
PCT/KR2018/015098 2018-09-17 2018-11-30 차량용 소프트웨어 제어 장치 WO2020059957A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP18808203.6A EP3855310A4 (en) 2018-09-17 2018-11-30 SOFTWARE CONTROL DEVICE FOR A VEHICLE
US16/308,246 US11059435B2 (en) 2018-09-17 2018-11-30 Vehicle software control device
KR1020190114074A KR102262926B1 (ko) 2018-09-17 2019-09-17 차량용 소프트웨어 제어 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0111097 2018-09-17
KR20180111097 2018-09-17

Publications (1)

Publication Number Publication Date
WO2020059957A1 true WO2020059957A1 (ko) 2020-03-26

Family

ID=69888518

Family Applications (1)

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

Country Status (4)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614900A (zh) * 2020-05-26 2020-09-01 上海龙旗科技股份有限公司 相机驱动方法及设备
WO2024072117A1 (ko) * 2022-09-30 2024-04-04 삼성전자 주식회사 전자 장치 및 어플리케이션 간의 통신 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102491362B1 (ko) 2021-02-01 2023-01-26 주식회사 드림에이스 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치
CN113176903B (zh) * 2021-04-15 2024-04-26 常州易控汽车电子股份有限公司 Simulink模型应用于不同汽车控制器平台的软件集成方法及系统
CN113538207B (zh) * 2021-09-17 2022-03-01 北京鲸鲮信息系统技术有限公司 跨进程调用的图形渲染方法、装置、电子设备与存储介质
CN114333231B (zh) * 2021-12-16 2023-06-30 广州小鹏汽车科技有限公司 紧急呼叫的管理方法、装置、车辆及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101015573B1 (ko) * 2010-07-29 2011-02-16 (주)제이모바일 Rtos 기반의 안드로이드 어플리케이션 실행 장치
KR20120062568A (ko) * 2010-12-06 2012-06-14 (주)누스코 이종 운영체제 바이너리를 동작시키는 방법
KR101249735B1 (ko) * 2011-04-04 2013-04-03 주식회사 인프라웨어테크놀러지 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
US9324234B2 (en) * 2010-10-01 2016-04-26 Autoconnect Holdings Llc Vehicle comprising multi-operating system
KR20160149922A (ko) * 2015-06-19 2016-12-28 삼성전자주식회사 복수의 운영 체제를 지원하는 전자 장치 제어 방법

Family Cites Families (13)

* 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
US7577707B2 (en) * 2004-04-21 2009-08-18 International Business Machines Corporation Method, system, and program for executing data transfer requests
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
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 호서대학교 산학협력단 유헬스 애플리케이션 개발을 위한 안드로이드 기반 센서 추상화 장치
US11076022B2 (en) * 2018-12-31 2021-07-27 Lyft, Inc. Systems and methods for implementing robotics frameworks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101015573B1 (ko) * 2010-07-29 2011-02-16 (주)제이모바일 Rtos 기반의 안드로이드 어플리케이션 실행 장치
US9324234B2 (en) * 2010-10-01 2016-04-26 Autoconnect Holdings Llc Vehicle comprising multi-operating system
KR20120062568A (ko) * 2010-12-06 2012-06-14 (주)누스코 이종 운영체제 바이너리를 동작시키는 방법
KR101249735B1 (ko) * 2011-04-04 2013-04-03 주식회사 인프라웨어테크놀러지 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체
KR20160149922A (ko) * 2015-06-19 2016-12-28 삼성전자주식회사 복수의 운영 체제를 지원하는 전자 장치 제어 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3855310A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614900A (zh) * 2020-05-26 2020-09-01 上海龙旗科技股份有限公司 相机驱动方法及设备
CN111614900B (zh) * 2020-05-26 2022-07-15 上海龙旗科技股份有限公司 相机驱动方法及设备
WO2024072117A1 (ko) * 2022-09-30 2024-04-04 삼성전자 주식회사 전자 장치 및 어플리케이션 간의 통신 방법

Also Published As

Publication number Publication date
KR20200032014A (ko) 2020-03-25
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

Similar Documents

Publication Publication Date Title
WO2020059957A1 (ko) 차량용 소프트웨어 제어 장치
US9324234B2 (en) Vehicle comprising multi-operating system
EP3092566B1 (en) Vehicle with multiple user interface operating domains
WO2019143071A1 (en) Electronic device for controlling a plurality of applications
WO2019156414A1 (ko) 차량 식별 정보에 기반하여 결정된 그래픽 사용자 인터페이스를 차량으로 전송하는 방법 및 이를 지원하는 전자 장치
WO2016148491A1 (ko) 애플리케이션 보호 방법 및 장치
WO2020140901A1 (en) Separate operating systems for dashboard display
WO2021187818A1 (ko) 전자 장치 및 전자 장치의 테마를 부분적으로 운용하는 방법
KR102631745B1 (ko) 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
US10606786B2 (en) Upgradable vehicular computing methods and apparatuses
KR20230150318A (ko) 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이장치
WO2018128413A1 (en) Methods and systems for managing application installation
WO2021006574A1 (en) Method and apparatus for managing application
WO2015108282A1 (ko) 전자 장치의 광고 방법 및 그 전자 장치
WO2022163983A1 (ko) 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치
WO2017018719A1 (ko) 보안 네트워크 시스템 및 그 데이터 처리 방법
WO2017014447A1 (ko) 전자 장치 및 이의 제어 방법
WO2019160323A1 (ko) 어플리케이션과 관련된 데이터를 관리하기 위한 방법 및 그 전자 장치
WO2018117719A1 (ko) 전자 장치 및 그의 제어 방법
WO2018182227A1 (ko) 전자 장치 및 그 동작 방법
WO2018034446A1 (ko) 전자장치, 이를 활용한 음성 신호의 노이즈 저감 방법
WO2019031630A1 (ko) 차량 시스템
WO2018004115A1 (ko) 전자 장치 및 그의 동작 방법
WO2020105955A1 (ko) 보안 요소를 통해 보안이 필요한 서비스를 제공하는 전자 장치 및 그 전자 장치를 제어하는 방법
WO2017082570A1 (ko) 전자 장치 및 이의 제어 방법

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018808203

Country of ref document: EP

Effective date: 20190701

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18808203

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE