KR102360330B1 - Method for implementing integrated control unit of vehicle and apparatus thereof - Google Patents

Method for implementing integrated control unit of vehicle and apparatus thereof Download PDF

Info

Publication number
KR102360330B1
KR102360330B1 KR1020200175292A KR20200175292A KR102360330B1 KR 102360330 B1 KR102360330 B1 KR 102360330B1 KR 1020200175292 A KR1020200175292 A KR 1020200175292A KR 20200175292 A KR20200175292 A KR 20200175292A KR 102360330 B1 KR102360330 B1 KR 102360330B1
Authority
KR
South Korea
Prior art keywords
control module
code
control unit
module
vehicle
Prior art date
Application number
KR1020200175292A
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 KR1020200175292A priority Critical patent/KR102360330B1/en
Application granted granted Critical
Publication of KR102360330B1 publication Critical patent/KR102360330B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/0098Details of control systems ensuring comfort, safety or stability not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/04Conjoint control of vehicle sub-units of different type or different function including control of propulsion units
    • B60W10/06Conjoint control of vehicle sub-units of different type or different function including control of propulsion units including control of combustion engines
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/10Conjoint control of vehicle sub-units of different type or different function including control of change-speed gearings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • B60W2050/0005Processor details or data handling, e.g. memory registers or chip architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0019Control system elements or transfer functions
    • B60W2050/002Integrating means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0043Signal treatments, identification of variables or parameters, parameter estimation or state estimation
    • B60W2050/0057Frequency analysis, spectral techniques or transforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Transportation (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

Provided are a method for implementing an integrated control unit of a vehicle and an apparatus thereof. The method for implementing the integrated control unit of the vehicle according to one embodiment of the present invention comprises the following steps of: generating an interface code based on integration information between a first control module and a second control module consisting the integrated control unit; and generating a HEX file of the first control module and a HEX file of the second control module by building the generated interface code, a build code of the first control module, and a build code of the second control module. By generating a HEX file for each control module, software development efficiency and management efficiency are significantly improved.

Description

차량의 통합제어유닛 구현 방법 및 그 장치{METHOD FOR IMPLEMENTING INTEGRATED CONTROL UNIT OF VEHICLE AND APPARATUS THEREOF}A method for implementing an integrated control unit of a vehicle and an apparatus therefor

본 발명은 차량의 통합제어유닛 구현 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 복수의 제어모듈을 포함하는 차량의 통합제어유닛을 구현함에 있어서, 소프트웨어 개발 효율성을 향상시킴과 동시에 신뢰도 높은 통합제어유닛을 구현할 수 있는 방법 및 그 방법을 수행하는 장치에 관한 것이다.The present invention relates to a method and apparatus for implementing an integrated control unit of a vehicle. More particularly, in implementing the integrated control unit of a vehicle including a plurality of control modules, it relates to a method capable of implementing an integrated control unit with high reliability while improving software development efficiency, and an apparatus for performing the method.

차량용 부품의 전자화가 급속도로 진행됨에 따라 차량에 탑재되는 전자제어유닛(electronic control unit)의 종류와 개수가 크게 증가하고 있다. 다양한 전자제어유닛 중에서 파워트레인(power train) 도메인에 속한 제어유닛은 차량 제어의 핵심적인 유닛들로 구성되며, 이러한 제어유닛의 예로는 ECU(engine control unit), TCU(transmission control unit) 등을 들 수 있다.BACKGROUND ART As electronic components for vehicles are rapidly becoming electronic, the number and types of electronic control units mounted on vehicles are greatly increasing. A control unit belonging to a power train domain among various electronic control units is composed of core units of vehicle control, and examples of such control units include an engine control unit (ECU), a transmission control unit (TCU), etc. can

최근에는, 전자제어유닛의 하드웨어(예컨대 MCU, 반도체 IC) 비용을 절감하기 위해 파워트레인 도메인에 속한 다수의 전자제어유닛을 하나의 통합제어유닛으로 구현하려는 시도가 많이 이루어지고 있다. 이를테면, 다수의 전자제어유닛의 기능을 하나의 통합된 소프트웨어로 구현하려는 시도가 이루어지고 있다.Recently, in order to reduce the cost of hardware (eg, MCU, semiconductor IC) of the electronic control unit, many attempts have been made to implement a plurality of electronic control units belonging to the powertrain domain as one integrated control unit. For example, an attempt has been made to implement the functions of a plurality of electronic control units as one integrated software.

그러나, 위와 같은 시도는 서로 다른 전자제어유닛을 개발하는 팀 간의 협업 문제, 통합 소프트웨어 설계의 어려움 등으로 인해 소프트웨어 개발의 효율성을 저하시킬 수 있다. 뿐만 아니라, 통합 소프트웨어의 거대한 규모로 인해 테스트 난이도가 급증함으로써, 통합제어유닛의 신뢰도가 떨어질 수도 있다.However, the above attempts may reduce the efficiency of software development due to collaboration problems between teams developing different electronic control units, difficulties in designing integrated software, and the like. In addition, the reliability of the integrated control unit may decrease as the test difficulty increases rapidly due to the huge scale of the integrated software.

한국 공개특허공보 제10-2015-0043732호 (2015.04.23. 공개)Korean Patent Publication No. 10-2015-0043732 (published on April 23, 2015)

본 발명이 해결하고자 하는 기술적 과제는, 차량의 통합제어유닛을 구현함에 있어서, 소프트웨어의 개발 효율성을 향상시킬 수 있는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.The technical problem to be solved by the present invention is to provide a method capable of improving software development efficiency in implementing an integrated control unit of a vehicle, and an apparatus for performing the method.

본 발명이 해결하고자 하는 다른 기술적 과제는, 신뢰도 높은 차량의 통합제어유닛을 구현할 수 있는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.Another technical problem to be solved by the present invention is to provide a method for implementing a highly reliable integrated control unit for a vehicle and an apparatus for performing the method.

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

상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 차량의 통합제어유닛 구현 방법은, 컴퓨팅 장치에서 차량의 통합제어유닛 구현 방법에 있어서, 상기 통합제어유닛을 구성하는 제1 제어모듈과 제2 제어모듈 사이의 연동 정보를 기초로 인터페이스코드를 생성하는 단계 및 상기 생성된 인터페이스코드, 상기 제1 제어모듈의 빌드코드 및 상기 제2 제어모듈의 빌드코드를 빌드하여, 상기 제1 제어모듈의 HEX 파일과 상기 제2 제어모듈의 HEX 파일을 생성하는 단계를 포함할 수 있다.In order to solve the above technical problem, a method for implementing an integrated control unit of a vehicle according to an embodiment of the present invention is a method for implementing an integrated control unit of a vehicle in a computing device, the method comprising: a first control module constituting the integrated control unit; Generating an interface code based on interworking information between second control modules and building the generated interface code, the build code of the first control module, and the build code of the second control module, so that the first control module and generating the HEX file of the second control module and the HEX file of the second control module.

일 실시예에서, 상기 제1 제어모듈의 HEX 파일과 상기 제2 제어모듈의 HEX 파일은 하나의 프로세서에 탑재되어 실행될 수 있다.In an embodiment, the HEX file of the first control module and the HEX file of the second control module may be mounted on one processor and executed.

일 실시예에서, 상기 제1 제어모듈은 ECU(engine control unit)의 기능을 수행하는 모듈이고, 상기 제2 제어모듈은 TCU(transmission control unit)의 기능을 수행하는 모듈일 수 있다.In an embodiment, the first control module may be a module performing a function of an engine control unit (ECU), and the second control module may be a module performing a function of a transmission control unit (TCU).

일 실시예에서, 상기 연동 정보는 상기 제1 제어모듈과 상기 제2 제어모듈 간에 공유되는 변수 또는 호출되는 함수에 관한 정보를 포함할 수 있다.In an embodiment, the interworking information may include information about a function to be called or a variable shared between the first control module and the second control module.

일 실시예에서, 상기 연동 정보는 ASAM MDX(metadata exchange format) 표준에 의거하여 설정된 것일 수 있다.In an embodiment, the interworking information may be configured based on an ASAM metadata exchange format (MDX) standard.

일 실시예에서, 상기 제1 제어모듈의 HEX 파일과 상기 제2 제어모듈의 HEX 파일을 생성하는 단계는, 상기 제1 제어모듈의 원본코드에서 상기 연동 정보와 연관된 루틴을 결정하는 단계 및 상기 결정된 루틴을 상기 인터페이스코드를 이용하는 루틴으로 변환하여 상기 제1 제어모듈의 빌드코드를 생성하는 단계를 포함할 수 있다.In an embodiment, the generating of the HEX file of the first control module and the HEX file of the second control module includes determining a routine associated with the interworking information in the original code of the first control module and the determined The method may include converting a routine into a routine using the interface code to generate a build code of the first control module.

일 실시예에서, 상기 제1 제어모듈의 HEX 파일, 상기 제2 제어모듈의 HEX 파일 및 후킹모듈의 HEX 파일을 통합하여 상기 통합제어유닛의 HEX 파일을 생성하는 단계를 더 포함하되, 상기 후킹모듈은 API 후킹을 통해 상기 제1 제어모듈 및 상기 제2 제어모듈에 대한 통합 테스트 기능을 제공할 수 있다.In one embodiment, the method further comprising generating a HEX file of the integrated control unit by integrating the HEX file of the first control module, the HEX file of the second control module, and the HEX file of the hooking module, wherein the hooking module may provide an integrated test function for the first control module and the second control module through API hooking.

상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 차량의 통합제어유닛 구현 장치는, 차량의 통합제어유닛을 구성하는 제1 제어모듈과 제2 제어모듈 사이의 연동 정보를 설정하는 연동정보 설정부, 상기 연동 정보를 기초로 인터페이스코드를 생성하는 인터페이스코드 생성부, 상기 제1 제어모듈의 원본코드와 상기 제2 제어모듈의 원본코드를 변환하여 상기 제1 제어모듈의 빌드코드와 상기 제2 제어모듈의 빌드코드를 생성하는 빌드코드 생성부 및 상기 인터페이스코드, 상기 제1 제어모듈의 빌드코드 및 상기 제2 제어모듈의 빌드코드를 빌드하여, 상기 제1 제어모듈의 HEX 파일과 상기 제2 제어모듈의 HEX 파일을 생성하는 빌드부를 포함할 수 있다.In order to solve the above technical problem, an apparatus for implementing an integrated control unit of a vehicle according to an embodiment of the present invention is interlocking for setting interworking information between a first control module and a second control module constituting an integrated control unit of a vehicle An information setting unit, an interface code generation unit generating an interface code based on the interworking information, converting the original code of the first control module and the original code of the second control module to obtain the build code of the first control module and the A build code generation unit generating a build code of the second control module and the interface code, the build code of the first control module, and the build code of the second control module are built, the HEX file of the first control module and the It may include a build unit that generates the HEX file of the second control module.

도 1은 본 발명의 목적을 개념적으로 설명하기 위한 예시적인 도면이다.
도 2는 본 발명의 일 실시예에 따른 차량의 통합제어유닛 구현 장치를 나타내는 예시적인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 차량의 통합제어유닛 구현 방법을 나타내는 예시적인 흐름도이다.
도 4는 본 발명의 몇몇 실시예들에서 참조될 수 있는 연동 정보를 예시적으로 나타낸 도면이다.
도 5 내지 도 8은 본 발명의 몇몇 실시예들에서 참조될 수 있는 인터페이스코드를 예시적으로 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 빌드코드 생성 과정을 설명하기 위한 예시적인 도면이다.
도 10은 본 발명의 다른 실시예에 따른 빌드코드 생성 과정을 설명하기 위한 예시적인 도면이다.
도 11은 본 발명의 일 실시예에 따른 빌드 과정을 설명하기 위한 예시적인 도면이다.
도 12는 본 발명의 일 실시예에 따른 통합제어유닛에 대한 HEX 파일의 메모리맵을 예시한다.
도 13 및 도 14는 본 발명의 일 실시예에 따른 통합제어유닛을 설명하기 위한 예시적인 블록도이다.
도 15는 본 발명의 일 실시예에 따른 테스트 기능을 구비한 통합제어유닛을 설명하기 위한 예시적인 블록도이다.
도 16은 본 발명의 일 실시예에 따른 차량의 통합제어유닛 구현 장치 또는 통합제어유닛을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
1 is an exemplary diagram for conceptually explaining the object of the present invention.
2 is an exemplary block diagram illustrating an apparatus for implementing an integrated control unit of a vehicle according to an embodiment of the present invention.
3 is an exemplary flowchart illustrating a method for implementing an integrated control unit of a vehicle according to an embodiment of the present invention.
4 is a diagram exemplarily illustrating interworking information that can be referenced in some embodiments of the present invention.
5 to 8 are diagrams exemplarily showing interface codes that can be referenced in some embodiments of the present invention.
9 is an exemplary view for explaining a build code generation process according to an embodiment of the present invention.
10 is an exemplary view for explaining a build code generation process according to another embodiment of the present invention.
11 is an exemplary view for explaining a build process according to an embodiment of the present invention.
12 illustrates a memory map of a HEX file for an integrated control unit according to an embodiment of the present invention.
13 and 14 are exemplary block diagrams for explaining an integrated control unit according to an embodiment of the present invention.
15 is an exemplary block diagram illustrating an integrated control unit having a test function according to an embodiment of the present invention.
16 is a diagram illustrating an apparatus for implementing an integrated control unit of a vehicle or an exemplary computing device capable of implementing an integrated control unit according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the technical spirit of the present invention is not limited to the following embodiments, but may be implemented in various different forms, and only the following embodiments complete the technical spirit of the present invention, and in the technical field to which the present invention belongs It is provided to fully inform those of ordinary skill in the art of the scope of the present invention, and the technical spirit of the present invention is only defined by the scope of the claims.

각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.In adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used with the meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly defined in particular. The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the components of the present invention, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the elements from other elements, and the essence, order, or order of the elements are not limited by the terms. When it is described that a component is “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to the other component, but another component is formed between each component. It should be understood that elements may also be “connected,” “coupled,” or “connected.”

이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 목적을 개념적으로 설명하기 위한 예시적인 도면이다.1 is an exemplary diagram for conceptually explaining an object of the present invention.

도 1에 도시된 바와 같이, 본 발명의 몇몇 실시예들은 복수의 제어모듈(11 내지 14)을 포함하는 차량의 통합제어유닛(10)의 소프트웨어를 제어모듈 단위로 분리하여 개발하기 위한 기술적 수단을 제공하는 것을 목적으로 한다. 통합제어유닛(10)의 소프트웨어가 제어모듈 단위로 분리 개발됨으로써, 소프트웨어 개발 효율성 및 관리 효율성이 향상될 수 있다. 다시 말해, 통합제어유닛(10)의 소프트웨어가 제어모듈 단위로 분리되면, 각 개발팀이 담당하는 제어모듈만을 개발하면 되기 때문에, 개발 효율성이 향상될 수 있다. 뿐만 아니라, 각 제어모듈의 소프트웨어가 별도로 관리됨으로써, 소프트웨어 관리의 효율성 또한 크게 향상될 수 있다. 나아가, 기 개발된 제어모듈(또는 전자제어유닛)의 소스코드가 재사용될 수 있고, 소프트웨어 설계의 복잡도도 크게 감소될 수 있다는 장점이 있다.As shown in FIG. 1, some embodiments of the present invention provide technical means for developing the software of the integrated control unit 10 of the vehicle including a plurality of control modules 11 to 14 by separating them into control module units. intended to provide Since the software of the integrated control unit 10 is developed separately for each control module, software development efficiency and management efficiency can be improved. In other words, if the software of the integrated control unit 10 is separated into control module units, only the control module in charge of each development team needs to be developed, so that development efficiency can be improved. In addition, since the software of each control module is managed separately, the efficiency of software management can also be greatly improved. Furthermore, there is an advantage that the source code of the previously developed control module (or electronic control unit) can be reused, and the complexity of software design can be greatly reduced.

보다 구체적으로, 종래에는 복수의 제어모듈(11 내지 14; 예컨대 전자제어유닛의 소프트웨어 모듈)이 서로 강하게 커플링(tightly-coupled)되는 형태로 통합제어유닛(10)이 구현되거나, 각 전자제어유닛(예컨대 ECU, TCU)이 서로 다른 프로세서를 구비하는 형태로 구현되었다. 이러한 경우, 제어모듈 간의 강한 커플링으로 인해 개발 효율성이 저하되거나, 복수의 프로세서가 요구됨에 따라 차량의 제어유닛을 구현하는 비용이 필연적으로 증가할 수 밖에 없다.More specifically, in the prior art, the integrated control unit 10 is implemented in a form in which a plurality of control modules 11 to 14 (eg, a software module of an electronic control unit) are tightly-coupled to each other, or each electronic control unit (For example, ECU, TCU) has been implemented in the form of having different processors. In this case, development efficiency is reduced due to the strong coupling between control modules, or the cost of implementing the vehicle's control unit is inevitably increased as a plurality of processors are required.

그러나, 본 발명의 실시예에 따르면, 통합제어유닛(20)을 구성하는 각 제어모듈(21, 22, 24, 25)이 별도의 소프트웨어로 구현될 수 있으며, 각 제어모듈(21, 22, 24, 25)은 상기 기술적 수단에 의해 생성된 인터페이스코드(23)를 통해 연동될 수 있다. 구체적으로, 본 발명의 몇몇 실시예들은 인터페이스코드(23)를 자동으로 생성하고, 인터페이스코드(23)와 연관된 제어모듈(21, 22, 24, 25)의 루틴(routine)이 인터페이스코드(23)를 이용하도록 자동 변환하는 기술적 수단을 제공할 수 있다. 여기서, 루틴이란 소소코드(source code)의 적어도 일부분을 의미할 수 있다.However, according to the embodiment of the present invention, each control module 21 , 22 , 24 , 25 constituting the integrated control unit 20 may be implemented as separate software, and each control module 21 , 22 , 24 , 25) can be linked through the interface code 23 generated by the technical means. Specifically, in some embodiments of the present invention, the interface code 23 is automatically generated, and the routine of the control module 21 , 22 , 24 , 25 associated with the interface code 23 is the interface code 23 . Technical means can be provided to automatically convert to use . Here, the routine may mean at least a part of source code.

또한, 본 발명의 다른 몇몇 실시예들은 API 후킹을 통해 차량의 통합제어유닛(20)을 효과적으로 테스트할 수 있는 기술적 수단을 제공하는 것을 목적으로 한다. 제공된 기술적 수단을 통해 신뢰도 높은 통합제어유닛(20)이 용이하게 구현될 수 있다.In addition, some other embodiments of the present invention aim to provide technical means for effectively testing the integrated control unit 20 of the vehicle through API hooking. The highly reliable integrated control unit 20 can be easily implemented through the provided technical means.

한편, 도 1은 차량의 통합제어유닛(10, 20)을 구성하는 복수의 제어모듈이 ECU(engine control unit)와 TCU(transmission control unit)인 것을 예로써 도시하고 있으나, 본 발명의 기술적 범위가 이에 한정되는 것은 아니다. 다만, 이하에서는, 이해의 편의를 위해 다른 언급이 없는 한, 복수의 제어모듈이 ECU와 TCU인 경우를 가정하여 설명을 이어가도록 한다.Meanwhile, FIG. 1 shows as an example that the plurality of control modules constituting the integrated control units 10 and 20 of the vehicle are an engine control unit (ECU) and a transmission control unit (TCU), but the technical scope of the present invention is not limited. However, the present invention is not limited thereto. However, hereinafter, for convenience of understanding, the description will be continued on the assumption that the plurality of control modules are the ECU and the TCU, unless otherwise noted.

이하에서는, 도 2 이하의 도면들을 참조하여 상술한 발명의 목적을 달성하기 위한 본 발명의 몇몇 실시예들에 대하여 상세하게 설명하도록 한다.Hereinafter, some embodiments of the present invention for achieving the object of the present invention will be described in detail with reference to FIG. 2 and the following drawings.

도 2는 본 발명의 일 실시예에 따른 차량의 통합제어유닛 구현 장치(100)를 나타내는 예시적인 블록도이다. 이하, 설명의 편의상 통합제어유닛 구현 장치(100)를 "구현 장치(100)"로 약칭하도록 한다.2 is an exemplary block diagram illustrating an apparatus 100 for implementing an integrated control unit for a vehicle according to an embodiment of the present invention. Hereinafter, for convenience of description, the integrated control unit implementation apparatus 100 will be abbreviated as "implementation apparatus 100".

도 2에 도시된 바와 같이, 구현 장치(100)는 연동정보 설정부(110), 코드 생성부(120) 및 빌드부(130)를 포함할 수 있다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 2에 도시된 구현 장치(100)의 각각의 구성요소들(예컨대 110, 120, 130)은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 또한, 실제 물리적 환경에서 상기 각각의 구성 요소들은 복수의 세부 기능 요소로 분리되는 형태로 구현될 수도 있다. 이하, 구현 장치(100)의 각 구성요소에 대하여 설명하도록 한다.As shown in FIG. 2 , the implementation device 100 may include a linkage information setting unit 110 , a code generation unit 120 , and a build unit 130 . However, this is only a preferred embodiment for achieving the object of the present invention, and it goes without saying that some components may be added or deleted as needed. In addition, each of the components (eg, 110 , 120 , 130 ) of the implementation device 100 shown in FIG. 2 represents functional elements that are functionally separated, and a plurality of components are integrated with each other in an actual physical environment. Note that it may be implemented as In addition, in an actual physical environment, each of the components may be implemented in a form separated into a plurality of detailed functional elements. Hereinafter, each component of the implementation device 100 will be described.

연동정보 설정부(110)는 복수의 제어모듈(예컨대 ECU, TCU) 사이의 연동 정보(31)를 설정할 수 있다. 가령, 연동정보 설정부(110)는 소정의 툴(tool)을 실행하여 연동 정보(31)를 설정할 수 있는 사용자 인터페이스를 제공하고, 사용자 인터페이스를 통해 입력된 정보에 기초하여 제어모듈 간의 연동 정보(31)를 설정할 수 있다.The interworking information setting unit 110 may set interworking information 31 between a plurality of control modules (eg, ECUs and TCUs). For example, the interworking information setting unit 110 provides a user interface for setting interworking information 31 by executing a predetermined tool, and interworking information between control modules ( 31) can be set.

연동 정보(31)는 예를 들어 제어모듈 사이에 공유되는 변수(데이터), 호출되는 함수 등에 관한 정보를 포함할 수 있다. 그러나, 이에 한정되는 것은 아니며, 연동 정보(31)는 제어모듈 간의 연동에 이용되는 각종 정보를 포함할 수 있다.The interworking information 31 may include, for example, information about a variable (data) shared between control modules, a called function, and the like. However, the present invention is not limited thereto, and the interworking information 31 may include various types of information used for interworking between control modules.

일 실시예에서, 연동 정보(31)는 ASAM MDX(metadata exchange format) 표준에 의거하여 설정(정의)될 수 있다. 이러한 경우, 차량 분야의 표준 포맷이 활용됨으로써, 개발 효율성이 더욱 향상될 수 있다. 본 실시예에 따른 연동 정보(31)의 일례에 관하여서는 도 4를 참조하도록 한다.In an embodiment, the interworking information 31 may be set (defined) based on the ASAM metadata exchange format (MDX) standard. In this case, by utilizing a standard format in the vehicle field, development efficiency may be further improved. For an example of the interworking information 31 according to the present embodiment, reference will be made to FIG. 4 .

연동정보 설정부(110)의 동작에 대한 보다 자세한 설명은 도 3 이하의 도면을 참조하여 후술하도록 한다.A more detailed description of the operation of the interworking information setting unit 110 will be described later with reference to the drawings shown in FIG. 3 .

다음으로, 코드 생성부(120)는 통합제어유닛을 구현하기 위한 소스코드를 생성할 수 있다. 도시된 바와 같이, 코드 생성부(120)는 인터페이스코드 생성부(121)와 빌드코드 생성부(122)를 포함할 수 있다.Next, the code generator 120 may generate a source code for implementing the integrated control unit. As shown, the code generator 120 may include an interface code generator 121 and a build code generator 122 .

인터페이스코드 생성부(121)는 연동 정보(31)에 기초하여 인터페이스코드를 자동 생성할 수 있다. 인터페이스코드는 예를 들어 공유되는 변수에 접근(예컨대 저장, 읽기)하는 루틴(코드), 제어모듈 간에 호출되는 함수에 관한 루틴(코드) 등을 포함할 수 있다. 그러나, 이에 한정되는 것은 아니다. 인터페이스코드에 대한 일례에 관하여서는 도 5 내지 도 8을 참조하도록 한다.The interface code generator 121 may automatically generate an interface code based on the interworking information 31 . The interface code may include, for example, a routine (code) that accesses (eg, stores, read) a shared variable, and a routine (code) related to a function called between control modules. However, the present invention is not limited thereto. For an example of the interface code, refer to FIGS. 5 to 8 .

인터페이스코드 생성부(121)의 동작에 대한 보다 자세한 설명은 도 3 이하의 도면을 참조하여 후술하도록 한다.A more detailed description of the operation of the interface code generating unit 121 will be described later with reference to the drawings below with reference to FIG. 3 .

다음으로, 빌드코드 생성부(122)는 각 제어모듈(예컨대 ECU, TCU)의 원본코드(32, 33)를 입력받고, 입력된 원본코드(32, 33)를 변환하여 각 제어모듈의 빌드코드를 생성할 수 있다. 여기서, 빌드코드란 실제 빌드에 이용되는 코드를 의미할 수 있다.Next, the build code generating unit 122 receives the original codes 32 and 33 of each control module (eg, ECU, TCU), and converts the input original codes 32 and 33 to build codes of each control module. can create Here, the build code may mean a code used for actual build.

구체적으로, 빌드코드 생성부(122)는 제1 제어모듈(예컨대 ECU)의 원본코드(32)에서 연동 정보(31)(또는 제2 제어모듈)와 연관된 루틴을 인터페이스코드를 이용하도록 변환함으로써 자동으로 빌드코드를 생성할 수 있다. 또한, 빌드코드 생성부(122)는 동일한 방식으로 제2 제어모듈(예컨대 TCU)의 원본코드(33)로부터 제2 제어모듈의 빌드코드를 생성할 수 있다.Specifically, the build code generating unit 122 automatically converts the routine associated with the interworking information 31 (or the second control module) in the original code 32 of the first control module (eg, ECU) to use the interface code. to generate the build code. In addition, the build code generator 122 may generate the build code of the second control module from the original code 33 of the second control module (eg, TCU) in the same manner.

코드 생성부(120)의 동작에 대한 보다 자세한 설명은 도 3 이하의 도면을 참조하여 후술하도록 한다.A more detailed description of the operation of the code generating unit 120 will be described later with reference to the drawings below with reference to FIG. 3 .

다음으로, 빌드부(130)는 각 제어모듈(예컨대 ECU, TCU)의 빌드코드와 인터페이스코드를 빌드(build)할 수 있다. 빌드 결과로, 각 제어모듈 별로 HEX 파일(34, 35)이 생성될 수 있다. 각 제어모듈 별로 HEX 파일이 생성됨에 따라 소프트웨어 관리의 효율성이 크게 향상될 수 있으며, 소프트웨어 개발 효율성 또한 크게 향상될 수 있다. 가령, ECU의 개발을 담당하는 개발팀은 독립적으로 ECU 소프트웨어만을 개발하고 ECU 소프트웨어의 HEX 파일만을 관리하면 되므로, 소프트웨어 개발 및 관리 효율성이 크게 향상될 수 있다. 뿐만 아니라, 각 제어모듈 별로 소프트웨어의 버전 관리가 이루어짐에 따라 소프트웨어 관리가 보다 체계적으로 수행될 수 있다.Next, the build unit 130 may build a build code and an interface code of each control module (eg, ECU, TCU). As a result of the build, HEX files 34 and 35 may be generated for each control module. As the HEX file is generated for each control module, the efficiency of software management can be greatly improved, and the software development efficiency can also be greatly improved. For example, since the development team in charge of ECU development needs to independently develop only ECU software and manage only HEX files of ECU software, software development and management efficiency can be greatly improved. In addition, as software version management is performed for each control module, software management can be performed more systematically.

일 실시예에서, 빌드부(130)는 복수의 제어모듈의 HEX 파일(34, 35)을 통합하여 통합 HEX 파일을 생성할 수도 있다.In one embodiment, the build unit 130 may generate an integrated HEX file by integrating the HEX files 34 and 35 of the plurality of control modules.

또한, 일 실시예에서, 복수의 제어모듈의 HEX 파일(34, 35)은 하나의 프로세서에 탑재되어 실행될 수 있다. 가령, 복수의 제어모듈을 포함하는 통합제어유닛이 하나의 프로세서를 통해 구현되고, 상기 하나의 프로세서에 HEX 파일(34, 35)이 탑재되어 실행될 수 있다. 이러한 경우, 하드웨어 비용이 절감됨에 따라 통합제어유닛의 가격 경쟁력이 향상될 수 있다.Also, in one embodiment, the HEX files 34 and 35 of the plurality of control modules may be loaded and executed in one processor. For example, an integrated control unit including a plurality of control modules may be implemented through one processor, and the HEX files 34 and 35 may be loaded and executed on the one processor. In this case, as the hardware cost is reduced, the price competitiveness of the integrated control unit may be improved.

또한, 일 실시예에서, 빌드부(130)는 각 제어모듈의 HEX 파일(34, 35)과 후킹모듈의 HEX 파일(또는 후킹모듈이 포함된 HEX 파일)을 통합하여 통합제어유닛의 HEX 파일을 생성할 수 있다. 또는, 빌드부(130)는 각 제어모듈의 빌드코드와 후킹모듈의 빌드코드를 함께 빌드하여 통합제어유닛의 HEX 파일을 생성할 수도 있다. 여기서, 후킹모듈은 API(application programming interface) 후킹을 통해 통합제어유닛에 대한 테스트(예컨대 단위 테스트, 통합 테스트) 기능을 제공함으로써 통합제어유닛의 신뢰성을 향상시킬 수 있다. 본 실시예에 관하여서는 추후 도 15를 참조하여 보다 상세하게 설명하도록 한다.In addition, in one embodiment, the build unit 130 integrates the HEX files 34 and 35 of each control module and the HEX file of the hooking module (or the HEX file including the hooking module) to obtain the HEX file of the integrated control unit. can create Alternatively, the build unit 130 may build the build code of each control module and the build code of the hooking module together to generate the HEX file of the integrated control unit. Here, the hooking module may improve the reliability of the integrated control unit by providing a test (eg, unit test, integrated test) function for the integrated control unit through API (application programming interface) hooking. This embodiment will be described in more detail later with reference to FIG. 15 .

빌드부(130)의 동작에 대한 보다 자세한 설명은 도 3 이하의 도면을 참조하여 후술하도록 한다.A more detailed description of the operation of the build unit 130 will be described later with reference to the drawings shown in FIG. 3 or less.

한편, 도 2에 도시되어 있지는 않으나, 일 실시예에 따른 구현 장치(100)는 상기 후킹모듈과 연동하여 통합제어유닛에 대한 각종 테스트를 수행하는 테스트부(미도시)를 더 포함할 수도 있다.Meanwhile, although not shown in FIG. 2 , the implementation apparatus 100 according to an embodiment may further include a test unit (not shown) for performing various tests on the integrated control unit in conjunction with the hooking module.

도 2에 예시된 구현 장치(100)는 하나 이상의 컴퓨팅 장치에 의해 구현될 수 있다. 예를 들어, 구현 장치(100)는 단일 컴퓨팅 장치에 의해 구현될 수 있고, 복수의 컴퓨팅 장치에 의해 구현될 수도 있다. 가령, 구현 장치(100)의 제1 기능은 제1 컴퓨팅 장치에 의해 구현되고, 제2 기능은 제2 컴퓨팅 장치에 의해 구현될 수도 있다. 또는, 구현 장치(100)의 특정 기능이 복수의 컴퓨팅 장치에 의해 구현될 수도 있다.The implementation device 100 illustrated in FIG. 2 may be implemented by one or more computing devices. For example, the implementation device 100 may be implemented by a single computing device, or may be implemented by a plurality of computing devices. For example, a first function of the implementation device 100 may be implemented by a first computing device, and a second function may be implemented by a second computing device. Alternatively, a specific function of the implementation device 100 may be implemented by a plurality of computing devices.

상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop), 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 컴퓨팅 장치의 일 예시에 관하여서는 도 16을 참조하도록 한다.The computing device may be a notebook computer, a desktop computer, a laptop computer, and the like, but is not limited thereto and may include any type of device equipped with a computing function. For an example of a computing device, refer to FIG. 16 .

도 2의 각 구성요소(예컨대 110)는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현될 수도 있다.Each component (eg, 110 ) of FIG. 2 may mean software or hardware such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC). However, the above components are not meant to be limited to software or hardware, and may be configured to be in an addressable storage medium or configured to execute one or more processors. The functions provided in the components may be implemented by more subdivided components, or may be implemented as one component that performs a specific function by combining a plurality of components.

지금까지 도 2를 참조하여 본 발명의 일 실시예에 따른 구현 장치(100)에 대하여 설명하였다. 이하에서는, 도 3 이하의 도면을 참조하여 본 발명의 일 실시예에 따른 차량의 통합제어유닛 구현 방법(이하, "구현 방법"으로 약칭함)에 대하여 설명하도록 한다.So far, the implementation apparatus 100 according to an embodiment of the present invention has been described with reference to FIG. 2 . Hereinafter, a method for implementing an integrated control unit of a vehicle (hereinafter, abbreviated as “implementation method”) according to an embodiment of the present invention will be described with reference to FIG. 3 and the following drawings.

이하에서 후술될 구현 방법의 각 단계는 컴퓨팅 장치에 의해 수행될 수 있으며, 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들(instructions)로 구현될 수 있다. 상기 구현 방법에 포함되는 모든 단계는 하나의 물리적인 컴퓨팅 장치에 의하여 실행될 수도 있을 것이나, 상기 방법의 제1 단계들은 제1 컴퓨팅 장치에 의하여 수행되고, 상기 방법의 제2 단계들은 제2 컴퓨팅 장치에 의하여 수행될 수도 있다. 이하에서는, 상기 구현 방법의 각 단계가 상술한 구현 장치(100)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. 따라서, 이하의 설명에서 특정 동작의 주체가 생략된 경우, 구현 장치(100)에 의해 수행되는 것으로 이해될 수 있다.Each step of the implementation method to be described below may be performed by a computing device, and may be implemented as one or more instructions executed by a processor of the computing device. All steps included in the implementation method may be executed by one physical computing device, but the first steps of the method are performed by a first computing device, and the second steps of the method are performed by a second computing device may be performed by Hereinafter, it is assumed that each step of the implementation method is performed by the above-described implementation apparatus 100 to continue the description. Therefore, when the subject of a specific operation is omitted in the following description, it may be understood as being performed by the implementation apparatus 100 .

도 3은 본 발명의 일 실시예에 따른 구현 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.3 is an exemplary flowchart illustrating an implementation method according to an embodiment of the present invention. However, this is only a preferred embodiment for achieving the object of the present invention, and it goes without saying that some steps may be added or deleted as needed.

도 3에 도시된 바와 같이, 상기 구현 방법은 제어모듈 간의 연동 정보를 설정하는 단계 S100에서 시작될 수 있다. 가령, 구현 장치(100)는 소정의 툴을 실행하여 연동 정보를 설정할 수 있는 사용자 인터페이스를 제공하고, 사용자 인터페이스를 통해 입력된 정보에 기초하여 제어모듈 간의 연동 정보를 설정할 수 있다. 앞서 언급한 바와 같이, 연동 정보는 제어모듈 간에 공유되는 변수, 호출되는 함수 등에 관한 정보를 포함할 수 있다.As shown in FIG. 3 , the implementation method may start in step S100 of setting interworking information between control modules. For example, the implementation device 100 may execute a predetermined tool to provide a user interface for setting interworking information, and may set interworking information between control modules based on information input through the user interface. As mentioned above, the interworking information may include information about variables shared between control modules, called functions, and the like.

일 실시예에서, 상기 연동 정보는 ASAM MDX 표준에 의거하여 설정(정의)된 것일 수 있다. 이러한 경우, 차량 분야의 표준 포맷을 활용함으로써, 개발 효율성이 향상될 수 있다. 연동 정보의 일례에 대해서는 도 4를 참조하도록 하고, 당해 기술 분야의 종사자라면 ASAM MDX 표준에 대하여 충분히 숙지하고 있을 것인 바, 이에 대한 설명은 생략하도록 한다.In an embodiment, the interworking information may be set (defined) based on the ASAM MDX standard. In this case, by utilizing a standard format in the vehicle field, development efficiency may be improved. For an example of interworking information, refer to FIG. 4, and those skilled in the art will be fully familiar with the ASAM MDX standard, and a description thereof will be omitted.

단계 S200에서, 설정된 연동 정보를 기초로 인터페이스코드가 생성될 수 있다. 가령, 구현 장치(100)는 제1 제어모듈(예컨대 ECU)과 제2 제어모듈(예컨대 TCU) 사이의 연동 정보를 기초로 제1 제어모듈과 제2 제어모듈이 연동되기 위한 인터페이스코드를 생성할 수 있다.In step S200, an interface code may be generated based on the set interworking information. For example, the implementation device 100 may generate an interface code for interworking between the first control module and the second control module based on interworking information between the first control module (eg, ECU) and the second control module (eg, TCU). can

인터페이스코드의 일례는 도 5 내지 도 8에 도시되어 있다. 도 5 내지 도 8에 도시된 바와 같이, 상기 인터페이스코드는 공유되는 변수 및/또는 호출되는 함수에 관한 연동정보 구조체를 선언(정의)하고 할당하는 루틴(41, 42), 연동정보 구조체에 관한 포인터 변수를 선언하는 루틴(43), 상기 선언된 포인터 변수를 통해 상기 연동정보 구조체에 포함된 다른 제어모듈의 함수를 호출하는 루틴(44) 등을 포함할 수 있다. 이러한 인터페이스코드를 통해 복수의 제어모듈이 연동될 수 있다.An example of the interface code is shown in FIGS. 5 to 8 . As shown in FIGS. 5 to 8, the interface code includes routines 41 and 42 for declaring (defining) and assigning interworking information structures related to shared variables and/or functions to be called, and pointers to interworking information structures. It may include a routine 43 for declaring a variable, a routine 44 for calling a function of another control module included in the interworking information structure through the declared pointer variable, and the like. A plurality of control modules may be interlocked through such an interface code.

다시 도 3을 참조하여 설명한다.It will be described again with reference to FIG. 3 .

단계 S300에서, 각 제어모듈의 원본코드를 변환하여 각 제어모듈의 빌드코드가 생성될 수 있다. 가령, 구현 장치(100)는 제1 제어모듈(예컨대 ECU)의 원본코드를 변환하여 제1 제어모듈의 빌드코드를 생성하고, 제2 제어모듈(예컨대 TCU)의 원본코드를 변환하여 제2 제어모듈의 빌드코드를 생성할 수 있다. 다만, 원본코드를 변환하는 구체적인 방식은 실시예에 따라 달라질 수 있다.In step S300, a build code of each control module may be generated by converting the original code of each control module. For example, the implementation device 100 converts the original code of the first control module (eg, ECU) to generate a build code of the first control module, and converts the original code of the second control module (eg, TCU) to control the second You can generate the build code of the module. However, a specific method of converting the original code may vary depending on the embodiment.

일 실시예에서, 구현 장치(100)는 제1 제어모듈의 원본코드에서 연동 정보(또는 제2 제어모듈)와 연관된 루틴(예컨대 함수 호출 루틴, 변수 접근 루틴)을 결정하고, 결정된 루틴을 상기 인터페이스코드를 이용하는 루틴으로 변환하여 제1 제어모듈의 빌드코드를 생성할 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 구현 장치(100)는 제1 제어모듈의 원본코드(50)에서 연동 정보와 연관된 함수 호출 루틴(51)을 인터페이스코드 상의 함수를 호출하는 루틴(52)으로 대체함으로써 제1 제어모듈의 빌드코드를 생성할 수 있다. 물론, 구현 장치(100)는 동일한 방식으로 제2 제어모듈에 대한 빌드 코드도 생성할 수 있다.In one embodiment, the implementation device 100 determines a routine (eg, a function call routine, a variable access routine) associated with interworking information (or a second control module) in the original code of the first control module, and uses the determined routine to the interface By converting the code into a routine using the code, the build code of the first control module may be generated. For example, as shown in FIG. 9 , the implementation device 100 calls a function call routine 51 associated with interworking information in the original code 50 of the first control module to a routine 52 for calling a function on the interface code. ) to generate the build code of the first control module. Of course, the implementation device 100 may also generate a build code for the second control module in the same manner.

다른 실시예에서, 구현 장치(100)는 상제1 제어모듈의 원본코드에서 연동 정보(또는 제2 제어모듈)와 연관된 루틴을 결정하고, 결정된 루틴을 상기 인터페이스코드에 포함된 함수를 호출하는 루틴으로 재정의하는 매크로 코드를 삽입하여 제1 제어모듈의 빌드코드를 생성할 수 있다. 예를 들어, 도 10에 도시된 바와 같이, 구현 장치(100)는 제1 제어모듈의 원본코드(60)에 소정의 매크로 코드(62)를 삽입함으로써 제1 제어모듈의 빌드코드를 생성할 수 있다. 여기서, 소정의 매크로 코드(62)는 연동 정보와 연관된 함수(또는 함수 호출 루틴(61))가 인터페이스코드 상의 함수를 호출하도록 재정의하는 매크로 코드일 수 있다. 이러한 재정의는 예를 들어"#define" 매크로를 통해 수행될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다. 본 실시예에서, 구현 장치(100)는 동일한 방식으로 제2 제어모듈에 대한 빌드 코드도 생성할 수 있다.In another embodiment, the implementation device 100 determines a routine associated with interworking information (or second control module) in the original code of the first control module, and uses the determined routine as a routine for calling a function included in the interface code. The build code of the first control module may be generated by inserting the redefining macro code. For example, as shown in FIG. 10 , the implementation device 100 may generate the build code of the first control module by inserting a predetermined macro code 62 into the original code 60 of the first control module. have. Here, the predetermined macro code 62 may be a macro code that redefines a function (or a function call routine 61 ) associated with interworking information to call a function on the interface code. This redefinition may be performed, for example, through a “#define” macro, but the scope of the present disclosure is not limited thereto. In this embodiment, the implementation device 100 may also generate a build code for the second control module in the same manner.

단계 S400에서, 인터페이스코드와 빌드코드를 빌드하여 각 제어모듈의 HEX 파일이 생성될 수 있다. 가령, 구현 장치(100)는 인터페이스코드와 제1 제어모듈(예컨대 ECU)의 빌드코드를 빌드하여 제1 제어모듈의 HEX 파일을 생성할 수 있다. 또한, 구현 장치(100)는 인터페이스코드와 제2 제어모듈(예컨대 TCU)의 빌드코드를 빌드하여 제2 제어모듈의 HEX 파일을 생성할 수 있다. 각 제어모듈의 HEX 파일이 별도로 생성됨에 따라 소프트웨어 개발 및 관리(예컨대 버전 관리 등)의 효율성이 크게 향상될 수 있다.In step S400, by building the interface code and the build code, the HEX file of each control module may be generated. For example, the implementation device 100 may build the interface code and the build code of the first control module (eg, ECU) to generate the HEX file of the first control module. Also, the implementation device 100 may build the interface code and the build code of the second control module (eg, TCU) to generate the HEX file of the second control module. As the HEX file of each control module is created separately, the efficiency of software development and management (eg, version management, etc.) can be greatly improved.

단계 S400의 빌드 과정의 일례는 도 11에 도시되어 있다. 도 11은 복수의 제어모듈이 ECU와 TCU인 경우를 예시하고 있으며, 도시된 빌드 순서가 경우에 따라 달라질 수도 있음은 물론이다.An example of the build process of step S400 is shown in FIG. 11 . 11 exemplifies a case in which the plurality of control modules are the ECU and the TCU, and it goes without saying that the illustrated build order may vary depending on the case.

도 11에 도시된 바와 같이, 상기 빌드 과정은 ECU와 TCU 간의 인터페이스코드, ECU의 빌드코드, TCU의 빌드코드를 준비하는 단계 S410에서 시작될 수 있다.11 , the build process may be started in step S410 of preparing an interface code between the ECU and the TCU, a build code of the ECU, and a build code of the TCU.

단계 S420에서, 인터페이스코드와 ECU의 빌드코드를 빌드하여 ECU HEX 파일(71)이 생성될 수 있다.In step S420, the ECU HEX file 71 may be generated by building the interface code and the build code of the ECU.

단계 S430에서, 인터페이스코드와 TCU의 빌드코드를 빌드하여 TCU HEX 파일(72)이 생성될 수 있다.In step S430, the TCU HEX file 72 may be generated by building the interface code and the TCU build code.

단계 S440 및 S450에서, 플랫폼 코드에 대한 빌드 파일과 부트 HEX 파일(74)을 결합하여 플랫폼 HEX 파일(73)이 생성될 수 있다. 부트 HEX 파일(74)은 통합제어유닛의 부팅을 위한 HEX 파일을 의미할 수 있으며, 플랫폼 코드는 ECU의 HEX 파일(71)과 TCU의 HEX 파일(72)를 실행시키기 위한 기반 플랫폼에 관한 코드로써, 예를 들어 AUTOSAR(automotive open system architecture) 운영체제의 BSW(basic software) 레이어에 관한 코드일 수 있다(도 14 참조).In steps S440 and S450 , the platform HEX file 73 may be generated by combining the build file for the platform code and the boot HEX file 74 . The boot HEX file 74 may mean a HEX file for booting the integrated control unit, and the platform code is a code related to a base platform for executing the HEX file 71 of the ECU and the HEX file 72 of the TCU. , for example, may be a code related to a basic software (BSW) layer of an automotive open system architecture (AUTOSAR) operating system (see FIG. 14 ).

단계 S460에서, 플랫폼 HEX 파일(73)과 ECU HEX 파일(71)이 통합되어 플랫폼-ECU의 통합 HEX 파일(75)이 생성될 수 있다.In step S460 , the platform HEX file 73 and the ECU HEX file 71 may be integrated to generate a platform-ECU integrated HEX file 75 .

단계 S470에서, 플랫폼 HEX 파일(73)과 TCU HEX 파일(72)이 통합되어 플랫폼-TCU의 통합 HEX 파일(76)이 생성될 수 있다.In step S470 , the platform HEX file 73 and the TCU HEX file 72 may be integrated to generate a platform-TCU integrated HEX file 76 .

단계 S480에서, 플랫폼 HEX 파일(73)과 ECU HEX 파일(71) 및 TCU HEX 파일(72)이 통합되어 플랫폼-TCU-ECU의 통합 HEX 파일(77)이 생성될 수 있다.In step S480 , the platform HEX file 73 and the ECU HEX file 71 and the TCU HEX file 72 may be integrated to generate the integrated HEX file 77 of the platform-TCU-ECU.

참고로, 상술한 빌드 과정에 따라 생성된 HEX 파일들(71 내지 73, 75 내지 77)은 통합제어유닛을 구현하기 위해 모두 함께 사용되는 것이 아니라, 목적에 맞게 선택적으로 사용될 수 있다.For reference, the HEX files 71 to 73 and 75 to 77 generated according to the above-described build process are not all used together to implement the integrated control unit, but may be selectively used according to the purpose.

도 12는 상술한 빌드 과정에 따라 생성된 통합 HEX 파일의 메모리맵의 일례를 도시하고 있다.12 shows an example of a memory map of an integrated HEX file generated according to the above-described build process.

도 12에 도시된 바와 같이, 통합 HEX 파일에는 타 제어모듈(즉, TCU)이 인터페이스코드의 함수를 통해 ECU의 함수를 호출할 수 있도록 변환된 루틴(84; 도 10 참조), 인터페이스코드에 포함된 연동정보 구조체에 관한 루틴(81, 83; 도 5 및 도 7 참조), ECU 빌드코드의 루틴(83) 등이 포함될 수 있다. 따라서, 타 제어모듈이 인터페이스코드의 루틴(81, 83)을 통해 ECU와 연동될 수 있다. 이와 같이, 자동 생성된 인터페이스코드와 자동 변환을 통해 생성된 빌드코드를 통해 개발자가 원본코드를 수정하지 않고도 복수의 제어모듈을 포함하는 통합제어유닛이 용이하게 구현될 수 있다.As shown in FIG. 12, the integrated HEX file includes a routine (84; see FIG. 10) converted so that other control modules (ie, TCU) can call functions of the ECU through the function of the interface code (refer to FIG. 10), and the interface code Routines 81 and 83 (refer to FIGS. 5 and 7) regarding the linked information structure, the routine 83 of the ECU build code, and the like may be included. Accordingly, other control modules can be linked with the ECU through the routines 81 and 83 of the interface code. In this way, an integrated control unit including a plurality of control modules can be easily implemented without a developer modifying the original code through the automatically generated interface code and the build code generated through the automatic conversion.

참고로, 도 3에 도시된 단계 S100, S200, S300 및 S400은 각각 연동정보 설정부(110), 인터페이스코드 생성부(121), 빌드코드 생성부(122) 및 빌드부(130)에 의해 수행될 수 있다.For reference, steps S100, S200, S300 and S400 shown in FIG. 3 are performed by the interworking information setting unit 110, the interface code generating unit 121, the build code generating unit 122 and the build unit 130, respectively. can be

지금까지 도 3 내지 도 12를 참조하여 본 발명의 일 실시예에 따른 차량의 통합제어유닛 구현 방법에 대하여 설명하였다. 상술한 방법에 따르면, 연동 정보에 기초하여 복수의 제어모듈이 연동되기 위한 인터페이스코드가 자동으로 생성될 수 있고, 각 제어모듈의 원본코드의 루틴이 인터페이스코드를 이용하는 루틴으로 자동 변환될 수 있다. 이에 따라, 복수의 제어모듈을 포함하는 차량의 통합제어유닛이 용이하게 구현될 수 있다. 아울러, 각 개발팀은 담당하는 제어모듈의 원본코드만을 개발하면 되므로, 소프트웨어 개발 효율성이 크게 향상될 수 있으며, 제어모듈 별로 HEX 파일이 생성되는 바 소프트웨어 관리의 편의성 및 효율성 또한 크게 향상될 수 있다.So far, a method for implementing an integrated control unit of a vehicle according to an embodiment of the present invention has been described with reference to FIGS. 3 to 12 . According to the above-described method, an interface code for interworking a plurality of control modules may be automatically generated based on the interworking information, and a routine of the original code of each control module may be automatically converted into a routine using the interface code. Accordingly, an integrated control unit of a vehicle including a plurality of control modules can be easily implemented. In addition, since each development team only needs to develop the original code of the control module in charge, the software development efficiency can be greatly improved, and the convenience and efficiency of software management can also be greatly improved as a HEX file is generated for each control module.

이하에서는, 도 13 내지 도 15를 참조하여 상술한 구현 방법에 의해 구현된 통합제어유닛(90)에 대하여 간략하게 설명하도록 한다.Hereinafter, the integrated control unit 90 implemented by the above-described implementation method will be briefly described with reference to FIGS. 13 to 15 .

도 13 및 도 14는 본 발명의 일 실시예에 따른 통합제어유닛(90)을 나타내는 예시적인 블록도이다. 도 13 이하의 도면은 ECU와 TCU 기능이 통합된 제어유닛(90)을 예로써 도시하고 있다.13 and 14 are exemplary block diagrams showing the integrated control unit 90 according to an embodiment of the present invention. The drawings below in FIG. 13 show, as an example, the control unit 90 in which the ECU and TCU functions are integrated.

도 13에 도시된 바와 같이, 실시예에 따른 통합제어유닛(90)은 ECU 모듈(91), TCU 모듈(92) 및 플랫폼모듈(93)을 포함할 수 있다. ECU 모듈(91)은 ECU의 HEX 파일(예컨대 71)이 통합제어유닛(90)의 프로세서에 의해 실행됨으로써 생성될 수 있고, TCU 모듈(92)은 TCU의 HEX 파일(예컨대 72)이 실행됨으로써 생성될 수 있다. 또한, 플랫폼모듈(93)은 플랫폼의 HEX 파일(예컨대 73)이 실행됨으로써 생성될 수 있다. 또는, 도시된 모듈(91 내지 93)은 통합 HEX 파일(예컨대 75 내지 77)이 실행됨으로써 생성될 수도 있다.13 , the integrated control unit 90 according to the embodiment may include an ECU module 91 , a TCU module 92 , and a platform module 93 . The ECU module 91 may be generated by executing the HEX file (eg, 71) of the ECU by the processor of the integrated control unit 90, and the TCU module 92 is generated by executing the HEX file (eg, 72) of the TCU. can be In addition, the platform module 93 may be created by executing the HEX file (eg, 73) of the platform. Alternatively, the illustrated modules 91 to 93 may be generated by executing an integrated HEX file (eg, 75 to 77 ).

도시된 바와 같이, ECU 모듈(91)(또는 TCU 모듈 92)은 플랫폼모듈(93)에 포함된 API(즉, 함수) 리스트를 통해 API 주소를 획득하고, 획득된 주소를 통해 API를 호출함으로써 플랫폼모듈(93)이 제공하는 기반 기능(예컨대 메모리 관리, 통신 등)을 수행하거나, TCU 모듈(92)과 연동될 수 있다.As shown, the ECU module 91 (or TCU module 92) acquires an API address through the API (ie, function) list included in the platform module 93, and calls the API through the obtained address to obtain the platform A basic function (eg, memory management, communication, etc.) provided by the module 93 may be performed, or may be interlocked with the TCU module 92 .

도 14에 도시된 바와 같이, ECU 모듈(91) 및 TCU 모듈(92)은 AUTOSAR의 ASW(application software) 레이어에 위치하는 모듈일 수 있고, 플랫폼모듈(93)은 BSW 레이어에 위치하는 모듈일 수 있다.14, the ECU module 91 and the TCU module 92 may be modules located in the ASW (application software) layer of AUTOSAR, and the platform module 93 may be a module located in the BSW layer. have.

도 15는 본 발명의 실시예에 따른 테스트 기능을 구비한 통합제어유닛(90)을 나타내는 예시적인 블록도이다.15 is an exemplary block diagram illustrating an integrated control unit 90 having a test function according to an embodiment of the present invention.

도 15에 도시된 바와 같이, 통합제어유닛(90)은 통합제어유닛(90)에 대한 테스트 기능을 제공하는 후킹모듈(94)을 더 포함할 수 있다. 구체적으로, 플랫폼모듈(93)에 API 후킹을 위해 대체된 API 리스트(96)가 포함될 수 있고, API 리스트(96)는 후킹모듈(94)의 API 주소를 반환하도록 미리 구성된 것일 수 있다. 그렇게 함으로써, ECU 모듈(91)(또는 TCU 모듈 92)이 API 호출 시, API의 제어권이 후킹모듈(95)에 의해 탈취(후킹)될 수 있다.15 , the integrated control unit 90 may further include a hooking module 94 that provides a test function for the integrated control unit 90 . Specifically, the API list 96 replaced for API hooking may be included in the platform module 93 , and the API list 96 may be preconfigured to return the API address of the hooking module 94 . By doing so, when the ECU module 91 (or the TCU module 92) calls the API, the control right of the API can be seized (hooked) by the hooking module 95 .

후킹모듈(94)은 상술한 바와 같은 API 후킹을 통해 통합제어유닛(90)에 대한 테스트 기능을 제공할 수 있다. 예를 들어, 후킹모듈(94)은 모듈 단위로 각 제어모듈(91, 92)의 동작을 검증하는 단위 테스트 기능을 제공할 수 있고, 제어모듈(91, 92)의 연동 동작을 종합적으로 검증하는 통합 테스트 기능도 제공할 수 있다. 가령, 후킹모듈(94)은 인터페이스코드를 이용하는 루틴을 집중적으로 검증하는 통합 테스트 기능을 제공할 수 있다. 이러한 테스트 기능을 통해 통합제어유닛(90)의 신뢰성이 향상될 수 있다.The hooking module 94 may provide a test function for the integrated control unit 90 through API hooking as described above. For example, the hooking module 94 may provide a unit test function that verifies the operation of each control module 91 and 92 on a module-by-module basis, and comprehensively verifies the interlocking operation of the control modules 91 and 92. Integration testing functions can also be provided. For example, the hooking module 94 may provide an integrated test function for intensively verifying a routine using an interface code. Through this test function, the reliability of the integrated control unit 90 may be improved.

일 실시예에 따르면, 도시된 바와 같이, 후킹모듈(94)은 결함주입테스트(fault injection test)를 제공하는 모듈(95)을 포함할 수 있다. 즉, 후킹모듈(94)은 결합주입테스트 모듈(95)을 통해 통합제어유닛(90)에 결함을 강제로 주입하고 주입된 결함에 따른 동작을 검증하는 테스트 기능을 제공할 수 있다. 이러한 기능이 제공됨에 따라, 통합제어유닛(90)의 신뢰성이 더욱 향상될 수 있다.According to one embodiment, as shown, the hooking module 94 may include a module 95 that provides a fault injection test. That is, the hooking module 94 may provide a test function for forcibly injecting a defect into the integrated control unit 90 through the combined injection test module 95 and verifying the operation according to the injected defect. As such a function is provided, the reliability of the integrated control unit 90 can be further improved.

또한, 일 실시예에 따르면, 후킹모듈(94)은 통합제어유닛(90)의 동작을 로깅(logging)하는 기능을 더 제공할 수 있다. 이때, 로깅 수준(레벨)은 동적으로 변경될 수 있다. 가령, 후킹모듈(94)은 통합제어유닛(90)의 오류 발생 위치에 따라 횟수, 오류의 심각성, 오류 발생 위치 등에 따라 로깅 수준을 다르게 적용할 수 있다. 보다 구체적인 예로써, 후킹모듈(94)은 복수의 제어모듈(91, 92)이 연동되는 부분(예컨대 인터페이스 코드)에서 오류가 발생한 경우 높은 로깅 수준을 적용하고, 각 제어모듈(91, 92)이 독립적으로 동작하는 부분에서 오류가 발생한 경우 낮은 로깅 수준을 적용할 수 있다. 이때, 로깅 수준에 따라 로깅 데이터의 정보량이 달라질 수 있다. 다른 예로서, 후킹모듈(94)은 미리 정의되지 않은 특정 오류가 발생한 경우 상기 특정 오류가 다시 발생될 때까지 로깅 수준을 상향시킬 수 있다.In addition, according to an embodiment, the hooking module 94 may further provide a function of logging the operation of the integrated control unit 90 . In this case, the logging level (level) may be dynamically changed. For example, the hooking module 94 may apply a logging level differently according to the number of times, severity of the error, the location of the error, etc. according to the error occurrence location of the integrated control unit 90 . As a more specific example, the hooking module 94 applies a high logging level when an error occurs in a part (eg, interface code) in which the plurality of control modules 91 and 92 are interlocked, and each control module 91 , 92 is If an error occurs in an independently operated part, a lower logging level can be applied. In this case, the amount of information of logging data may vary according to the logging level. As another example, when a specific error that is not defined in advance occurs, the hooking module 94 may increase the logging level until the specific error occurs again.

지금까지 도 13 내지 도 15를 참조하여 본 발명의 실시예에 다른 통합제어유닛(90)에 대하여 설명하였다. 이하에서는, 도 16을 참조하여 본 발명의 일 실시예에 따른 구현 장치(100) 또는 통합제어유닛(90)을 구현할 수 있는 예시적인 컴퓨팅 장치(200)에 대하여 설명하도록 한다.So far, the integrated control unit 90 according to the embodiment of the present invention has been described with reference to FIGS. 13 to 15 . Hereinafter, an exemplary computing device 200 capable of implementing the implementation device 100 or the integrated control unit 90 according to an embodiment of the present invention will be described with reference to FIG. 16 .

도 16은 컴퓨팅 장치(200)를 나타내는 예시적인 하드웨어 구성도이다.16 is an exemplary hardware configuration diagram illustrating the computing device 200 .

도 16에 도시된 바와 같이, 컴퓨팅 장치(200)는 하나 이상의 프로세서(210), 버스(230), 통신 인터페이스(240), 프로세서(210)에 의하여 수행되는 컴퓨터 프로그램(260)을 로드(load)하는 메모리(220)와, 컴퓨터 프로그램(260)을 저장하는 스토리지(250)를 포함할 수 있다. 다만, 도 16에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 16에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다.As shown in FIG. 16 , the computing device 200 loads one or more processors 210 , a bus 230 , a communication interface 240 , and a computer program 260 executed by the processor 210 . It may include a memory 220 and a storage 250 for storing the computer program 260 . However, only the components related to the embodiment of the present invention are illustrated in FIG. 16 . Accordingly, a person skilled in the art to which the present invention pertains can know that other general-purpose components other than the components shown in FIG. 16 may be further included.

프로세서(210)는 컴퓨팅 장치(200)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(210)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(210)는 본 발명의 실시예에 따른 동작/방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(200)는 하나 이상의 프로세서를 구비할 수 있다.The processor 210 may control the overall operation of each component of the computing device 200 . The processor 210 includes a central processing unit (CPU), a micro processor unit (MPU), a micro controller unit (MCU), a graphic processing unit (GPU), or any type of processor well known in the art. can be In addition, the processor 210 may perform an operation on at least one application or program for executing the operation/method according to the embodiment of the present invention. The computing device 200 may include one or more processors.

다음으로, 메모리(220)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(220)는 본 발명의 실시예에 따른 동작/방법을 실행하기 위하여 스토리지(250)로부터 하나 이상의 프로그램(260)을 로드할 수 있다. 가령, 메모리(220)에 컴퓨터 프로그램(260)이 로드되면, 도 2에 도시된 바와 같은 모듈들이 메모리(220) 상에 구현될 수 있다. 메모리(220)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 발명의 기술적 범위가 이에 한정되는 것은 아니다.Next, the memory 220 may store various data, commands, and/or information. The memory 220 may load one or more programs 260 from the storage 250 to execute an operation/method according to an embodiment of the present invention. For example, when the computer program 260 is loaded into the memory 220 , modules as shown in FIG. 2 may be implemented on the memory 220 . The memory 220 may be implemented as a volatile memory such as RAM, but the technical scope of the present invention is not limited thereto.

다음으로, 버스(230)는 컴퓨팅 장치(200)의 구성요소 간 통신 기능을 제공할 수 있다. 버스(230)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.Next, the bus 230 may provide a communication function between components of the computing device 200 . The bus 230 may be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

다음으로, 통신 인터페이스(240)는 컴퓨팅 장치(200)의 유무선 통신을 지원할 수 있다. 이를 위해, 통신 인터페이스(240)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 경우에 따라, 통신 인터페이스(240)는 생략될 수도 있다.Next, the communication interface 240 may support wired/wireless communication of the computing device 200 . To this end, the communication interface 240 may be configured to include a communication module well-known in the art. In some cases, the communication interface 240 may be omitted.

다음으로, 스토리지(250)는 상기 하나 이상의 프로그램(260)을 비임시적으로 저장할 수 있다. 스토리지(250)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.Next, the storage 250 may non-temporarily store the one or more programs 260 . The storage 250 is a non-volatile memory such as a read only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, a hard disk, a removable disk, or well in the art to which the present invention pertains. It may be configured to include any known computer-readable recording medium.

다음으로, 컴퓨터 프로그램(260)은 메모리(220)에 로드될 때 프로세서(210)로 하여금 본 발명의 실시예에 따른 동작/방법을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(210)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 발명의 실시예에 따른 동작/방법을 수행할 수 있다.Next, the computer program 260 may include one or more instructions that, when loaded into the memory 220 , cause the processor 210 to perform an operation/method according to an embodiment of the present invention. That is, the processor 210 may perform the operation/method according to the embodiment of the present invention by executing the one or more instructions.

예를 들어, 컴퓨터 프로그램(260)은 차량의 통합제어유닛을 구성하는 제1 제어모듈(예컨대 ECU)과 제2 제어모듈(예컨대 TCU) 사이의 연동 정보를 기초로 인터페이스코드를 생성하는 동작 및 생성된 인터페이스코드, 제1 제어모듈의 빌드코드 및 제2 제어모듈의 빌드코드를 빌드하여, 제1 제어모듈의 HEX 파일과 제2 제어모듈의 HEX 파일을 생성하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(200)를 통해 본 발명의 일 실시예에 따른 구현 장치(100)가 구현될 수 있다.For example, the computer program 260 operates and generates an interface code based on interworking information between the first control module (eg, ECU) and the second control module (eg, TCU) constituting the integrated control unit of the vehicle. The interface code, the build code of the first control module, and the build code of the second control module are built to include instructions for generating the HEX file of the first control module and the HEX file of the second control module. can In this case, the implementation device 100 according to an embodiment of the present invention may be implemented through the computing device 200 .

지금까지 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 기록 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 또한, 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.The technical ideas of the present invention described so far may be implemented as computer-readable codes on a computer-readable recording medium. In addition, it may be performed by the execution of a computer program embodied as computer readable code. The computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disk, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer-equipped hard disk). can The computer program may be transmitted from the first computing device to the second computing device through a network such as the Internet and installed in the second computing device, thereby being used in the second computing device. The first computing device and the second computing device include all of a server device, a physical server belonging to a server pool for cloud services, and a stationary computing device such as a desktop PC.

도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.Although acts are shown in a particular order in the drawings, it should not be understood that the acts must be performed in the specific order or sequential order shown, or that all illustrated acts must be performed to obtain a desired result. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of the various components in the embodiments described above should not be construed as necessarily requiring such separation, and the described program components and systems may generally be integrated together into a single software product or packaged into multiple software products. It should be understood that there is

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although embodiments of the present invention have been described above with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing its technical spirit or essential features. can understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent range should be interpreted as being included in the scope of the technical ideas defined by the present invention.

Claims (13)

컴퓨팅 장치에서 차량의 통합제어유닛 구현 방법에 있어서,
상기 통합제어유닛을 구성하는 제1 제어모듈과 제2 제어모듈 사이의 연동 정보를 기초로 인터페이스코드를 생성하는 단계; 및
상기 생성된 인터페이스코드, 상기 제1 제어모듈의 빌드코드 및 상기 제2 제어모듈의 빌드코드를 빌드하여, 상기 제1 제어모듈의 HEX 파일과 상기 제2 제어모듈의 HEX 파일을 생성하는 단계를 포함하는,
차량의 통합제어유닛 구현 방법.
A method for implementing an integrated control unit of a vehicle in a computing device, the method comprising:
generating an interface code based on interworking information between a first control module and a second control module constituting the integrated control unit; and
building the generated interface code, the build code of the first control module, and the build code of the second control module to generate the HEX file of the first control module and the HEX file of the second control module doing,
A method of implementing an integrated control unit of a vehicle.
제1 항에 있어서,
상기 제1 제어모듈의 HEX 파일과 상기 제2 제어모듈의 HEX 파일은 하나의 프로세서에 탑재되어 실행되는,
차량의 통합제어유닛 구현 방법.
According to claim 1,
The HEX file of the first control module and the HEX file of the second control module are loaded and executed in one processor,
A method of implementing an integrated control unit of a vehicle.
제1 항에 있어서,
상기 제1 제어모듈은 ECU(engine control unit)의 기능을 수행하는 모듈이고,
상기 제2 제어모듈은 TCU(transmission control unit)의 기능을 수행하는 모듈인,
차량의 통합제어유닛 구현 방법.
According to claim 1,
The first control module is a module that performs a function of an engine control unit (ECU),
The second control module is a module that performs a function of a TCU (transmission control unit),
A method of implementing an integrated control unit of a vehicle.
제1 항에 있어서,
상기 연동 정보는 상기 제1 제어모듈과 상기 제2 제어모듈 간에 공유되는 변수 또는 호출되는 함수에 관한 정보를 포함하는,
차량의 통합제어유닛 구현 방법.
According to claim 1,
The interworking information includes information about a function to be called or a variable shared between the first control module and the second control module,
A method of implementing an integrated control unit of a vehicle.
제1 항에 있어서,
상기 연동 정보는 ASAM MDX(metadata exchange format) 표준에 의거하여 설정된 것인,
차량의 통합제어유닛 구현 방법.
According to claim 1,
The interworking information is set based on the ASAM MDX (metadata exchange format) standard,
A method of implementing an integrated control unit of a vehicle.
제1 항에 있어서,
상기 제1 제어모듈의 HEX 파일과 상기 제2 제어모듈의 HEX 파일을 생성하는 단계는,
상기 제1 제어모듈의 원본코드에서 상기 연동 정보와 연관된 루틴을 결정하는 단계; 및
상기 결정된 루틴을 상기 인터페이스코드를 이용하는 루틴으로 변환하여 상기 제1 제어모듈의 빌드코드를 생성하는 단계를 포함하는,
차량의 통합제어유닛 구현 방법.
According to claim 1,
The step of generating the HEX file of the first control module and the HEX file of the second control module is,
determining a routine associated with the interworking information in the original code of the first control module; and
converting the determined routine into a routine using the interface code to generate a build code of the first control module,
A method of implementing an integrated control unit of a vehicle.
제6 항에 있어서,
상기 결정된 루틴은 함수 호출 루틴이고,
상기 빌드코드를 생성하는 단계는,
상기 결정된 루틴을 상기 인터페이스코드에 포함된 함수 호출 루틴으로 대체하는 단계를 포함하는,
차량의 통합제어유닛 구현 방법.
7. The method of claim 6,
The determined routine is a function call routine,
The step of generating the build code is,
Comprising the step of replacing the determined routine with a function call routine included in the interface code,
A method of implementing an integrated control unit of a vehicle.
제6 항에 있어서,
상기 결정된 루틴은 함수 호출 루틴이고,
상기 빌드코드를 생성하는 단계는,
상기 결정된 루틴을 상기 인터페이스코드에 포함된 함수를 호출하는 루틴으로 재정의하는 매크로 코드를 삽입하는 단계를 포함하는,
차량의 통합제어유닛 구현 방법.
7. The method of claim 6,
The determined routine is a function call routine,
The step of generating the build code is,
Inserting a macro code that redefines the determined routine as a routine that calls a function included in the interface code,
A method of implementing an integrated control unit of a vehicle.
제1 항에 있어서,
상기 제1 제어모듈의 HEX 파일, 상기 제2 제어모듈의 HEX 파일 및 후킹모듈의 HEX 파일을 통합하여 상기 통합제어유닛의 HEX 파일을 생성하는 단계를 더 포함하되,
상기 후킹모듈은 API 후킹을 통해 상기 제1 제어모듈 및 상기 제2 제어모듈에 대한 통합 테스트 기능을 제공하는,
차량의 통합제어유닛 구현 방법.
According to claim 1,
The method further comprising generating a HEX file of the integrated control unit by integrating the HEX file of the first control module, the HEX file of the second control module, and the HEX file of the hooking module,
The hooking module provides an integrated test function for the first control module and the second control module through API hooking,
A method of implementing an integrated control unit of a vehicle.
제9 항에 있어서,
상기 후킹모듈을 결함 주입 테스트를 수행하는 모듈을 포함하는,
차량의 통합제어유닛 구현 방법.
10. The method of claim 9,
Containing a module for performing a defect injection test on the hooking module,
A method of implementing an integrated control unit of a vehicle.
차량의 통합제어유닛을 구성하는 제1 제어모듈과 제2 제어모듈 사이의 연동 정보를 설정하는 연동정보 설정부;
상기 연동 정보를 기초로 인터페이스코드를 생성하는 인터페이스코드 생성부;
상기 제1 제어모듈의 원본코드와 상기 제2 제어모듈의 원본코드를 변환하여 상기 제1 제어모듈의 빌드코드와 상기 제2 제어모듈의 빌드코드를 생성하는 빌드코드 생성부; 및
상기 인터페이스코드, 상기 제1 제어모듈의 빌드코드 및 상기 제2 제어모듈의 빌드코드를 빌드하여, 상기 제1 제어모듈의 HEX 파일과 상기 제2 제어모듈의 HEX 파일을 생성하는 빌드부를 포함하는,
차량의 통합제어유닛 구현 장치.
an interlocking information setting unit for setting interworking information between the first control module and the second control module constituting the integrated control unit of the vehicle;
an interface code generator for generating an interface code based on the interworking information;
a build code generator converting the original code of the first control module and the original code of the second control module to generate the build code of the first control module and the build code of the second control module; and
Comprising a build unit that builds the interface code, the build code of the first control module, and the build code of the second control module to generate the HEX file of the first control module and the HEX file of the second control module,
A device for implementing an integrated control unit of a vehicle.
제11 항에 있어서,
상기 제1 제어모듈은 ECU(engine control unit)의 기능을 수행하는 모듈이고,
상기 제2 제어모듈은 TCU(transmission control unit)의 기능을 수행하는 모듈인,
차량의 통합제어유닛 구현 장치.
12. The method of claim 11,
The first control module is a module that performs a function of an engine control unit (ECU),
The second control module is a module that performs a function of a TCU (transmission control unit),
A device for implementing an integrated control unit of a vehicle.
제11 항에 있어서,
상기 빌드부는,
상기 제1 제어모듈의 원본코드에서 상기 연동 정보와 연관된 루틴을 결정하고, 상기 결정된 루틴을 상기 인터페이스코드를 이용하는 루틴으로 변환하여 상기 제1 제어모듈의 빌드코드를 생성하는,
차량의 통합제어유닛 구현 장치.
12. The method of claim 11,
The build unit,
determining a routine related to the interworking information from the original code of the first control module, and converting the determined routine into a routine using the interface code to generate a build code of the first control module,
A device for implementing an integrated control unit of a vehicle.
KR1020200175292A 2020-12-15 2020-12-15 Method for implementing integrated control unit of vehicle and apparatus thereof KR102360330B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200175292A KR102360330B1 (en) 2020-12-15 2020-12-15 Method for implementing integrated control unit of vehicle and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200175292A KR102360330B1 (en) 2020-12-15 2020-12-15 Method for implementing integrated control unit of vehicle and apparatus thereof

Publications (1)

Publication Number Publication Date
KR102360330B1 true KR102360330B1 (en) 2022-02-08

Family

ID=80252727

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175292A KR102360330B1 (en) 2020-12-15 2020-12-15 Method for implementing integrated control unit of vehicle and apparatus thereof

Country Status (1)

Country Link
KR (1) KR102360330B1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644063A (en) * 1991-12-23 1994-02-18 Microsoft Corp Method of integrating individual subprogram to main program
KR20060000648A (en) * 2004-06-29 2006-01-06 현대자동차주식회사 An engine control module and transmission control module data transmit and receive device when a can network failure and method
JP2009286380A (en) * 2008-06-02 2009-12-10 Honda Motor Co Ltd On-vehicle electronic control device and vehicle with fuel cell
JP2010215008A (en) * 2009-03-13 2010-09-30 Denso Corp Vehicle control system
KR101470168B1 (en) * 2013-06-14 2014-12-05 현대자동차주식회사 Reprogramming method for cpu of controller
KR20150043732A (en) 2013-10-15 2015-04-23 현대자동차주식회사 System and method for software update of vehicle controller
WO2017056194A1 (en) * 2015-09-29 2017-04-06 株式会社 東芝 Information device, information communication terminal, and information processing method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644063A (en) * 1991-12-23 1994-02-18 Microsoft Corp Method of integrating individual subprogram to main program
KR20060000648A (en) * 2004-06-29 2006-01-06 현대자동차주식회사 An engine control module and transmission control module data transmit and receive device when a can network failure and method
JP2009286380A (en) * 2008-06-02 2009-12-10 Honda Motor Co Ltd On-vehicle electronic control device and vehicle with fuel cell
JP2010215008A (en) * 2009-03-13 2010-09-30 Denso Corp Vehicle control system
KR101470168B1 (en) * 2013-06-14 2014-12-05 현대자동차주식회사 Reprogramming method for cpu of controller
KR20150043732A (en) 2013-10-15 2015-04-23 현대자동차주식회사 System and method for software update of vehicle controller
WO2017056194A1 (en) * 2015-09-29 2017-04-06 株式会社 東芝 Information device, information communication terminal, and information processing method

Similar Documents

Publication Publication Date Title
TWI400652B (en) Dual operating system parallel processing methods, recording media and computer program products
US7818730B1 (en) Automatic minimal build dependency determination and building an executable with source code
US10019598B2 (en) Dynamic service discovery
US10296353B2 (en) Protecting basic input/output (BIOS) code
EP2850529A2 (en) System and methods for generating and managing a virtual device
US20070220493A1 (en) Recording medium, software verification apparatus and software verification method
US7856637B1 (en) Runtime emulating static thread local storage of portable executable software code
US6901583B1 (en) Method for testing of a software emulator while executing the software emulator on a target machine architecture
CN109558117B (en) Aerospace application-oriented AADL model refinement and C code automatic generation method supported by same
US10073687B2 (en) System and method for cross-building and maximizing performance of non-native applications using host resources
CN115617009A (en) Virtual development environment apparatus, method and recording medium
US8726258B2 (en) Supporting multiple hardware components in UEFI
CN111427782A (en) Operation method, device, equipment and storage medium of android dynamic link library
CN108874662B (en) Test method and non-transitory computer readable medium storing program
CN112965895B (en) Desktop application program automatic test method, device, equipment and storage medium
CN117034821B (en) Regression verification method and medium for chip design front-end simulation verification
US11599342B2 (en) Pathname independent probing of binaries
KR102360330B1 (en) Method for implementing integrated control unit of vehicle and apparatus thereof
CN114546581A (en) Service-free container starting method and related equipment
US8539468B2 (en) System and methods for replacing software application classes using transparent object adapters
CN105260186A (en) Construction method and device of application program SDK for embedded system
CN114661427B (en) Node management method and system for computing cluster for deploying containerized application service
CN115454403A (en) Page construction method and device and storage medium
CN115495158A (en) Dynamic construction method of system service in microkernel operating system
EP4261631A1 (en) Control system and control method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant