KR20240009783A - Code parsing apparatus and method for simulation of automotive software platform - Google Patents

Code parsing apparatus and method for simulation of automotive software platform Download PDF

Info

Publication number
KR20240009783A
KR20240009783A KR1020220087104A KR20220087104A KR20240009783A KR 20240009783 A KR20240009783 A KR 20240009783A KR 1020220087104 A KR1020220087104 A KR 1020220087104A KR 20220087104 A KR20220087104 A KR 20220087104A KR 20240009783 A KR20240009783 A KR 20240009783A
Authority
KR
South Korea
Prior art keywords
software
configuration file
code
platform
vehicle software
Prior art date
Application number
KR1020220087104A
Other languages
Korean (ko)
Inventor
정구민
강경하
양수빈
이태양
배승주
Original Assignee
국민대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 국민대학교산학협력단 filed Critical 국민대학교산학협력단
Priority to KR1020220087104A priority Critical patent/KR20240009783A/en
Publication of KR20240009783A publication Critical patent/KR20240009783A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • 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
    • 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
    • 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/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/45595Network integration; Enabling network access in virtual machine instances

Abstract

본 발명은 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치 및 방법에 관한 것으로, 상기 장치는 소프트웨어 개발 도구를 통해 작성된 차량용 소프트웨어의 구성 파일(configuration file)을 수신하는 구성 파일 수신부; 상기 구성 파일의 유형을 분류하는 구성 파일 분류부; 및 상기 구성 파일의 유형에 따라 상기 구성 파일을 파싱(parsing)하여 가상화된 소프트웨어 플랫폼 상에서 상기 차량용 소프트웨어의 실행을 위한 정보들을 추출하는 코드 파싱부;를 포함한다.The present invention relates to a code parsing device and method for simulating a vehicle software platform, the device comprising: a configuration file receiver that receives a configuration file of vehicle software created through a software development tool; a configuration file classification unit that classifies the types of configuration files; and a code parsing unit that parses the configuration file according to the type of the configuration file and extracts information for executing the vehicle software on a virtualized software platform.

Description

차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치 및 방법{CODE PARSING APPARATUS AND METHOD FOR SIMULATION OF AUTOMOTIVE SOFTWARE PLATFORM}Code parsing device and method for simulation of vehicle software platform {CODE PARSING APPARATUS AND METHOD FOR SIMULATION OF AUTOMOTIVE SOFTWARE PLATFORM}

본 발명은 소프트웨어 시뮬레이션 기술에 관한 것으로, 보다 상세하게는 차량용 소프트웨어 플랫폼 기반의 애플리케이션을 시뮬레이션하여 타겟 보드 등 하드웨어 장비 없이 SILS(Software-In-the-Loop Simulation) 검증이 가능하도록 하기 위해 구성 파일에서 필수 정보를 파싱하는 기술에 관한 것이다.The present invention relates to software simulation technology, and more specifically, to simulate applications based on automotive software platforms to enable SILS (Software-In-the-Loop Simulation) verification without hardware equipment such as a target board, which is required in the configuration file. It's about techniques for parsing information.

차량용 인포테인먼트(infotainment)의 발전, 차량의 전장화 등으로 인해 차량 내부 ECU의 개수가 증가하고 구조가 복잡해지며, ECU에서 동작하는 소스 코드 또한 길어지고 있다. 이러한 복잡성으로 인해 완성차 업체들은 차량용 소프트웨어 표준을 제정하고 기능 안전을 위한 표준과 개발 방법론 등을 적용하게 되었다.Due to the development of in-vehicle infotainment and the electronicization of vehicles, the number of ECUs inside the vehicle is increasing and the structure is becoming more complex, and the source code that operates in the ECU is also becoming longer. Due to this complexity, automakers have established vehicle software standards and applied standards and development methodologies for functional safety.

대표적으로 차량용 소프트웨어의 개발과 테스트에는 V-모델을 이용한 개발 방법론이 사용될 수 있다. V-모델은 설계, 구현 및 검증 단계로 구성되며 설계 단계는 요구사항 명세, 시스템 설계 및 모델 설계로 구분될 수 있다. 설계가 완료된 이후에는 시스템을 개발 및 구현하고 검증 단계를 거치게 되는데 이때 검증은 작은 범위의 모듈 테스트부터 시작하여 점차적으로 통합 테스트 및 시스템 테스트로 확장되어 진행될 수 있다.Typically, a development methodology using the V-model can be used in the development and testing of vehicle software. The V-model consists of design, implementation, and verification stages, and the design stage can be divided into requirements specification, system design, and model design. After the design is completed, the system is developed and implemented and goes through a verification stage. At this time, verification may begin with a small scope of module testing and gradually expand to integration testing and system testing.

또한, V-모델을 이용한 개발 시에는 각 단계에서 나온 결과물을 검증하기 위해 가상으로 시스템의 동작을 예측하는 시뮬레이션이 진행될 수 있다. 기능 안전성을 만족시키기 위한 MILS, SILS, EILS, HILS 등 시뮬레이션 검증 단계가 있으며 각 단계별로 시뮬레이션을 통한 오류 검증으로 개발 비용 및 기간을 단축할 수 있다.Additionally, when developing using a V-model, a simulation that virtually predicts the operation of the system can be conducted to verify the results from each step. There are simulation verification stages such as MILS, SILS, EILS, and HILS to satisfy functional safety, and development costs and periods can be reduced by verifying errors through simulation at each stage.

MILS(Model-In-the-Loop Simulation)는 먼저 요구사항 명세서를 기반으로 시스템 모델링을 진행하고 모델을 수학적으로 검증하는 단계이며, 이후 설계한 시스템 모델을 소프트웨어로 구현하고 구현한 소스 코드 동작을 검증하는 단계인 SILS(Software-In-the-Loop Simulation) 단계가 진행될 수 있다. SILS 단계를 거친 후 구현한 소프트웨어 프로그램을 ECU를 이용하여 올바르게 동작하는지 확인하는 단계인 EILS(ECU-In-the-Loop Simulation)를 통해 오류 검증을 수행할 수 있다.MILS (Model-In-the-Loop Simulation) is the step of first conducting system modeling based on the requirements specification and mathematically verifying the model. Afterwards, the designed system model is implemented in software and the implemented source code operation is verified. The SILS (Software-In-the-Loop Simulation) stage may proceed. After going through the SILS step, error verification can be performed through EILS (ECU-In-the-Loop Simulation), which is a step to check whether the implemented software program operates correctly using the ECU.

EILS 단계가 완료되면 전체 시스템이 완성되기 전 실제로 하드웨어들을 결합하여 하드웨어 수준에서 구현한 동작을 시뮬레이션하는 HILS(Hardware-In-the-Loop Simulation) 과정이 수행될 수 있다. 이때, 실제 ECU나 하드웨어 디바이스 등이 필요한 EILS나 HILS 단계에서 별도의 디버깅 장비가 필요하며, 오류가 검출되었을 경우 관련 하드웨어나 타겟 ECU, 소스 코드 등의 소프트웨어 문제 등 많은 요소를 고려해야 하기 때문에 에러 수정으로 인해 소모되는 비용이 매우 클 수 있다.Once the EILS stage is completed, the HILS (Hardware-In-the-Loop Simulation) process can be performed, which simulates operations implemented at the hardware level by actually combining hardware before the entire system is completed. At this time, separate debugging equipment is required in the EILS or HILS stage, which requires the actual ECU or hardware device, and when an error is detected, many factors such as related hardware, target ECU, and software problems such as source code must be considered, so error correction is required. The cost incurred as a result can be very large.

이러한 비용을 줄이기 위해서는 실제 타겟 ECU가 아닌 타겟 ECU를 가상화한 가상 ECU에서의 시뮬레이션이 필요할 수 있다. 또한, 차량용 소프트웨어 플랫폼 AUTOSAR의 적용이 확대됨에 따라 AUTOSAR 플랫폼과 ECU를 연계한 가상 시뮬레이터가 필요할 수 있다.To reduce these costs, simulation may be needed on a virtual ECU that virtualizes the target ECU, rather than the actual target ECU. Additionally, as the application of the automotive software platform AUTOSAR expands, a virtual simulator linking the AUTOSAR platform and ECU may be needed.

한국등록특허 제10-1134735호 (2012.04.02)Korean Patent No. 10-1134735 (2012.04.02)

본 발명의 일 실시예는 오토사 플랫폼 기반 ECU 시뮬레이션을 위해 차량용 소프트웨어의 구성 파일로부터 차량용 소프트웨어의 구동에 필수적인 정보들을 추출할 수 있는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치 및 방법을 제공하고자 한다.An embodiment of the present invention seeks to provide a code parsing device and method for simulation of a vehicle software platform that can extract information essential for driving vehicle software from a configuration file of vehicle software for ECU simulation based on the Autosa platform.

실시예들 중에서, 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치는 소프트웨어 개발 도구를 통해 작성된 차량용 소프트웨어의 구성 파일(configuration file)을 수신하는 구성 파일 수신부; 상기 구성 파일의 유형을 분류하는 구성 파일 분류부; 및 상기 구성 파일의 유형에 따라 상기 구성 파일을 파싱(parsing)하여 가상화된 소프트웨어 플랫폼 상에서 상기 차량용 소프트웨어의 실행을 위한 정보들을 추출하는 코드 파싱부;를 포함한다.Among embodiments, a code parsing device for simulating a vehicle software platform includes a configuration file receiver that receives a configuration file of vehicle software created through a software development tool; a configuration file classification unit that classifies the types of configuration files; and a code parsing unit that parses the configuration file according to the type of the configuration file and extracts information for executing the vehicle software on a virtualized software platform.

상기 구성 파일 수신부는 상기 차량용 소프트웨어의 구성 파일로서 오토사(AUTOSAR) 기반 소프트웨어의 ARXML(AUTOSAR eXtensible Markup Language) 파일을 수신할 수 있다.The configuration file receiving unit may receive an ARXML (AUTOSAR eXtensible Markup Language) file of AUTOSAR-based software as a configuration file of the vehicle software.

상기 구성 파일 분류부는 상기 ARXML 파일을 상기 소프트웨어 플랫폼의 ASW(Application SoftWare layer)에 대한 설정을 포함하는 ASW 설계 ARXML 파일, BSW(Basic SoftWare layer)에 대한 설정을 포함하는 BSW 설계 ARXML 파일 및 RTE(RunTime Environment)에 관한 설정을 포함하는 RTE 설계 ARXML 파일 중 어느 하나로 분류할 수 있다.The configuration file classification unit divides the ARXML file into an ASW design ARXML file including settings for the ASW (Application SoftWare layer) of the software platform, a BSW design ARXML file including settings for the BSW (Basic SoftWare layer), and an RTE (RunTime It can be classified as one of the RTE design ARXML files that contain settings for the environment.

상기 코드 파싱부는 상기 ASW 설계 ARXML 파일로부터 컴포지션 소프트웨어 컴포넌트(CSWC, Composition SoftWare Component), 소프트웨어 컴포넌트(SWC, SoftWare Component), 러너블(Runnable), 이벤트(Event), 포트(Port), 인터페이스(Interface) 및 데이터 타입(DataType)을 포함하는 제1 파싱 정보를 추출하고, 상기 BSW 설계 ARXML 파일로부터 알람(Alarm), 태스크(Task), 앱 모드(App Mode), 애플리케이션(OsApplication), 카운터(OsCounter), 인터럽트 서비스 루틴(ISR, Interrupt Service Routine) 및 리소스(Resource)를 포함하는 제2 파싱 정보를 추출하며, 상기 RTE 설계 ARXML 파일로부터 이벤트-태스크 매핑(Mapping) 및 소프트웨어 컴포넌트 인스턴스(SWC Instance)를 포함하는 제3 파싱 정보를 추출할 수 있다.The code parsing unit extracts composition software component (CSWC, Composition SoftWare Component), software component (SWC, SoftWare Component), runnable, event, port, and interface from the ASW design ARXML file. And extract first parsing information including DataType, and extract Alarm, Task, App Mode, Application (OsApplication), Counter (OsCounter) from the BSW design ARXML file, Extracts second parsing information including an interrupt service routine (ISR) and resources, and includes event-task mapping and a software component instance (SWC Instance) from the RTE design ARXML file. Third parsing information can be extracted.

상기 코드 파싱부는 상기 제1 내지 제3 파싱 정보들 중에서 적어도 하나에 대한 추출에 실패한 경우 상기 구성 파일 수신부를 통해 상기 구성 파일에 대한 재입력을 요청할 수 있다.If the code parsing unit fails to extract at least one of the first to third parsing information, it may request re-input of the configuration file through the configuration file receiving unit.

상기 코드 파싱 장치는 상기 파싱된 정보들을 기반으로 가상화된 소프트웨어 플랫폼 상에서 동작하는 상기 차량용 소프트웨어의 실행을 위한 실행 코드들을 생성하는 코드 생성부;를 더 포함할 수 있다.The code parsing device may further include a code generation unit that generates executable codes for executing the vehicle software operating on a virtualized software platform based on the parsed information.

상기 코드 생성부는 상기 파싱된 정보들을 기초로 상기 차량용 소프트웨어의 실행에 필요한 RTE(RunTime Environment) API 및 정적 코드(static code)을 생성할 수 있다.The code generator may generate a RunTime Environment (RTE) API and static code necessary for executing the vehicle software based on the parsed information.

상기 코드 파싱 장치는 상기 소프트웨어 플랫폼의 가상화를 구현하고 상기 실행 코드들의 실행에 따라 상기 차량용 소프트웨어의 동작을 시뮬레이션하는 오토사 플랫폼 가상화부; 및 상기 시뮬레이션에 따른 상기 차량용 소프트웨어의 출력을 수신하고 상기 출력을 기초로 가상화된 ECU의 동작을 그래픽 인터페이스를 통해 시각화하는 ECU 가상화 처리부;를 더 포함할 수 있다.The code parsing device includes an Autosa platform virtualization unit that implements virtualization of the software platform and simulates the operation of the vehicle software according to execution of the executable codes; and an ECU virtualization processing unit that receives the output of the vehicle software according to the simulation and visualizes the operation of the virtualized ECU through a graphic interface based on the output.

상기 ECU 가상화 처리부는 상기 가상화된 소프트웨어 플랫폼의 가상 포트(port)로부터 출력값을 수신하고 상기 출력값에 상응하는 동작을 상기 가상화된 ECU를 통해 출력할 수 있다.The ECU virtualization processing unit may receive an output value from a virtual port of the virtualized software platform and output an operation corresponding to the output value through the virtualized ECU.

실시예들 중에서, 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 방법은 구성 파일 수신부를 통해 소프트웨어 개발 도구를 통해 작성된 차량용 소프트웨어의 구성 파일(configuration file)을 수신하는 단계; 구성 파일 분류부를 통해 상기 구성 파일의 유형을 분류하는 단계; 및 코드 파싱부를 통해 상기 구성 파일의 유형에 따라 상기 구성 파일을 파싱(parsing)하여 가상화된 소프트웨어 플랫폼 상에서 상기 차량용 소프트웨어의 실행을 위한 정보들을 추출하는 단계;를 포함한다.Among embodiments, a code parsing method for simulation of a vehicle software platform includes receiving a configuration file of vehicle software created through a software development tool through a configuration file receiving unit; Classifying the type of configuration file through a configuration file classification unit; and extracting information for executing the vehicle software on a virtualized software platform by parsing the configuration file according to the type of the configuration file through a code parser.

상기 코드 파싱 방법은 코드 생성부를 통해 상기 파싱된 정보들을 기반으로 가상화된 소프트웨어 플랫폼 상에서 동작하는 상기 차량용 소프트웨어의 실행을 위한 실행 코드들을 생성하는 단계;를 더 포함할 수 있다.The code parsing method may further include generating executable codes for executing the vehicle software operating on a virtualized software platform based on the parsed information through a code generator.

상기 코드 파싱 방법은 오토사 플랫폼 가상화부를 통해 상기 소프트웨어 플랫폼의 가상화를 구현하고 상기 실행 코드들의 실행에 따라 상기 차량용 소프트웨어의 동작을 시뮬레이션하는 단계; 및 ECU 가상화 처리부를 통해 상기 시뮬레이션에 따른 상기 차량용 소프트웨어의 출력을 수신하고 상기 출력을 기초로 가상화된 ECU의 동작을 그래픽 인터페이스를 통해 시각화하는 단계;를 더 포함할 수 있다.The code parsing method includes implementing virtualization of the software platform through an Autosa platform virtualization unit and simulating the operation of the vehicle software according to execution of the executable codes; and receiving the output of the vehicle software according to the simulation through an ECU virtualization processing unit and visualizing the operation of the virtualized ECU based on the output through a graphic interface.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since it does not mean that a specific embodiment must include all of the following effects or only the following effects, the scope of rights of the disclosed technology should not be understood as being limited thereby.

본 발명의 일 실시예에 따른 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치 및 방법은 차량용 소프트웨어의 구성 파일로부터 필수 정보들을 추출하여 PC 환경에서 시뮬레이션을 진행함으로써 차량용 소프트웨어의 개발 및 검증 테스트에 큰 활용도를 기대할 수 있으며, EILS나 HILS 검증 단계와 같이 테스트 장비나 디버깅 장비에 종속되지 않고 타겟 ECU를 가상화한 시뮬레이터를 통해 SILS 기반 검증이 가능할 수 있다.The code parsing device and method for simulating a vehicle software platform according to an embodiment of the present invention has great utility in the development and verification testing of vehicle software by extracting essential information from the configuration file of vehicle software and conducting simulation in a PC environment. This can be expected, and SILS-based verification may be possible through a simulator that virtualizes the target ECU without being dependent on test equipment or debugging equipment, such as the EILS or HILS verification stage.

본 발명의 일 실시예에 따른 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치 및 방법은 소프트웨어 기반 시뮬레이션을 통해 ECU 등 하드웨어에서 발생할 수 있는 오류들을 예측할 수 있어 EILS와 HILS 단계 검증 이전에 발생하는 에러들을 수정함으로써 오류를 줄일 수 있다. 이를 통해, 하드웨어 테스트 장비구축에 필요한 시간이나 비용을 절감할 수 있어 결과적으로 차량용 소프트웨어 개발 단가의 절감과 개발 주기의 단축의 이점을 얻을 수 있다. 그리고, 디버깅과 오류 발생 시 수정의 용이성을 향상시킬 수 있다.The code parsing device and method for simulating a vehicle software platform according to an embodiment of the present invention can predict errors that may occur in hardware such as ECU through software-based simulation, thereby correcting errors that occur before verification of the EILS and HILS stages. By doing this, errors can be reduced. Through this, the time and cost required to build hardware test equipment can be reduced, resulting in the benefit of reducing vehicle software development costs and shortening the development cycle. Additionally, the ease of debugging and correction when errors occur can be improved.

도 1은 본 발명에 따른 차량용 소프트웨어 시뮬레이션 시스템을 설명하는 도면이다.
도 2는 도 1의 코드 파싱 장치의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 코드 파싱 장치의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 차량용 소프트웨어 시뮬레이션의 전체적인 개념을 설명하는 도면이다.
도 5는 본 발명에 따른 차량용 소프트웨어 시뮬레이션 과정의 일 실시예를 설명하는 도면이다.
도 6은 본 발명에 따른 차량용 소프트웨어 시뮬레이션 시스템의 일 실시예를 설명하는 도면이다.
도 7은 본 발명에 따른 코드 파싱 과정의 일 실시예를 설명하는 도면이다.
도 8은 본 발명에 따른 OS 가상화 과정의 일 실시예를 설명하는 도면이다.
1 is a diagram explaining a vehicle software simulation system according to the present invention.
FIG. 2 is a diagram explaining the system configuration of the code parsing device of FIG. 1.
FIG. 3 is a diagram explaining the functional configuration of the code parsing device of FIG. 1.
Figure 4 is a diagram explaining the overall concept of vehicle software simulation in the present invention.
Figure 5 is a diagram illustrating an embodiment of a vehicle software simulation process according to the present invention.
Figure 6 is a diagram explaining an embodiment of a vehicle software simulation system according to the present invention.
Figure 7 is a diagram illustrating an embodiment of the code parsing process according to the present invention.
Figure 8 is a diagram explaining an embodiment of the OS virtualization process according to the present invention.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is only an example for structural or functional explanation, the scope of the present invention should not be construed as limited by the examples described in the text. In other words, since the embodiments can be modified in various ways and can have various forms, the scope of rights of the present invention should be understood to include equivalents that can realize the technical idea. In addition, the purpose or effect presented in the present invention does not mean that a specific embodiment must include all or only such effects, so the scope of the present invention should not be understood as limited thereby.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in this application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as “first” and “second” are used to distinguish one component from another component, and the scope of rights should not be limited by these terms. For example, a first component may be named a second component, and similarly, the second component may also be named a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being “connected” to another component, it should be understood that it may be directly connected to the other component, but that other components may exist in between. On the other hand, when a component is referred to as being “directly connected” to another component, it should be understood that there are no other components in between. Meanwhile, other expressions that describe the relationship between components, such as "between" and "immediately between" or "neighboring" and "directly neighboring" should be interpreted similarly.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions should be understood to include plural expressions unless the context clearly indicates otherwise, and terms such as “comprise” or “have” refer to implemented features, numbers, steps, operations, components, parts, or them. It is intended to specify the existence of a combination, and should be understood as not excluding in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.For each step, identification codes (e.g., a, b, c, etc.) are used for convenience of explanation. The identification codes do not explain the order of each step, and each step clearly follows a specific order in context. Unless specified, events may occur differently from the specified order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the opposite order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be implemented as computer-readable code on a computer-readable recording medium, and the computer-readable recording medium includes all types of recording devices that store data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Additionally, the computer-readable recording medium can be distributed across computer systems connected to a network, so that computer-readable code can be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein, unless otherwise defined, have the same meaning as commonly understood by a person of ordinary skill in the field to which the present invention pertains. Terms defined in commonly used dictionaries should be interpreted as consistent with the meaning they have in the context of the related technology, and cannot be interpreted as having an ideal or excessively formal meaning unless clearly defined in the present application.

도 1은 본 발명에 따른 차량용 소프트웨어 시뮬레이션 시스템을 설명하는 도면이다.1 is a diagram explaining a vehicle software simulation system according to the present invention.

도 1을 참조하면, 차량용 소프트웨어 시뮬레이션 시스템(100)은 사용자 단말(110), 코드 파싱 장치(130) 및 데이터베이스(150)를 포함할 수 있다.Referring to FIG. 1, the vehicle software simulation system 100 may include a user terminal 110, a code parsing device 130, and a database 150.

사용자 단말(110)은 사용자에 의해 운용되는 단말 장치에 해당할 수 있다. 본 발명의 실시예에서 사용자는 하나 이상의 사용자로 이해될 수 있으며, 하나 이상의 사용자들 각각은 하나 이상의 사용자 단말(110)에 대응될 수 있다. 즉, 도 1에서는 하나의 사용자 단말(110)로 표현되어 있으나, 제1 사용자는 제1 사용자 단말, 제2 사용자는 제2 사용자 단말, ..., 제n(상기 n은 자연수) 사용자는 제n 사용자 단말에 각각 대응될 수 있다.The user terminal 110 may correspond to a terminal device operated by a user. In an embodiment of the present invention, a user may be understood as one or more users, and each of the one or more users may correspond to one or more user terminals 110. That is, in Figure 1, it is represented as one user terminal 110, but the first user is the first user terminal, the second user is the second user terminal, ..., the nth (where n is a natural number) user is the first user terminal. n may each correspond to a user terminal.

또한, 사용자 단말(110)은 본 발명에 따른 차량용 소프트웨어 시뮬레이션 시스템(100)을 구성하는 하나의 장치로서 구현될 수 있으며, 차량용 소프트웨어 시뮬레이션 시스템(100)은 소프트웨어 개발 툴을 통해 개발된 차량용 소프트웨어의 동작을 윈도우 환경에서 시뮬레이션하기 위한 목적에 따라 다양한 형태로 변형되어 운용될 수 있다.In addition, the user terminal 110 may be implemented as a device constituting the vehicle software simulation system 100 according to the present invention, and the vehicle software simulation system 100 may operate the vehicle software developed through a software development tool. It can be modified and operated in various forms depending on the purpose of simulating in a Windows environment.

또한, 사용자 단말(110)은 코드 파싱 장치(130)와 연결되어 동작 가능한 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 포함하여 다양한 디바이스로도 구현될 수 있다.In addition, the user terminal 110 may be implemented as a smartphone, laptop, or computer that can be operated by being connected to the code parsing device 130, but is not necessarily limited thereto, and may also be implemented as a variety of devices, including a tablet PC. .

한편, 사용자 단말(110)은 코드 파싱 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 코드 파싱 장치(130)와 동시에 연결될 수도 있다.Meanwhile, the user terminal 110 may be connected to the code parsing device 130 through a network, and a plurality of user terminals 110 may be connected to the code parsing device 130 at the same time.

코드 파싱 장치(130)는 본 발명에 따른 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 방법을 수행하는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 특히, 코드 파싱 장치(130)는 윈도우 기반의 차량용 소프트웨어 시뮬레이션이 가능한 장치에 포함되어 구현될 수 있으며, 이에 따라 윈도우 기반의 차량용 소프트웨어 시뮬레이션 과정에서 차량용 소프트웨어의 구성 파일로부터 가상화된 소프트웨어 플랫폼 상에서 차량용 소프트웨어의 실행을 위한 정보들을 추출하는 코드 파싱 동작을 독립적으로 처리할 수 있다.The code parsing device 130 may be implemented as a server corresponding to a computer or program that performs a code parsing method for simulation of a vehicle software platform according to the present invention. In particular, the code parsing device 130 may be included and implemented in a device capable of Windows-based vehicle software simulation. Accordingly, in the Windows-based vehicle software simulation process, the vehicle software may be configured on a virtualized software platform from the configuration file of the vehicle software. The code parsing operation that extracts information for execution can be processed independently.

또한, 코드 파싱 장치(130)는 사용자 단말(110)과 유선 네트워크 또는 블루투스, WiFi, LTE 등과 같은 무선 네트워크로 연결될 수 있고, 네트워크를 통해 사용자 단말(110)과 데이터를 송·수신할 수 있다.Additionally, the code parsing device 130 may be connected to the user terminal 110 through a wired network or a wireless network such as Bluetooth, WiFi, or LTE, and may transmit and receive data with the user terminal 110 through the network.

또한, 코드 파싱 장치(130)는 독립된 외부 시스템(도 1에 미도시함)과 연결되어 동작하도록 구현될 수 있다. 일 실시예에서, 코드 파싱 장치(130)는 차량용 소프트웨어의 시뮬레이션을 수행하는 클라우드 서버에 포함되어 구현될 수 있다.Additionally, the code parsing device 130 may be implemented to operate in connection with an independent external system (not shown in FIG. 1). In one embodiment, the code parsing device 130 may be implemented and included in a cloud server that performs simulation of vehicle software.

데이터베이스(150)는 코드 파싱 장치(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 예를 들어, 데이터베이스(150)는 차량용 소프트웨어 플랫폼에 관한 정보를 저장하거나 또는 가상화 시뮬레이션에 관한 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 코드 파싱 장치(130)가 본 발명에 따른 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 방법을 수행하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The database 150 may correspond to a storage device that stores various information required during the operation of the code parsing device 130. For example, the database 150 may store information about a vehicle software platform or information about a virtualization simulation, but is not necessarily limited thereto, and the code parsing device 130 may store information about a vehicle software platform according to the present invention. In the process of performing the code parsing method for simulation, information collected or processed can be stored in various forms.

또한, 도 1에서, 데이터베이스(150)는 코드 파싱 장치(130)와 독립적인 장치로서 도시되어 있으나, 반드시 이에 한정되지 않고, 논리적인 저장장치로서 코드 파싱 장치(130)에 포함되어 구현될 수 있음은 물론이다.In addition, in FIG. 1, the database 150 is shown as a device independent of the code parsing device 130, but is not necessarily limited thereto, and may be implemented as a logical storage device included in the code parsing device 130. Of course.

도 2는 도 1의 포트 가상화 장치의 시스템 구성을 설명하는 도면이다.FIG. 2 is a diagram explaining the system configuration of the port virtualization device of FIG. 1.

도 2를 참조하면, 코드 파싱 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함할 수 있다.Referring to FIG. 2, the code parsing device 130 may include a processor 210, a memory 230, a user input/output unit 250, and a network input/output unit 270.

프로세서(210)는 본 발명의 실시예에 따른 차량용 소프트웨어 플랫폼의 시뮬레이션 과정에서 코드 파싱 프로시저를 실행할 수 있고, 이러한 과정에서 읽히거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄 할 수 있다. 프로세서(210)는 코드 파싱 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 코드 파싱 장치(130)의 CPU(Central Processing Unit) 또는 GPU(Graphics Processing Unit)로 구현될 수 있다.The processor 210 can execute a code parsing procedure in a simulation process of a vehicle software platform according to an embodiment of the present invention, and manage the memory 230 that is read or written in this process. The synchronization time between volatile memory and non-volatile memory can be scheduled. The processor 210 can control the overall operation of the code parsing device 130 and is electrically connected to the memory 230, the user input/output unit 250, and the network input/output unit 270 to control data flow between them. You can. The processor 210 may be implemented as a Central Processing Unit (CPU) or a Graphics Processing Unit (GPU) of the code parsing device 130.

메모리(230)는 SSD(Solid State Disk) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 코드 파싱 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다. 또한, 메모리(230)는 전기적으로 연결된 프로세서(210)에 의해 실행됨으로써 본 발명에 따른 차량용 소프트웨어 플랫폼의 시뮬레이션 과정에서 코드 파싱 방법을 실행하는 명령들의 집합을 저장할 수 있다.The memory 230 may be implemented as a non-volatile memory such as a solid state disk (SSD) or a hard disk drive (HDD) and may include an auxiliary memory used to store all data required for the code parsing device 130, It may include a main memory implemented as volatile memory such as RAM (Random Access Memory). In addition, the memory 230 is executed by the electrically connected processor 210 and can store a set of instructions for executing the code parsing method during the simulation of the vehicle software platform according to the present invention.

사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함하고, 예를 들어, 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치 스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 코드 파싱 장치(130)는 독립적인 서버로서 수행될 수 있다.The user input/output unit 250 includes an environment for receiving user input and an environment for outputting specific information to the user, and includes an input adapter such as, for example, a touch pad, a touch screen, an on-screen keyboard, or a pointing device. It may include an output device including a device and an adapter such as a monitor or touch screen. In one embodiment, the user input/output unit 250 may correspond to a computing device connected through a remote connection, and in such case, the code parsing device 130 may be performed as an independent server.

네트워크 입출력부(270)는 네트워크를 통해 사용자 단말(110)과 연결되기 위한 통신 환경을 제공하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다. 또한, 네트워크 입출력부(270)는 학습 데이터의 무선 전송을 위해 WiFi, 블루투스 등의 근거리 통신 기능이나 4G 이상의 무선 통신 기능을 제공하도록 구현될 수 있다.The network input/output unit 270 provides a communication environment for connection to the user terminal 110 through a network, for example, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), and It may include an adapter for communication such as VAN (Value Added Network). Additionally, the network input/output unit 270 may be implemented to provide short-range communication functions such as WiFi and Bluetooth or wireless communication functions of 4G or higher for wireless transmission of learning data.

도 3은 도 1의 코드 파싱 장치의 기능적 구성을 설명하는 도면이다.FIG. 3 is a diagram explaining the functional configuration of the code parsing device of FIG. 1.

도 3을 참조하면, 코드 파싱 장치(130)는 구성 파일 수신부(310), 구성 파일 분류부(320), 코드 파싱부(330) 및 제어부(도 3에 미도시함)를 포함하여 구현될 수 있다. 일 실시예에서, 코드 파싱 장치(130)는 코드 생성부(340), 오토사 플랫폼 가상화부(350) 및 ECU 가상화 처리부(360)를 더 포함하여 구현될 수 있다.Referring to FIG. 3, the code parsing device 130 may be implemented including a configuration file receiving unit 310, a configuration file classifying unit 320, a code parsing unit 330, and a control unit (not shown in FIG. 3). there is. In one embodiment, the code parsing device 130 may be implemented by further including a code generation unit 340, an Autosa platform virtualization unit 350, and an ECU virtualization processing unit 360.

이때, 코드 파싱 장치(130)는 상기의 기능적 구성들을 동시에 모두 포함해야 하는 것은 아니며, 각각의 실시예에 따라 상기의 구성들 중 일부를 생략하거나, 상기의 구성들 중 일부 또는 전부를 선택적으로 포함하여 구현될 수도 있다. 또한, 코드 파싱 장치(130)는 상기 구성들 중 일부를 선택적으로 포함하는 독립된 모듈로서 구현될 수 있으며, 각 모듈들 간의 연동을 통해 본 발명에 따른 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 방법을 수행할 수도 있다. 이하, 각 구성들의 동작을 구체적으로 설명한다.At this time, the code parsing device 130 does not have to include all of the above functional components at the same time, and depending on each embodiment, some of the above components are omitted or some or all of the above components are selectively included. It can also be implemented. In addition, the code parsing device 130 may be implemented as an independent module that selectively includes some of the above components, and performs a code parsing method for simulation of a vehicle software platform according to the present invention through linkage between each module. You may. Hereinafter, the operation of each component will be described in detail.

구성 파일 수신부(310)는 소프트웨어 개발 도구를 통해 작성된 차량용 소프트웨어의 구성 파일(configuration file)을 수신할 수 있다. 여기에서, 소프트웨어 개발 도구는 차량용 소프트웨어의 개발을 지원하는 다양한 기능을 제공하는 프로그램에 해당할 수 있다. 즉, 개발자는 소프트웨어 개발 도구를 이용하여 차량용 소프트웨어를 개발할 수 있고, 오류를 수정하거나 유지 보수하는 등의 다양한 동작들을 수행할 수 있다. 소프트웨어 개발 도구는 차량용 소프트웨어를 개발하는 동안 사용자에 의해 설정된 내용을 구성 파일로 생성하여 관리할 수 있다.The configuration file receiving unit 310 may receive a configuration file of vehicle software created through a software development tool. Here, the software development tool may correspond to a program that provides various functions to support the development of vehicle software. In other words, developers can develop vehicle software using software development tools and perform various operations such as correcting errors or performing maintenance. A software development tool can manage settings made by the user while developing vehicle software by creating a configuration file.

예를 들어, 개발자는 소프트웨어 개발 도구를 통해 시스템 및 ECU 설계를 수행할 수 있다. 시스템 설계의 경우 소프트웨어 컴포넌트(SWC) 및 타겟 ECU에 관한 설정을 결정할 수 있으며, ECU 설계의 경우 ECU 시스템 구성과 RTE 통신 및 BSW 모듈에 관한 설정을 결정할 수 있다. 차량용 소프트웨어의 구성 파일은 소프트웨어 개발 도구가 실행된 장치 상에서 생성될 수 있다. 만약 사용자 단말(110) 상에서 차량용 소프트웨어의 구성 파일이 생성된 경우 구성 파일 수신부(310)는 사용자 단말(110)로부터 차량용 소프트웨어의 구성 파일을 수신할 수 있다.For example, developers can perform system and ECU design through software development tools. For system design, settings for software components (SWC) and target ECU can be determined, and for ECU design, settings for ECU system configuration, RTE communication, and BSW module can be determined. Configuration files for vehicle software may be created on a device running a software development tool. If the configuration file of the vehicle software is created on the user terminal 110, the configuration file receiving unit 310 may receive the configuration file of the vehicle software from the user terminal 110.

일 실시예에서, 구성 파일 수신부(310)는 차량용 소프트웨어의 구성 파일로서 오토사(AUTOSAR) 기반 소프트웨어의 ARXML(AUTOSAR eXtensible Markup Language) 파일을 수신할 수 있다. 구성 파일 수신부(310)는 ARXML 파일 수신을 위한 독립적인 사용자 인터페이스(UI)를 제공할 수 있고, 사용자 단말(110)을 통해 입력 받을 수도 있다. 차량용 소프트웨어는 개방형 자동차 표준 소프트웨어 구조에 해당하는 오토사(AUTOSAR) 플랫폼을 기반으로 생성될 수 있으며, 오토사 플랫폼은 소프트웨어 구성 파일을 ARXML 파일 형태로 관리할 수 있다.In one embodiment, the configuration file receiving unit 310 may receive an AUTOSAR eXtensible Markup Language (ARXML) file of AUTOSAR-based software as a configuration file of vehicle software. The configuration file receiving unit 310 can provide an independent user interface (UI) for receiving the ARXML file, and can also receive input through the user terminal 110. Automotive software can be created based on the AUTOSAR platform, which corresponds to an open automotive standard software structure, and the AUTOSAR platform can manage software configuration files in the form of ARXML files.

예를 들어, 오토사 기반의 소프트웨어 개발 툴을 통해 차량용 소프트웨어의 소프트웨어 컴포넌트(component)를 생성하면 사용자가 설정한 AUTOSAR specification을 기반으로 표준화된 디지털 교환 포맷인 ARXML 파일에 해당 컴포넌트 구성요소들이 저장될 수 있다. 이때, 작성된 ARXML 파일에는 태스크(task), 알람(alarm), 이벤트(event), 인터럽트(interrupt), 우선권(priority), 기간(period), 포트(port), 데이터 엘리먼트(data element) 등의 내용이 포함될 수 있다. 또한, ARXML 파일은 ASW(Application SoftWare layer) 설계 ARXML 파일, BSW(Basic SoftWare layer) 설계 ARXML 파일 및 RTE(RunTime Environment) 설계 ARXML 파일 등으로 분류될 수 있다.For example, when a software component of vehicle software is created through an Autosar-based software development tool, the component components can be saved in an ARXML file, a standardized digital exchange format based on the AUTOSAR specification set by the user. there is. At this time, the created ARXML file contains contents such as task, alarm, event, interrupt, priority, period, port, and data element. This may be included. Additionally, ARXML files can be classified into ASW (Application SoftWare layer) design ARXML files, BSW (Basic SoftWare layer) design ARXML files, and RTE (RunTime Environment) design ARXML files.

일 실시예에서, 구성 파일 수신부(310)는 차량용 소프트웨어의 구성 파일로서 특정 형식의 파일만을 제한적으로 수신할 수 있다. 예를 들어, 구성 파일 수신부(310)는 ARXML 파일만을 구성 파일로서 수신하도록 제한 설정될 수 있고, ARXML 파일이 아닌 다른 파일이 입력된 경우 구성 파일을 재입력받거나 또는 파일 수신을 거부할 수 있다.In one embodiment, the configuration file receiving unit 310 is limited to receiving only files of a specific format as configuration files of vehicle software. For example, the configuration file receiving unit 310 may be limited to receiving only an ARXML file as a configuration file, and when a file other than an ARXML file is input, the configuration file may be re-input or may refuse to receive the file.

구성 파일 분류부(320)는 구성 파일의 유형을 분류할 수 있다. 구성 파일 분류부(320)는 ARXML 파일을 기반으로 코드 파싱을 수행하기 전단계에서 ARXML 파일의 유형을 분석할 수 있다. 구성 파일 분류부(320)에 의해 ARXML 파일의 유형이 결정되면 코드 파싱부(330)는 파일 유형에 따라 독립된 코드 파싱 동작을 수행할 수 있다. 예를 들어, ARXML의 파일 유형에 따라 코드 파싱을 통해 추출되는 정보들은 서로 상이할 수 있다.The configuration file classification unit 320 can classify types of configuration files. The configuration file classification unit 320 may analyze the type of the ARXML file before performing code parsing based on the ARXML file. When the type of the ARXML file is determined by the configuration file classification unit 320, the code parsing unit 330 can perform an independent code parsing operation depending on the file type. For example, depending on the ARXML file type, the information extracted through code parsing may be different.

일 실시예에서, 구성 파일 분류부(320)는 구성 파일 수신부(310)에 포함되어 구현될 수 있다. 즉, 구성 파일 분류부(320)는 구성 파일 수신부(310)에 포함되어 수신된 구성 파일의 유형을 분류하는 동작을 수행하는 독립된 모듈로 구현될 수 있다.In one embodiment, the configuration file classification unit 320 may be implemented by being included in the configuration file receiving unit 310. That is, the configuration file classification unit 320 may be implemented as an independent module that is included in the configuration file receiving unit 310 and performs an operation of classifying the type of the received configuration file.

일 실시예에서, 구성 파일 분류부(320)는 ARXML 파일을 소프트웨어 플랫폼의 ASW(Application SoftWare layer)에 대한 설정을 포함하는 ASW 설계 ARXML 파일, BSW(Basic SoftWare layer)에 대한 설정을 포함하는 BSW 설계 ARXML 파일 및 RTE(RunTime Environment)에 관한 설정을 포함하는 RTE 설계 ARXML 파일 중 어느 하나로 분류할 수 있다.In one embodiment, the configuration file sorting unit 320 stores the ARXML file as an ASW design ARXML file containing settings for the Application SoftWare layer (ASW) of the software platform, and a BSW design containing settings for the Basic SoftWare layer (BSW). It can be classified as either an ARXML file or an RTE design ARXML file, which contains settings for the RunTime Environment (RTE).

먼저 ASW 설계 ARXML 파일은 오토사 플랫폼의 ASW에 관한 설정 내용을 포함하는 ARXML 파일에 해당할 수 있다. 오토사 플랫폼의 ASW 계층은 단위 기능을 갖는 가장 작은 스케줄링 대상인 러너블(runnable), 그리고 러너블들의 조합으로 이루어져 독립적인 동작 가능한 모듈은 소프트웨어 컴포넌트(SWC)들로 구성될 수 있다.First, the ASW design ARXML file may correspond to an ARXML file containing settings related to the ASW of the Autosa platform. The ASW layer of the Autosa platform consists of a runnable, which is the smallest scheduling object with a unit function, and a combination of runnables, and modules that can operate independently can be composed of software components (SWC).

또한, BSW 설계 ARXML 파일은 오토사 플랫폼의 BSW에 관한 설정 내용을 포함하는 ARXML 파일에 해당할 수 있다. 오토사 플랫폼의 BSW 계층은 ADC(Analog to Digital Converter), 디지털 입출력(digital input/output) 및 CAN(Controller Area Network) 등 하드웨어 의존적인 입출력 기능들을 추상화하여 상위 계층에 인터페이스를 제공하는 하드웨어 추상화 레이어(HAL, Hardware Abstraction Layer) 모듈, 서비스 및 스케줄러들로 구성될 수 있다.Additionally, the BSW design ARXML file may correspond to an ARXML file containing settings related to the BSW of the Autosa platform. The BSW layer of the Autosa platform is a hardware abstraction layer (hardware abstraction layer) that abstracts hardware-dependent input/output functions such as ADC (Analog to Digital Converter), digital input/output, and CAN (Controller Area Network) and provides an interface to the upper layer. It can be composed of HAL (Hardware Abstraction Layer) modules, services, and schedulers.

또한, RTE 설계 ARXML 파일은 오토사 플랫폼의 RTE에 관한 설정 내용을 포함하는 ARXML 파일에 해당할 수 있다. 오토사 플랫폼의 RTE 계층은 ASW와 BSW의 통합을 담당하는 계층에 해당할 수 있다.Additionally, the RTE design ARXML file may correspond to an ARXML file containing settings related to the RTE of the Autosa platform. The RTE layer of the Autosa platform may correspond to the layer responsible for the integration of ASW and BSW.

코드 파싱부(330)는 구성 파일의 유형에 따라 구성 파일을 파싱(parsing)하여 가상화된 소프트웨어 플랫폼 상에서 차량용 소프트웨어의 실행을 위한 정보들을 추출할 수 있다. 즉, 코드 파싱부(330)는 ASW, RTE, BSW에 대한 설정(Configuration) 값 중에서 차량용 소프트웨어의 구동에 필요한 정보들만을 선택적으로 추출하여 RTE API, Static Code 등을 시뮬레이션을 위한 형태로 재구성하는 과정에 사용되도록 할 수 있다.The code parsing unit 330 may parse the configuration file according to the type of configuration file and extract information for executing vehicle software on a virtualized software platform. In other words, the code parsing unit 330 selectively extracts only the information necessary for driving the vehicle software from among the configuration values for ASW, RTE, and BSW, and reorganizes the RTE API, Static Code, etc. into a form for simulation. It can be used for .

일 실시예에서, 코드 파싱부(330)는 ARXML 파일 유형에 따라 추출 대상이 되는 타겟 정보들을 사전에 정의하는 파싱 규칙을 적용하여 코드 파싱 동작을 수행할 수 있다. 이를 위해, 코드 파싱부(330)는 구성 파일 분류부(320)에 의해 분류된 결과를 참조하여 코드 파싱을 처리할 수 있다.In one embodiment, the code parsing unit 330 may perform a code parsing operation by applying a parsing rule that predefines target information to be extracted according to the ARXML file type. To this end, the code parsing unit 330 may process code parsing with reference to the results classified by the configuration file classification unit 320.

일 실시예에서, 코드 파싱부(330)는 ASW 설계 ARXML 파일로부터 컴포지션 소프트웨어 컴포넌트(CSWC, Composition SoftWare Component), 소프트웨어 컴포넌트(SWC, SoftWare Component), 러너블(Runnable), 이벤트(Event), 포트(Port), 인터페이스(Interface) 및 데이터 타입(DataType)을 포함하는 제1 파싱 정보를 추출하고, BSW 설계 ARXML 파일로부터 알람(Alarm), 태스크(Task), 앱 모드(App Mode), 애플리케이션(OsApplication), 카운터(OsCounter), 인터럽트 서비스 루틴(ISR, Interrupt Service Routine) 및 리소스(Resource)를 포함하는 제2 파싱 정보를 추출하며, RTE 설계 ARXML 파일로부터 이벤트-태스크 매핑(Mapping) 및 소프트웨어 컴포넌트 인스턴스(SWC Instance)를 포함하는 제3 파싱 정보를 추출할 수 있다.In one embodiment, the code parsing unit 330 extracts a composition software component (CSWC, Composition SoftWare Component), a software component (SWC, SoftWare Component), a runnable, an event, and a port ( Extract the first parsing information including Port, Interface, and DataType, and extract Alarm, Task, App Mode, and OsApplication from the BSW design ARXML file. , extracts second parsing information including counter (OsCounter), interrupt service routine (ISR), and resource, and event-task mapping and software component instance (SWC) from the RTE design ARXML file. Third parsing information including instance) can be extracted.

일 실시예에서, 코드 파싱부(330)는 제1 내지 제3 파싱 정보들 중에서 적어도 하나에 대한 추출에 실패한 경우 구성 파일 수신부(310)를 통해 구성 파일에 대한 재입력을 요청할 수 있다. 즉, 코드 파싱부(330)는 차량용 소프트웨어의 실행에 필요한 정보들 중 일부가 추출되지 않은 경우 차량용 소프트웨어의 구성 파일을 갱신한 후 파싱 동작을 반복하여 수행할 수 있다. 이를 위해, 코드 파싱부(330)는 구성 파일 수신부(310)와 연동하여 동작할 수 있으며, 구성 파일 수신부(310)는 코드 파싱부(330)의 요청에 따라 구성 파일의 재입력을 위한 사용자 인터페이스를 제공할 수 있다.In one embodiment, if the code parsing unit 330 fails to extract at least one of the first to third parsing information, it may request re-input of the configuration file through the configuration file receiving unit 310. That is, if some of the information required for execution of the vehicle software is not extracted, the code parsing unit 330 may update the configuration file of the vehicle software and then repeatedly perform the parsing operation. To this end, the code parsing unit 330 may operate in conjunction with the configuration file receiving unit 310, and the configuration file receiving unit 310 may provide a user interface for re-entering the configuration file at the request of the code parsing unit 330. can be provided.

코드 생성부(340)는 파싱된 정보들을 기반으로 가상화된 소프트웨어 플랫폼 상에서 동작하는 차량용 소프트웨어의 실행을 위한 실행 코드들을 생성할 수 있다. 예를 들어, 기존의 소프트웨어 플랫폼 상에서 차량용 소프트웨어의 개발 과정은 소프트웨어 개발 툴을 이용하여 프로젝트를 컴파일(compile)하면 작성된 ARXML을 기반으로 c 파일과 헤더(header) 파일이 생성되고, 이를 타겟 보드에 플래시(flash)하기 위한 이진화(binary) 파일을 생성하여 최종적으로 타겟 보드 상에서 동작시키는 과정으로 진행될 수 있다. 코드 생성부(340)는 차량용 소프트웨어가 가상화된 소프트웨어 플랫폼 상에서 동작하여 윈도우 환경에서 시뮬레이션이 수행되는데 필요한 실행 코드들을 생성하는 동작을 수행할 수 있다.The code generator 340 may generate execution codes for executing vehicle software operating on a virtualized software platform based on the parsed information. For example, in the development process of automotive software on an existing software platform, when a project is compiled using a software development tool, a c file and a header file are created based on the created ARXML, and flashed on the target board. The process may proceed by creating a binary file for flashing and finally operating it on the target board. The code generator 340 may operate on a software platform in which vehicle software is virtualized to generate executable codes necessary for simulation to be performed in a Windows environment.

일 실시예에서, 코드 생성부(340)는 파싱된 정보들을 기초로 차량용 소프트웨어의 실행에 필요한 RTE(RunTime Environment) API 및 정적 코드(static code)을 생성할 수 있다. 여기에서, RTE API는 런타임 환경 API로서 컴포넌트들 간 또는 컴포넌트와 BSW(Basic Software) 간의 구체적인 인터페이스를 제공할 수 있다. 또한, 정적 코드는 컴포넌트의 기능을 구현하는 소스 코드에 해당할 수 있다. 코드 생성부(340)는 구성 파일에서 파싱된 정보들을 이용하여 차량용 소프트웨어의 상세 기능을 구현하는 정적 코드를 생성할 수 있고, 정적 코드에 대한 RTE API를 생성할 수 있다. 이때, RTE API와 정적 코드는 c 파일(.c)로 생성될 수 있으나, 반드시 이에 한정되지 않음은 물론이다.In one embodiment, the code generator 340 may generate a RunTime Environment (RTE) API and static code required to execute vehicle software based on the parsed information. Here, the RTE API is a runtime environment API that can provide a specific interface between components or between components and BSW (Basic Software). Additionally, static code may correspond to source code that implements the function of a component. The code generator 340 can generate static code that implements detailed functions of vehicle software using information parsed from the configuration file, and can generate an RTE API for the static code. At this time, the RTE API and static code can be created as a c file (.c), but of course, it is not limited to this.

오토사 플랫폼 가상화부(350)는 소프트웨어 플랫폼의 가상화를 구현하고 가상화된 소프트웨어 플랫폼 상에서 실행 코드들의 실행에 따라 차량용 소프트웨어의 동작을 시뮬레이션할 수 있다. 예를 들어, 가상화된 소프트웨어 플랫폼은 가상화된 오토사(AUTOSAR) 플랫폼에 해당할 수 있다. 여기에서, 가상화된 오토사 플랫폼은 RTE API 및 정적 코드를 포함하는 실행 코드가 실행될 수 있는 플랫폼 소프트웨어에 해당할 수 있으며, 기존의 오토사 플랫폼 구조를 모사하여 RTE API 및 정적 코드의 내용에 따라 로직을 수행할 수 있고, 동작 결과에 따른 출력을 생성할 수 있다. 이때, RTE API 및 정적 코드는 차량용 소프트웨어의 시뮬레이션을 위해 생성된 실행 코드에 해당할 수 있다.The Autosa platform virtualization unit 350 can implement virtualization of a software platform and simulate the operation of vehicle software according to the execution of executable codes on the virtualized software platform. For example, a virtualized software platform may correspond to a virtualized AUTOSAR platform. Here, the virtualized Autosa platform may correspond to platform software on which executable code including the RTE API and static code can be executed, and the existing Autosa platform structure is mimicked to execute logic according to the contents of the RTE API and static code. can be performed, and output according to the operation results can be generated. At this time, the RTE API and static code may correspond to executable code generated for simulation of vehicle software.

일 실시예에서, 오토사 플랫폼 가상화부(350)는 실행 코드의 생성 동작을 수행하는 독립된 모듈들과 연동하여 동작할 수 있다. 즉, 독립된 모듈들은 소프트웨어 개발 도구를 통해 작성된 차량용 소프트웨어의 구성 파일(configuration file)을 수신하고 구성 파일로부터 차량용 소프트웨어의 실행을 위한 정보들을 파싱(parsing)할 수 있으며, 파싱된 정보들을 기반으로 가상화된 소프트웨어 플랫폼 상에서 동작하는 차량용 소프트웨어의 실행을 위한 실행 코드들을 생성할 수 있다. 결과적으로, 오토사 플랫폼 가상화부(350)는 소프트웨어 플랫폼의 가상화를 통해 윈도우(windows) 환경에서도 차량용 소프트웨어의 동작에 관한 시뮬레이션이 가능하도록 할 수 있다.In one embodiment, the Autosa platform virtualization unit 350 may operate in conjunction with independent modules that perform an operation to generate executable code. In other words, the independent modules can receive the configuration file of the vehicle software written through a software development tool, parse information for executing the vehicle software from the configuration file, and virtualize the vehicle software based on the parsed information. Executable codes for executing vehicle software running on a software platform can be generated. As a result, the Autosa platform virtualization unit 350 can enable simulation of the operation of vehicle software even in a Windows environment through virtualization of the software platform.

일 실시예에서, 오토사 플랫폼 가상화부(350)는 소프트웨어 플랫폼의 각 모듈들에 대한 가상화를 구현하는 가상 오토사 플랫폼 코드를 생성할 수 있다. 이때, 가상 오토사 플랫폼 코드는 c 파일(.c)로 구현될 수 있다. 즉, 오토사 플랫폼 가상화부(350)는 차량용 소프트웨어를 윈도우 환경에서 시뮬레이션하기 위하여 기존의 오토사 플랫폼을 윈도우 환경으로 가상화하여 제공할 수 있다. 구체적으로, 오토사 플랫폼 가상화부(350)는 오토사 플랫폼의 RTE(Run-Time Environment), BSW(Basic SoftWare Layer) 등의 하위 계층에 대한 가상화를 제공할 수 있다. 예를 들어, 오토사 플랫폼 가상화부(350)는 가상화된 모듈로서 vRTE, vOSEK OS, vService, vI/O, vMCAL, vPortpin 등을 제공할 수 있다.In one embodiment, the Autosa platform virtualization unit 350 may generate virtual Autosa platform code that implements virtualization for each module of the software platform. At this time, the virtual Autosa platform code can be implemented as a c file (.c). That is, the Autosa platform virtualization unit 350 can virtualize the existing Autosa platform into a Windows environment and provide it in order to simulate vehicle software in a Windows environment. Specifically, the Autosa platform virtualization unit 350 can provide virtualization of lower layers such as RTE (Run-Time Environment) and BSW (Basic SoftWare Layer) of the Autosa platform. For example, the Autosa platform virtualization unit 350 may provide vRTE, vOSEK OS, vService, vI/O, vMCAL, vPortpin, etc. as virtualized modules.

일 실시예에서, 오토사 플랫폼 가상화부(350)는 실행 코드들과 가상화 오토사 플랫폼 코드를 이용하여 시뮬레이션 동안 차량용 소프트웨어의 동작 로직을 수행하고 윈도우(windows) 환경에서 동작 가능한 시뮬레이션 파일을 생성할 수 있다. 즉, 오토사 플랫폼 가상화부(350)는 실행코드들과 가상화 오토사 플랫폼 코드들을 통합한 후 빌드(build)하여 윈도우 환경에서 실행되는 '.exe' 형식의 오토사 시뮬레이션 파일을 생성할 수 있다. 이후, 오토사 시뮬레이션 파일은 사용자 단말(110)의 윈도우 환경에서 실행될 수 있으며, 필요에 따라 코드 파싱 장치(130)에서도 실행될 수 있다. 시뮬레이션 파일이 실행되는 경우, 가상화된 오토사 플랫폼 상에서 RTE API와 정적 코드의 내용에 따라 차량용 소프트웨어의 동작 로직이 실행될 수 있으며, 동작 결과에 따라 가상화된 오토사 플랫폼의 출력이 생성될 수 있다.In one embodiment, the Autosa platform virtualization unit 350 uses executable codes and virtualized Autosa platform code to perform the operation logic of vehicle software during simulation and generate a simulation file that can operate in a Windows environment. there is. That is, the Autosa platform virtualization unit 350 can integrate executable codes and virtualized Autosa platform codes and then build them to generate an Autosa simulation file in '.exe' format that runs in a Windows environment. Thereafter, the Autosa simulation file can be executed in the Windows environment of the user terminal 110 and, if necessary, in the code parsing device 130. When the simulation file is executed, the operation logic of the vehicle software can be executed according to the contents of the RTE API and static code on the virtualized Autosa platform, and the output of the virtualized Autosa platform can be generated according to the operation results.

일 실시예에서, 오토사 플랫폼 가상화부(350)는 차량용 소프트웨어를 구현하는 소프트웨어 컴포넌트의 동작을 시뮬레이션하고 소프트웨어 컴포넌트의 동작에 연동하여 차량용 소프트웨어의 출력을 가상화하는 가상 포트 변수의 값을 결정할 수 있다. 차량용 소프트웨어는 구현하고자 하는 기능 컴포넌트(Application SWC)에 따라 적어도 하나의 소프트웨어 컴포넌트(SWC, SoftWare Component)를 포함하여 설계될 수 있다. 즉, 차량용 소프트웨어는 서로 연결된 소프트웨어 컴포넌트들의 집합을 통해 정의될 수 있다.In one embodiment, the Autosa platform virtualization unit 350 may simulate the operation of a software component implementing vehicle software and determine the value of a virtual port variable that virtualizes the output of the vehicle software in conjunction with the operation of the software component. Vehicle software may be designed to include at least one software component (SWC, SoftWare Component) depending on the functional component (Application SWC) to be implemented. In other words, vehicle software can be defined through a set of interconnected software components.

따라서, 오토사 플랫폼 가상화부(350)는 가상화된 소프트웨어 플랫폼 상에서 소프트웨어 컴포넌트들의 동작을 각각 시뮬레이션하고 동작 결과에 따라 소프트웨어 컴포넌트와 연결된 가상 포트 변수의 값을 결정할 수 있다. 이때, 가상화된 차량용 소프트웨어 플랫폼의 출력에 대응되는 가상 포트는 차량용 소프트웨어의 동작 순서에 따른 마지막 소프트웨어 컴포넌트의 출력 포트에 대응될 수 있으며, 해당 출력 포트에서 출력되는 출력값으로 가상 포트 변수의 값이 변경될 수 있다.Accordingly, the Autosa platform virtualization unit 350 can simulate the operation of each software component on the virtualized software platform and determine the value of the virtual port variable connected to the software component according to the operation result. At this time, the virtual port corresponding to the output of the virtualized vehicle software platform may correspond to the output port of the last software component according to the operation order of the vehicle software, and the value of the virtual port variable may be changed by the output value output from the corresponding output port. You can.

ECU 가상화 처리부(360)는 시뮬레이션에 따른 차량용 소프트웨어의 출력을 수신하고 출력을 기초로 가상화된 ECU의 동작을 그래픽 인터페이스를 통해 시각화할 수 있다. 여기에서, 가상화된 ECU는 차량용 소프트웨어의 구성 파일에서 추출된 ECU 설계 정보를 기반으로 생성될 수 있으며, 그래픽 인터페이스는 가상의 ECU 그래픽 시뮬레이터(simulator)로 구현될 수 있다. 예를 들어, ECU 가상화 처리부(360)는 시뮬레이션에 따른 출력을 기초로 가상화된 ECU 상에서 LED의 점멸 동작을 시각화하거나 또는 디스플레이 패널의 화면 출력을 시각화 하는 등 다양한 그래픽 요소를 적용할 수 있다.The ECU virtualization processing unit 360 can receive the output of vehicle software according to simulation and visualize the operation of the virtualized ECU based on the output through a graphic interface. Here, the virtualized ECU can be created based on ECU design information extracted from the configuration file of vehicle software, and the graphic interface can be implemented as a virtual ECU graphic simulator. For example, the ECU virtualization processing unit 360 can apply various graphic elements, such as visualizing the blinking operation of an LED on a virtualized ECU or visualizing the screen output of a display panel, based on the output according to simulation.

일 실시예에서, ECU 가상화 처리부(360)는 가상화된 소프트웨어 플랫폼의 가상 포트(port)로부터 출력값을 수신하고 출력값에 상응하는 동작을 가상화된 ECU를 통해 출력할 수 있다. ECU 가상화 처리부(360)는 가상화된 소프트웨어 플랫폼의 가상 포트로부터 수신된 출력값에 따라 가상화된 ECU의 동작을 시뮬레이션한 후 동작 결과에 따른 그래픽을 시각화된 인터페이스를 통해 표시할 수 있다.In one embodiment, the ECU virtualization processing unit 360 may receive an output value from a virtual port of a virtualized software platform and output an operation corresponding to the output value through the virtualized ECU. The ECU virtualization processing unit 360 can simulate the operation of the virtualized ECU according to the output value received from the virtual port of the virtualized software platform and then display graphics according to the operation result through a visualized interface.

제어부(도 3에 미도시함)는 코드 파싱 장치(130)의 전체적인 동작을 제어하고, 구성 파일 수신부(310), 구성 파일 분류부(320), 코드 파싱부(330), 코드 생성부(340), 오토사 플랫폼 가상화부(350) 및 ECU 가상화 처리부(360) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The control unit (not shown in FIG. 3) controls the overall operation of the code parsing device 130 and includes a configuration file receiving unit 310, a configuration file sorting unit 320, a code parsing unit 330, and a code generating unit 340. ), control flow or data flow between the Autosa platform virtualization unit 350 and the ECU virtualization processing unit 360 can be managed.

도 4는 본 발명에 차량용 소프트웨어 시뮬레이션의 전체적인 개념을 설명하는 도면이다.Figure 4 is a diagram explaining the overall concept of vehicle software simulation in the present invention.

도 4를 참조하면, 윈도우 기반의 차량용 소프트웨어 시뮬레이션 방법은 가상화된 오토사 플랫폼(Virtual AUTOSAR Platform) 상에서 시뮬레이션이 가능한 오토사 시뮬레이션 파일(AUTOSAR Simulation File)을 생성하고, 가상화된 ECU에 관한 그래픽 시뮬레이터(Virtual ECU Graphic Simulator)를 통해 시뮬레이션 결과를 시각적으로 제공할 수 있다.Referring to FIG. 4, the Windows-based vehicle software simulation method generates an AUTOSAR Simulation File that can be simulated on a virtualized AUTOSAR Platform and creates a graphic simulator for the virtualized ECU. Simulation results can be provided visually through the ECU Graphic Simulator.

보다 구체적으로, 차량용 소프트웨어 시뮬레이션 방법은 오토사 개발 툴을 통해 작성된 차량용 소프트웨어의 구성 파일, 즉 arxml 파일을 기초로 arxml 파서(arxml Parser)를 통해 소프트웨어 실행에 필요한 필수 정보들을 파싱할 수 있다. 이때, arxml 파서는 본 발명에 따른 코드 파싱 장치(130)를 통해 구현될 수 있다. 즉, 차량용 소프트웨어의 구성 파일은 코드 파싱 장치(130)에 전달될 수 있으며, 코드 파싱 장치(130)는 구성 파일로부터 소프트웨어 실행에 필요한 필수 정보들을 추출하여 제공할 수 있다.More specifically, the vehicle software simulation method can parse essential information required for software execution through the arxml Parser based on the arxml file, the configuration file of vehicle software created using the Autosa development tool. At this time, the arxml parser can be implemented through the code parsing device 130 according to the present invention. That is, the configuration file of the vehicle software can be transmitted to the code parsing device 130, and the code parsing device 130 can extract and provide essential information required for software execution from the configuration file.

예를 들어, 차량용 소프트웨어의 구성 파일에는 소프트웨어 컴포넌트의 설정 내용(데이터 타입, 인터페이스와의 연결 상태 등), ECU의 설정 내용(하드웨어 및 자원 구성 등), 시스템의 설정 내용(버스 시그널, 토폴로지, SWC와 ECU 간의 매핑, 네트워크 설정 등) 등이 포함될 수 있다. 또한, 소프트웨어 컴포넌트의 설정 내용에는 차량용 소프트웨어의 구현을 위한 태스크 동작 및 트리거 조건 등이 포함될 수 있다.For example, the configuration file of vehicle software includes software component settings (data type, connection status with interface, etc.), ECU settings (hardware and resource configuration, etc.), and system settings (bus signals, topology, SWC). and ECU mapping, network settings, etc.) may be included. Additionally, the settings of the software component may include task operations and trigger conditions for implementing vehicle software.

또한, 차량용 소프트웨어 시뮬레이션 방법은 파싱된 정보들을 이용하여 코드 생성기(Code Generator)를 통해 오토사 기반 소프트웨어 실행에 필요한 RTE API 및 정적 코드들을 생성할 수 있다.Additionally, the vehicle software simulation method can generate the RTE API and static codes necessary for executing Autosa-based software through a code generator using parsed information.

이후, 차량용 소프트웨어 시뮬레이션 방법은 가상화된 오토사 플랫폼(Virtual AUTOSAR Platform)이 제공하는 가상 오토사 플랫폼 코드(Virtual AUTOSAR Platform Code)와 코드 생성기를 통해 생성된 실행 코드들을 통합하여 빌드(Build)함으로써 윈도우 환경에서 실행 가능한 오토사 시뮬레이션 파일(AUTOSAR Simulation File)을 생성할 수 있다.Afterwards, the vehicle software simulation method is built by integrating the Virtual AUTOSAR Platform Code provided by the virtual AUTOSAR Platform and the executable codes generated through the code generator to build the Windows environment. You can create an executable AUTOSAR Simulation File.

마지막으로, 차량용 소프트웨어 시뮬레이션 방법은 윈도우 환경에서 생성된 실행 파일(.exe)을 실행할 수 있고, 가상 오토사 플랫폼 상에서 실행되는 시뮬레이션의 결과를 수신하여 가상화된 ECU 그래픽 시뮬레이터(Virtual ECU Graphic Simulation)를 통해 시각화하여 표시할 수 있다.Lastly, the vehicle software simulation method can run an executable file (.exe) created in a Windows environment, receive the results of the simulation run on the virtual Autosa platform, and use the virtualized ECU graphic simulator (Virtual ECU Graphic Simulation). It can be visualized and displayed.

한편, 본 발명에 따른 코드 파싱 방법은 코드 파싱 장치(130)를 통해 실행될 수 있으며, 이 경우 arxml 파서(Parser)는 코드 파싱 장치(130)에 대응될 수 있다. 또한, 코드 생성기(Code Generator)는 도 3의 코드 생성부(340)에 대응될 수 있고, 가상화된 오토사 플랫폼은 오토사 플랫폼 가상화부(350)에 대응될 수 있으며, ECU 가상화 처리부(360)는 가상 ECU 그래픽 시뮬레이터에 대응될 수 있다.Meanwhile, the code parsing method according to the present invention can be executed through the code parsing device 130, and in this case, the arxml parser (Parser) may correspond to the code parsing device 130. Additionally, the code generator may correspond to the code generator 340 of FIG. 3, the virtualized Autosa platform may correspond to the Autosa platform virtualization unit 350, and the ECU virtualization processing unit 360 may correspond to a virtual ECU graphic simulator.

도 5는 본 발명에 따른 차량용 소프트웨어 시뮬레이션 과정의 일 실시예를 설명하는 도면이다.Figure 5 is a diagram illustrating an embodiment of a vehicle software simulation process according to the present invention.

도 5를 참조하면, 코드 파싱 장치(130)는 윈도우 기반의 차량용 소프트웨어 시뮬레이션을 수행하는 시뮬레이션 장치에 포함되어 구현될 수 있으며, 이에 따라 윈도우 기반의 차량용 소프트웨어 시뮬레이션 과정에서 차량용 소프트웨어의 구성 파일로부터 시뮬레이션에 필요한 정보들을 추출하는 동작을 수행할 수 있다.Referring to FIG. 5, the code parsing device 130 may be implemented by being included in a simulation device that performs Windows-based vehicle software simulation. Accordingly, in the Windows-based vehicle software simulation process, the code parsing device 130 may be implemented in the simulation from the configuration file of the vehicle software. An operation can be performed to extract necessary information.

구체적으로, 사용자는 오토사 개발 툴을 사용하여 차량용 소프트웨어를 디자인할 수 있고, 이에 따라 ARXML 파일이 생성될 수 있다. ARXML 디자인이 완료되면 RTE API가 생성될 수 있으며, ARXML 파일을 파싱하여 추출된 정보들을 이용하여 차량용 소프트웨어의 동작에 관한 코드(Code)들이 생성될 수 있다. 시뮬레이션 장치에서는 RTE API와 정적 코드(Static Code), 그리고 가상화된 오토사 플랫폼의 코드(Virtual AUTOSAR Platform Code)가 통합된 결과 윈도우 환경에서 실행 가능한 시뮬레이션 파일(Virtual AUTOSAR Simulation FILE)이 생성될 수 있다.Specifically, users can design vehicle software using Autosa development tools, and ARXML files can be generated accordingly. Once the ARXML design is completed, the RTE API can be created, and codes related to the operation of vehicle software can be created using information extracted by parsing the ARXML file. In the simulation device, a simulation file (Virtual AUTOSAR Simulation FILE) executable in a Windows environment can be created as a result of integrating the RTE API, static code, and virtualized AUTOSAR platform code (Virtual AUTOSAR Platform Code).

또한, 시뮬레이션 장치는 차량용 소프트웨어의 시뮬레이션 결과를 그래픽 시뮬레이터를 통해 시각화할 수 있으며, 이를 통해 테스트 장비나 디버깅 장비에 종속되지 않고 타겟 ECU를 가상화한 시뮬레이터를 통해 SILS 기반 검증이 가능하도록 할 수 있다. 특히, 코드 파싱 장치(130)는 차량용 소프트웨어의 시뮬레이션 과정에서 차량용 소프트웨어의 구성 파일로부터 소프트웨어의 구동에 필요한 필수 정보들을 파싱하여 추출할 수 있다.In addition, the simulation device can visualize the simulation results of vehicle software through a graphic simulator, which enables SILS-based verification through a simulator that virtualizes the target ECU without being dependent on test equipment or debugging equipment. In particular, the code parsing device 130 can parse and extract essential information required for running the software from a configuration file of the vehicle software during a simulation of the vehicle software.

도 6은 본 발명에 따른 차량용 소프트웨어 시뮬레이션 시스템의 일 실시예를 설명하는 도면이다.Figure 6 is a diagram explaining an embodiment of a vehicle software simulation system according to the present invention.

도 6을 참조하면, 본 발명에 따른 코드 파싱 방법은 가상화된 오토사 플랫폼(Virtual AUTOSAR Platform) 상에서 차량용 소프트웨어의 실행에 필요한 필수 정보들을 차량용 소프트웨어의 구성 파일로부터 파싱하여 추출할 수 있다. 구체적으로, 가상화된 오토사 플랫폼은 윈도우 환경에서 차량용 소프트웨어의 시뮬레이션을 수행하기 위한 가상화를 제공할 수 있다. 가상화된 오토사 플랫폼은 가상화된 RTE 레이어(vRTE), 가상화된 BSW 레이어(vBSW)를 포함할 수 있다.Referring to FIG. 6, the code parsing method according to the present invention can extract essential information required for execution of vehicle software on a virtual AUTOSAR platform by parsing it from a configuration file of vehicle software. Specifically, the virtualized Autosa platform can provide virtualization to perform simulation of automotive software in a Windows environment. The virtualized Autosa platform may include a virtualized RTE layer (vRTE) and a virtualized BSW layer (vBSW).

여기에서, 가상화된 BSW 레이어는 다양한 ECU들에서 공통으로 사용하는 기능들을 가상화하는 계층에 해당할 수 있으며, 가상화된 서비스 레이어(Service Layer), 가상화된 ECU 추상화 레이어(EAL, ECU Abstraction Layer) 및 가상화된 마이크로컨트롤러 추상화 레이어(MCAL, Microcontroller Abstraction Layer)를 포함할 수 있다.Here, the virtualized BSW layer may correspond to a layer that virtualizes functions commonly used in various ECUs, including a virtualized service layer (Service Layer), a virtualized ECU abstraction layer (EAL), and virtualization It may include a microcontroller abstraction layer (MCAL).

한편, 도 6에서 도시된 내용은 본 발명에 따른 일 실시예로서 통신 관련 모듈의 이해를 보충하기 위한 것이며, 해당 내용이 본 발명의 권리범위를 제한하지 않음은 물론이다.Meanwhile, the content shown in FIG. 6 is an embodiment according to the present invention and is intended to supplement the understanding of the communication-related module, and of course, the content does not limit the scope of the present invention.

먼저, 가상화된 서비스 레이어는 시스템 구동 및 다른 BSW 내 모듈들의 전반적인 제어를 위한 시스템(System), 메모리(Memory) 및 통신(Communication) 등의 서비스를 가상화할 수 있다. 시스템 서비스의 경우 주로 태스크(task)와 인터럽트(interrupt)를 관리하는 기능을 포함할 수 있고 메모리 서비스의 경우 메모리에 읽고 쓰기 위한 기능을 포함할 수 있으며 통신 서비스는 CAN, LIN 등의 통신 프로토콜을 사용하는데 필요한 기능을 포함할 수 있다.First, the virtualized service layer can virtualize services such as system, memory, and communication for system operation and overall control of modules in other BSW. System services can mainly include functions to manage tasks and interrupts, memory services can include functions for reading and writing to memory, and communication services use communication protocols such as CAN and LIN. It may contain the functions necessary to do so.

또한, 가상화된 ECU 추상화 레이어는 가상화된 MCAL 드라이버들의 상위 계층에 인터페이스를 제공하는 추상화 계층을 가상화할 수 있다. 가상화된 ECU 추상화 레이어는 마이크로컨트롤러 이외의 외부 장치들과의 인터페이스를 제공할 수도 있다. 예를 들어, 외부 장치들에는 EEPROM, Flash, Watchdog 드라이버 등이 포함될 수 있다.Additionally, the virtualized ECU abstraction layer can virtualize an abstraction layer that provides an interface to the upper layer of virtualized MCAL drivers. The virtualized ECU abstraction layer can also provide interfaces with external devices other than the microcontroller. For example, external devices may include EEPROM, Flash, Watchdog drivers, etc.

또한, 가상화된 마이크로컨트롤러 추상화 레이어는 마이크로컨트롤러 내부 장치를 이용하기 위한 내부 드라이버들을 가상화할 수 있다. 이에 따라, 가상화된 오토사 플랫폼은 가상화된 마이크로컨트롤러 추상화 레이어의 가상화된 드라이버 모듈들을 통해 가상화된 ECU 그래픽 시뮬레이터와의 데이터(vPortpin data)를 주고받을 수 있다. 한편, 가상화된 드라이버 모듈들에는 vCAN 드라이버, vFlexRay 드라이버, vEthernet 드라이버 및 vLIN 드라이버 등이 포함될 수 있다.Additionally, the virtualized microcontroller abstraction layer can virtualize internal drivers for using microcontroller internal devices. Accordingly, the virtualized Autosa platform can exchange data (vPortpin data) with the virtualized ECU graphic simulator through the virtualized driver modules of the virtualized microcontroller abstraction layer. Meanwhile, virtualized driver modules may include vCAN drivers, vFlexRay drivers, vEthernet drivers, and vLIN drivers.

도 7은 본 발명에 따른 코드 파싱 과정의 일 실시예를 설명하는 도면이다.Figure 7 is a diagram illustrating an embodiment of the code parsing process according to the present invention.

도 7을 참조하면, 코드 파싱 장치(130)는 차량용 소프트웨어 플랫폼 AUTOSAR 기반으로 설계된 소프트웨어를 타겟 보드에 사용하지 않고 가상 환경에서 시뮬레이션하기 위해 ARXML 파일로부터 오토사 기반 소프트웨어의 구동에 필수적인 정보들을 파싱하여 RTE API, 소스코드 정보를 생성할 수 있다.Referring to FIG. 7, the code parsing device 130 parses information essential for running Autosar-based software from an ARXML file in order to simulate software designed based on the automotive software platform AUTOSAR in a virtual environment without using it on the target board, and provides RTE API and source code information can be created.

특히, 코드 파싱 장치(130)는 ARXML 파일의 유형에 따라 각기 다른 파싱 정보들을 추출할 수 있다. 이를 위해, 코드 파싱 장치(130)는 ARXML 파일의 유형에 따라 정의되는 파싱 규칙을 적용하여 파싱되는 타겟 정보들을 결정할 수 있다.In particular, the code parsing device 130 can extract different parsing information depending on the type of ARXML file. To this end, the code parsing device 130 may determine target information to be parsed by applying parsing rules defined according to the type of ARXML file.

예를 들어, ASW 설계 ARXML 파일로부터 CSWC, SWC, Runnable, Event, Port, Interface, Data Type 등의 정보들이 추출될 수 있고, BSW 설계 ARXML 파일로부터 Alarm, Task, AppMode, OsApplication, OsCounter, ISR, Resource 등의 정보들이 추출될 수 있으며, RTE 설계 ARXML 파일로부터 Task-Event Mapping, SWC Instance 등의 정보들이 추출될 수 있다.For example, information such as CSWC, SWC, Runnable, Event, Port, Interface, Data Type, etc. can be extracted from the ASW design ARXML file, and Alarm, Task, AppMode, OsApplication, OsCounter, ISR, Resource, etc. from the BSW design ARXML file. Information such as Task-Event Mapping and SWC Instance can be extracted from the RTE design ARXML file.

또한, 코드 파싱 장치(130)는 코드 생성부(340)를 통해 파싱된 정보들을 이용하여 가상화된 플랫폼 상에서 소프트웨어의 시뮬레이션을 위한 RTE API 코드들을 생성할 수 있다. 코드 파싱 장치(130)는 소프트웨어의 실행을 구현하기 위한 RTE API뿐만 아니라 정적 코드(Static code)들을 함께 생성할 수 있으며, 이후 가상화된 플랫폼 상에서의 실행을 지원하는 가상 오토사 플랫폼 코드와 함께 빌드하여 오토사 시뮬레이션 파일을 생성할 수 있다.Additionally, the code parsing device 130 may generate RTE API codes for software simulation on a virtualized platform using information parsed through the code generator 340. The code parsing device 130 can generate static codes as well as RTE APIs to implement the execution of software, and is then built together with the virtual Autosa platform code to support execution on a virtualized platform. You can create an Autosa simulation file.

도 8은 본 발명에 따른 OS 가상화 과정의 일 실시예를 설명하는 도면이다.Figure 8 is a diagram explaining an embodiment of the OS virtualization process according to the present invention.

도 8을 참조하면, 차량용 소프트웨어 시뮬레이션 시스템(100)은 가상화된 오토사 플랫폼의 OS 기능을 가상화할 수 있다. 구체적으로, 차량용 소프트웨어 시뮬레이션 시스템(100)은 스케줄러(OsScheduler), 알람(OsAlarm), 태스크(OsTask) 및 리소스(Resource)를 가상화하는 독립된 모듈들을 포함하여 구현될 수 있다.Referring to FIG. 8, the vehicle software simulation system 100 can virtualize the OS functions of the virtualized Autosa platform. Specifically, the vehicle software simulation system 100 may be implemented including independent modules that virtualize a scheduler (OsScheduler), an alarm (OsAlarm), a task (OsTask), and a resource (Resource).

스케줄러(OsScheduler) 모듈은 스케줄러를 가상화하여 태스크 정보를 기반으로 우선순위에 따라 태스크의 상태를 갱신하며 태스크들의 상태를 검사하여 실행 순서를 결정할 수 있다. 알람(OsAlarm) 모듈은 알람(Alarm) 기능을 가상화하여 설정 주기마다 실행 순서에 따라 매핑된 태스크에 대한 생성 요청 신호를 생성할 수 있다. 일 실시예에서, 알람 모듈은 설정 주기마다 타이머(Timer) 함수를 통해 콜백함수를 호출하도록 하여 생성 요청 신호를 생성할 수 있다.The scheduler (OsScheduler) module virtualizes the scheduler, updates the status of tasks according to priority based on task information, and determines the execution order by examining the status of the tasks. The alarm (OsAlarm) module can virtualize the alarm function and generate a creation request signal for the mapped task according to the execution order at each setting cycle. In one embodiment, the alarm module may generate a generation request signal by calling a callback function through a timer function at each set cycle.

태스크(OsTask) 모듈은 생성 요청 신호에 따라 태스크에 대응되는 태스크 쓰레드를 생성하여 가상화하고 태스크의 상태에 따른 실행을 처리할 수 있다. 태스크 모듈은 태스크 쓰레드를 구조체(structure) 형태로 생성하여 태스크의 우선순위, 주기/비주기 여부 및 함수 포인터를 관리할 수 있다.The task (OsTask) module can create a task thread corresponding to the task according to the creation request signal, virtualize it, and process execution according to the state of the task. The task module can create a task thread in the form of a structure and manage the task's priority, periodicity/non-periodic status, and function pointer.

리소스(Resource) 모듈은 리소스(Resource)를 가상화하여 태스크의 실행에 따른 리소스 사용을 관리할 수 있다. 일 실시예에서, 리소스 모듈은 특정 태스크에서 리소스를 사용하는 경우 뮤텍스(Mutex)를 통해 해당 리소스 획득에 대한 상호배제를 수행하고 스케줄러에 의해 해당 리소스를 소유 중인 태스크의 우선순위를 변경하도록 할 수 있다.The Resource module can manage resource use according to task execution by virtualizing resources. In one embodiment, when a resource is used by a specific task, the resource module can perform mutual exclusion for acquisition of the resource through a mutex and change the priority of the task owning the resource by the scheduler. .

보다 구체적으로, 스케줄러 모듈은 태스크 정보를 관리하는 태스크 인포 어레이(Task info array)와 태스크의 우선순위를 관리하는 우선순위 큐(Priority queue)를 참조하여 태스크들의 실행 순서를 관리할 수 있다. 구체적으로, 스케줄러 모듈은 태스크들의 우선순위에 따라 태스크의 상태를 RUNNING, READY, WAITING, SUSPENDED로 변경할 수 있다. 스케줄러 모듈은 READY 및 RUNNING 상태의 모든 태스크의 상태 및 우선순위를 검사하고 우선순위 큐(FIFO Queue)에 존재하는 Ready 상태의 태스크를 검사하여 다음에 실행할 태스크를 결정할 수 있다. 일 실시예에서, 스케줄러 모듈은 WinAPI인 ResumeThread, SuspendThread를 사용하여 태스크의 실행과 중단을 관리할 수 있다.More specifically, the scheduler module can manage the execution order of tasks by referring to a task info array that manages task information and a priority queue that manages the priority of the task. Specifically, the scheduler module can change the status of a task to RUNNING, READY, WAITING, or SUSPENDED according to the priority of the tasks. The scheduler module can determine the task to be executed next by examining the status and priority of all tasks in READY and RUNNING states and tasks in Ready state existing in the priority queue (FIFO Queue). In one embodiment, the scheduler module can manage execution and suspension of tasks using WinAPI, ResumeThread and SuspendThread.

결과적으로, 스케줄러 모듈에 의해 실행 대상이 되는 태스크가 결정될 수 있으며, 해당 태스크 정보는 스케줄러 모듈을 통해 태스크 쓰레드(OsTask Thread) 모듈에 전달될 수 있다.As a result, the task to be executed can be determined by the scheduler module, and the corresponding task information can be transmitted to the task thread (OsTask Thread) module through the scheduler module.

태스크 모듈(예를 들어, 도 8의 OsTask Thread)은 스케줄러 모듈의 실행 제어에 따라 대응되는 태스크 쓰레드의 동작을 실행할 수 있다. 태스크 쓰레드는 대응되는 태스크 유형에 따라 주기적인 동작과 비주기적인 동작을 수행할 수 있다. 주기적인 동작을 수행하는 태스크 쓰레드는 알람 모듈의 생성 요청 신호에 의해 생성될 수 있으며, 매핑된 이벤트를 1회 실행한 후 종료될 수 있다. 이와 달리, 비주기적인 동작을 수행하는 태스크 쓰레드는 알람 모듈의 활성화 요청 신호에 의해 활성화된 상태에서 매핑된 이벤트를 실행할 수 있으며, 이벤트 실행이 완료되더라도 종료되지 않고 동작 상태가 중지(suspend) 상태로 변경되어 다음 활성화 신호를 대기할 수 있다.A task module (eg, OsTask Thread in FIG. 8) may execute the operations of the corresponding task thread according to the execution control of the scheduler module. A task thread can perform periodic and aperiodic operations depending on the corresponding task type. A task thread that performs periodic operations can be created by a creation request signal from the alarm module, and can be terminated after executing the mapped event once. In contrast, a task thread that performs aperiodic operations can execute mapped events while activated by the alarm module's activation request signal, and even if the event execution is completed, it does not terminate and its operation state remains in the suspended state. It can be changed to wait for the next activation signal.

차량용 소프트웨어 시뮬레이션 시스템(100)은 차량용 소프트웨어 플랫폼의 가상화를 지원하여 윈도우 PC 환경에서 차량용 소프트웨어의 시뮬레이션을 통해 차량용 소프트웨어의 개발 및 검증 테스트에 높은 편이성을 제공할 수 있다.The vehicle software simulation system 100 supports virtualization of the vehicle software platform and can provide high convenience in the development and verification testing of vehicle software through simulation of vehicle software in a Windows PC environment.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the present invention has been described above with reference to preferred embodiments, those skilled in the art may make various modifications and changes to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. You will understand that you can do it.

100: 차량용 소프트웨어 시뮬레이션 시스템
110: 사용자 단말 130: 코드 파싱 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 구성 파일 수신부 320: 구성 파일 분류부
330: 코드 파싱부 340: 코드 생성부
350: 오토사 플랫폼 가상화부 360: ECU 가상화 처리부
100: Automotive software simulation system
110: User terminal 130: Code parsing device
150: database
210: Processor 230: Memory
250: user input/output unit 270: network input/output unit
310: Configuration file receiving unit 320: Configuration file classification unit
330: code parsing unit 340: code generation unit
350: Autosa platform virtualization unit 360: ECU virtualization processing unit

Claims (12)

소프트웨어 개발 도구를 통해 작성된 차량용 소프트웨어의 구성 파일(configuration file)을 수신하는 구성 파일 수신부;
상기 구성 파일의 유형을 분류하는 구성 파일 분류부; 및
상기 구성 파일의 유형에 따라 상기 구성 파일을 파싱(parsing)하여 가상화된 소프트웨어 플랫폼 상에서 상기 차량용 소프트웨어의 실행을 위한 정보들을 추출하는 코드 파싱부;를 포함하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
A configuration file receiving unit that receives a configuration file of vehicle software created through a software development tool;
a configuration file classification unit that classifies the types of configuration files; and
A code parsing unit that parses the configuration file according to the type of the configuration file and extracts information for executing the vehicle software on a virtualized software platform. Code parsing device for simulating a vehicle software platform comprising a.
제1항에 있어서, 상기 구성 파일 수신부는
상기 차량용 소프트웨어의 구성 파일로서 오토사(AUTOSAR) 기반 소프트웨어의 ARXML(AUTOSAR eXtensible Markup Language) 파일을 수신하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
The method of claim 1, wherein the configuration file receiving unit
A code parsing device for simulation of a vehicle software platform, characterized in that it receives an ARXML (AUTOSAR eXtensible Markup Language) file of AUTOSAR-based software as a configuration file of the vehicle software.
제2항에 있어서, 상기 구성 파일 분류부는
상기 ARXML 파일을 상기 소프트웨어 플랫폼의 ASW(Application SoftWare layer)에 대한 설정을 포함하는 ASW 설계 ARXML 파일, BSW(Basic SoftWare layer)에 대한 설정을 포함하는 BSW 설계 ARXML 파일 및 RTE(RunTime Environment)에 관한 설정을 포함하는 RTE 설계 ARXML 파일 중 어느 하나로 분류하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
The method of claim 2, wherein the configuration file classification unit
The ARXML file is an ASW design ARXML file containing settings for the Application SoftWare layer (ASW) of the software platform, a BSW design ARXML file containing settings for the Basic SoftWare layer (BSW), and settings for the RunTime Environment (RTE). A code parsing device for simulation of a vehicle software platform, characterized in that it is classified into one of the RTE design ARXML files containing.
제3항에 있어서, 상기 코드 파싱부는
상기 ASW 설계 ARXML 파일로부터 컴포지션 소프트웨어 컴포넌트(CSWC, Composition SoftWare Component), 소프트웨어 컴포넌트(SWC, SoftWare Component), 러너블(Runnable), 이벤트(Event), 포트(Port), 인터페이스(Interface) 및 데이터 타입(DataType)을 포함하는 제1 파싱 정보를 추출하고,
상기 BSW 설계 ARXML 파일로부터 알람(Alarm), 태스크(Task), 앱 모드(App Mode), 애플리케이션(OsApplication), 카운터(OsCounter), 인터럽트 서비스 루틴(ISR, Interrupt Service Routine) 및 리소스(Resource)를 포함하는 제2 파싱 정보를 추출하며,
상기 RTE 설계 ARXML 파일로부터 이벤트-태스크 매핑(Mapping) 및 소프트웨어 컴포넌트 인스턴스(SWC Instance)를 포함하는 제3 파싱 정보를 추출하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
The method of claim 3, wherein the code parsing unit
From the ASW design ARXML file, composition software component (CSWC, Composition SoftWare Component), software component (SWC, SoftWare Component), runnable, event, port, interface, and data type ( Extract first parsing information including DataType),
From the BSW design ARXML file, it includes Alarm, Task, App Mode, Application (OsApplication), Counter (OsCounter), Interrupt Service Routine (ISR), and Resource. extracts the second parsing information,
A code parsing device for simulation of a vehicle software platform, characterized in that third parsing information including event-task mapping and software component instance (SWC Instance) is extracted from the RTE design ARXML file.
제4항에 있어서, 상기 코드 파싱부는
상기 제1 내지 제3 파싱 정보들 중에서 적어도 하나에 대한 추출에 실패한 경우 상기 구성 파일 수신부를 통해 상기 구성 파일에 대한 재입력을 요청하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
The method of claim 4, wherein the code parsing unit
A code parsing device for simulating a vehicle software platform, characterized in that, when extraction of at least one of the first to third parsing information fails, a re-input of the configuration file is requested through the configuration file receiver.
제1항에 있어서,
상기 파싱된 정보들을 기반으로 가상화된 소프트웨어 플랫폼 상에서 동작하는 상기 차량용 소프트웨어의 실행을 위한 실행 코드들을 생성하는 코드 생성부;를 더 포함하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
According to paragraph 1,
A code parsing device for simulating a vehicle software platform, further comprising a code generator that generates executable codes for executing the vehicle software operating on a virtualized software platform based on the parsed information.
제6항에 있어서, 상기 코드 생성부는
상기 파싱된 정보들을 기초로 상기 차량용 소프트웨어의 실행에 필요한 RTE(RunTime Environment) API 및 정적 코드(static code)을 생성하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
The method of claim 6, wherein the code generator
A code parsing device for simulating a vehicle software platform, characterized in that it generates RTE (RunTime Environment) API and static code required for execution of the vehicle software based on the parsed information.
제7항에 있어서,
상기 소프트웨어 플랫폼의 가상화를 구현하고 상기 실행 코드들의 실행에 따라 상기 차량용 소프트웨어의 동작을 시뮬레이션하는 오토사 플랫폼 가상화부; 및
상기 시뮬레이션에 따른 상기 차량용 소프트웨어의 출력을 수신하고 상기 출력을 기초로 가상화된 ECU의 동작을 그래픽 인터페이스를 통해 시각화하는 ECU 가상화 처리부;를 더 포함하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
In clause 7,
an Autosa platform virtualization unit that implements virtualization of the software platform and simulates the operation of the vehicle software according to execution of the executable codes; and
Code parsing for simulation of the vehicle software platform, further comprising: an ECU virtualization processing unit that receives the output of the vehicle software according to the simulation and visualizes the operation of the virtualized ECU based on the output through a graphic interface. Device.
제8항에 있어서, 상기 ECU 가상화 처리부는
상기 가상화된 소프트웨어 플랫폼의 가상 포트(port)로부터 출력값을 수신하고 상기 출력값에 상응하는 동작을 상기 가상화된 ECU를 통해 출력하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 장치.
The method of claim 8, wherein the ECU virtualization processing unit
A code parsing device for simulating a vehicle software platform, characterized in that it receives an output value from a virtual port of the virtualized software platform and outputs an operation corresponding to the output value through the virtualized ECU.
구성 파일 수신부를 통해 소프트웨어 개발 도구를 통해 작성된 차량용 소프트웨어의 구성 파일(configuration file)을 수신하는 단계;
구성 파일 분류부를 통해 상기 구성 파일의 유형을 분류하는 단계; 및
코드 파싱부를 통해 상기 구성 파일의 유형에 따라 상기 구성 파일을 파싱(parsing)하여 가상화된 소프트웨어 플랫폼 상에서 상기 차량용 소프트웨어의 실행을 위한 정보들을 추출하는 단계;를 포함하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 방법.
Receiving a configuration file of vehicle software created using a software development tool through a configuration file receiving unit;
Classifying the type of configuration file through a configuration file classification unit; and
Parsing the configuration file according to the type of the configuration file through a code parser to extract information for executing the vehicle software on a virtualized software platform; Code parsing for simulation of the vehicle software platform including method.
제10항에 있어서,
코드 생성부를 통해 상기 파싱된 정보들을 기반으로 가상화된 소프트웨어 플랫폼 상에서 동작하는 상기 차량용 소프트웨어의 실행을 위한 실행 코드들을 생성하는 단계;를 더 포함하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 방법.
According to clause 10,
A code parsing method for simulating a vehicle software platform, further comprising: generating executable codes for executing the vehicle software operating on a virtualized software platform based on the parsed information through a code generator. .
제11항에 있어서,
오토사 플랫폼 가상화부를 통해 상기 소프트웨어 플랫폼의 가상화를 구현하고 상기 실행 코드들의 실행에 따라 상기 차량용 소프트웨어의 동작을 시뮬레이션하는 단계; 및
ECU 가상화 처리부를 통해 상기 시뮬레이션에 따른 상기 차량용 소프트웨어의 출력을 수신하고 상기 출력을 기초로 가상화된 ECU의 동작을 그래픽 인터페이스를 통해 시각화하는 단계;를 더 포함하는 것을 특징으로 하는 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 코드 파싱 방법.
According to clause 11,
Implementing virtualization of the software platform through an Autosa platform virtualization unit and simulating the operation of the vehicle software according to execution of the executable codes; and
Receiving the output of the vehicle software according to the simulation through an ECU virtualization processing unit and visualizing the operation of the virtualized ECU through a graphic interface based on the output; a simulation of the vehicle software platform further comprising: How to parse code for.
KR1020220087104A 2022-07-14 2022-07-14 Code parsing apparatus and method for simulation of automotive software platform KR20240009783A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220087104A KR20240009783A (en) 2022-07-14 2022-07-14 Code parsing apparatus and method for simulation of automotive software platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220087104A KR20240009783A (en) 2022-07-14 2022-07-14 Code parsing apparatus and method for simulation of automotive software platform

Publications (1)

Publication Number Publication Date
KR20240009783A true KR20240009783A (en) 2024-01-23

Family

ID=89713744

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220087104A KR20240009783A (en) 2022-07-14 2022-07-14 Code parsing apparatus and method for simulation of automotive software platform

Country Status (1)

Country Link
KR (1) KR20240009783A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101134735B1 (en) 2010-11-03 2012-04-13 재단법인대구경북과학기술원 Software testing method and system using software component design information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101134735B1 (en) 2010-11-03 2012-04-13 재단법인대구경북과학기술원 Software testing method and system using software component design information

Similar Documents

Publication Publication Date Title
US9952837B1 (en) Reusable component in a modeling environment
Aarno et al. Software and system development using virtual platforms: full-system simulation with wind river simics
EP3382536B1 (en) Emulation of hardware components
US9152393B1 (en) Dynamic entities for a model of a graphical modeling environment
JP7321839B2 (en) General Purpose Virtualization Platform for Systems Using Hardware Abstraction Software Layers
JP6600011B2 (en) Efficient waveform generation for emulation
US10078500B2 (en) Method and system for automatic code generation
US20090240483A1 (en) System and computer program product for automatic logic model build process with autonomous quality checking
EP3839731A1 (en) Apparatus and method to assign threads to a plurality of processor cores for virtualization of a hardware configuration
US9678718B1 (en) Analyzing information associated with logic
Schoofs et al. An integrated modular avionics development environment
Bucher et al. RTAI-Lab tutorial: Scilab, Comedi, and real-time control
JP2011221803A (en) Test tool and test method
Zhao et al. A parametric rely-guarantee reasoning framework for concurrent reactive systems
CN116306392A (en) Chip simulation device, method, electronic device and storage medium
KR20240009783A (en) Code parsing apparatus and method for simulation of automotive software platform
KR20240009757A (en) Windows-based automotive software simulation device and method through autosar stack virtualization
KR20240009773A (en) Port virtualization device and method for simulation of automotive software platform
KR20240009779A (en) Device driver virtualization apparatus and method for simulation of automotive software platform
KR20240009786A (en) Operating system virtualization device and method for simulation of automotive software platform
JP2013020425A (en) Hardware and software cooperative verification method using open source software
KR20240009766A (en) Network virtualization apparatus and method for simulation of automotive software platform
Liu et al. A real-time UEFI functional validation tool with behavior Colored Petri Net model
KR20140060075A (en) Multi-function display operational flight device of mission computer using a java virtual machine and controlling method for the same
KR20140036731A (en) Development method and system of application program