KR20240077722A - Method for generating and verifying automotive embedded software based on autosar - Google Patents

Method for generating and verifying automotive embedded software based on autosar Download PDF

Info

Publication number
KR20240077722A
KR20240077722A KR1020220159936A KR20220159936A KR20240077722A KR 20240077722 A KR20240077722 A KR 20240077722A KR 1020220159936 A KR1020220159936 A KR 1020220159936A KR 20220159936 A KR20220159936 A KR 20220159936A KR 20240077722 A KR20240077722 A KR 20240077722A
Authority
KR
South Korea
Prior art keywords
module
autosa
embedded software
fmu
bsw
Prior art date
Application number
KR1020220159936A
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 KR1020220159936A priority Critical patent/KR20240077722A/en
Priority to US18/065,590 priority patent/US20240176632A1/en
Publication of KR20240077722A publication Critical patent/KR20240077722A/en

Links

Images

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/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법이 제공된다. 상기 방법은 검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계; 소정의 테스트 대상 기능에 상응하도록 구현된 상기 오토사 기반의 차량용 임베디드 소프트웨어의 동작을 검증하는 단계; 및 상기 검증 결과 이상이 없는 경우 상기 차량용 임베디드 소프트웨어를 타겟 ECU에 탑재하는 단계를 포함한다.A verification method for Autosa-based automotive embedded software is provided. The method includes the steps of emulating RTE and BSW among the layers constituting Autosa for the vehicle embedded software that is a verification target according to a predetermined test environment; Verifying the operation of the Autosa-based vehicle embedded software implemented to correspond to a predetermined test target function; and, if there is no abnormality as a result of the verification, loading the vehicle embedded software into the target ECU.

Description

오토사 기반의 차량용 임베디드 소프트웨어 생성 및 검증 방법{METHOD FOR GENERATING AND VERIFYING AUTOMOTIVE EMBEDDED SOFTWARE BASED ON AUTOSAR}Method for generating and verifying embedded software for vehicles based on Autosar {METHOD FOR GENERATING AND VERIFYING AUTOMOTIVE EMBEDDED SOFTWARE BASED ON AUTOSAR}

본 발명은 오토사 기반의 차량용 임베디드 소프트웨어 생성 및 검증 방법에 관한 것이다.The present invention relates to a method for generating and verifying embedded software for vehicles based on Autosa.

최근 차량의 경우 기계적인 구조 중심에서 더 나아가 컴퓨터와 같이 변화하면서 이를 제어하기 위한 소프트웨어의 중요성이 더욱 향상되고 있는 추세이며, 소프트웨어의 복잡도 역시 지속적으로 증가하고 있다.Recently, as vehicles move from being mechanically structured to more computer-like, the importance of software to control them is increasing, and the complexity of the software is also continuously increasing.

이러한 복잡도를 낮춰주고 결합을 줄이기 위해 차량용 임베디드 소프트웨어의 신뢰성과 재사용성을 보장해주기 위한 오토사(AUTomotive Open System Architecture; AUTOSAR) 표준이 설립되었다. To reduce this complexity and coupling, the AUTomotive Open System Architecture (AUTOSAR) standard was established to ensure reliability and reusability of automotive embedded software.

오토사는 신뢰성과 재사용성을 목적으로 개발된 차량 전장용 소프트웨어 표준 플랫폼으로, 현재 많은 차량 회사에서 오토사 기반으로 개발된 플랫폼을 차량에 탑재시키기 위해 노력하고 있다.Autosa is a standard software platform for automotive electronics developed for reliability and reusability, and many vehicle companies are currently working to install platforms developed based on Autosa into their vehicles.

한편, 전통적인 방식의 차량용 임베디드 소프트웨어 개발 프로세스로는 많은 시간 및 비용이 소요되는 문제가 있었는 바, 모델링 및 시뮬레이션을 통해 차량용 임베디드 소프트웨어의 개발 및 검증에 소요되는 노력을 절감시킬 필요가 있다.Meanwhile, the traditional automotive embedded software development process has the problem of requiring a lot of time and cost, so there is a need to reduce the effort required to develop and verify automotive embedded software through modeling and simulation.

공개특허공보 제10-2016-0047147호 (2016.05.02)Public Patent Publication No. 10-2016-0047147 (2016.05.02)

본 발명이 해결하고자 하는 과제는 타겟 ECU의 이미지 파일이 존재하지 않는 경우에 있어 가상의 환경을 통해 차량용 임베디드 소프트웨어를 생성 및 검증할 수 있는, 오토사 기반의 차량용 임베디드 소프트웨어 생성 및 검증 방법을 제공하는 것이다.The problem to be solved by the present invention is to provide an Autosa-based automotive embedded software generation and verification method that can generate and verify automotive embedded software through a virtual environment when the image file of the target ECU does not exist. will be.

다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또다른 과제들이 존재할 수 있다.However, the problem to be solved by the present invention is not limited to the problems described above, and other problems may exist.

상술한 과제를 해결하기 위한 본 발명의 제1 측면에 오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법은 검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계; 소정의 테스트 대상 기능에 상응하도록 구현된 상기 오토사 기반의 차량용 임베디드 소프트웨어의 동작을 검증하는 단계; 및 상기 검증 결과 이상이 없는 경우 상기 차량용 임베디드 소프트웨어를 타겟 ECU에 탑재하는 단계를 포함한다.In the first aspect of the present invention to solve the above-described problem, the verification method of automotive embedded software based on Autosar involves verifying RTE and BSW among the layers constituting Autosa for the vehicle embedded software that are subject to verification according to a predetermined test environment. emulating; Verifying the operation of the Autosa-based vehicle embedded software implemented to correspond to a predetermined test target function; and, if there is no abnormality as a result of the verification, loading the vehicle embedded software into the target ECU.

본 발명의 일부 실시예에 있어서, 상기 검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계는, 상기 소정의 테스트 환경으로 PC 상에서 운영되는 POSIX 기반 운영체제 인터페이스를 기반으로 OSEK가 구동되고, 상기 OSEK의 API를 기반으로 상기 오토사가 구동될 수 있다.In some embodiments of the present invention, the step of emulating RTE and BSW among the layers constituting Autosa for the vehicle embedded software that is the subject of verification according to a predetermined test environment is operated on a PC with the predetermined test environment. OSEK may be driven based on a POSIX-based operating system interface, and the Autosa may be driven based on the API of the OSEK.

본 발명의 일부 실시예에 있어서, 상기 검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계는, 상기 오토사의 레이어 중 BSW에서 FMI를 지원할 수 있다.In some embodiments of the present invention, the step of emulating RTE and BSW among the layers constituting Autosa for the automotive embedded software that are subject to verification according to a predetermined test environment includes supporting FMI in the BSW among the layers of Autosa. You can.

본 발명의 일부 실시예에 있어서, 상기 검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계는, 상기 BSW에서의 오토사 통신 스택을 생성하는 단계를 포함하되, 상기 BSW에서의 오토사 통신 스택을 생성하는 단계는, 상기 RTE로부터 수신한 데이터를 PDU 형태로 PduR 모듈로 전달하는 COM 모듈을 구성하는 단계; 상기 COM 모듈로부터 수신한 데이터를 CANIF_FMU 모듈로 전달하거나, CANIF_FMU 모듈로부터 수신한 데이터를 COM 모듈로 전달하는 PduR 모듈을 구성하는 단계; PDU 식별자에 기반하여 내부 채널을 선택하고, 각 채널에 연결된 HOH(Hardware Object Handle)로 PDU를 전달하는 CANIF_FMU 모듈을 구성하는 단계; 및 상기 CANIF_FMU 모듈을 통해 전달된 상기 PDU를 CAN 제어부의 하드웨어 오브젝트에 기록하는 CAN 모듈을 구성하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of emulating RTE and BSW among the layers constituting Autosa for the vehicle embedded software that is the subject of verification according to a predetermined test environment includes creating an Autosa communication stack in the BSW. The step of generating an Autosa communication stack in the BSW includes configuring a COM module that transmits data received from the RTE to a PduR module in the form of a PDU; Constructing a PduR module that transmits data received from the COM module to the CANIF_FMU module or transmits data received from the CANIF_FMU module to the COM module; Configuring a CANIF_FMU module that selects an internal channel based on the PDU identifier and delivers the PDU to a Hardware Object Handle (HOH) connected to each channel; And it may include configuring a CAN module that records the PDU delivered through the CANIF_FMU module to a hardware object of the CAN control unit.

본 발명의 일부 실시예에 있어서, 상기 CANIF_FMU 모듈은 FMU 쓰기 함수를 호출하여 상기 PDU 형태의 데이터를 FMU 형태로 변환하여 상기 CAN 모듈로 전달하고, 상기 CAN 모듈은 상기 CANIF_FMU 모듈로 수신 표시자 함수를 호출하여 상기 FMU 형태의 데이터의 수신에 관한 인터럽트를 발생시키고, 상기 CANIF_FMU 모듈은 FMU 형태로 변환된 데이터를 상기 PDU 형태의 데이터로 변환하여 상기 PduR 모듈로 전달할 수 있다.In some embodiments of the present invention, the CANIF_FMU module calls the FMU write function to convert the data in the PDU format to the FMU format and transmits it to the CAN module, and the CAN module sends a reception indicator function to the CANIF_FMU module. The call generates an interrupt regarding reception of data in the FMU format, and the CANIF_FMU module can convert the data converted into the FMU format into data in the PDU format and transmit it to the PduR module.

본 발명의 일부 실시예에 있어서, 상기 BSW에서의 오토사 통신 스택을 생성하는 단계는, 상기 CAN 모듈과의 CAN 네트워크를 지원하기 위한 소정 제조사의 소켓 기능을 제공하는 소켓 모듈을 구성하는 단계; 상기 소켓 모듈과 상기 CAN 모듈 사이에 구비되어 CAN 기반 하드웨어 인터페이스 상에서의 데이터 통신 환경을 모사하는 CAN 라이브러리 모듈을 구성하는 단계; 및 상기 CAN 기반 하드웨어 인터페이스가 구비되지 않는 환경에서의 TCP/IP 기반의 데이터 통신을 지원하는 소켓 어댑터 모듈을 구성하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of creating an Autosa communication stack in the BSW includes configuring a socket module that provides a socket function from a certain manufacturer to support a CAN network with the CAN module; Constructing a CAN library module provided between the socket module and the CAN module to simulate a data communication environment on a CAN-based hardware interface; And it may include configuring a socket adapter module that supports TCP/IP-based data communication in an environment where the CAN-based hardware interface is not provided.

또한, 본 발명의 제2 측면에 따른 오토사 기반의 차량용 임베디드 소프트웨어 생성 방법은 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계를 포함하고, 상기 오토사의 레이어 중 BSW에서 FMI를 지원한다.In addition, the method of generating embedded software for a vehicle based on Autosar according to the second aspect of the present invention includes the step of emulating RTE and BSW among the layers constituting Autosa for the embedded software for the vehicle according to a predetermined test environment, Among the above Autosa layers, BSW supports FMI.

본 발명의 일부 실시예에 있어서, 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계는, 상기 BSW에서의 COM 모듈, PduR 모듈, CANIF_FMU 모듈 및 CAN 모듈을 포함하는 오토사 통신 스택을 생성하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of emulating RTE and BSW among the layers constituting Autosa for the automotive embedded software to suit a predetermined test environment includes the COM module, PduR module, CANIF_FMU module, and It may include creating an Autosa communication stack including a CAN module.

본 발명의 일부 실시예에 있어서, 상기 BSW에서의 COM 모듈, PduR 모듈, CANIF_FMU 모듈 및 CAN 모듈을 포함하는 오토사 통신 스택을 생성하는 단계는, 상기 RTE로부터 수신한 데이터를 PDU 형태로 PduR 모듈로 전달하는 COM 모듈을 구성하는 단계; 상기 COM 모듈로부터 수신한 데이터를 CANIF_FMU 모듈로 전달하거나, CANIF_FMU 모듈로부터 수신한 데이터를 COM 모듈로 전달하는 PduR 모듈을 구성하는 단계; PDU 식별자에 기반하여 내부 채널을 선택하고, 각 채널에 연결된 HOH(Hardware Object Handle)로 PDU를 전달하는 CANIF_FMU 모듈을 구성하는 단계; 및 상기 CANIF_FMU 모듈을 통해 전달된 상기 PDU를 CAN 제어부의 하드웨어 오브젝트에 기록하는 CAN 모듈을 구성하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of creating an Autosa communication stack including a COM module, a PduR module, a CANIF_FMU module, and a CAN module in the BSW includes converting the data received from the RTE to the PduR module in the form of a PDU. Configuring the passing COM module; Constructing a PduR module that transmits data received from the COM module to the CANIF_FMU module or transmits data received from the CANIF_FMU module to the COM module; Configuring a CANIF_FMU module that selects an internal channel based on the PDU identifier and delivers the PDU to a Hardware Object Handle (HOH) connected to each channel; And it may include configuring a CAN module that records the PDU delivered through the CANIF_FMU module to a hardware object of the CAN control unit.

또한, 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상기 오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장된다.In addition, the computer program according to another aspect of the present invention is combined with a computer, which is hardware, to execute the verification method of the Autosa-based embedded software for a vehicle, and is stored in a computer-readable recording medium.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

전술한 본 발명에 따르면, 실제 ECU에 탑재하기 전 소프트웨어 자체 검증 및 타겟 ECU 환경을 모사한 검증 수행이 가능하여, 하드웨어가 존재하지 않는 환경에서도 소프트웨어 그 자체만으로도 개발 및 검증이 가능한바, 오토사 기반의 차량용 임베디드 소프트웨어의 개발 및 검증 과정에 소요되는 시간 및 비용을 절감할 수 있는 장점이 있다.According to the above-described present invention, it is possible to verify the software itself and perform verification that simulates the target ECU environment before mounting it on the actual ECU, so that development and verification by the software itself is possible even in an environment where hardware does not exist, and is based on Autosa. It has the advantage of reducing the time and cost required for the development and verification process of embedded software for vehicles.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 오토사 표준 구조를 도시한 도면이다.
도 2는 오토사의 표준 BSW 구조를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 차량용 임베디드 소프트웨어 생성 및 검증 방법의 순서도이다.
도 4는 본 발명의 다른 실시예에 따른 차량용 임베디드 소프트웨어 생성 및 검증 방법의 순서도이다.
도 5는 본 발명의 일 실시예가 구현되는 전체 시스템을 설명하기 위한 도면이다.
도 6a 및 도 6b는 소스 레벨에서의 차량용 임베디드 소프트웨어 구성을 설명하기 위한 도면이다.
도 7a 및 도 7b는 바이너리 레벨에서의 차량용 임베디드 소프트웨어 구성을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에서의 ECU 가상화를 위한 차량용 임베디드 소프트웨어 패키지 구성을 도시한 도면이다.
도 9는 본 발명의 일 실시예에서 차량용 임베디드 소프트웨어 패키지에 포함된 오토사 구성 툴을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 BSW 구조 부분을 도시한 도면이다.
도 11은 본 발명의 일 실시예에서 BSW 구조 중 CAN 및 CAN FD 부분을 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시예에서의 BSW에서의 오토사 통신 스택을 생성하는 과정을 설명하기 위한 도면이다.
도 13a 및 도 13b는 본 발명의 일 실시예에서 BSW 구조 중 CAN 통신 하부 구조를 도시한 도면이다.
도 14는 본 발명의 일 실시예에서 CAN 통신 소프트웨어 호출 구조를 설명하기 위한 도면이다.
도 15는 본 발명의 일 실시예에서 BSW 구조 중 진단모듈 부분을 설명하기 위한 도면이다.
도 16은 본 발명의 일 실시예가 적용된 통합 시뮬레이션 환경의 일 예시를 도시한 도면이다.
도 17은 도 16의 통합 시뮬레이션 환경에서의 데이터 교환 과정을 설명하기 위한 도면이다.
Figure 1 is a diagram showing the Otosa standard structure.
Figure 2 is a diagram showing Auto's standard BSW structure.
Figure 3 is a flowchart of a method for generating and verifying embedded software for a vehicle according to an embodiment of the present invention.
Figure 4 is a flowchart of a method for generating and verifying embedded software for a vehicle according to another embodiment of the present invention.
Figure 5 is a diagram for explaining the entire system in which an embodiment of the present invention is implemented.
Figures 6a and 6b are diagrams for explaining the configuration of embedded software for vehicles at the source level.
Figures 7a and 7b are diagrams for explaining the configuration of embedded software for vehicles at the binary level.
Figure 8 is a diagram showing the configuration of an embedded software package for a vehicle for ECU virtualization in an embodiment of the present invention.
Figure 9 is a diagram for explaining the Autosa configuration tool included in an embedded software package for a vehicle in one embodiment of the present invention.
Figure 10 is a diagram showing a portion of the BSW structure according to an embodiment of the present invention.
Figure 11 is a diagram for explaining the CAN and CAN FD parts of the BSW structure in one embodiment of the present invention.
Figure 12 is a diagram for explaining the process of creating an Autosa communication stack in BSW in an embodiment of the present invention.
Figures 13a and 13b are diagrams showing the CAN communication substructure of the BSW structure in an embodiment of the present invention.
Figure 14 is a diagram for explaining the CAN communication software call structure in one embodiment of the present invention.
Figure 15 is a diagram for explaining the diagnostic module portion of the BSW structure in one embodiment of the present invention.
Figure 16 is a diagram showing an example of an integrated simulation environment to which an embodiment of the present invention is applied.
FIG. 17 is a diagram for explaining the data exchange process in the integrated simulation environment of FIG. 16.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely provided to ensure that the disclosure of the present invention is complete and to provide a general understanding of the technical field to which the present invention pertains. It is provided to fully inform the skilled person of the scope of the present invention, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for describing embodiments and is not intended to limit the invention. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context. As used in the specification, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other elements in addition to the mentioned elements. Like reference numerals refer to like elements throughout the specification, and “and/or” includes each and every combination of one or more of the referenced elements. Although “first”, “second”, etc. are used to describe various components, these components are of course not limited by these terms. These terms are merely used to distinguish one component from another. Therefore, it goes without saying that the first component mentioned below may also be a second component within the technical spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless clearly specifically defined.

이하에서는 당업자의 이해를 돕기 위하여 본 발명이 도출된 배경에 대해 설명한 후, 이를 기반으로 본 발명의 일 실시예에 따른 오토사 기반의 차량용 임베디드 소프트웨어 생성 및 검증 방법을 상세히 설명하도록 한다.Below, to help those skilled in the art understand, the background of the present invention will be described, and then based on this, the Autosa-based vehicle embedded software generation and verification method according to an embodiment of the present invention will be described in detail.

도 1은 오토사 표준 구조를 도시한 도면이다.Figure 1 is a diagram showing the Otosa standard structure.

오토사는 2003년에 만들어진 차량 관련 분야의 세계적인 파트너쉽으로, 차량 ECU의 개방형 표준 소프트웨어 구조를 개발하고 설립하는데 목적을 두고 있다. 구체적인 목표로는 다양한 차량 및 플랫폼 변형, 소프트웨어 이전 가능성, 가용성 및 안전 요구 사항 고려, 다양한 파트너 간의 협력, 천연 자원의 지속 가능한 활용 및 전체 제품 수명주기에 걸친 유지 관리 가능성에 대한 확장성이 포함된다.Autosa is a global partnership in the automotive field created in 2003 that aims to develop and establish an open standard software architecture for vehicle ECUs. Specific goals include scalability for multiple vehicle and platform variants, software transferability, consideration of availability and safety requirements, cooperation between various partners, sustainable use of natural resources and maintainability across the entire product life cycle.

오토사에서 가이드하고 있는 일반적인 차량 시스템의 구조는 BSW(102, Basic Software), RTE(103, Runtime Environment), ASW(104, Application Software)로 구성된다.The structure of the general vehicle system guided by Autosa consists of BSW (102, Basic Software), RTE (103, Runtime Environment), and ASW (104, Application Software).

ASW(104)는 응용소프트웨어 계층으로 소프트웨어 컴포넌트의 집합이다. ASW(104)는 소프트웨어 컴포넌트로써 위탁생산자(OEM)과 공급자(Supplier) 등이 개발해야 할 제어기 고유의 핵심 기능이 구현된다.ASW (104) is an application software layer and is a set of software components. ASW (104) is a software component that implements the core functions unique to the controller to be developed by OEMs and suppliers.

RTE(103)는 ASW(104) 구성요소 간, 그리고 ASW(104)와 BSW(102) 간의 데이터를 교환 및 연결하는 역할을 한다. RTE(103)를 통해 ASW(104)에 구현된 소프트웨어 컴포넌트를 별다른 수정 없이 API 호출을 통해 사용할 수 있도록 한다.RTE (103) serves to exchange and connect data between ASW (104) components and between ASW (104) and BSW (102). Software components implemented in the ASW (104) can be used through an API call without any modification through the RTE (103).

BSW(102)는 하드웨어와 소프트웨어를 분리시켜 하드웨어에 독립적인 응용서비스를 제공하는 역할을 한다. 즉, BSW(102)는 소프트웨어 컴포넌트가 필요한 작업을 수행하는데 필요로 하는 서비스를 제공하는 표준화된 소프트웨어 계층으로, 소프트웨어 컴포넌트에게 입출력, 메모리, 통신 등과 관련한 서비스를 제공한다.The BSW 102 separates hardware and software and serves to provide hardware-independent application services. In other words, the BSW 102 is a standardized software layer that provides services necessary for software components to perform necessary tasks, and provides services related to input/output, memory, communication, etc. to software components.

마지막으로 ECU(101, Electronic Control Unit)는 차량용 임베디드 소프트웨어가 구동되는 실제 하드웨어로, 차량 제어이 기본 단위에 해당한다.Lastly, ECU (101, Electronic Control Unit) is the actual hardware on which vehicle embedded software runs, and is the basic unit of vehicle control.

도 2는 오토사의 표준 BSW 구조를 도시한 도면이다.Figure 2 is a diagram showing Auto's standard BSW structure.

오토사 레이어 중 BSW는 크게 서비스 계층(201), ECU 추상화 계층(202), MCAL(204, Microcontroller Abstraction Layer) 및 CDD(203, Complex Device Drivers)로 구성된다.Among the Autosa layers, BSW is largely composed of a service layer (201), ECU abstraction layer (202), MCAL (204, Microcontroller Abstraction Layer), and CDD (203, Complex Device Drivers).

서비스 계층(201)은 BSW 계층 중 최상위 계층으로, 시스템의 구동 및 다른 BSW 내 모듈들의 전반적인 제어를 위한 시스템 서비스, 메모리 서비스 및 통신 서비스 등을 제공한다.The service layer 201 is the highest layer among the BSW layers and provides system services, memory services, and communication services for system operation and overall control of modules in other BSWs.

이때, 시스템 서비스는 타스크(Task)와 인터럽트(interrupt)를 관리하는 기능을 수행한다. 메모리 서비스는 메모리에 읽고 쓰기 위한 기능을 수행한다. 통신 서비스는 차량용 임베디드 시스템에서 다양한 통신 프로토콜을 사용하는데 필요한 기능을 제공한다.At this time, the system service performs the function of managing tasks and interrupts. The memory service performs functions to read and write to memory. Communication services provide the functions necessary to use various communication protocols in automotive embedded systems.

다음으로, ECU 추상화 계층(202)은 ECU에 비종속적인 인터페이스를 서비스 계층 및 ASW 계층에 제공한다. 일 실시예로, ECU 추상화 계층(202)을 통해 ECU에 따라 다양한 메모리 인터페이스와 통신 인터페이스가 구현될 수 있다.Next, the ECU abstraction layer 202 provides an ECU-independent interface to the service layer and the ASW layer. In one embodiment, various memory interfaces and communication interfaces may be implemented depending on the ECU through the ECU abstraction layer 202.

다음으로, MCAL(204)는 마이크로 컨트롤러에 비종속적인 특정 인터페이스를 추상화 계층에 제공한다. 상이한 설계를 가진 마이크로 컨트롤러에 오토사를 적용시, MCAL(204)의 드라이버를 활용하여 마이크로 컨트롤러에 상관없이 통신, 메모리 및 입출력 모듈 등의 호출이 가능하다. Next, MCAL 204 provides a specific interface independent of the microcontroller to the abstraction layer. When applying Autosa to a microcontroller with a different design, the driver of MCAL (204) can be used to call communication, memory, and input/output modules, etc., regardless of the microcontroller.

마지막으로 CDD(203)는 특정 계층과 연결되지 않고 마이크로 컨트롤러에서 RTE까지 직접 인터페이스를 구성하는 계층으로, BSW의 정보가 직접 RTE를 통해 ASW로 전달될 수 있도록 한다. CDD(203)는 오토사에 정의되지 않은 기능을 위한 드라이버 등을 추가하여 활용할 수 있다.Lastly, the CDD 203 is a layer that forms a direct interface from the microcontroller to the RTE without being connected to a specific layer, allowing information from the BSW to be directly transmitted to the ASW through the RTE. The CDD 203 can be utilized by adding drivers for functions not defined in Autosa.

이하에서는 도 3 내지 도 9를 참조하여 본 발명의 일 실시예에 따른 오토사 기반의 차량용 임베디드 소프트웨어 생성 및 검증 방법에 대하여 설명하도록 한다.Hereinafter, a method for generating and verifying embedded software for a vehicle based on Autosa according to an embodiment of the present invention will be described with reference to FIGS. 3 to 9.

도 3은 본 발명의 일 실시예에 따른 차량용 임베디드 소프트웨어 생성 및 검증 방법의 순서도이다. Figure 3 is a flowchart of a method for generating and verifying embedded software for a vehicle according to an embodiment of the present invention.

먼저, 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하여 차량용 임베디드 소프트웨어를 생성한다(301). First, among the layers that make up Autosa for automotive embedded software, RTE and BSW are emulated according to a predetermined test environment to generate embedded software for vehicles (301).

다음으로, 소정의 테스트 대상 기능에 상응하도록 구현된 오토사 기반 차량용 임베디드 소프트웨어의 동작을 검증하고(302), 검증 결과 이상이 없는 경우 차량용 임베디드 소프트웨어를 타겟 ECU에 탑재한다(S303). Next, the operation of the Autosa-based vehicle embedded software implemented to correspond to a predetermined test target function is verified (302), and if there are no abnormalities as a result of the verification, the vehicle embedded software is mounted on the target ECU (S303).

도 4는 본 발명의 다른 실시예에 따른 차량용 임베디드 소프트웨어 생성 및 검증 방법의 순서도이다. Figure 4 is a flowchart of a method for generating and verifying embedded software for a vehicle according to another embodiment of the present invention.

먼저, 타겟 ECU 정보에 상응하도록 빌드된 바이너리 파일을 QEMU를 통해 가상화하고(401), 가상화된 ECU(이하, 가상 ECU) 상에서, 검증 대상인 상기 오토사 기반의 차량용 임베디드 소프트웨어를 소정의 테스트 환경에 맞게 에뮬레이션하여 차량용 임베디드 소프트웨어를 생성한다(402).First, the binary file built to correspond to the target ECU information is virtualized through QEMU (401), and on the virtualized ECU (hereinafter referred to as virtual ECU), the Autosar-based automotive embedded software to be verified is installed in a predetermined test environment. Embedded software for vehicles is created through emulation (402).

다음으로, 소정의 테스트 대상 기능에 상응하도록 구현된 오토사의 동작을 검증하고(403), 검증 결과 이상이 없는 경우 차량용 임베디드 소프트웨어를 타겟 ECU에 탑재한다(404).Next, the operation of Autosa implemented to correspond to a predetermined test target function is verified (403), and if there are no abnormalities as a result of the verification, the vehicle embedded software is mounted on the target ECU (404).

이때, 도 3에서 설명한 실시예는 소스 레벨의 생성 및 검증 방법(CAT 1)에 해당하며, 도 4에서 설명한 실시예는 바이너리 레벨의 생성 및 검증 방법(CAT 2)에 해당한다. At this time, the embodiment described in FIG. 3 corresponds to the source level generation and verification method (CAT 1), and the embodiment described in FIG. 4 corresponds to the binary level generation and verification method (CAT 2).

도 5는 본 발명의 일 실시예가 구현되는 전체 시스템을 설명하기 위한 도면이다.Figure 5 is a diagram for explaining the entire system in which an embodiment of the present invention is implemented.

본 발명의 일 실시예에 따른 오토사 기반의 차량용 임베디드 소프트웨어 검증 시스템(500)은 가상 ECU(501)와 통합 개발 환경 제공부(502), 통합 시뮬레이션 미들웨어부(503), 차량 통신 네트워크 시뮬레이션부(504) 및 자동 검증 환경 제공부(505)를 포함한다.The Autosa-based automotive embedded software verification system 500 according to an embodiment of the present invention includes a virtual ECU 501, an integrated development environment providing unit 502, an integrated simulation middleware unit 503, and a vehicle communication network simulation unit ( 504) and an automatic verification environment provision unit 505.

가상 ECU(501)는 소스 레벨 또는 바이너리 레벨을 통해 생성 또는 검증을 진행할 가상화된 하드웨어 및 차량용 임베디드 소프트웨어 일체를 의미한다. 가상 ECU(501)는 제공 기능에 따라 복수 개의 가상화된 ECU를 포함할 수 있다.The virtual ECU 501 refers to all virtualized hardware and vehicle embedded software to be created or verified through source level or binary level. The virtual ECU 501 may include a plurality of virtualized ECUs depending on the functions provided.

통합 개발 환경부(502)는 가상 ECU(501)와 연결되며, 소스 레벨(CAT 1) 또는 바이너리 레벨(CAT 2) 방식을 통해 빌드된 이미지 파일을 이클립스(Eclipse) 및 QEMU 플러그인을 활용하여 디버깅할 수 있다.The integrated development environment unit 502 is connected to the virtual ECU 501, and image files built through source level (CAT 1) or binary level (CAT 2) methods can be debugged using Eclipse and QEMU plugins. there is.

통합 시뮬레이션 미들웨어부(503)는 FMI(Functional Mockup Interface)를 통해 복수의 가상화된 ECU(vECU, 501), 차량 통신 네트워크 시뮬레이션부(504) 등과 연결되어 동작하며, FMI를 통해 FMU(Functional Mockup Unit)를 교환한다. 이때, FMU는 특정 단위의 시뮬레이터가 되지만, FMU는 프로세서와 독립적이므로 실제 하드웨어가 사용 가능할 때 FMU 대신 하드웨어를 연결하면 시뮬레이션은 자연스럽게 HILS(Hardware In the Loop Simulation)될 수 있다.The integrated simulation middleware unit 503 operates by being connected to a plurality of virtualized ECUs (vECUs, 501) and the vehicle communication network simulation unit 504 through FMI (Functional Mockup Interface), and functions as a functional mockup unit (FMU) through FMI. exchange. At this time, the FMU becomes a simulator of a specific unit, but since the FMU is independent of the processor, if the hardware is connected instead of the FMU when actual hardware is available, the simulation can naturally be HILS (Hardware In the Loop Simulation).

차량 통신 네트워크 시뮬레이션부(504)는 가상 ECU(501)로부터 수집된 정보를 분석하고, ECU 간 특정 통신 인터페이스를 모사하여 데이터 교환이 가능하도록 한다. 일 예로, 차량 통신 네트워크 시뮬레이션부(504)는 vCAN, vCAN FD, vLIN, vEthernet을 포함할 수 있다.The vehicle communication network simulation unit 504 analyzes information collected from the virtual ECU 501 and simulates a specific communication interface between ECUs to enable data exchange. As an example, the vehicle communication network simulation unit 504 may include vCAN, vCAN FD, vLIN, and vEthernet.

마지막으로, 자동 검증 환경 제공부(505)는 ASAM XIL-MA 인터페이스를 지원하여 차량 통신 네트워크 시뮬레이션부(504)와 써드파티(3nd party) 툴 간의 테스트케이스(testcase) 교환을 지원한다.Lastly, the automatic verification environment providing unit 505 supports the ASAM XIL-MA interface to support test case exchange between the vehicle communication network simulation unit 504 and third party tools.

이하에서는 전술한 전체 시스템에 의해 수행되는 소스 레벨 및 바이너리 레벨에서의 차량용 임베디드 소프트웨어 생성 및 검증 방법을 보다 상세히 설명하도록 한다.Hereinafter, the method of generating and verifying embedded software for vehicles at the source level and binary level performed by the entire system described above will be described in more detail.

도 6a 및 도 6b는 소스 레벨에서의 차량용 임베디드 소프트웨어 구성을 설명하기 위한 도면이다.Figures 6a and 6b are diagrams for explaining the configuration of embedded software for vehicles at the source level.

먼저 도 6a는 소스 레벨에서의 차량용 임베디드 소프트웨어 구성으로, 해당 방식은 타겟 ECU의 이미지 파일을 구하기 어려운 경우에 차량용 임베디드 소프트웨어의 개발 및 검증이 가능한 구조이다. 소스 레벨 기법은 차량 ECU 가상화 환경을 구현하기 위해, PC/서버 환경에서 ASW(603)를 제외한 RTE(602), BSW(601) 및 OS, MCAL을 작동 가능한 소프트웨어로 에뮬레이션하는 방법이다. 즉, 소스 레벨 기법은 ASW(603), BSW(601), RTE(602)의 동작 검증에 초점을 맞춘 형태로 ECU에 대한 고려사항은 없다.First, Figure 6a shows the configuration of embedded software for vehicles at the source level, and this method is a structure that allows development and verification of embedded software for vehicles when it is difficult to obtain an image file of the target ECU. The source level technique is a method of emulating RTE (602), BSW (601), OS, and MCAL, excluding ASW (603), with operable software in a PC/server environment to implement a vehicle ECU virtualization environment. In other words, the source level technique focuses on verifying the operation of the ASW (603), BSW (601), and RTE (602) and does not take into account the ECU.

다음으로 도 6b는 도 6a의 구성을 보다 상세히 나타낸 것이다. 본 발명의 일 실시예는 소정의 테스트 환경으로 PC(610) 상에서 운영되는 POSIX(620, Portable Operating System Interface) 기반 운영체제 인터페이스 기반으로 OSEK(630, Offene Systeme und deren Schnittstellen f

Figure pat00001
r die Elektronik in Kraftfahrzeugen)가 구동되고, OSEK(630)의 API를 기반으로 오토사 기반 차량용 임베디드 소프트웨어가 구동될 수 있다.Next, Figure 6b shows the configuration of Figure 6a in more detail. One embodiment of the present invention is based on a POSIX (620, Portable Operating System Interface)-based operating system interface operated on a PC (610) as a predetermined test environment and OSEK (630, Offene Systeme und deren Schnittstellen f
Figure pat00001
r die Elektronik in Kraftfahrzeugen) is run, and Autosa-based vehicle embedded software can be run based on the API of OSEK (630).

즉, 본 발명의 일 실시예에서 소스 레벨 방식의 경우, PC(610) 상에서 POSIX(620) 기반으로 오토사가 구동된다. 이때 POSIX(620)는 서로 다른 유닉스 OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용프로그램을 개발하기 위한 목적으로, IEEE가 책정한 어플리케이션 인터페이스 규격이다. POSIX(620)를 통해 운영체제에 구애받지 않고 응용프로그램을 실행할 수 있다.That is, in the case of the source level method in one embodiment of the present invention, Autosa is run based on POSIX (620) on the PC (610). At this time, POSIX (620) is an application interface standard established by IEEE for the purpose of developing highly portable Unix applications by organizing common APIs of different Unix OSs. POSIX (620) allows you to run applications regardless of the operating system.

또한, OSEK(630)는 차량용 임베디드 시스템을 위한 운영체제로, 통신 스택 및 네트워크 관리 프로토콜을 만든 표준 규격 자체로서, 차량용 실시간 운영 체제를 말한다.In addition, OSEK (630) is an operating system for automotive embedded systems, and is a standard that creates a communication stack and network management protocol, and refers to a real-time operating system for vehicles.

본 발명의 일 실시예는 이러한 각 운영체제를 기반으로, POSIX(620)를 기반으로 OSEK(630)이 동작되도록 하며, OSEK(630)의 API를 활용하여 오토사를 구동할 수 있다. 다만, 본 발명의 일 실시예는 기존 오토사 표준과는 달리 오토사 내에서 FMI(640)를 지원하는 것을 특징으로 한다.One embodiment of the present invention allows OSEK (630) to operate based on POSIX (620) based on each of these operating systems, and can run Autosa using the API of OSEK (630). However, an embodiment of the present invention is characterized by supporting FMI (640) within Autosa, unlike the existing Autosa standard.

도 7a 및 도 7b는 바이너리 레벨에서의 차량용 임베디드 소프트웨어 구성을 설명하기 위한 도면이다.Figures 7a and 7b are diagrams for explaining the configuration of embedded software for vehicles at the binary level.

먼저 도 7a를 참조하면 바이너리 레벨의 경우, 차량용 임베디드 소프트웨어를 구동하고자 하는 특정 하드웨어가 있으나, 해당 하드웨어의 실물이 존재하지 않는 경우, 특정 하드웨어를 QEMU 상에 가상화하여 에뮬레이션하는 방식이다. 즉, 차량용 임베디드 소프트웨어의 바이너리 파일을 가상화된 하드웨어에서 구동함으로써 차량용 임베디드 소프트웨어를 검증할 수 있다. 이러한 바이너리 레벨 방식은 주어진 차량용 임베디드 소프트웨어의 바이너리 파일이 타겟 ECU에 탑재되기 전 전체 동작을 검증할 수 있다.First, referring to Figure 7a, in the case of the binary level, if there is specific hardware to run embedded software for a vehicle, but the actual hardware does not exist, the specific hardware is virtualized on QEMU and emulated. In other words, vehicle embedded software can be verified by running the binary file of the vehicle embedded software on virtualized hardware. This binary level method can verify the entire operation of the binary file of a given automotive embedded software before it is mounted on the target ECU.

다음으로 도 7b는 도 7a의 구성을 보다 상세히 나타낸 것이다. 본 발명의 일 실시예는 소정의 테스트 환경으로 PC(710) 상에서 QEMU(720)를 통해 가상화된 ECU(701) 상에서 OSEK(730)가 구동되고, OSEK(730)의 API를 기반으로 오토사가 구동될 수 있다. 이때, QEMU(720)는 격리된 상태이므로 통신을 위해서 QEMU(720) 상에서 통신 포트를 열어 주어야 한다. 본 발명의 일 실시예는 QEMU(720)의 통신을 위해 형성된 가상화된 PCI(740)를 통해 네트워크 데이터를 송수신할 수 있다.Next, Figure 7b shows the configuration of Figure 7a in more detail. In one embodiment of the present invention, OSEK (730) is run on a virtualized ECU (701) through QEMU (720) on a PC (710) in a predetermined test environment, and Autosaga is run based on the API of OSEK (730). It can be. At this time, since the QEMU 720 is in an isolated state, a communication port must be opened on the QEMU 720 for communication. One embodiment of the present invention can transmit and receive network data through the virtualized PCI (740) formed for communication of the QEMU (720).

도 8은 본 발명의 일 실시예에서의 ECU 가상화를 위한 차량용 임베디드 소프트웨어 패키지(800) 구성을 도시한 도면이다.FIG. 8 is a diagram illustrating the configuration of a vehicle embedded software package 800 for ECU virtualization in an embodiment of the present invention.

도 8은 오토사 3 버전 표준에 따른 데이터 교환을 지원할 수 있도록 구성한 차량용 임베디드 소프트웨어 패키지(800)이다. 이때, 본 발명의 일 실시예는 네트워크 시뮬레이션을 위해 오토사 표준에서 정의하고 있는 CANIF 대신 CANIF_FMU로 대체하였다(840). 이와 관련된 내용은 후술하도록 한다.Figure 8 shows an embedded software package 800 for a vehicle configured to support data exchange according to the Autosa 3 version standard. At this time, an embodiment of the present invention replaces CANIF defined in the Autosa standard with CANIF_FMU for network simulation (840). Details related to this will be described later.

일 실시예로, 차량용 임베디드 소프트웨어 패키지(800)상에서 가상 ECU(821, 822) 간의 통신은 가상 네트워크(810)를 통해 데이터를 교환할 수 있다. 이때, 가상 네트워크(810)는 통합 시뮬레이션 미들웨어부 및 차량 통신 네트워크 시뮬레이션부에 해당한다.In one embodiment, communication between the virtual ECUs 821 and 822 on the vehicle embedded software package 800 may exchange data through the virtual network 810. At this time, the virtual network 810 corresponds to the integrated simulation middleware unit and the vehicle communication network simulation unit.

가상 ECU(821, 822) 간의 데이터 교환 과정은 다음과 같다. vECU1(821)과 vECU2(822) 간의 데이터 교환을 위해, 먼저 vECU1(821)에서 가상 네트워크(810)로 데이터를 전송한다. 그 다음, 통합 시뮬레이션 미들웨어부와 차량 통신 네트워크 시뮬레이션부는 전송한 데이터를 처리한 후, vECU2(822)로 데이터를 전송한다. The data exchange process between virtual ECUs 821 and 822 is as follows. To exchange data between vECU1 (821) and vECU2 (822), data is first transmitted from vECU1 (821) to the virtual network (810). Next, the integrated simulation middleware unit and the vehicle communication network simulation unit process the transmitted data and then transmit the data to vECU2 (822).

이때, 차량 통신 네트워크 시뮬레이션부는 vECU(821, 822)의 동작 상태 등의 정보를 취득할 수 있다. 또한, 차량 통신 네트워크 시뮬레이션부는 특정 vECU에 시뮬레이션 하고자 하는 데이터를 생성 및 전송하면, vECU에서 해당 데이터를 활용하여 vECU 시뮬레이션이 가능하다. 이 과정에서 활용하는 테스트케이스(testcase)는 차량 통신 네트워크 시뮬레이터 툴을 통해 제공될 수도 있고, 써드파티 툴을 통해서도 제공받을 수 있다.At this time, the vehicle communication network simulation unit can acquire information such as the operating status of the vECU (821, 822). In addition, when the vehicle communication network simulation unit generates and transmits data to be simulated to a specific vECU, vECU simulation is possible using the data in the vECU. The test cases used in this process can be provided through a vehicle communication network simulator tool, or can also be provided through a third-party tool.

한편, 각 툴을 통해 생성된 테스트케이스를 실행하기 위한 인터페이스가 달라 테스트케이스의 교환이 어려울 수 있는데, 본 발명의 일 실시예는 이러한 문제를 해소하기 위해 ASAM XiL-MA 인터페이스를 제공하여 테스트케이스 교환이 가능하도록 하였다.Meanwhile, exchanging test cases may be difficult because the interfaces for executing test cases generated through each tool are different. In order to solve this problem, one embodiment of the present invention provides the ASAM XiL-MA interface to enable test case exchange. This was made possible.

또한, 본 발명의 일 실시예에서의 차량용 임베디드 소프트웨어 패키지는 오토사 구성 툴(830, configuration tool)을 포함할 수 있다. 오토사 구성 툴(830)은 가상 ECU 생성을 위한 소프트웨어 패키지(800)의 일부로 제공되며 구성 툴(830) 실행을 위한 GUI(831, Graphic User Interface), 오토사 소프트웨어의 소스 코드 생성을 위한 ARXML 생성부(832), CAN 통신을 위한 데이터 전송 정보를 포함하는 CANDB를 소프트웨어 반영하거나 신호를 추출 및 저장하는 DBC 입출력부(833, import/export) 및 ARXML을 이용하여 코드를 생성하는 소스 코드 생성부(834, Code Generator)를 포함할 수 있다.Additionally, the vehicle embedded software package in one embodiment of the present invention may include an Autosa configuration tool (830). The Autosa configuration tool (830) is provided as part of the software package (800) for creating a virtual ECU, a GUI (Graphic User Interface (831)) for executing the configuration tool (830), and ARXML generation for generating the source code of the Autosa software. Unit 832, a DBC input/output unit 833 (import/export) that reflects CANDB containing data transmission information for CAN communication in software or extracts and stores signals, and a source code generation unit that generates code using ARXML ( 834, Code Generator).

도 9는 본 발명의 일 실시예에서 차량용 임베디드 소프트웨어 패키지에 포함된 오토사 구성 툴을 설명하기 위한 도면이다.Figure 9 is a diagram for explaining the Autosa configuration tool included in the embedded software package for a vehicle in one embodiment of the present invention.

도 9는 본 발명에서의 오토사 구성 툴(900)의 빌드 과정 및 디버깅 과정을 설명하기 위한 도면으로, 차량용 임베디드 소프트웨어 구성을 위해 먼저, Arxml 세팅을 위한 GUI(901)를 통해 미리 설정된 Arxml을 독출하고 CAN 통신을 위한 dbc 파일을 가져오거나 내보낸다. Figure 9 is a diagram for explaining the build process and debugging process of the Autosa configuration tool 900 in the present invention. To configure embedded software for a vehicle, first, preset Arxml is read through the GUI 901 for Arxml settings. and import or export dbc files for CAN communication.

ARXML 생성부(902)를 통한 Arxml 구성이 완료되면(910) 소스 코드 생성부(904)를 통해 소스 코드가 생성된다(920). 생성된 소스코드는 컴파일 및 빌드 과정을 통해 실행 가능한 파일로 생성된다(930). 이때, 소스 레벨 방식의 경우 POSIX 기반에서 구동되는 차량용 임베디드 소프트웨어가 실행파일로 생성되며, 바이너리 레벨 방식의 경우 가상 ECU 및 가상 ECU에서 구동되는 차량용 임베디드 소프트웨어가 실행파일로 생성된다.When Arxml configuration through the ARXML generator 902 is completed (910), source code is generated through the source code generator 904 (920). The generated source code is created as an executable file through a compilation and build process (930). At this time, in the case of the source level method, the automotive embedded software running on POSIX is created as an executable file, and in the case of the binary level method, the virtual ECU and the automotive embedded software running in the virtual ECU are created as an executable file.

이렇게 생성된 실행파일을 이클립스 IDE에 플러그인 형식으로 불러오면 실행파일에 대한 에뮬레이션 및 디버깅이 가능하다(940).If the executable file created in this way is loaded into the Eclipse IDE in plug-in format, emulation and debugging of the executable file are possible (940).

이하에서는 도 10 내지 도 17을 참조하여 전술한 도 7에서의 ECU 가상화를 위한 차량용 임베디드 소프트웨어 패키지 구성 중 BSW 부분에 대해 보다 상세히 설명하도록 한다.Hereinafter, with reference to FIGS. 10 to 17, the BSW portion of the vehicle embedded software package configuration for ECU virtualization in FIG. 7 described above will be described in more detail.

도 10은 본 발명의 일 실시예에 따른 BSW 구조 부분(1000)을 도시한 도면이다. FIG. 10 is a diagram illustrating a BSW structure portion 1000 according to an embodiment of the present invention.

본 발명의 일 실시예는 오토사의 표준 API를 지원하며, 차량용 임베디드 소프트웨어 패키지를 재구성하여 도 10과 같은 BSW를 구성하였다(1000).One embodiment of the present invention supports Auto's standard API, and the BSW as shown in FIG. 10 is constructed by reconfiguring the vehicle embedded software package (1000).

먼저, 도 11 내지 도 13를 참조하여 BSW 구성 중 오토사 통신 스택을 생성하는 과정을 설명하도록 한다.First, the process of creating an Autosa communication stack during BSW configuration will be described with reference to FIGS. 11 to 13.

도 11은 본 발명의 일 실시예에서 BSW 구조 중 CAN 및 CAN FD 부분을 설명하기 위한 도면이다. 도 12는 본 발명의 일 실시예에서의 BSW에서의 오토사 통신 스택을 생성하는 과정을 설명하기 위한 도면이다. Figure 11 is a diagram for explaining the CAN and CAN FD portions of the BSW structure in one embodiment of the present invention. Figure 12 is a diagram for explaining the process of creating an Autosa communication stack in BSW in an embodiment of the present invention.

일 실시예로, BSW에서의 오토사 통신 스택은 COM 모듈(1101), PduR(1102, Pdu Router) 모듈, CANIF_FMU 모듈(1103) 및 CAN 모듈(1104)을 포함한다.In one embodiment, the Autosa communication stack in BSW includes a COM module 1101, a PduR (1102, Pdu Router) module, a CANIF_FMU module 1103, and a CAN module 1104.

먼저, RTE로부터 수신한 데이터를 PDU 형태로 PduR 모듈(1102)로 전달하는 COM 모듈(1101)을 생성한다(1201). 이때, PDU는 계층 간 메시지 전송을 위한 추상화된 프로토콜을 의미한다. First, a COM module 1101 is created that transmits the data received from the RTE to the PduR module 1102 in the form of a PDU (1201). At this time, PDU refers to an abstracted protocol for inter-layer message transmission.

COM 모듈(1101)에서 전달하는 신호 데이터는 내외부로 전달할 메시지 자체를 의미한다. 소프트웨어 컴포넌트(Software Component)에서 RTE를 통해 전달된 신호는 COM 모듈(1101)에서 I-PDU 버퍼에 저장되며, I-PDU 형태로 PduR 모듈(1102)로 전달되거나, I-PDU에 포함된 신호를 분석하여 해당 신호와 연결된 소프트웨어 컴포넌트로 전달된다.Signal data transmitted from the COM module 1101 refers to the message itself to be transmitted internally and externally. The signal transmitted through RTE from the software component is stored in the I-PDU buffer in the COM module 1101 and is transmitted to the PduR module 1102 in the form of an I-PDU, or the signal included in the I-PDU is stored in the I-PDU buffer. It is analyzed and delivered to the software component connected to the signal.

다음으로, COM 모듈(1101)로부터 수신한 데이터를 CANIF_FMU 모듈(1103)로 전달하거나, CANIF_FMU 모듈(1103)로부터 수신한 데이터를 COM 모듈(1101)로 전달하는 PduR 모듈(1102)을 구성한다(1202).Next, configure the PduR module 1102 to transfer the data received from the COM module 1101 to the CANIF_FMU module 1103 or to transfer the data received from the CANIF_FMU module 1103 to the COM module 1101 (1202) ).

PduR 모듈(1102)은 라우팅 테이블을 구성하고 있다. 이때, 라우팅 테이블을 통신을 통해 교환되어야 할 신호의 묶음을 정의하고 신호의 묶음의 종착점에 대하여 정의한 테이블이다. 이에 따라, PduR 모듈(1102)은 RTE로부터 COM 모듈(1101)로 전달된 신호를 해당 신호의 종착점이 CANIF_FMU 모듈(1103)로 전달하거나, CANIF_FMU 모듈(1103)로 들어온 신호를 해당 신호의 종착점인 COM 모듈(1101)로 전달(라우팅)할 수 있다.The PduR module 1102 configures a routing table. At this time, the routing table is a table that defines a bundle of signals to be exchanged through communication and defines the destination point of the bundle of signals. Accordingly, the PduR module 1102 transfers the signal transmitted from the RTE to the COM module 1101 to the CANIF_FMU module 1103, which is the destination of the signal, or transfers the signal received from the CANIF_FMU module 1103 to COM, which is the destination of the signal. It can be delivered (routed) to the module 1101.

다음으로, PDU 식별자에 기반하여 내부 채널을 선택하고, 각 채널에 연결된 HOH(Hardware Object Handle)로 PDU를 전달하는 CANIF_FMU 모듈(1103)을 구성한다(1203). Next, the CANIF_FMU module 1103 is configured to select an internal channel based on the PDU identifier and deliver the PDU to the HOH (Hardware Object Handle) connected to each channel (1203).

다음으로, CANIF_FMU 모듈(1103)을 통해 전달된 PDU를 CAN 제어부(controller)의 하드웨어 오브젝트(Hardware Object)에 기록(Write)하는 CAN 모듈(1104)을 구성한다(1204). 이때, 오브젝트 플래그(Object flag)=1로 설정되는데, 오브젝트 플래그 값이 1인 경우 트랜시버를 통해 CAN 데이터가 전달된다. Next, the CAN module 1104 is configured to write the PDU transmitted through the CANIF_FMU module 1103 to the hardware object of the CAN controller (1204). At this time, the object flag is set to 1, and if the object flag value is 1, CAN data is transmitted through the transceiver.

한편, 본 발명의 일 실시예는 오토사 표준의 CANIF 대신 CANIF_FMU로 대체 적용되는 것을 특징으로 하며, CANIF_FMU 모듈(1103)을 통해 FMU의 데이터 교환이 가능하다는 특징이 있다.Meanwhile, one embodiment of the present invention is characterized in that CANIF_FMU is applied instead of CANIF in the Autosa standard, and has the feature that data exchange of FMU is possible through the CANIF_FMU module 1103.

도 13a 및 도 13b는 본 발명의 일 실시예에서 BSW 구조 중 CAN 통신 하부 구조를 도시한 도면이다.Figures 13a and 13b are diagrams showing the CAN communication substructure of the BSW structure in one embodiment of the present invention.

도 13a 및 도 13b를 참조하면, 본 발명의 일 실시예는 소스 레벨 및 바이너리 레벨에서의 운영을 가능하도록 하기 위해 CAN 통신을 위한 트랜시버를 가상화해야 한다.Referring to FIGS. 13A and 13B, one embodiment of the present invention requires virtualizing a transceiver for CAN communication to enable operation at the source level and binary level.

이를 위해, 본 발명의 일 실시예는 CAN 모듈과의 CAN 네트워크를 지원하기 위한 소정 제조사의 소켓 기능을 제공하는 소켓 모듈(1300)을 구성할 수 있다. 이때, CAN 네트워크를 위한 소켓의 일 예로는 Vector사의 VXL CAN(1302)과, Peak사의 Peak(1301), ZLG사의 Can 하드웨어 인터페이스(1303)일 수 있다. 여기에서 VXL CAN(1302)을 통해서는 CAN FD의 통신 모사가 가능하다. 한편, 소켓은 윈도우 및 리눅스에서 지원 가능하도록 하는 리눅스용 및 윈도우용 소켓을 포함할 수 있다.To this end, an embodiment of the present invention may configure a socket module 1300 that provides a socket function from a certain manufacturer to support a CAN network with a CAN module. At this time, examples of sockets for the CAN network may be Vector's VXL CAN (1302), Peak's Peak (1301), and ZLG's Can hardware interface (1303). Here, communication simulation of CAN FD is possible through VXL CAN (1302). Meanwhile, the socket may include sockets for Linux and Windows that enable support on Windows and Linux.

또한, 본 발명의 일 실시예는 CAN 기반 하드웨어 인터페이스가 구비되지 않는 환경에서의 TCP/IP 기반 데이터 통신을 지원하기 위한 소켓 어댑터 모듈(1310)을 구성할 수 있다. Additionally, an embodiment of the present invention can configure a socket adapter module 1310 to support TCP/IP-based data communication in an environment where a CAN-based hardware interface is not provided.

한편, 본 발명의 일 실시예에서의 오토사 통신 스택에 있어, 소스 레벨 방식의 경우 소켓 모듈과 CAN 모듈 사이에 구비되어 CAN 기반 하드웨어 인터페이스 상에서의 데이터 통신 환경을 모사하는 CAN 라이브러리 모듈(1320)을 구성하는 것을 특징으로 한다(도 13a). 반면, 바이너리 레벨 방식은 타겟 ECU의 정보를 포함하므로 소스 레벨 방식과는 달리 CAN 라이브러리 모듈(1320)을 구비할 필요가 없다(도 13b).Meanwhile, in the Autosa communication stack in one embodiment of the present invention, in the case of the source level method, a CAN library module 1320 is provided between the socket module and the CAN module and simulates the data communication environment on the CAN-based hardware interface. It is characterized by configuring (Figure 13a). On the other hand, the binary level method includes information on the target ECU, so unlike the source level method, there is no need to provide a CAN library module 1320 (FIG. 13b).

도 14는 본 발명의 일 실시예에서 CAN 통신 소프트웨어 호출 구조를 설명하기 위한 도면이다.Figure 14 is a diagram for explaining the CAN communication software call structure in one embodiment of the present invention.

도 14를 참조하면, 본 발명의 일 실시예는 CAN 통신 API가 호출됨에 따라, COM 모듈(1401)은 RTE로부터 수신한 데이터를 PduR_ComTransmit 함수를 통해 PDU 형태로 PduR 모듈(1402)로 전달한다.Referring to FIG. 14, in an embodiment of the present invention, as the CAN communication API is called, the COM module 1401 transmits the data received from the RTE to the PduR module 1402 in the form of a PDU through the PduR_ComTransmit function.

다음으로, PduR 모듈(1402)은 CanIf_FMU_Transmit 함수를 호출하여 PDU 형태의 데이터를 CANIF_FMU 모듈(1403)로 전달한다.Next, the PduR module 1402 calls the CanIf_FMU_Transmit function to transmit data in the form of a PDU to the CANIF_FMU module 1403.

다음으로, CANIF_FMU 모듈(1403)은 FMU 쓰기 함수인 Can_FMU_Write 함수를 호출하여 PDU 형태의 데이터를 FMU 형태로 변환한 후 CAN 모듈(1404)로 전달한다.Next, the CANIF_FMU module 1403 calls the Can_FMU_Write function, which is an FMU write function, to convert the data in PDU format to FMU format and then transfers it to the CAN module 1404.

다음으로, CAN 모듈(1404)은 CANIF_FMU 모듈(1403)로부터 수신한 데이터를 CAN 제어부(1405)에 기록한다.Next, the CAN module 1404 records the data received from the CANIF_FMU module 1403 in the CAN control unit 1405.

이후, CAN 제어부(1405)로부터 수신에 관한 인터럽트(Rx interrupt)가 발생되어 CAN 모듈(1404)이 수신하면, CAN 모듈(1404)은 CANIF_FMU 모듈(1403)로 수신 표시자 함수인 CanIf_FMU_RxIndication 함수를 호출하여 FMU 형태의 데이터의 수신에 관한 인터럽트를 발생시킨다.Afterwards, when a reception-related interrupt (Rx interrupt) is generated from the CAN control unit 1405 and the CAN module 1404 receives it, the CAN module 1404 calls the CanIf_FMU_RxIndication function, which is a reception indicator function, to the CANIF_FMU module 1403. Generates an interrupt regarding reception of FMU type data.

그 다음, CANIF_FMU 모듈(1403)은 Pdur_CanIf_FMU_RxIndication 함수를 호출하여 FMU 형태로 변환된 데이터를 PDU 형태의 데이터로 변환하여 Pdur 모듈(1402)로 전달하며, 해당 데이터는 COM 모듈(1401)을 통해 RTE로 전달될 수 있다.Next, the CANIF_FMU module 1403 calls the Pdur_CanIf_FMU_RxIndication function to convert the data converted into FMU format into PDU format data and transmit it to the Pdur module 1402, and the data is transmitted to the RTE through the COM module 1401. It can be.

도 15는 본 발명의 일 실시예에서 BSW 구조 중 진단모듈 부분을 설명하기 위한 도면이다.Figure 15 is a diagram for explaining the diagnostic module portion of the BSW structure in one embodiment of the present invention.

본 발명의 일 실시예에 따른 BSW 구조 중 진단 기능을 수행하는 진단모듈은 DEM 모듈(1510), DET 모듈(1520) 및 DCM 모듈(1530)을 포함할 수 있다.Among the BSW structures according to an embodiment of the present invention, a diagnostic module that performs a diagnostic function may include a DEM module 1510, a DET module 1520, and a DCM module 1530.

일 실시예로, DEM 모듈(1510)은 BSW의 서비스 계층(시스템 서비스)에 포함되며, 진단 이벤트의 처리와 NvM(1540, NVRAM Manager)에 이벤트와 관련된 정보를 저장한다. 또한, DEM 모듈(1510)은 진단 정보를 DCM 모듈(1530)로 전달할 수 있다.In one embodiment, the DEM module 1510 is included in the service layer (system service) of BSW, processes diagnostic events, and stores information related to the events in the NvM (1540, NVRAM Manager). Additionally, the DEM module 1510 may transmit diagnostic information to the DCM module 1530.

일 실시예로, DET 모듈(1520)은 개발 과정에서 사용되는 모듈로 에러를 보고하는 API를 제공한다. DET 모듈(1520) 기능이 활용되는 경우, BSW에 속한 모듈들에 에러를 수집하기 위한 기능이 추가될 수 있다.In one embodiment, the DET module 1520 is a module used in the development process and provides an API for reporting errors. When the DET module 1520 function is utilized, a function for collecting errors may be added to modules belonging to the BSW.

일 실시예로, DCM 모듈(1530)은 서비스 계층(통신 서비스)에 포함되며, 외부 툴과의 통신 테스트를 위해 활용된다. DCM 모듈(1530)은 테스트 툴로부터 요청을 받고, 요청에 따른 정보를 반환한다. 또한, DCM 모듈(1530)은 요청을 처리하는 과정에서 유효성 검증을 통해 긍정 또는 부정을 의미하는 코드를 반환할 수 있다(즉, 통신에 관한 에러를 처리).In one embodiment, the DCM module 1530 is included in the service layer (communication service) and is used to test communication with external tools. The DCM module 1530 receives a request from a test tool and returns information according to the request. Additionally, the DCM module 1530 may return a code indicating positive or negative through validation in the process of processing the request (i.e., processing errors related to communication).

이하에서는 도 16 내지 도 17을 참조하여 본 발명의 일 실시예의 적용 예시를 설명하도록 한다.Hereinafter, an application example of an embodiment of the present invention will be described with reference to FIGS. 16 and 17.

도 16은 본 발명의 일 실시예가 적용된 통합 시뮬레이션 환경의 일 예시를 도시한 도면이다. 도 17은 도 16의 통합 시뮬레이션 환경에서의 데이터 교환 과정을 설명하기 위한 도면이다.Figure 16 is a diagram showing an example of an integrated simulation environment to which an embodiment of the present invention is applied. FIG. 17 is a diagram for explaining the data exchange process in the integrated simulation environment of FIG. 16.

도 16은 DDM(1610, Door Drive Module), BCM(1620, Body Control Module) 및 클러스터(1610)에 대한 오토사 기반의 차량용 임베디드 소프트웨어가 가상 ECU에 탑재된 시뮬레이션 환경을 나타낸 것이다. 통합 개발 환경 제공부(1601)는 FMI를 통해 전달받은 FMU를 통해 CAN 및 CAN FD를 모사한 데이터에서 신호를 추출하고 신호에 따른 명령을 수행한 후, 그 결과를 FMI를 통해 차량 통신 네트워크 시뮬레이터부로 반환한다. 또한, ASMA XiL MA를 통해 써드파티 앱과 테스트데이터를 송수신할 수 있다.Figure 16 shows a simulation environment in which Autosa-based automotive embedded software for DDM (1610, Door Drive Module), BCM (1620, Body Control Module), and cluster 1610 is mounted on a virtual ECU. The integrated development environment providing unit 1601 extracts signals from data simulating CAN and CAN FD through the FMU received through FMI, executes commands according to the signals, and then sends the results to the vehicle communication network simulator unit through FMI. returns Additionally, test data can be transmitted and received with third-party apps through ASMA XiL MA.

도 17을 참조하면, 먼저 디지털 입출력 신호인 DIO_{신호}SW의 경우 {신호}를 활용하는 소프트웨어 컴포넌트에서 생성된 신호를 의미한다. 일 예로, DIO_TurnSignalSW의 경우 차량에서 회전신호(TurnSignal)이 온오프된 경우 생성되는 신호이다.Referring to FIG. 17, first, in the case of DIO_{Signal}SW, a digital input/output signal, it means a signal generated by a software component utilizing {Signal}. For example, DIO_TurnSignalSW is a signal generated when the turn signal (TurnSignal) is turned on and off in the vehicle.

TurnSignal, SideMirror, HeatLamp, FogLamp 또는 Seatbelt 중 어느 하나라도 신호가 생성되면 CAN 프레임을 포함하는 FMU는 가상 네트워크로 전달된다. 가상 네트워크에서는 해당 신호에 대한 정보를 저장하고 FMU화된 정보를 전송한다.When any of the TurnSignal, SideMirror, HeatLamp, FogLamp or Seatbelt signals are generated, the FMU containing the CAN frame is delivered to the virtual network. In a virtual network, information about the signal is stored and FMUized information is transmitted.

각 가상 ECU에는 CANIF_FMU에서 받을 수 있는 신호가 미리 정의되어 있으므로 생성된 신호 중 각 가상 ECU는 자신이 활용 가능한 데이터만을 수신한다. 따라서, 만약 BCM 모듈(1720)에서 DIO_TurnSignalSW 신호가 발생되면 이는 가상 네트워크상으로 CAN_TurnSignal을 전송하고, DDM 모듈(1710)에서는 CAN_TurnSignal 신호 발생에 따라 PWM_TurnSignalLamp를 통해 PWM 신호를 주어 사이드미러의 방향지시등에 깜빡이는 신호를 제공되도록 할 수 있다. 또한, CAN_TurnSignal 신호는 클러스터 모듈(1730)로 전달됨에 따라 DISPLAY_TurnSignalLamp 신호가 발생되고, 이를 통해 방향지시등 아이콘에 불빛이 점멸된다.Since each virtual ECU has predefined signals that can be received from CANIF_FMU, among the generated signals, each virtual ECU only receives data that it can use. Therefore, if the DIO_TurnSignalSW signal is generated in the BCM module 1720, it transmits CAN_TurnSignal on the virtual network, and the DDM module 1710 provides a PWM signal through PWM_TurnSignalLamp according to the CAN_TurnSignal signal generation, causing the turn signal lamp of the side mirror to blink. A signal can be provided. Additionally, as the CAN_TurnSignal signal is transmitted to the cluster module 1730, the DISPLAY_TurnSignalLamp signal is generated, and through this, the light on the turn signal icon blinks.

또 다른 예로, 만약 DDM 모듈(1710)의 문 열림 감지 센서에 문열림이 감지되면, DIO_DoorOpenSW 신호가 발생하고, 문열림에 따라 문쪽의 램프를 동작시키기 위하여 PduR 모듈에서 I-PDU에 저장된 데이터에서 신호를 추출하고 RTE를 통해 소프트웨어 컴포넌트로 전달하여 PWM_DoorOpenLamp를 통해 PWM 신호가 발생하여 램프에 불빛이 점등된다. 또한, 가상 네트워크를 통해 CAN_DoorOpen 신호를 내보내게 되는데, 해당 신호는 클러스터 모듈(1730)로 전달되어 DISPLAY_DOOROPEN 신호가 발생되어 클러스터의 문 열림 아이콘이 점등될 수 있다.As another example, if a door opening is detected by the door open detection sensor of the DDM module 1710, the DIO_DoorOpenSW signal is generated, and a signal is generated from the data stored in the I-PDU in the PduR module to operate the lamp on the door side according to the door opening. is extracted and delivered to the software component through RTE, a PWM signal is generated through PWM_DoorOpenLamp, and the lamp lights up. In addition, a CAN_DoorOpen signal is sent through the virtual network, and the signal is transmitted to the cluster module 1730 to generate a DISPLAY_DOOROPEN signal, so that the door open icon of the cluster lights up.

이상에서 전술한 본 발명의 일 실시예에 오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The method for verifying embedded software for a vehicle based on Autosa in an embodiment of the present invention described above may be implemented as a program (or application) and stored in a medium in order to be executed in combination with a computer, which is hardware.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-mentioned program is C, C++, JAVA, Ruby, and It may include code encoded in a computer language such as machine language. These codes may include functional codes related to functions that define the necessary functions for executing the methods, and include control codes related to execution procedures necessary for the computer's processor to execute the functions according to predetermined procedures. can do. In addition, these codes may further include memory reference-related codes that indicate at which location (address address) in the computer's internal or external memory additional information or media required for the computer's processor to execute the above functions should be referenced. there is. In addition, if the computer's processor needs to communicate with any other remote computer or server in order to execute the above functions, the code uses the computer's communication module to determine how to communicate with any other remote computer or server. It may further include communication-related codes regarding whether communication should be performed and what information or media should be transmitted and received during communication.

상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as a register, cache, or memory. Specifically, examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., but are not limited thereto. That is, the program may be stored in various recording media on various servers that the computer can access or on various recording media on the user's computer. Additionally, the medium may be distributed to computer systems connected to a network, and computer-readable code may be stored in a distributed manner.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The description of the present invention described above is for illustrative purposes, and those skilled in the art will understand that the present invention can be easily modified into other specific forms without changing the technical idea or essential features of the present invention. will be. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive. For example, each component described as single may be implemented in a distributed manner, and similarly, components described as distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the claims described below rather than the detailed description above, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. do.

501: 가상 ECU
502: 통합 개발 환경 제공부
503: 통합 시뮬레이션 미들웨어부
504: 차량 통신 네트워크 시뮬레이션부
505: 자동 검증 환경 제공부
501: Virtual ECU
502: Integrated development environment provision department
503: Integrated simulation middleware unit
504: Vehicle communication network simulation unit
505: Automatic verification environment provision department

Claims (9)

오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법에 있어서,
검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계;
소정의 테스트 대상 기능에 상응하도록 구현된 상기 오토사 기반의 차량용 임베디드 소프트웨어의 동작을 검증하는 단계; 및
상기 검증 결과 이상이 없는 경우 상기 차량용 임베디드 소프트웨어를 타겟 ECU에 탑재하는 단계를 포함하는,
오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법.
In the verification method of Autosa-based automotive embedded software,
A step of emulating RTE and BSW among the layers constituting Autosa for the vehicle embedded software to be verified according to a predetermined test environment;
Verifying the operation of the Autosa-based vehicle embedded software implemented to correspond to a predetermined test target function; and
If there is no abnormality as a result of the verification, including the step of mounting the vehicle embedded software on the target ECU,
Verification method of Autosa-based automotive embedded software.
제1항에 있어서,
상기 검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계는,
상기 소정의 테스트 환경으로 PC 상에서 운영되는 POSIX 기반 운영체제 인터페이스를 기반으로 OSEK가 구동되고, 상기 OSEK의 API를 기반으로 상기 오토사가 구동되는 것인,
오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법.
According to paragraph 1,
The step of emulating RTE and BSW among the layers that make up Autosa for the vehicle embedded software that is the subject of verification according to a predetermined test environment is,
OSEK is driven based on a POSIX-based operating system interface operated on a PC in the predetermined test environment, and the Autosa is driven based on the API of the OSEK,
Verification method of Autosa-based automotive embedded software.
제2항에 있어서,
상기 검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계는,
상기 오토사의 레이어 중 BSW에서 FMI를 지원하는 것을 특징으로 하는,
오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법.
According to paragraph 2,
The step of emulating RTE and BSW among the layers that make up Autosa for the vehicle embedded software that is the subject of verification according to a predetermined test environment is,
Characterized in that FMI is supported in BSW among the Autosa layers,
Verification method of Autosa-based automotive embedded software.
제3항에 있어서,
상기 검증 대상인 상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계는,
상기 BSW에서의 오토사 통신 스택을 생성하는 단계를 포함하되,
상기 BSW에서의 오토사 통신 스택을 생성하는 단계는,
상기 RTE로부터 수신한 데이터를 PDU 형태로 PduR 모듈로 전달하는 COM 모듈을 구성하는 단계;
상기 COM 모듈로부터 수신한 데이터를 CANIF_FMU 모듈로 전달하거나, CANIF_FMU 모듈로부터 수신한 데이터를 COM 모듈로 전달하는 PduR 모듈을 구성하는 단계;
PDU 식별자에 기반하여 내부 채널을 선택하고, 각 채널에 연결된 HOH(Hardware Object Handle)로 PDU를 전달하는 CANIF_FMU 모듈을 구성하는 단계; 및
상기 CANIF_FMU 모듈을 통해 전달된 상기 PDU를 CAN 제어부의 하드웨어 오브젝트에 기록하는 CAN 모듈을 구성하는 단계를 포함하는,
오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법.
According to clause 3,
The step of emulating RTE and BSW among the layers that make up Autosa for the vehicle embedded software that is the subject of verification according to a predetermined test environment is,
Including creating an Autosa communication stack in the BSW,
The step of creating an Autosa communication stack in the BSW is,
Configuring a COM module to transmit data received from the RTE to a PduR module in the form of a PDU;
Constructing a PduR module that transmits data received from the COM module to the CANIF_FMU module or transmits data received from the CANIF_FMU module to the COM module;
Configuring a CANIF_FMU module that selects an internal channel based on the PDU identifier and delivers the PDU to a Hardware Object Handle (HOH) connected to each channel; and
Comprising the step of configuring a CAN module that records the PDU delivered through the CANIF_FMU module to a hardware object of the CAN control unit,
Verification method of Autosa-based automotive embedded software.
제4항에 있어서,
상기 CANIF_FMU 모듈은 FMU 쓰기 함수를 호출하여 상기 PDU 형태의 데이터를 FMU 형태로 변환하여 상기 CAN 모듈로 전달하고,
상기 CAN 모듈은 상기 CANIF_FMU 모듈로 수신 표시자 함수를 호출하여 상기 FMU 형태의 데이터의 수신에 관한 인터럽트를 발생시키고, 상기 CANIF_FMU 모듈은 FMU 형태로 변환된 데이터를 상기 PDU 형태의 데이터로 변환하여 상기 PduR 모듈로 전달하는 것인,
오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법.
According to clause 4,
The CANIF_FMU module calls the FMU write function to convert the data in the PDU format into FMU format and transmits it to the CAN module,
The CAN module calls a reception indicator function with the CANIF_FMU module to generate an interrupt regarding reception of data in the FMU format, and the CANIF_FMU module converts the data converted to the FMU format into data in the PDU format and transmits the data to the PduR. Passing it as a module,
Verification method of Autosa-based automotive embedded software.
제3항에 있어서,
상기 BSW에서의 오토사 통신 스택을 생성하는 단계는,
상기 CAN 모듈과의 CAN 네트워크를 지원하기 위한 소정 제조사의 소켓 기능을 제공하는 소켓 모듈을 구성하는 단계;
상기 소켓 모듈과 상기 CAN 모듈 사이에 구비되어 CAN 기반 하드웨어 인터페이스 상에서의 데이터 통신 환경을 모사하는 CAN 라이브러리 모듈을 구성하는 단계; 및
상기 CAN 기반 하드웨어 인터페이스가 구비되지 않는 환경에서의 TCP/IP 기반의 데이터 통신을 지원하는 소켓 어댑터 모듈을 구성하는 단계를 포함하는
오토사 기반의 차량용 임베디드 소프트웨어의 검증 방법.
According to paragraph 3,
The step of creating an Autosa communication stack in the BSW is,
Constructing a socket module that provides a socket function from a certain manufacturer to support a CAN network with the CAN module;
Constructing a CAN library module provided between the socket module and the CAN module to simulate a data communication environment on a CAN-based hardware interface; and
Including the step of configuring a socket adapter module that supports TCP/IP-based data communication in an environment where the CAN-based hardware interface is not provided.
Verification method of Autosa-based automotive embedded software.
오토사 기반의 차량용 임베디드 소프트웨어 생성 방법에 있어서,
상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계를 포함하고,
상기 오토사의 레이어 중 BSW에서 FMI를 지원하는 것을 특징으로 하는,
오토사 기반의 차량용 임베디드 소프트웨어 생성 방법.
In the method of generating embedded software for vehicles based on Autosa,
Comprising the step of emulating RTE and BSW among the layers constituting Autosa for the vehicle embedded software according to a predetermined test environment,
Characterized in that FMI is supported in BSW among the Autosa layers,
How to create embedded software for vehicles based on Autosa.
제7항에 있어서,
상기 차량용 임베디드 소프트웨어에 대한 오토사를 구성하는 레이어 중 RTE 및 BSW를 소정의 테스트 환경에 맞게 에뮬레이션하는 단계는,
상기 BSW에서의 COM 모듈, PduR 모듈, CANIF_FMU 모듈 및 CAN 모듈을 포함하는 오토사 통신 스택을 생성하는 단계를 포함하는,
오토사 기반의 차량용 임베디드 소프트웨어 생성 방법.
In clause 7,
The step of emulating RTE and BSW among the layers that make up Autosa for the automotive embedded software according to a predetermined test environment is,
Including creating an Autosa communication stack including a COM module, a PduR module, a CANIF_FMU module, and a CAN module in the BSW,
How to create embedded software for vehicles based on Autosa.
제8항에 있어서,
상기 BSW에서의 COM 모듈, PduR 모듈, CANIF_FMU 모듈 및 CAN 모듈을 포함하는 오토사 통신 스택을 생성하는 단계는,
상기 RTE로부터 수신한 데이터를 PDU 형태로 PduR 모듈로 전달하는 COM 모듈을 구성하는 단계;
상기 COM 모듈로부터 수신한 데이터를 CANIF_FMU 모듈로 전달하거나, CANIF_FMU 모듈로부터 수신한 데이터를 COM 모듈로 전달하는 PduR 모듈을 구성하는 단계;
PDU 식별자에 기반하여 내부 채널을 선택하고, 각 채널에 연결된 HOH(Hardware Object Handle)로 PDU를 전달하는 CANIF_FMU 모듈을 구성하는 단계; 및
상기 CANIF_FMU 모듈을 통해 전달된 상기 PDU를 CAN 제어부의 하드웨어 오브젝트에 기록하는 CAN 모듈을 구성하는 단계를 포함하는,
오토사 기반의 차량용 임베디드 소프트웨어 생성 방법.
According to clause 8,
The step of creating an Autosa communication stack including the COM module, PduR module, CANIF_FMU module, and CAN module in the BSW is,
Configuring a COM module to transmit data received from the RTE to a PduR module in the form of a PDU;
Constructing a PduR module that transmits data received from the COM module to the CANIF_FMU module or transmits data received from the CANIF_FMU module to the COM module;
Configuring a CANIF_FMU module that selects an internal channel based on the PDU identifier and delivers the PDU to a Hardware Object Handle (HOH) connected to each channel; and
Comprising the step of configuring a CAN module that records the PDU delivered through the CANIF_FMU module to a hardware object of the CAN control unit,
How to create embedded software for vehicles based on Autosa.
KR1020220159936A 2022-11-25 2022-11-25 Method for generating and verifying automotive embedded software based on autosar KR20240077722A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220159936A KR20240077722A (en) 2022-11-25 2022-11-25 Method for generating and verifying automotive embedded software based on autosar
US18/065,590 US20240176632A1 (en) 2022-11-25 2022-12-13 Method for generating and verifying automotive embedded software based on autosar

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220159936A KR20240077722A (en) 2022-11-25 2022-11-25 Method for generating and verifying automotive embedded software based on autosar

Publications (1)

Publication Number Publication Date
KR20240077722A true KR20240077722A (en) 2024-06-03

Family

ID=91496504

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220159936A KR20240077722A (en) 2022-11-25 2022-11-25 Method for generating and verifying automotive embedded software based on autosar

Country Status (1)

Country Link
KR (1) KR20240077722A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160047147A (en) 2014-10-22 2016-05-02 현대자동차주식회사 Apparatus for verifying the software platform based autosar and method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160047147A (en) 2014-10-22 2016-05-02 현대자동차주식회사 Apparatus for verifying the software platform based autosar and method thereof

Similar Documents

Publication Publication Date Title
CN111813671A (en) IMA software simulation test system
US20240004688A1 (en) Control system and control method
CN116681013B (en) Simulation verification method, platform, device, equipment and medium of network chip
KR20200067474A (en) Fault injection test method and system for vehicle software based on autosar
CN113282439B (en) eMMC test method and device, readable storage medium and electronic equipment
CN112764981B (en) Cooperative testing system and method
JP2011221803A (en) Test tool and test method
US20220297731A1 (en) Train signal system and linkage method therefor
KR20240077722A (en) Method for generating and verifying automotive embedded software based on autosar
KR20240077723A (en) Method for generating and verifying automotive embedded software based on autosar
US20240176632A1 (en) Method for generating and verifying automotive embedded software based on autosar
JP6603746B2 (en) Method and computing system for automatically generating embedded software on a virtualized system
Becker et al. A safety-certified vehicle OS to enable software-defined vehicles
CN115794372A (en) Method and system for communication between cross-language application systems
US20210141710A1 (en) Development support device
KR102586821B1 (en) System and method for verifying operation according to autosar platfrorm i/o in virtual ecu environment
CN117331565B (en) Software generation method, device, computer equipment and storage medium
KR102595323B1 (en) System and method for verifying virtual ecu for automotive embedded system
KR20240009766A (en) Network virtualization apparatus and method for simulation of automotive software platform
Serra Multi-criticality Hypervisor for Automotive Domain
Walbroel et al. A Multi-domain Co-simulation Ecosystem for Fully Virtual Rapid ADAS Prototyping
Otterbach et al. System verification throughout the development cycle
CN117667714A (en) Antenna development environment integration real-time debugging method and system based on digital target machine
Yun-sheng The COTS based IMA prototype for hosted applications development
Girish Evaluation and integration of DDS middleware for interconnection between Android Automotive and AUTOSAR