KR102451033B1 - 차량 시스템 버스를 위한 확장 가능한 매핑 - Google Patents
차량 시스템 버스를 위한 확장 가능한 매핑 Download PDFInfo
- Publication number
- KR102451033B1 KR102451033B1 KR1020207017170A KR20207017170A KR102451033B1 KR 102451033 B1 KR102451033 B1 KR 102451033B1 KR 1020207017170 A KR1020207017170 A KR 1020207017170A KR 20207017170 A KR20207017170 A KR 20207017170A KR 102451033 B1 KR102451033 B1 KR 102451033B1
- Authority
- KR
- South Korea
- Prior art keywords
- vehicle
- control message
- systems
- processors
- local control
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/008—Registering or indicating the working of vehicles communicating information to a remotely located station
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Stored Programmes (AREA)
- Information Transfer Systems (AREA)
Abstract
일반적으로, 차량 시스템 버스에 대한 확장 가능한 매핑에 대한 기술이 설명된다. 차량과 상호 작용하도록 구성된 장치는 기술을 수행할 수 있다. 장치는 로컬 제어 메시지와 표준 제어 메시지 사이의 확장 가능한 맵핑을 저장하는 메모리를 포함할 수 있다. 장치는 또한 차량의 시스템을 제어하기 위해 운영 체제를 실행하도록 구성된 프로세서를 포함할 수 있다. 운영 체제는 표준 제어 메시지를 생성할 수 있으며, 표준 제어 메시지는 명령 세트의 제1 표현을 포함한다. 프로세서는 확장 가능 맵핑에 기초하여 표준 제어 메시지를 변환하여 로컬 제어 메시지를 획득할 수 있으며, 로컬 제어 메시지는 명령 세트의 제2 표현을 포함한다. 프로세서는 프로세서 및 시스템에 연결된 제어 버스를 통해 로컬 제어 메시지를 전송하여 시스템의 동작 상태 변경을 개시할 수 있다.
Description
본 명세서는 차량 시스템 버스를 위한 확장 가능한 매핑에 관한 것이다.
차량은 HVAC(heating, ventilation, and air conditioning) 시스템, 조명 시스템(내부 및/또는 외부 조명 제어용), 엔터테인먼트 시스템, 좌석 시스템(운전석 및/또는 승객 좌석의 위치를 제어하기 위한) 등과 같은 차량 시스템을 제어하기 위한 인터페이스(그래픽 사용자 인터페이스-GUI)를 나타내는 소위 "헤드 유닛" 또는 다른 통합 컴퓨팅 장치를 포함할 수 있다. 헤드 유닛은 하나 이상의 차량 시스템의 작동 상태를 변경하기 위해 차량 시스템에 하나 이상의 명령("명령 세트"로 지칭 될 수 있음)을 제공할 수 있다. 동일한 제조업체의 다른 모델뿐만 아니라 다른 제조업체의 모델 사이에 다양한 차량 시스템(기능 및 작동 측면 모두)을 고려할 때, 헤드 유닛은 명령 세트의 수동 구성이 시간 소모적이고 비싸기 때문에 일반적으로 가장 높은 비율의 차량 시스템을 제어하는 명령 세트를 출력하도록 구성될 수 있다.
또한, 제조업체(제조자)는 각 작동 상태 변경을 수행하기 위해 명령 세트를 정적으로 코딩(즉, "하드 코드")할 수 있다. 즉, 제조업체는 차량 헤드 유닛이 하나 이상의 시스템과 통신할 수 있는 특정 제어 버스 프로토콜(일부는 독점적일 수 있음)을 따르도록 명령 세트를 정적으로 코딩할 수 있다. 제조업체는 제어 버스 프로토콜에 따른 명령 세트를 생성하기 위해 차량 헤드 유닛에 의해 실행되는 운영 체제를 하드 코딩할 수 있다. 각각의 명령 세트는 하나 이상의 시스템 등의 제어 버스 및/또는 벤더에 의해 변할 수 있으며, 결과적으로 차량의 특정 구성에 대한 명령 세트의 정적 코딩을 시간 소모적으로 소비하며, 이는 심지어 차량 모델 트림마다 다를 수 있다.
본 명세서의 일반적 기술은 차량 컴퓨팅 장치(예를 들어, 차량 헤드 유닛)가 차량 시스템 버스에 대한 확장 가능한 매핑을 적용할 수 있게 하는 것에 관한 것이다. 즉, 차량 시스템 버스는 차량 헤드 유닛과 차량의 하나 이상의 시스템 사이에서 명령 세트가 전달(통신)되는 공개 표준 및 상이한 독점(proprietary)을 따를 수 있다. 차량 헤드 유닛은 균일한 명령 세트(즉, 표준 명령 세트)를 지원하는 운영 체제를 실행할 수 있고, 반면 차량 시스템 버스는 복수의 제어 버스 프로토콜의 특정 제어 버스 프로토콜에 따라 특정된 로컬 제어 메시지를 전달할 수 있다. 특정 로컬 제어 메시지를 지원하도록 운영 체제를 하드 코딩하는 대신, 기술의 다양한 양태는 차량 헤드 유닛이 제어 버스에 의해 지원되는 특정 제어 버스 프로토콜에 따르는 표준 명령 세트와 로컬 명령 세트 사이의 확장 가능한 맵핑을 획득할 수 있게 한다.
이와 같이, 기술의 다양한 양태는 제조업체가 확장 가능한 맵핑을 정의할 수 있게 하며, 이는 하나 이상의 운영 체제, 제어 버스 및/또는 차량 시스템에 대한 업데이트를 수용하기 위해 시간이 지남에 따라 업데이트될 수 있다. 확장 가능한 맵핑은 표준 명령 세트와 로컬 명령 세트 사이의 변환(translation)을 정의할 수 있으며, 차량 헤드 유닛은 표준 명령 세트와 로컬 명령 세트 사이의 자동 변환에 적용될 수있다. 로컬 명령 세트만을 지원하기 위해 운영 체제 내에서 이러한 매핑을 정적으로 하드 코딩하는 것보다 확장 가능한 매핑만이 정의될 수 있기 때문에, 기술의 다양한 양태는 차량 헤드 유닛 운영 체제가 개발될 수 있는 속도를 개선하고, 새로운 또는 변경되는 제어 버스 프로토콜과의 상호 운용성을 향상시킬 수 있고, 차량 헤드 유닛 운영 체제의 개발을 개선하는 한편, 로컬 명령 세트의 관점에서 완전한 기능적 지원을 제공하는 그러한 운영 체제의 신속한 배치를 수용할 수 있다.
또한, 기술의 다양한 양태는 차량 헤드 유닛이 차량 시스템을 제어하기 위한 명령 세트를 조정할 수 있게 한다. 차량 헤드 유닛은 차량 시스템의 명령 상태와 작동 상태 변화 사이의 연관성을 결정하는 HAL(hardware abstraction layer)을 구현하도록 구성될 수 있다. 이들 연관성에 기초하여, HAL은 차량 시스템의 추가 기능(하나 이상의 동작 상태에 의해 표현됨)을 노출시키려는 시도에서 명령 세트를 조정할 수 있다. 이와 같이, 기술은 HAL이 명령 세트의 수동 구성에 의지하지 않고 특정 모델 및 제조업체에 특정한 명령 세트를 자동으로 결정할 수 있게 한다.
이와 관련하여, 기술의 다양한 양태는 차량 헤드 유닛 자체의보다 효율적인 작동을 촉진할 수 있다. 즉, HAL은 명령 세트와 동작 상태 변화 사이의 연관성을 결정하고, 그 연관성에 기초하여 차량 시스템으로 하여금 동작 상태 변화를보다 효율적으로 하게 하는 방식으로 명령 세트를 적응(조정)시킬 수 있다. 다수의 모델 및 제조업체가 선택한 차량 시스템에 공통적인 명령 세트를 발행하는 것이 아니라 일부 차량 시스템에서는 비효율적일 수 있지만(기능적이지만), 이러한 기술은 HAL이 차량 시스템으로 하여금 작동(동작) 상태 변경을 효율적으로 수행하게 하는 명령 세트를 적응적으로 생성하게 할 수 있고, 따라서 프로세서 사이클을 절약하고, 메모리 대역폭 및 그와 함께 소비되는 기본 메모리 자원을 보존하고, 결과적으로보다 효율적인 전력 소비를 촉진한다.
일 예에서, 기술의 다양한 양태는 다음을 포함하는 방법에 관한 것이며, 상기 방법은, 차량의 하나 이상의 프로세서에 의해, 차량의 하나 이상의 시스템을 제어하기 위해 운영 체제를 실행하는 단계; 하나 이상의 프로세서에 의해, 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 운영 체제에 의해 지원되는 표준 제어 메시지 사이의 확장 가능한 맵핑을 획득하는 단계; 하나 이상의 프로세서에 의해 실행되는 운영 체제에 의해 표준 제어 메시지를 생성하는 단계 -표준 제어 메시지는 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 명령 세트의 제1 표현을 포함함-; 하나 이상의 프로세서에 의해 그리고 확장 가능한 맵핑에 기초하여, 표준 제어 메시지를 로컬 제어 메시지를 획득하기 위해 변환(translating)하는 단계 -로컬 제어 메시지는 명령 세트의 제2 표현을 포함함-; 그리고 하나 이상의 프로세서에 의해 그리고 하나 이상의 프로세서 및 하나 이상의 시스템에 연결된 제어 버스를 통해, 하나 이상의 시스템의 동작 상태 변경을 개시하기 위해 로컬 제어 메시지를 전송하는 단계를 포함한다.
다른 예에서, 기술의 다양한 양태는 차량과 상호 작용하도록 구성된 장치에 관한 것이며, 상기 장치는, 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 운영 체제에 의해 지원되는 표준 제어 메시지 사이의 확장 가능한 맵핑을 저장하도록 구성된 메모리; 그리고 하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는, 차량의 하나 이상의 시스템을 제어하기 위해 운영 체제를 실행하고 -운영 체제는 표준 제어 메시지를 생성하도록 구성되고, 표준 제어 메시지는 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 명령 세트의 제 1 표현을 포함함-; 확장 가능한 맵핑에 기초하여 표준 제어 메시지를 변환하여 로컬 제어 메시지를 획득하고 -로컬 제어 메시지는 명령 세트의 제2 표현을 포함함-; 그리고 하나 이상의 프로세서 및 하나 이상의 시스템에 연결된 제어 버스를 통해 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 로컬 제어 메시지를 전송하도록 구성된다.
다른 예에서, 기술의 다양한 양태는 실행될 때 차량 헤드 유닛의 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령어를 저장한 비-일시적 컴퓨터 판독가능 저장 매체에 관한 것이며, 상기 동작들은 차량의 하나 이상의 시스템을 제어하기 위해 운영 체제를 실행하는 동작; 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 운영 체제에서 지원하는 표준 제어 메시지 간의 확장 가능한 맵핑을 획득하는 동작 -운영 체제는 표준 제어 메시지를 생성하도록 구성되고, 표준 제어 메시지는 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 명령 세트의 제1 표현을 포함함-; 확장 가능한 맵핑에 기초하여 표준 제어 메시지를 변환하여 로컬 제어 메시지를 획득하는 동작 -로컬 제어 메시지는 명령 세트의 제2 표현을 포함함-; 그리고 하나 이상의 프로세서에 의해 그리고 하나 이상의 프로세서 및 하나 이상의 시스템에 연결된 제어 버스를 통해, 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 로컬 제어 메시지를 전송하는 동작을 포함한다.
다른 예에서, 기술의 다양한 양태는 제1 차량과 인터페이스하는 방법에 관한 것이며, 상기 방법은, 프로세서에 의해 그리고 제1 차량의 하나 이상의 시스템에, 하나 이상의 시스템의 동작 상태 변경을 개시하도록 하는 명령 세트를 발행하는 단계; 명령 세트의 발행에 응답하고 그리고 동작 상태 변경 후, 프로세서에 의해 하나 이상의 시스템으로부터 하나 이상의 차량 파라미터 각각의 동작 상태의 각각의 표시(indications)를 획득하는 단계; 프로세서에 의해 그리고 명령 세트에 대해, 하나 이상의 차량 파라미터의 동작 상태들 사이의 하나 이상의 종속성을 결정하는 단계; 그리고 프로세서에 의해 그리고 하나 이상의 의존성에 기초하여, 제1 차량의 하나 이상의 시스템과 제2 차량의 하나 이상의 시스템 사이의 가변성(variability)을 수용하도록 명령 세트를 적응(조정)시키는 단계를 포함한다.
다른 예에서, 기술의 다양한 양태는 제1 차량과 인터페이스하도록 구성된 장치에 관한 것으로, 헤드 유닛은, 제1 차량의 하나 이상의 시스템의 작동 상태 변경을 개시하도록 명령 세트를 저장하도록 구성된 하나 이상의 메모리; 그리고 하나 이상의 프로세서를 포함하며, 하나 이상의 프로세서는, 제1 차량의 하나 이상의 시스템에 명령 세트를 발행하고; 하나 이상의 시스템으로부터 그리고 명령 세트의 발행에 응답하여 그리고 동작 상태 변경 후, 하나 이상의 차량 파라미터 각각의 동작 상태의 각각의 표시를 획득하고; 명령 세트에 대해, 하나 이상의 차량 파라미터의 작동 상태들 사이의 하나 이상의 종속성을 결정하고; 그리고 하나 이상의 의존성에 기초하여, 제1 차량의 하나 이상의 시스템과 제2 차량의 하나 이상의 시스템 사이의 가변성을 수용하도록 명령 세트를 적응(조정)시키도록 구성된다.
다른 예에서, 기술의 다양한 양태는, 실행될 때 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령어를 저장한 컴퓨터 판독 가능 매체에 관한 것이며, 상기 동작들은, 차량의 하나 이상의 시스템에 하나 이상의 시스템의 작동 상태 변경을 개시하도록 명령 세트를 발행하는 동작; 명령 세트의 발행에 응답하여 그리고 동작 상태 변경 후, 하나 이상의 시스템으로부터, 하나 이상의 차량 파라미터 각각의 동작 상태의 각각의 표시를 획득하는 동작; 명령 세트에 대해, 하나 이상의 차량 파라미터의 작동 상태들 사이의 하나 이상의 종속성을 결정하는 동작; 그리고 하나 이상의 의존성에 기초하여, 제1 차량의 하나 이상의 시스템과 제2 차량의 하나 이상의 시스템 사이의 가변성을 수용하도록 명령 세트를 적응시키도록 하는 동작을 포함한다.
하나 이상의 예의 세부 사항은 첨부 도면 및 이하의 설명에 기재되어있다. 본 개시의 다른 특징, 목적 및 이점은 상세한 설명 및 도면 및 청구 범위로부터 명백 할 것이다.
도 1은 본 개시에서 설명된 기술의 다양한 양태를 수행하도록 구성된 예시적인 차량을 도시하는 블록도이다.
도 2a 및 도 2b는 도 1의 헤드 유닛의 예를 상세하게 나타내는 블록도이다.
도 3은 본 개시에서 설명된 기법들의 다양한 양태들에 따라 명령 세트를 적응시키는 도 1에 도시된 하드웨어 추상화 계층(HAL)의 예를 나타낸다.
도 4는 본 개시에서 설명된 기법들의 다양한 양태들에 따라 다른 명령 세트를 적응시키는 도 1에 도시된 HAL의 예를 나타내는 도면이다.
도 5는 본 개시에 기술된 확장 가능한 맵핑 기술의 다양한 양태를 수행하는 데에 관한 도 1의 HAL의 동작을 설명하기 위한 흐름도이다.
도 6은 본 개시에 기술된 기술의 다양한 양태를 수행하는 데에 관한 도 1의 HAL의 동작을 나타내는 흐름도이다.
도 2a 및 도 2b는 도 1의 헤드 유닛의 예를 상세하게 나타내는 블록도이다.
도 3은 본 개시에서 설명된 기법들의 다양한 양태들에 따라 명령 세트를 적응시키는 도 1에 도시된 하드웨어 추상화 계층(HAL)의 예를 나타낸다.
도 4는 본 개시에서 설명된 기법들의 다양한 양태들에 따라 다른 명령 세트를 적응시키는 도 1에 도시된 HAL의 예를 나타내는 도면이다.
도 5는 본 개시에 기술된 확장 가능한 맵핑 기술의 다양한 양태를 수행하는 데에 관한 도 1의 HAL의 동작을 설명하기 위한 흐름도이다.
도 6은 본 개시에 기술된 기술의 다양한 양태를 수행하는 데에 관한 도 1의 HAL의 동작을 나타내는 흐름도이다.
도 1은 본 개시에 기술된 기술의 다양한 양태를 수행하도록 구성된 예시적인 차량(10)을 도시하는 블록도이다. 도 1의 예에서, 차량(10)은 이하의 설명에서 자동차인 것으로 가정된다. 그러나, 본 명세서에 기술된 기술은 모터 사이클, 버스, 레저용 차량(RV), 세미 트레일러 트럭, 트랙터 또는 농기구, 기차, 비행기, 드론, 헬리콥터, 개인 운송 수단 등과 같은 위치들 사이에서 하나 이상의 탑승자를 운반할 수 있는 임의의 유형의 차량에 적용될 수 있다.
도 1의 예에서, 차량(10)은 프로세서(12), GPU(graphics processing unit) (14) 및 시스템 메모리(16)를 포함한다. 일부 예들에서, 프로세서(12), GPU(14) 및 트랜시버(송수신기) 모듈(도 1에 도시되지 않음)은 집적 회로(IC)로서 형성될 수 있다. 예를 들어, IC는 칩 패키지 내의 프로세싱 칩으로 간주될 수 있고, 시스템 온 칩(SoC) 일 수 있다. 프로세서(12) 및 GPU(14)의 예는 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그램 가능 논리 어레이(FPGA), 또는 이산 논리 회로 또는 다른 등가의 통합을 포함하지만 이에 제한되지는 않는다. 프로세서(12)는 차량(10)의 중앙 처리 장치(CPU)를 나타낼 수 있다. 일부 예들에서, GPU(14)는 그래픽 처리에 적합한 대규모 병렬 처리 능력을 GPU(14)에 제공하는 통합 및/또는 이산 논리 회로를 포함하는 특수화된 하드웨어일 수 있다. 일부 예에서, GPU(14)는 또한 범용 처리 능력을 포함할 수 있고, 범용 처리 태스크(즉, 비-그래픽 관련 태스크)를 구현할 때 범용 GPU(GPGPU)로 지칭될 수 있다. 전용 GPU(14)로 도시되어 있지만, GPU(14)는 기본 회로 보드(예를 들어 소위 "마더 보드")에 통합되거나 그렇지 않으면 프로세서(12)에 통합된 통합 GPU를 나타낼 수 있다.
프로세서(12)는 다양한 유형의 애플리케이션을 실행할 수 있다. 애플리케이션의 예는 웹 브라우저, 전자 메일 애플리케이션, 스프레드시트, 비디오 게임 또는 디스플레이할 보이는 객체를 생성하는 기타 애플리케이션을 포함한다. 시스템 메모리(16)는 하나 이상의 애플리케이션의 실행을 위한 명령어를 저장할 수 있다. 프로세서(12)에 의한 애플리케이션의 실행은 프로세서(12)가 디스플레이될 이미지 컨텐츠에 대한 그래픽스 데이터를 생성하게 한다. 프로세서(12)는 프로세서(12)가 GPU (14)로 전송하는 명령어 또는 명령에 기초하여 추가 처리를 위해 이미지 컨텐츠의 그래픽 데이터를 GPU(14)로 전송할 수 있다.
프로세서(12)는 API(application programming interface)에 따라 GPU(14)와 통신할 수 있다. 또한, 본 개시에서 설명된 기술들은 API에 따라 기능할 필요가 없으며, 프로세서(12) 및 GPU(14)는 GPU(14)와 통신하기 위한 임의의 기술을 이용할 수 있다.
시스템 메모리(16)는 차량(10)을 위한 메모리를 나타낼 수 있다. 시스템 메모리(16)는 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 시스템 메모리(16)의 예는 랜덤 액세스 메모리(RAM), 전기적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM), 플래시 메모리, 또는 명령어 및/또는 데이터 구조의 형태로 원하는 프로그램 코드를 운반 또는 저장하는데 사용될 수 있고 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 다른 매체를 포함하지만 이에 제한되지는 않는다.
일부 양태들에서, 시스템 메모리(16)는 프로세서(12)로 하여금 본 개시에서 언급된 기능들을 수행하게 하는 명령어들을 포함할 수 있다. 따라서, 시스템 메모리(16)는 실행될 때 하나 이상의 프로세서(예를 들어, 프로세서(12))로 하여금 다양한 기능을 수행하게 하는 명령어가 저장된 비-일시적 컴퓨터 판독 가능 저장 매체일 수 있다.
시스템 메모리(16)는 비-일시적 저장 매체이다. "비-일시적"이라는 용어는 저장 매체가 반송파 또는 전파된 신호로 구현되지 않음을 나타낸다. 그러나, "비-일시적"이라는 용어는 시스템 메모리(16)가 이동할 수 없거나 그 내용이 정적인 것을 의미하는 것으로 해석되어서는 안된다. 일례로서, 시스템 메모리(16)는 차량(10)으로부터 제거되어 다른 장치로 이동될 수 있다. 다른 예로서, 시스템 메모리(16)와 실질적으로 유사한 메모리가 자율 주행 차량(10)에 삽입될 수 있다. 특정 예들에서, 비-일시적 저장 매체는 시간이 지남에 따라 (예를 들어, RAM에서) 변경될 수 있는 데이터를 저장할 수 있다.
도 1의 예에 더 도시된 바와 같이, 차량(10)은 디스플레이(20) 및 사용자 인터페이스(22)를 포함할 수 있다. 디스플레이(20)는 이미지가 투사(투영)될 수 있는 임의의 유형의 패시브 반사 스크린, 또는 이미지를 디스플레이 할 수 있는 능동 반사 또는 방출 또는 투과 디스플레이(예: 발광 다이오드(LED) 디스플레이, 유기 LED(OLED) 디스플레이, 액정 디스플레이(LCD) 또는 기타 유형의 활성 디스플레이)를 나타낼 수 있다. 단일 디스플레이(20)를 포함하는 것으로 도시되어 있지만, 차량(10)은 차량(10)의 캐빈 전체에 걸쳐 위치될 수 있는 다수의 디스플레이를 포함 할 수 있다. 일부 예에서, 패시브 버전의 디스플레이(20) 또는 특정 유형의 활성 버전의 디스플레이(예를 들어, OLED 디스플레이)는 좌석, 테이블, 지붕 라이너, 바닥재, 창문(또는 창문이 없거나 창문이 거의없는 차량, 벽) 또는 차량 객실의 다른 측면에 통합될 수 있다. 디스플레이(20)가 패시브 디스플레이를 나타낼 때, 디스플레이(20)는 또한 패시브(passive) 디스플레이(20) 상에 이미지를 투영하거나 그렇지 않으면 재생성할 수 있는 프로젝터 또는 다른 이미지 투영 장치를 포함할 수 있다. 또한, 디스플레이(20)는 실제 계기판(속도, 회전, 엔진 온도 등을 나타냄)을 실질적으로 나타내는 드라이버 측 대시 보드에 통합된 디스플레이를 포함할 수 있다.
디스플레이(20)는 또한 자율 차량(10)과 유선 또는 무선 통신하는 디스플레이를 나타낼 수 있다. 디스플레이(20)는 예를 들어 랩탑 컴퓨터, 헤드-업 디스플레이, 헤드 마운트 디스플레이, 증강 현실 컴퓨팅 장치 또는 디스플레이("스마트 글래스"와 같은), 가상 현실 컴퓨팅 장치 또는 디스플레이, 휴대 전화(소위 "스마트 폰" 포함), 태블릿 컴퓨터, 게임 시스템 또는 차량(10)에 통합된 디스플레이의 연장 또는 그 대신에 작용할 수 있는 다른 유형의 컴퓨팅 장치와 같은 컴퓨팅 장치를 나타낼 수 있다.
사용자 인터페이스(22)는 사용자가 차량(10)의 다양한 기능을 제어하기 위해 인터페이스할 수 있는 임의의 유형의 물리적 또는 가상 인터페이스를 나타낼 수 있다. 사용자 인터페이스(22)는 물리적 버튼, 노브, 슬라이더 또는 다른 물리적 제어 도구를 포함할 수 있다. 사용자 인터페이스(22)는 또한 차량(10)의 탑승자가 터치 감지 스크린을 통해 또는 터치리스 인터페이스를 통해 가상 버튼, 노브, 슬라이더 또는 다른 가상 인터페이스 요소와 상호 작용하는 가상 인터페이스를 포함할 수 있다. 탑승자는 사용자 인터페이스(22)와 인터페이스하여 차량(10) 내의 기후(climate), 차량(10)에 의한 오디오 재생, 차량(10)에 의한 비디오 재생, 차량(10)을 통한 전송(핸드폰 호출과 같은), 또는 차량(10)에 의해 수행되는 기타 다른 동작을 제어할 수 있다.
사용자 인터페이스(22)는 또한 차량(10)에 통합된 디스플레이의 확장으로서 또는 대신하여 디스플레이(20)로 확장된 인터페이스를 나타낼 수 있다. 즉, 사용자 인터페이스(22)는 HUD(heads-up display), 증강 현실 컴퓨팅 장치, 가상 현실 컴퓨팅 장치 또는 디스플레이, 태블릿 컴퓨터, 또는 상기 열거된 다른 유형의 확장 디스플레이 중 임의의 다른 것을 통해 제시된 가상 인터페이스를 포함할 수 있다.
차량(10)의 컨텍스트에서, 사용자 인터페이스(22)는 차량(10)을 수동 또는 반-수동 제어하기 위해 사용되는 물리적 요소를 더 나타낼 수 있다. 예를 들어, 사용자 인터페이스(22)는 차량(10)의 주행 방향을 제어하기 위한 하나 이상의 스티어링 휠, 차량(10)의 주행 속도를 제어하기 위한 하나 이상의 페달, 하나 이상의 핸드 브레이크 등을 포함할 수 있다.
도 1의 예에서, 프로세서(12), GPU(14), 시스템 메모리(16), 디스플레이(20) 및 UI(22)는 자동차 컨텍스트에서 헤드 유닛(24)(즉, "차량 헤드 유닛(24)")으로 지칭되는 것을 적어도 부분적으로 집합적으로 나타낼 수 있다. 헤드 유닛(24)은 차량(10)의 다양한 양태와 인터페이스할 수 있고 및/또는 차량(10)에 관한 정보 및/또는 탑승자 및/또는 탑승자에게 엔터테인먼트를 제공할 수 있는 임의의 통합 또는 별도의 컴퓨팅 장치를 나타낼 수 있다(이러한 헤드 유닛은 "인포테인먼트 유닛" 또는 "인포테인먼트 시스템"으로 지칭될 수 있음).
도 1의 예에 더 도시된 바와 같이, 차량(10)은 다수의 상이한 차량 시스템(26A-26N)("차량 시스템(26)")을 포함할 수 있다. 차량 시스템 (26)은 난방, 환기, 공조(HVAC) 시스템, 온도 조절 시스템(예를 들어, HVAC 시스템 외에 가열 및/또는 냉각 시트를 포함할 수 있음), 조명 시스템(내부 및/또는 외부 조명 제공), 좌석 제어 시스템(탑승자 좌석의 위치를 조정함), 미러 제어 시스템(백미러, 사이드 미러, 바이저 미러 등을 포함하여 내부 및/또는 외부 미러를 제어함), 앞 유리 와이퍼 제어 시스템, 엔터테인먼트 시스템(무선 재생, 비디오 재생, 이미지 표시 등을 제어함), 안전 보조 시스템(주차 지원, 백업 지원 등을 제어함), 선-문 루프(sun-/moon-roof) 제어 시스템(선 루프 및/또는 문 루프 제어용), 헤드 유닛(24)과 같은 헤드 유닛을 통해 제어할 수 있는 임의의 다른 유형의 차량 시스템을 포함한다. 차량 시스템(26)의 예는 전술한 차량 시스템(26) 중 임의의 예를 제어할 수 있는 전자 제어 유닛(ECU)을 포함할 수 있다.
헤드 유닛(24)은 하나 이상의 차량 시스템(26)의 작동 상태를 변경하기 위해 하나 이상의 명령(도 1에 "CS 25A-25N"으로 표시되는 "명령 세트", 총칭하여 "CS 25"라고 함)을 차량 시스템(26)에 발행(issue)할 수 있다. 동일한 제조업체의 다른 차량 모델뿐만 아니라 다른 제조업체의 차량 모델 사이에 다양한 기능의 차량 시스템(26)(기능 및 작동 측면 모두)을 감안할 때, 헤드 유닛(24)은 명령 세트의 수동 구성이 시간 소모적이고 비싸고 오류가 발생하기 때문에 일반적으로 최고 비율(highest percentage)의 차량 시스템(26)을 제어하는 명령 세트(25)를 출력하도록 구성될 수 있다.
또한, 헤드 유닛(24)은 CAN(control area network) 프로토콜과 같은 제어 버스 프로토콜에 따라 명령 세트를 출력하도록 구성된 운영 체제("OS")(30)를 실행할 수 있다. 운영 체제(30)와 같은 헤드 유닛의 운영 체제는 CAN 프로토콜 또는 다른 표준(예를 들어, 공개 또는 독점) 제어 버스 프로토콜을 통해 차량 시스템(26)과 통신하도록 정적으로 구성될 수 있다(즉, "하드 코딩됨(hard coded)"). 즉, 제조업체는 운영 체제가 제어 버스를 통해 차량 시스템(26) 각각과 인터페이스할 수 있도록 운영 체제를 수동으로 프로그래밍할 수 있다(이는 설명의 편의를 위해 도 1의 예에 도시되지 않음).
각각의 차량 시스템(26)과 올바르게 인터페이스하도록 운영 체제를 프로그래밍하는 것은 시간 소모적일 수 있고, 차량 시스템(26)과의 정확한 상호 운용성을 보장하기 위해 상당한 테스트를 요구할 수 있다. 예를 들어, 제조업체는 다양한 벤더로부터 차량 시스템(26)을 공급할 수 있으며, 이는 차량 특성의 상태를 통신하고 다수의 상이한 제어 버스 프로토콜에 따라 제어되는 차량 시스템(26)을 제공할 수 있다. 제조업체(제조자)는 단일 모델 내에서도 상이한 제어 버스 프로토콜(예를 들어, 동일한 모델의 상이한 트림들 간의)에 따라 통신하는 차량 시스템(26)을 소싱해야 할 수 있다. 결과적으로, 제조업체는 둘 이상의 상이한 버전의 운영 체제를 생성할 수 있으며, 이들 각각은 상이한 제어 버스 프로토콜을 통해 차량 시스템(26)과 통신하도록 개별적으로 하드 코딩된다. 또한 제어 버스 프로토콜을 변경하면 제조업체에서 운영 체제를 업데이트하여 최신 버전의 제어 버스 프로토콜을 지원하도록 운영 체제를 하드 코딩하며, 이는 제조업체가 새로운 또는 변경되는 제어 버스 프로토콜을 지원하는 능력을 잠재적으로 저하시킬 수 있으며, 이로써 차량(10)의 안전성, 편의성 및 다른 측면을 개선하는 업그레이드를 차량(10)이 수신하는 것을 잠재적으로 방지한다.
본 개시에 기술된 기술의 다양한 양태에 따르면, 차량 컴퓨팅 장치(예를 들어, 하나의 예시적인 헤드 유닛(24)와 같은)는 차량 시스템 버스("제어 버스"로 지칭될 수 있음)에 대한 확장 가능한 매핑을 적용(apply)할 수 있다. 위에서 언급했듯이, 차량 시스템 버스는 헤드 유닛(24)과 차량의 하나 이상의 시스템(예를 들어, 차량 시스템(26)) 사이에서 명령 세트(command set)("CS")25A-25N("CS 25")가 전달되는 상이한 독점 및 공개 표준을 따를 수 있다. 차량 헤드 유닛(24)은 균일한 명령 세트(즉, 표준 명령 세트)를 지원하는 운영 체제(30)를 실행할 수 있는 반면, 차량 시스템 버스(26)는 복수의 로컬 제어 버스 프로토콜의 특정 로컬 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지를 통신(전달)할 수 있다. 특정 로컬 제어 메시지를 지원하기 위한 하드 코드 운영 체제(30) 대신에, 본 기술의 다양한 양태는 차량 헤드 유닛(24)이 로컬 제어 버스에 의해 지원되는 특정 로컬 제어 버스 프로토콜에 따르는 표준 명령 세트와 로컬 명령 세트 사이의 확장 가능한 맵핑(31) ("EM 31")을 획득할 수 있게 할 수 있다. 로컬 제어 메시지는 DBC 포맷 또는 카약 CAN 정의(KCD) 포맷 중 하나에 따라 포맷될 수 있다.
동작에서, 프로세서(12)는 OS(30)를 실행하여 하나 이상의 차량 시스템(26)을 제어할 수 있으며, 여기서 OS(30)는 표준 명령 세트를 지원할 수 있다. OS(30)는 공통 또는 표준 제어 버스 프로토콜에 따라 하나 이상의 메시지로서 표준 명령 세트를 출력할 수 있으며, 이들 메시지는 "표준 제어 메시지"로 지칭될 수 있다. 프로세서(12)는 시스템 메모리(16)로부터 EM(31)을 얻을 수 있으며, 이는 로컬 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 OS(30)에 의해 지원되는 표준 제어 메시지 사이의 매핑을 정의할 수 있다.
일부 예들에서, 프로세서(12)는 하드웨어 추상화 계층(HAL)(28)을 실행하여 OS(30)와 차량 시스템(26)(제어 버스를 포함하며, 이는 도 1의 예에 도시되지 않음) 사이에 소프트웨어 심 계층(software shim layer)으로 지칭될 수 있는 것을 제공할 수 있다. 다시 말해서, HAL(28)은 기본(underlying) 헤드 유닛 운영 체제(30)("OS 30")를 확장하도록 구성된 유닛을 나타낼 수 있다. 프로세서(12)는 HAL(28)과 관련된 하나 이상의 스레드를 포함하는, OS(30)를 나타내는 하나 이상의 스레드를 실행할 수 있다.프로세서(12)는 OS(30)의 하나 이상의 스레드와 관련된 하나 이상의 명령의 형태로 시스템 메모리(16)로부터 OS(30)(HAL 28 포함)를 검색하여, 명령을 실행 전에 로컬 메모리예를 들어, 설명의 편의를 위해 도 1의 예에 도시되지 않은 계층 1(L1), 계층 2 (L2) 및/또는 계층 3(L3) 캐시)에 로딩할 수 있다. 이와 같이, HAL(28) 및 OS(30)는 프로세서(12)에 의한 실행을 나타내기 위해 점선을 사용하여 프로세서(12) 내에 포함되는 것으로 도시되는 한편, HAL(28) 및 OS(30)의 장기 저장을 나타내기 위해 실선을 사용하여 시스템 메모리(16)에도 포함되는 것으로 도시되어있다. 프로세서(12)에 의해 실행되는 것으로 도시되어 있지만, HAL(28)은 전용 회로 또는 하드웨어 로직을 사용하여 구현될 수도 있다.
HAL(28)은 OS(30)가 차량 시스템(26)과 인터페이스할 수 있도록 소프트웨어 심층(shim layer)을 제공할 때 EM(31)을 획득할 수 있다. 이와 같이, OS(30)는 OS(30)에 의해 지원되는 제어 버스 프로토콜을 따르는 표준 제어 메시지로서 명령 세트(25)를 생성할 수 있다. HAL(28)은 표준 제어 메시지를 수신하고 (또는, 일부 경우에, 인터셉트), EM(31)에 기초하여 OS(30)가 그러한 변환(이 점에서 OS(30)의 퍼스팩티브(perspective)을 투명하게 형성)을 요청하지 않고, 로컬 제어 버스에 따르는 로컬 제어 메시지를 획득하도록 표준 제어 메시지를 변환(translate)할 수 있다.
EM(31)은 표준 제어 메시지와 로컬 제어 메시지 사이의 바이트 단위(byte-wise) 매핑을 정의할 수 있다. 즉, EM(31)은 표준 제어 메시지의 각 바이트에 대한 매핑을 정의할 수 있고, 메시지 내에서 각각의 바이트가 재배열되는 방법 및/또는 로컬 제어 버스 프로토콜에 따라 값(예: 제어 메시지 식별자용)이 변환되는 방법을 정의할 수 있다. HAL(28)은 하나 이상의 차량 시스템(26)의 작동 상태 변경을 개시하기 위해 명령 세트(25) 중 하나와 같은 명령 세트의 제1 표현을 포함할 수 있는 표준 제어 메시지를 수신할 수 있다.
HAL(28)은 표준 제어 메시지 내에 EM(31)을 적용하여 표준 제어 메시지 내의 바이트의 값을 재배열하거나 달리 변환하며, 이에 따라 표준 제어 메시지를 변환하여 제어 버스 프로토콜에 따르는 로컬 제어 메시지를 획득한다. 로컬 제어 메시지는 그와 같이 명령 세트의 제2 표현을 포함할 수 있다. HAL(28)은 프로세서(12) 및 차량 시스템(26)에 연결된 제어 버스를 통해, 로컬 제어 메시지를 전송하여 하나 이상의 차량 시스템(26)의 동작 상태 찬스(chance)를 개시할 수 있다.
HAL(28)은 마찬가지로 차량 시스템(26)으로부터 동작 상태(27A-27N)(도 1에 "ST 27A-27N"으로 도시된 "동작 상태(27)")를 포함하는 로컬 제어 메시지를 수신(또는 일부 경우 OS(30) 및 차량 시스템(26)의 퍼스팩티브에서 투명하게 인터셉트( transparently intercept))할 수 있다. 로컬 제어 메시지는 로컬 제어 버스 프로토콜을 따를 수 있다. HAL(28)은 EM(31)에 기초하여 로컬 제어 메시지를 변환하여 표준 제어 메시지를 획득할 수 있으며, 이는 다시 OS(30)에 의해 지원된다. 위에서 언급한 바와 같이, HAL(28)은 (즉, 심 소프트웨어 계층 제공의 일부로서) 기본 하드웨어의 추상화의 일부로서 이 변환을 제공할 수 있으며, 다양한 상이한 하드웨어 플랫폼을 통해 OS(30)를 보다 간단하게 개발 및 설치할 수 있다. HAL(28)은 표준 제어 메시지를 OS(30)에 제공할 수 있으며, 이는 이전에 전송된 표준 제어 메시지에 의해 요청된 동작 상태 변경의 확인을 획득할 수 있다.
또한, 헤드 유닛(24)은 차량 시스템(26)을 제어하기 위한 명령 세트(25)를 적응(조정)시킬 수 있다. 전술한 바와 같이, 헤드 유닛(24)은 명령 세트(25)와 차량 시스템(26)의 동작 상태(27) 변경 사이의 연관성(29)("ASSOC 29")을 결정하는 HAL(28)을 구현하도록 구성될 수 있다. 이들 연관성(29)에 기초하여, HAL(28)은 차량 시스템들(26)의 추가 기능(하나 이상의 동작 상태들(27)에 의해 표현됨)을 노출시키기 위해 명령 세트들(25)을 적응(조정)(adapt)시킬 수 있다. 이와 같이, 이 기술들은 HAL(28)이 특정 모델 및 제조업체에 특정한 명령 세트(25)를 자동으로 결정할 수 있게 하여, 명령 세트(25)의 수동 구성 및 수반되는 시간, 비용 및 오류 가능성을 회피할 수 있다. HAL(28)은 차량 시스템(26)의 다양한 동작 상태 변경을 달성하기 위해 표준 제어 메시지와 로컬 제어 메시지 사이의 다양한 매핑을 정의하는 EM(31)의 기초로서 연관성(29)을 사용할 수 있다.
전술한 바와 같이, HAL(28)은 하나 이상의 차량 시스템(26)의 동작 상태를 변경하기 위해 탑승자로부터 디스플레이(20)에 의해 제시되는 GUI를 통해 수신된 입력에 응답하여 OS(30)로부터의 출력을 처리하도록 구성된 유닛을 나타낼 수 있다. HAL(28)은 또한 동작 상태(operational states)(27)와 같은 다른 입력에 응답하여 자동으로 생성되는 OS(30)로부터의 출력을 처리할 수 있다. 출력은 동작 상태 변경을 수행하기 위해 OS(30)에 의해 발행된 명령 세트(25)를 참조할 수 있다. OS(30)는 일련의 "SET" 명령으로서 명령 세트(25)를 발행(issue)할 수 있으며, 이들 각각은 차량 시스템(26) 중 하나, 차량 시스템(26) 중 하나의 특성 및 지정(특정)된 특성에 대한 값을 지정한다. SET 명령은 특정 차량 시스템(26) 중 특정된 하나가 유지될 동작 상태를 지정할 수 있다.
HAL(28)은 또한 차량 시스템(26)의 다양한 특성의 현재 동작 상태(27)를 나타내는 차량 시스템(26)으로부터의 입력을 처리할 수 있다. OS(30)는 현재 동작 상태(27)를 나타내는 입력을 제공함으로써 차량 시스템(26)이 응답하는 다양한 특성에 관한 차량 시스템(26)을 쿼리하는 "GET" 명령을 출력할 수 있다. "SET" 명령과 유사하게, "GET" 명령은 각각 차량 시스템(26) 중 하나 및 값에 대한 쿼리가 지시되는 차량 시스템(26) 중 하나의 특성을 특정(지정)할 수 있다. 일부 예에서, 차량 시스템(26)은 "SET" 명령에 응답하여 다양한 동작 상태 변경을 수행한 후 입력에 응답할 수 있다. HAL(28)은 연관성(29)을 결정하기 위해 출력 및 입력을 처리할 수 있다.
설명을 위해, 차량 시스템(26A)은 HVAC 시스템을 나타낸다고 가정한다. 차량의 점화 상태(ignition state)와 HVAC 시스템의 기본 환경 제어 장치(ECU)에 따라 다양한 HVAC 시스템이 다르게 동작할 수 있다. 또한, HVAC 시스템(26A)의 다양한 특성이 HVAC 시스템(26A)의 다른 특성 및 잠재적으로 차량 시스템(26B-26N)의 다른 특성과 상호 작용할 수 있다는 것을 고려한다. 예를 들어, HVAC 온도를 설정할 때, HVAC 시스템(26A)은 팬의 속도를 자동으로 변경할 수 있다. HAL(28)은 HVAC 온도를 설정하기 위해 명령 세트(25A)를 차량 시스템(26)에 출력함으로써 발생하는 동작 상태(27A)로 표시되는 HVAC 시스템(26A)의 다양한 차량 특성들 간의 연관성(29)을 결정할 수 있다.
HAL(28)은 다음에 연관성(29)에 기초하여 명령 세트(25)를 조정(adapt)할 수 있다. 상기 예에서, HAL(28)은 HVAC 온도 설정과 팬 속도 자동 변경 사이의 의존성을 식별하는 연관성(29)에 기초하여, HVAC 시스템(26A)의 팬 속도를 이전에 설정된 팬 속도 값으로 설정하는 추가 명령을 포함하도록 명령 세트(25A)를 조정할 수 있다(이는 탑승자 선호도에 기초하여 또는 탑승자가 HVAC 시스템(26A)의 팬 속도를 미리 설정한 결과로 구성될 수 있다). 이러한 방식으로, HAL(28)은 연관성(29)(“종속성 29”라고도 함)에 기초하여, 차량(10)의 차량 시스템(26)과 제2 차량의 차량 시스템 사이의 가변성을 수용하도록 명령 세트(25)를 조정할 수 있다.
HVAC 컨텍스트 외부의 파라미터들 간의 종속성의 다른 예는 도어 또는 점화 상태와 관련하여 (헤드 유닛을 포함하여 스위치 또는 다른 사용자 인터페이스를 통해) 직접 제어 가능할 수 있는 내부 조명(돔 조명, 독서 조명, 플로어 조명 등)을 포함할 수 있다. HAL(28)은 도어의 상태와 운전자 도어가 열렸을 때 라이트가 켜지는 것 간의 종속성을 식별할 수 있으며, 이로 인해 HAL(28)은 라이트가 운전자의 영역을 조명하는데 유용하다고 결정할 수 있다.
와이퍼 및 와셔와 관련하여 다른 예가 있을 수 있으며, 여기서 HAL(28)은 와셔가 활성화될 때 와이퍼가 특정 와이퍼 속도로 설정되어 기존 와이퍼 속도를 무시할 수 있다고 결정할 수 있다. 또 다른 예는 ADAS(Advanced Driver Assistance Systems)와 관련하여, HAL(28)은 차량(10)이 특정 속도로 주행할 때 또는 차량(10)이 특정 상태에 있을 때(예를 들어, 후진하면 ADAS는 후면 카메라를 활성화하고 후면 카메라로 캡처한 이미지를 헤드 유닛을 통해 디스플레이함)만 ADAS의 다양한 상태가 이용 가능하다는 것을 식별할 수 있다. HAL(28)은 파라미터를 결정한 다음 조명, 와이퍼 및 와셔, ADAS, 차량 상태 및/또는 속도에 대한 모든 다양한 의존성을 식별할 수 있다.
또한, HAL(28)은 차량(10)이 시동걸릴 때 이용 가능한 파라미터들의 목록(리스트)을 결정할 수 있다. 일례로서, HAL(28)은 차량의 시동이 꺼질 때 일부 차량이 자동으로 헤드 라이트를 끌 수 있기 때문에 점화(시동) 장치가 꺼져있을 때 차량(10)이 헤드 라이트를 작동시킬 수 있는지를 결정할 수 있다. HAL(28)은 다양한 점화 상태(예를 들어, 오프, 액세서리, 온 등)에 대한 다양한 파라미터 사이의 의존성을 결정할 수 있다. HAL(28)은 또한 차량(10)의 다양한 상태(예를 들어, 기어 및/또는 이동 또는 주차 및/또는 이동하지 않음)에 대한 좌석 위치 사이의 종속성(의존성)을 결정할 수 있다.
이와 관련하여, HAL(28)은 변화의 기록을 생성하기 위해 동작 상태들(27) 사이의 변경을 처리하고, 동작 상태들(27)을 분석(파싱)하여 속성들 사이의 인과관계("파라미터"라고도 함, 예를 들어 파라미터 A가 변경되면 파라미터 B와 C도 변경됨)를 찾고, 동작 상태(27)의 변경들(changes) 사이의 인과관계(즉, 종속성)를 식별하는 연관성(29)을 생성한다. 일부 예에서, HAL(28)은 연관성(29)을 테이블, 링크된 리스트, 그래프, 트리 또는 임의의 다른 적절한 데이터 구조로서 저장할 수 있다. 다른 예에서, HAL(28)은 연관성(29)을 식별하고 연관성(29)을 처리하는 상이한 버전의 명령 세트(25)를 동적으로 생성하기 위해 기계 학습을 사용하여 모델을 훈련(학습)시킬 수 있다. 이와 같이, HAL(28)은 의존성(종속성)(29)을 결정하기 위해, 차량 파라미터의 명령 세트(25) 및 동작 상태(27)에 의해 개시된 동작 상태 변경과 관련하여 기계 학습을 수행할 수 있다.
HAL(28)은 이러한 의존성(29)을 식별 할 때, 의존성(29)에 의해 식별된 특정 동작 상태 변경에 대해 OS(30)에 의해 지원되는 표준 제어 메시지와 동작 상태 변경을 호출하는데 사용되는 로컬 제어 버스 프로토콜을 따르는 로컬 제어 메시지 사이의 매핑(31)을 정의할 수 있다. 맵핑은 전술한 변환(translation)을 가능하게 할 수 있으며, 이러한 맵핑은 EM(31)이 OS(30), 제어 버스 및/또는 차량 시스템(26) 중 하나 이상에 대한 업데이트로 인해 시간이 지남에 따라 변경될 수 있다는 점에서 확장 가능하다. 일부 예에서, EM(31)을 정의하는 HAL(28) 대신에, 제조업체는 표준 제어 메시지와 로컬 제어 메시지 사이의 변환을 수행하기 위해 HAL(28)에 의해 실행될 수 있는 파일 또는 스크립트를 정의하여 EM(31)을 수동으로 프로그래밍 할 수 있다.
이와 같이, 기술의 다양한 양태는 제조업체가 EM(31)을 정의할 수 있게 하며, EM(31)은 OS(31), 제어 버스 및/또는 차량 시스템(26) 중 하나 이상에 대한 업데이트를 수용하도록 시간이 경과함에 따라 업데이트될 수 있다. EM(31)은 표준 명령 세트와 로컬 명령 세트 사이의 변환을 정의할 수 있으며, 차량 헤드 유닛은 표준 명령 세트와 로컬 명령 세트 사이에서 자동 변환을 적용할 수 있다. 로컬 명령 세트만을 지원하기 위해 운영 체제 내에서 이러한 매핑을 정적으로 하드 코딩하는 대신 EM(31)만 정의하면 되므로, 기술의 다양한 양태는 차량 헤드 유닛 운영 체제(예: OS(30))가 개발될 수 있는 속도를 개선하고, 새로운 또는 변경되는 제어 버스 프로토콜과의 상호 운용성을 개선할 수 있고, 그렇지 않으면 차량 헤드 유닛 운영 체제의 개발을 향상시키면서 로컬 명령 세트 측면에서 완전한 기능 지원을 제공하는 운영 체제의 빠른 배치를 수용할 수 있다.
또한, 기술의 다양한 양태는 헤드 유닛(24) 자체의보다 효율적인 작동을 촉진할 수 있다. 즉, HAL(28)은 명령 세트(25)와 동작 상태(27)의 변경(변화) 사이의 연관성(29)을 결정하고, 연관성(29)에 기초하여 차량 시스템(26)이 동작 상태(27)의 변화를보다 효율적으로 발생시키는 방식으로 명령 세트(29)를 적응(조정)시킬 수 있다. 다수의 모델 및 제조업체에 의해 선택된 차량 시스템(26)에 일반적이지만, 일부 차량 시스템(26)에 대해 비효율적(비록 기능적일 수 있음)일 수 있는 명령 세트(25)를 발행하는 대신, 이 기술들은 HAL(28)이 (일반 명령 세트에 비해)보다 효율적으로 차량 시스템(26)이 동작 상태(27) 변화를 수행하게 하는 명령 세트(25)를 적응적으로(adaptively) 생성하게 할 수 있고, 따라서 프로세서 주기를 절약하고 메모리 대역폭과 그에 사용되는 기본 메모리 자원을 보존하고 결과적으로보다 효율적인 전력 소비를 촉진한다.
HVAC 시스템과 관련하여 설명되었지만, 이 기술은 다른 시스템과 관련하여 적용될 수 있다. 일부 가능한 예는 헤드 유닛(24)이 도어 제어 또는 점화 상태와 관련하여 직접 제어할 수 있는 내부 조명 시스템(예 : 돔등(돔 조명), 독서 등(조명) 등)을 포함한다. 헤드 유닛(24)은 운전자 도어가 열렸을 때 라이트가 켜지는 것으로 결정하고, 그에 따라 라이트가 운전자 영역을 조명하는데 유용하다고 결정할 수 있다. 다른 예로서, 헤드 유닛(24)은 윈도우용 와이퍼와 와셔 사이의 연관성을 식별할 수 있다. 헤드 유닛(24)은 특정 차량 상태 및/또는 속도와 ADAS(Advanced Driver Assistance Systems) 모드(특정 ADAS 모드는 특정 자동차 상태 및/또는 속도에서만 이용 가능할 수 있음) 간의 연관성을 식별할 수 있다.
도 2a 및 도 2b는 도 1의 헤드 유닛의 예를 상세하게 나타내는 블록도이다. 도 1의 예에 도시된 헤드 유닛(24A) 도 1에 도시된 헤드 유닛(24)의 일례이다. 헤드 유닛(24A)은 자동차 서비스(200)를 위한 실행 환경을 제공하는 OS(30)를 실행할 수 있다.
헤드 유닛(24A)은 또한 2개의 상이한 HAL들(28A 및 28B)을 실행할 수 있다. 본 개시에서 설명된 기법들의 다양한 양태들에 따라, 차량 HAL(28A)은 표준 제어 메시지와 로컬 제어 메시지 사이에서 EM(31)에 기초하여 변환을 수행할 수 있는 변환(translation) 서비스(202)를 실행할 수 있다. CAN(Controller Area Network) 버스 HAL(28B)는 로컬 제어 메시지를 범용 시스템 버스(USB) 신호로, USB 신호를 로컬 제어 메시지로 변환하여 하드웨어와 OS(30) 사이에 또 다른 추상화 계층(abstraction layer)을 제공하도록 구성된 유닛을 나타낼 수 있다.
헤드 유닛(24A)은 또한 하나 이상의 프로세서, 고정 논리 회로, 전용 신호 프로세서, 전용 제어 프로세서(전용 제어 버스 프로세서 등), USB CAN 인터페이스(208) 및 게이트웨이(210)를 노출시키는 것 등과 함께 물리적 USB 인터페이스인 USB(206)를 포함할 수 있다. USB CAN 인터페이스 (208)는 USB 포트를 통해 CAN (211)에 대한 액세스를 제공하도록 구성된 유닛을 나타낼 수있다. USB CAN 인터페이스(208)는 USB 포트를 통해 CAN(211)에 대한 액세스를 제공하도록 구성된 유닛을 나타낼 수 있다. 게이트웨이(210)는 CAN(211)에 대한 액세스를 제어하는 제어 버스 게이트웨이를 노출시키도록 구성된 유닛을 나타내고, 특정 조건이 존재할 때(예: 잘못된 CAN 신호 삭제 등) CAN(211)에 대한 액세스를 제한할 수 있는 방화벽 또는 다른 유형의 장치를 나타낼 수 있다.
전술한 바와 같이, 변환 서비스(202)는 OS(30)로부터 표준 제어 메시지를 수신할 수 있으며, 이는 (OS(30)에 의해 제공되는 실행 환경에서 실행되는 하나 이상의 애플리케이션과 같은) 자동차 서비스(200) 또는 다른 곳에서 시작될 수 있다. 변환 서비스(202)는 매핑을 저장할 수 있는 파일 또는 다른 데이터 구조를 나타낼 수 있는 EM(31)을 획득할 수 있다. EM(31)의 예는 다음과 같다.
vehicleProperty {
vhalPropertyId: WINDOW_MOVE
access: READ_WRITE
canSignal {
area: ROW_1_LEFT
messageId: 0x124
bit: 0
size: 4
conversionEnum { // no-op
canValue: 0
}
conversionEnum {
vhalValue: 2 // fast open
canValue: 0xA
}
conversionEnum {
vhalValue: -2 // fast close
canValue: 0xB
}
}
canSignal {
area: ROW_1_RIGHT
messageId: 0x124
bit: 4
size: 4
conversionEnum {
...
}
}
}
위의 예에서, EM(31)은 표준 명령 "vehicleProperty"로 시작하며, 다음은 차량 속성(동작 상태를 나타내는 또 다른 방법)과 관련이 있음을 나타낸다. 다음 라인은 차량 HAL(VHAL) 속성 식별자("vhalPropertyId")를 윈도우 이동( "WINDOW_MOVE")으로 지정하여 파워 윈도우를 열고 닫는 데 필요한 매핑을 정의한다. WINDOW_MOVE는 표준 식별자의 한 예를 나타낼 수 있으며 차량에 따라 다를 수 있다. 세 번째 라인은 액세스를 읽기/쓰기("READ_WRITE")로 지정하고 윈도우 이동 속성이 (예: GET 명령으로) 빨간색 및 (예: SET 명령으로) 쓰기 가능함을 나타내는 액세스를 허용한다. 차량의 각각의 동작 상태는 이러한 방식으로 차량 속성 식별자 및 액세스 레벨로 정의될 수 있다.
차량 속성 및 액세스를 식별하는 각 동작 상태 오프닝 명령문(opening statements)후, EM(31)은 차량에서 각각의 적용 가능한 영역에 대한 매핑을 정의할 수 있다. 매핑은 CAN 신호("canSignal")로 시작하고 오프닝 중괄호로 시작한다. 각각의 CAN 신호는 각각의 영역을 지정할 수 있으며, 여기서 첫 번째 매핑은 영역을 왼쪽의 첫 번째 행("ROW_1_LEFT”)으로 식별하며, 이는 프론트 드라이버 측 윈도우(창)(좌측 주행 차량에서)을 나타낸다. 다음으로, 프론트 드라이버 측 윈도우 맵핑은 해당 CAN 메시지(이 예에서는 0x124)에 사용되는 메시지 식별자인 메시지 식별자(“messageId”)를 지정한다. 메시지 뒤에는 비트(0으로 설정) 및 크기(4로 설정)가 있으며, 이는 표준 제어 메시지를 로컬 제어 메시지(이 예에서는 CAN 메시지라고 함)로 변환할 때 설정해야 하는 CAN 특정 구문(syntax)이다.
다음은 세 개의“conversionEnum”명령문으로, 각각은 여(오프닝)는 중괄호와 닫는 중괄호로 정의된다. "conversionEnum"은 표준 제어 메시지 열거(비-동작 왼도우 이동 지정)와 CAN 메시지(비-동작 윈도우 이동 지정) 사이에 컨버전(conversion)이 있음을 나타낸다. 이 예제에서 컨버전은 CAN 값이 0으로 표준 제어 메시지에 추가되며, 이는 비동작 윈도우 이동에 대한 VHAL 값("vhalValue")을 포함하지 않는다. 다음 "conversionEnum"은 패스트 오픈(fast open)를 위한 "vhalValue"(2)를 패스트 오픈를 수행하기 위한 "canValue"(0xA)로의 컨버전을 지정한다. 세 번째 conversionEnum은 패스트 클로즈(fast close)의 vhalValue(negative two)를 패스트 클로즈를 수행하기 위한 canValue((0xB))로 대체한다.
EM(31)은 세 번째 컨버전에 이어, 첫 번째 CAN 신호 명령문과 동일한 메시지 식별자를 가지지만 4 비트와 크기 4를 지정하여 전면 좌측 승객석 윈도우(“ROW_1_RIGHT”)의 영역을 지정한다. EM(31)은 설명의 편의를 위해 도시되지 않은, 자동차의 다른 영역에 대한 다수의 conversionEnum 명령문 및 가능한 추가 CAN 신호 명령문을 포함할 수 있다.
변환(Translation) 서비스(202)는 동작 상태 변화를 WINDOW_MOVE, ROW_1_LEFT, 및 vhalValue 2로 정의하여, 전면 우측 운전자 측 윈도우의 빠른 개방(패스트 오픈)을 하나 이상의 바이트 시퀀스로서 정의하는 표준 제어 메시지를 수신할 수 있다. 변환 서비스(202)는 WINDOW_MOVE, ROW_1_LEFT를 0x124의 메시지 ID, 0과 4인 비트 및 크기, 0xA의 CAN 값으로 대체함으로써 CAN 메시지를 생성할 수 있다. 마찬가지로, 변환 서비스(202)는 운전자(드라이버) 우측 윈도우의 빠른 개방을 지정하는 CAN 메시지를 컨버팅한다(예를 들어, 0x124의 메시지 ID, 0과 4인 비트 및 크기, 0xA의 CAN 값을 "WINDOW_MOVE, ROW_1_LEFT 및 vhalValue 2"로 대체함).
EM(31)의 다른 예(온도는 섭씨)가 아래에 제공된다.
vehicleProperty {
vhalPropertyId: HVAC_TEMPERATURE_SET // standard ID (VHAL)
access: READ // this vehicle doesn't allow HU to set
// temperature
canSignal {
area: ROW_1_LEFT
messageId: 0x123
bit: 8 // value is located starting at 8th bit of the
// payload
size: 16 // value takes 2 bytes of the payload
scale: 2
offset: 50 // scale/offset is a common CAN technique
conversion {
method: FAHRENHEIT_TO_CELSIUS
}
}
}
위의 예에서, EM(31)은 OS(30)에서 사용하는 표준 ID인 HVAC 온도 세트( "HVAC_TEMPERATURE_SET")의 vhalPropertyId를 지정한다. 액세스는 세번째 라인에 특정(지정)되며, 이 예에서 차량(10)이 헤드 유닛(24)이 온도를 설정(전용 버튼이나 다른 컨트롤로만 설정 가능)하는 것을 허용하지 않기 때문에 EM(31)이 판독에 대한 액세스를 설정한다. canSignal 명령문에서, EM(31)은 이 영역을 프론트 로우 드라이버 측으로 정의하고, 각 CAN 공통 구문인 메시지 ID, 비트, 크기, 스케일 및 오프셋의 형태로 여러 CAN 특정 구문을 지정(특정)한다. "컨버전"은 EM(31)이 "FAHRENHEIT_TO_CELSIUS"라는 함수에 대한 메소드 호출(method call)을 지정하는 것으로 정의된다.
변환 서비스(202)는 HVAC 온도를 요청하는 표준 제어 메시지를 수신할 수 있고, 0x123의 메시지 ID, 비트(8) 및 크기(16)와 스케일 및 오프셋을 포함하는 CAN 메시지를 생성할 수 있다(여기서 8 비트는 온도 값이 페이로드의 8 비트부터 시작 함을 나타내고 크기는 값이 2 바이트의 페이로드를 필요로 함을 나타냄). 변환 서비스(202)는 이 메시지를 CAN-USB HAL로 전달할 수 있고, 이는 게이트웨이(210)를 통해 USB CAN 인터페이스를 통한 신호를 CAN(211)로 출력하기 전에 CAN 메시지를 USB 신호로 컨버팅한다. CAN(211)은 CAN 메시지를 하나 이상의 차량 시스템(26)에 전송할 수 있고, 이는 도 2a의 예에 전자 제어 유닛(ECU)(212A-212N)("ECUs 212")으로서 도시되어 있다.
HVAC 시스템을 제어하는 ECU들(212) 중 하나는 현재 온도를 화씨 단위로 메시지에 응답할 수 있으며, 페이로드에서 비트 8에서 시작하여 화씨 온도(화씨)를 2의 스케일 및 50의 오프셋을 갖는 2 바이트 온도로 지정하는 CAN 메시지를 생성할 수 있다(예를 들어, 90도 온도는 40으로 지정될 수 있다). HVAC ECU(212)는 CAN 버스(211)를 통해 CAN 메시지를 전송할 수 있으며, 게이트웨이(210), USB CAN 인터페이스(208) 및 CAN-USB HAL(204)은 CAN 메시지를 변환 서비스(202)에 릴레이(relay)한다.
변환 서비스(202)는 전술한 매핑에 따라 CAN 메시지를 변환하고, 메시지 ID, 비트, 크기, 스케일 및 오프셋을 "HVAC_TEMPERATURE SET, READ 및 ROW_1_LEFT"로 대체할 수 있다. 변환 서비스(202)는 온도를 분석(파싱)하고 온도를 전술한 방법으로 전달하여 FAHRENHEIT_TO_CELSIUS 방법을 호출할 수 있다. 온도를 전달하기 전에, 변환 서비스(202)는 (화씨 90도의 실제 온도를 회복하기 위해) 스케일 및 오프셋에 따라 온도를 처리(프로세싱)할 수 있다. FAHRENHEIT_TO_CELSIUS 방법은 온도를 화씨에서 섭씨로 컨버탕하고 표준 제어 메시지에서 온도를 지정할 수 있다. 이어서 변환 서비스(202)는 표준 제어 메시지를 자동차 서비스(200)에 전송할 수 있다.
상기 예에서 특정 변환 프로세스, 즉 FAHRENHEIT_TO_CELSIUS와 관련하여 설명되었지만, 기술은 다른 유형의 컨버전에 대해 수행될 수 있다. 예를 들어, 다른 컨버전 프로세스 예에는 각 전체 스핀, LOG 또는 EXPONENT에서 휠 주행 거리를 계산하여 판독 값을 로그 전위차계에서 선형 스케일로 또는 그 반대로 컨버팅하는 "RADIUS_TO_CIRCUMFERENCE"가 포함된다.
EM(31)의 제3 예가 아래에 도시되어 있으며, 이는 + 1 / -1 이벤트로서 차량 시스템(26)의 HVAC 시스템에 온도를 전달한다.
vehicleProperty {
vhalPropertyId: HVAC_TEMPERATURE_SET // standard ID
access: WRITE
canSignal {
area: ROW_1_LEFT
messageId: 0x123
bit: 0
size: 2
offset: -1
conversion {
method: DELTA_UPDATE
params {
deltaUpdate {
initValue: 20 // 20 degree Celsius
maxStep: 1 // can't +/- more than 1
// degree
}
}
}
}
canSignal {
area: ROW_1_RIGHT
...
bit: 2
...
}
}
바로 위의 예에서, EM(31)은 "WRITE" 액세스 및 전면 좌측 운전자(드라이버) 측 영역("ROW_1_LEFT")과 함께 "HVAC_TEMPERATURE_SET"의 vhalPropertyId를 지정하며, 이는 표준 제어 메시지의 구문에 매핑한다. 다음으로 EM(31)은 messageId를 0x123으로, 비트를 0으로, 크기를 2로 및 오프셋을 -1로 지정하며, vhalPropertyId, 액세스 및 영역 대신 사용되는 CAN 프로토콜 구문을 모두 나타낸다. 그 다음, EM(31)은 "DELTA_UPDATE" 메소드를 호출하고, "deltaUpdate"에 대한 파라미터("params")를 나열하는 컨버전을 지정(특정)한다. EM(31)의 deltaUpdate 내에는 섭씨 20 도의 초기값("initValue") 및 온도의 최대 단계("maxStep") 크기가 있다.
변환 서비스(202)는 이러한 표준 구문 요소들을 0x123, 0, 2, -1로 대체하여, "HVAC_TEMPERATURE_SET, WRITE 및 ROW_1_LEFT"를 나열하는 자동차 서비스(200)로부터 표준 제어 메시지를 수신하거나 그렇지 않으면 획득할 수 있다. 변환 서비스(202)는 페이로드의 비트 0, -1 또는 1의 2바이트 온도 업데이트를 삽입함으로써 표준 제어 메시지를 CAN 메시지로 변환할 수 있다. 변환 서비스(202)는 CAN 메시지를 CAN-USB HAL(204)로 출력할 수 있으며, 이는 USB CAN 인터페이스(208) 및 게이트웨이(210)를 통해 USB 신호를 보내기 전에 CAN 메시지를 USB 신호로 컨버팅한다.
CAN(211)은 CAN 메시지를 수신하고 CAN 메시지를 ECU(26)에 전달(릴레이)할 수 있으며, 여기서 ECU(212) 중 적절한 하나(즉, 이 예에서 HVAC ECU)는 CAN 메시지를 처리하고 응답 CAN 메시지를 출력할 수 있다. 응답 CAN 메시지는 변환 서비스(202)에 도달하기 전에 CAN(211), 게이트웨이(210), USB CAN 인터페이스(208) 및 CAN-USB HA (204)을 트래버스(traverse)할 수 있다. 변환 서비스(202)는 응답 표준 제어 메시지를 획득하기 위해 응답 CAN 메시지에 대해, 상기 EM(31)의 상기 예에 기초하여, 역변환(inverse translation) 또는 다른 말로 매핑을 수행할 수 있다. 변환 서비스(202)는 응답 표준 제어 메시지를 자동차 서비스(200)에 출력할 수 있다.
도 2b의 예에서, 헤드 유닛(24B)은 도 1의 예에 도시된 헤드 유닛(24)의 다른 예이다. 헤드 유닛(24B)은 도 2b의 예를 제외하고는 헤드 유닛(24A)과 실질적으로 유사하지는 않지만 유사할 수 있다. 게이트웨이(210)는 변환 서비스(202)와 관련하여 이전에 설명된 변환 서비스를 수행할 수 있다. 헤드 유닛(24B)의 변환 서비스(202)는 EM(31)에 따라 게이트웨이(210)에 의해 출력된 표준 제어 메시지에 대하여 다른 포맷팅, 컨버팅 또는 다른 프로세스를 수행할 수 있는 일반적인 VHAL 서비스(220)로 대체된다. 제조업체는 방화벽 CAN 액세스를 통한 추가적인 보안을 제공하기 위해 변환 서비스(202)를 수행하도록 게이트웨이(210)가를 프로그래밍할 수 있다.
도 3은 본 개시에서 설명된 기술의 다양한 양태에 따라 명령 세트(25-1A)를 적응(adapting)하는 도 1에 도시된 HAL(28)의 예를 도시한다. HAL(28)은 최대 에어 컨디션 구성을 지칭할 수 있는 "MAX AC"를 제공하도록 HVAC 시스템(26A)의 다양한 파라미터를 구성하는 동작 상태 변경(변화)(50A)에 대해 명령 세트(25-1A)를 초기에 지정할 수 있다. 탑승자가 MAX AC(50A)를 선택하거나 달리 활성화시키는 것에 응답하여, HAL(28)은 명령(52A-52F)을 발행할 수 있다.
명령(52A)은 시스템 식별자, 파라미터 및 값을 변수로 사용하는 SET 명령을 지정한다. 이 예에서 시스템 식별자는 "HVAC_SYS"로 가정되며, 이는 HVAC 시스템(26A)과 관련된 식별자를 나타낸다. 모든 명령(52A-52F)은 동일한 시스템 식별자 HVAC_SYS를 지정한다. 명령(52A)의 파라미터는 예시의 목적으로, "팬"인 것으로 가정되며, 이는 HVAC 시스템(26A)의 팬 속도를 나타낼 수 있다. 명령(52A)의 값은 팬 속도를 "HIGH"로 설정한다.
명령(52B)은 명령(52A)과 동일한 시스템 식별자 및 파라미터를 지정하지만 팬 속도를 "5"값으로 설정하는 또다른 SET 명령이다. 명령 세트(25-1A)는 동일한 제조업체의 여러 모델 및/또는 다른 제조업체의 여러 모델에 대해 MAX AC 50A를 시작할 수 있는 초기 일반 명령 세트이기 때문에, 리던던트(Redundant) 명령(동일한 파라미터에 대해 유사하거나 동일한 구성을 시작하려고 시도할 수 있는 명령)은 명령 세트(25-1A) 내에 있다.
명령(52C)는 명령(52A)와 동일한 시스템 식별자를 지정하지만 HVAC 시스템(26A)이 유지해야하는 캐빈(cabin) 온도를 나타내는 다른 파라미터 "TEMP"를 지정하는 또다른 SET 명령이다. 명령(52C)은 캐빈 온도를 "65"로 설정한다(예시를 위해 화씨로 가정).
명령(52D)은 명령(52A)와 동일한 시스템 식별자를 지정하지만 다른 파라미터 "VENT"를 지정하는 다른 SET 명령이며, 이는 냉각된 공기가 배출될 차량(10)의 캐빈 내의 벤트(vent) 또는 벤트 세트를 지칭한다. 명령(52D)은 벤트를 "HIGH"의 값으로 설정하는데, 이는 다양한 ECU의 대시 벤트를 지칭할 수 있다.
명령(52E)은 명령(52D)과 동일한 시스템 식별자 및 파라미터를 지정하지만 벤트(통풍구)를 대시 벤트를 나타내는 "DASH"값으로 설정하는 또다른 SET 명령이다. 명령(52F)은 명령(52E)과 동일한 시스템 식별자 및 파라미터를 지정하는 또다른 SET 명령이지만 벤트(통풍구)를 "UPPER"값으로 설정하며, 이는 대시 벤트 및 천장 벤트를 나타낸다. 명령 세트(25-1A)는 동일한 제조업체의 여러 모델 및/또는 다른 제조업체의 여러 모델에 대해 MAX AC 50A를 시작할 수 있는 초기 일반 명령 세트이기 때문에, 리던던트 명령(동일한 파라미터에 대해 유사하거나 동일한 구성을 시작하려고 시도할 수 있는 명령)이 명령 세트(25-1A) 내에 존재한다.
HAL(28)은 차량 시스템(26A)에 각각의 명령(52A-52F)을 (순서적으로 또는 동시에) 발행할 수 있으며, 이는 상기 식별된 파라미터의 동작 상태(27)를 특정하는 하나 이상의 메시지로 각각의 명령(52A-52F)에 응답할 수 있다. HAL(28)은 동작 상태(27)에 기초하여 명령 세트(25-1A)를 적응(adapt)시켜 적응된 명령 세트(25-1A')를 획득할 수 있다.
도 3의 예에 도시된 바와 같이, HAL(28)은 새로운 명령(52G)을 포함하고 명령(52D 및 52F)을 제거하도록 명령 세트(25-1A)를 적응시킬 수 있다. HAL(28)은 또한 개별 명령(52C)을 적응시켜 적응된 명령 세트(25-1A ')의 명령(52H)을 획득할 수 있다.
HAL(28)은 HVAC 시스템(26A)이 동작(액티브 파워 상태를 나타냄)하지 않기 때문에 HVAC 시스템(26A)이 명령(52A)을 완료 할 수 없음을 나타내는 동작 상태들(27) 중 하나를 (예를 들어, 명령 (52A)에 대한 응답하여) 수신한 결과로서 새로운 명령(52G)을 획득할 수 있다. HAL(28)은 동작 상태들(27) 중 하나에 응답하여, 명령(52G)을 생성할 수 있으며, 명령(52G)은 HVAC 시스템(26A)의 "POWER" 파라미터를 "ON"의 값으로 설정한다. HAL(28)은 명령(52G)와 유사하지만 동일한 파라미터(그러나 "OPERATIONAL" 또는 "AC"와 같은 다른 식별자를 가짐) 및/또는 다른 값(예:“OPERATIONAL”파라미터의 경우“YES”)을 지정하지만 하나 이상의 리던던트 명령을 반복할 수 있다.
이와 관련하여, 명령 세트(25-1A)는 HVAC 시스템(26A)이 활성화되지 않았기 때문에(전력을 수신하는 측면에서) HVAC 시스템(26A)의 동작 상태 변경(50A)을 초기에 개시할 수 없을 수 있다. 결과적으로, HAL(28)은 명령 세트(25-1A)를 자동으로 적응시켜 명령 세트(25-1A)가 (적응된 명령 세트 25-1A '의 형태로) HVAC 시스템(26A)의 동작 상태 변경을 개시할 수 있게 한다. 다시 말해서, HAL(28)은 탐색(exploratory) 명령 세트를 발행하여 하나 이상의 시스템의 탐색 작동 상태 변경을 시작하고, 명령 세트의 발행에 응답하여 그리고 탐색 동작 상태 변경 후, 하나 이상의 시스템으로부터 하나 이상의 차량 파라미터 각각의 실제 동작 상태의 각각의 표시를 획득한다. 다음으로, HAL(28)은 다음에 탐색 명령 세트에 대해, 하나 이상의 차량 파라미터의 실제 동작 상태들 사이의 하나 이상의 종속성을 결정하고, 하나 이상의 종속성에 기초하여, 로컬 제어 메시지로부터 표준 제어 메시지로 명령 세트를 변환하기 위한 확장 가능한 맵핑을 생성하도록 구성된다.
예를 계속해서, HAL(28)은 명령(52D 및 52F)가 명령(52D 및 52F)로 인식되지 않았음을 나타내는 하나 이상의 동작 상태(27)를 수신한 결과로 명령(52D 및 52F)를 제거할 수 있다(일 예로서, 명령(52D 및 52F)은 HVAC 시스템(26A)의 ECU에 의해 지원되지 않는 구문을 사용함을 의미함). 일부 경우에, 시스템(26)은 제1 벤더(vendors) 세트로부터 온 것이며 따라서 제2 벤더 세트로부터의 시스템과 비교하여 다양한 파라미터에 대해 상이한 구문을 이용할 수 있다(제1 벤더 세트와 제2 벤더 세트는 적어도 하나의 벤더가 상이하다고 가정한다). HAL(28)은 초기에 리던던트 명령(52D-52F)을 발행하여 어떤 명령(52D-52F)이 동작 상태들(27) 중 성공적인 하나(successful one)를 초래하는지를 결정할 수 있다.
리던던트 명령(52D-52F)을 발행하는 것으로 기술되었지만, HAL(28)은 HVAC 시스템(26A)으로부터 HAL(28)에 의해 검색될 수 있는 다양한 정보에 기초하여 하나 이상의 명령에 의해 리던던트 명령(52D-52F)을 감소시킬 수 있다. 예를 들어, HAL(28)은 HVAC 시스템(26A)의 유형, 벤더 등을 검색하기 위해 GET 명령을 발행할 수 있다. HAL(28)은 HVAC 시스템(26A)의 다른 유형, 벤더 등을 다른 구문과 연관시킬 수 있다. 이 검색된 정보에 기초하여, HAL(28)은 지원되지 않는 구문과 관련된 하나 이상의 리던던트(중복) 명령(52D-52F)을 제거(remove)하거나 삭제(eliminate)할 수 있다.
도 3에 도시된 바와 같이, HAL(28)은 또한 개별 명령(52C)을 조정(적응)하여 값을 65에서 60으로 변경할 수 있다. HAL(28)은 HVAC 시스템(26A)에 대해 화씨 60 도의 최저 온도 값을 미리 식별하고, 명령(52C)을 최저 온도로 자동 조정한다.
그러면 HAL(28)은 조정된 명령 세트(25-1A ')에 기초하여 EM(31)을 자동으로 생성할 수 있다. HAL(28)은 EM(31)을 형성하는 스크립트 또는 다른 파일에 배치되는 각각의 명령에 대한 일반적인 매핑을 포함할 수 있으며, 여기서 각각의 명령은 표준 제어 메시지에서 CAN 메시지로 EM(31)에 따라 변환될 수 있다.
도 4는 도 1에 도시된 HAL(28)의 예를 나타내는 도로서, 이는 도 1은 본 개시에서 설명된 기술들의 다양한 양태들에 따라 다른 명령 세트(25-2A)를 조정(적응)한다. HAL(28)은 HVAC 시스템(26A)의 다양한 파라미터를 "SET TEMP <X>"로 구성하는 동작 상태 변경(50B)에 대해 명령 세트 25-2A를 초기에 지정할 수 있으며, 이는 탑승자가 입력한 변수 값 "X"로 온도를 설정하는 것을 의미할 수 있다. 탑승자가 SET TEMP <X> 50B를 선택하거나 달리 활성화시키는 것에 응답하여, HAL(28)은 명령(52M)을 발행할 수 있다.
명령(52M)은 SET 명령을 지정하는데, 이는 시스템 식별자, 파라미터 및 값을 변수로 사용한다. 이 예에서 시스템 식별자는 "HVAC_SYS"로 가정되며, 이는 HVAC 시스템(26A)과 관련된 식별자를 나타낸다. 명령(52M)의 파라미터는 예시의 목적으로 HTE 시스템(26A)이 유지해야하는 온도를 지칭할 수 있는 "TEMP"인 것으로 가정된다. 명령(52M)의 값은 온도를 변수 "X"로 설정한다. 탑승자는 변수“X”에 대한 값을 지정할 수 있다.
명령(52M)을 HVAC 시스템(26A)에 발행하는 것에 응답하여, HAL(28)은 동작 상태(27A 및 27B)를 수신할 수 있다. 동작 상태(27A)는 팬 속도 파라미터 "FAN"의 값이 "5"의 속도로 설정되었음을 나타낸다. 동작 상태(27B)는 벤트 파라미터 "VENT(벤트)"가 "DASH(대시)"로 설정되었음을 나타낸다.
명령(52M)을 발행한 후, 탑승자는 온도가 차량(10) 내의 제1 HVAC 구역에 대한 것이고 차량(10) 내의 제2 HVAC 구역에 대한 것임을 나타낼 수 있다. 이와 같이, HAL(28)은 명령 세트(25-2A')가 명령(52N-52Q)를 포함하도록 명령 세트(25-2A')를 획득하기 위해 명령 세트(25-2A')를 조정할 수 있다. 명령(52N)은 온도 파라미터가 차량(10) 내의 제1 HVAC 구역에 대한 것이며, 명령(52M)의 "TEMP" 파라미터를 명령(52N)의 "ZONE1_TEMP"파라미터로 변경한다. 명령(52P 및 52Q)는 또한 FAN 속도 파라미터 및 VENT 파라미터가 차량(10)의 제1 HVAC 구역에 대한 것으로 "ZONE1_FAN" 및 "ZONE1_VENT"가 됨을 나타낸다. 이러한 방식으로, HAL(28)은 탑승자를보다 잘 수용하고 탑승자가 헤드 유닛(24)에 집중하는 시간을 감소시키기 위해 명령 세트(25-2A)를 조정할 수 있으며, 이는 차량(10)의 동작 중에 안전성을 향상시킬 수 있다.
그 후 HAL(28)은 적응된(조정된) 명령 세트(25-2A')에 기초하여 EM(31)을 자동으로 생성할 수 있다. HAL(28)은 각 명령에 대한 일반 매핑을 포함할 수 있으며,이는 EM(31)을 구성하는 스크립트 또는 기타 파일에 배치되며, 여기서 각 명령은 표준 제어 메시지에서 CAN 메시지로 EM(31)에 따라 변환될 수 있다.
도 5는 본 개시에서 설명된 확장 가능한 맵핑 기술의 다양한 양태를 수행할 때 도 1의 HAL(28)의 예시적인 동작을 나타내는 흐름도이다. 전술한 바와 같이, 프로세서(12)는 하나 이상의 차량 시스템(26)을 제어하기 위해 OS(30)를 실행할 수 있으며(300), 여기서 OS(30)는 표준 명령 세트를 지원할 수 있다. OS(30)는 공통 또는 표준 제어 버스 프로토콜에 따라 하나 이상의 표준 제어 메시지로서 표준 명령 세트를 출력할 수 있다(302). 프로세서(12)는 시스템 메모리(16)로부터 EM(31)을 획득할 수 있으며, 이는 로컬 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 OS(30)에 의해 지원되는 표준 제어 메시지 사이의 매핑을 정의할 수 있다(304). 일부 예에서, 프로세서(12)는 OS(30)가 차량 시스템(26)과 인터페이스할 수 있도록 소프트웨어 심층(심 계층)(shim layer)을 제공할 때 EM(31)을 획득하도록 프로세서 (12)를 구성할 수 있는 HAL(28)을 실행할 수 있다.
HAL(28)은 하나 이상의 차량 시스템(26)의 동작 상태 변경을 개시하기 위해 명령 세트(25) 중 하나와 같은 명령 세트의 제1 표현을 포함할 수 있는 표준 제어 메시지를 수신할 수 있다. HAL(28)은 표준 제어 메시지에 EM(31)을 적용하여 표준 제어 메시지 내의 바이트 값을 재배열하거나 달리 변환하여, 제어 버스 프로토콜에 따르는 로컬 제어 메시지를 획득하도록 표준 제어 메시지를 변환할 수 있다(306). 로컬 제어 메시지는 그와 같이 명령 세트의 제2 표현을 포함할 수 있다. HAL(28)은 프로세서(12) 및 차량 시스템(26)에 연결된 제어 버스를 통해 로컬 제어 메시지를 전송하여 하나 이상의 차량 시스템(26)의 동작 상태 찬스를 개시할 수 있다.
HAL(28)은 마찬가지로 차량 시스템(26)으로부터 동작 상태(27A-27N)(도 1에 "ST 27A-27N"으로 도시된 "동작 상태(27)")를 포함하는 로컬 제어 메시지를 수신(또는 일부 경우 OS(30) 및 차량 시스템(26)의 관점에서 투명하게 차단)할 수 있다(308). 로컬 제어 메시지는 로컬 제어 버스 프로토콜을 따를 수있다. HAL(28)은 EM(31)에 기초하여 로컬 제어 메시지를 변환하여 표준 제어 메시지를 획득할 수 있으며, 이는 다시 OS(30)에 의해 지원된다(310). 위에서 언급한 바와 같이, HAL(28)은 기본 하드웨어를 추상화하는 것의 일부로서 (즉, 심 소프트웨어 계층을 제공하는 것의 일부로서)이 변환을 제공하여, 다양한 하드웨어 플랫폼에서 OS(30)을보다 간단하게 개발하고 설치할 수 있다. HAL(28)은 표준 제어 메시지를 OS(30)에 제공 할 수 있으며, 이는 이전에 전송된 표준 제어 메시지에 의해 요청된 동작 상태 변경의 확인을 획득할 수 있다(312).
도 6은 본 개시에 기술된 기술의 다양한 양태를 수행할 때 도 1의 HAL(28)의 예시적인 동작을 나타내는 흐름도이다. 전술한 바와 같이, HAL(28)은 하나 이상의 차량 시스템(26)의 동작 상태를 변경하기 위해 탑승자로부터 디스플레이(20)에 의해 표시되는 GUI를 통해 수신된 입력에 응답하여, OS(30)로부터의 출력을 처리하도록 구성된 유닛을 나타낼 수 있다. HAL(28)은 또한 동작 상태(27)와 같은 다른 입력에 응답하여 자동으로 생성되는 OS(30)로부터의 출력을 처리할 수 있다. 출력은 동작 상태 변경을 수행하기 위해 OS(30)에 의해 발행된 명령 세트(25)를 나타낸다. OS(30)는 일련의 "SET" 명령으로서 명령 세트(25)를 발행할 수 있고, 이들 각각은 차량 시스템(26) 중 하나, 차량 시스템(26) 중 하나의 특성 및 지정된 특성에 대한 값을 지정한다. SET 명령은 특정 차량 시스템(26) 중 하나가 유지될 동작 상태를 지정할 수 있다. 이와 관련하여, HAL(28)은 제1 차량, 예를 들어 차량(10)의 하나 이상의 시스템(26A)에 하나 이상의 시스템(26)의 동작 상태 변경을 개시하기 위한 명령 세트(25A)를 발행할 수 있다(400).
HAL(28)은 또한 차량 시스템(26)의 다양한 특성의 현재 동작 상태(27)를 나타내는 차량 시스템(26)으로부터의 입력을 처리할 수 있다. OS(30)는 현재 동작 상태(27)를 나타내는 입력을 제공함으로써 차량 시스템(26)이 응답하는 다양한 특성에 관한 차량 시스템(26)을 쿼리하는 "GET" 명령을 출력할 수 있다. "SET" 명령과 유사하게, "GET" 명령은 각각 차량 시스템(26) 중 하나 및 값에 대한 쿼리가 지시되는 차량 시스템(26) 중 하나의 특성을 특정(지정)할 수 있다. 일부 예에서, 차량 시스템(26)은 "SET" 명령에 응답하여 다양한 동작 상태 변경을 수행한 후 입력에 응답할 수 있다. 어쨌든, HAL(28)은 연관성(29)을 결정하기 위해 상기 출력 및 상기 입력을 처리할 수 있다.
설명을 위해, 차량 시스템(26A)은 HVAC 시스템을 나타낸다고 가정하자. 차량의 점화 상태와 HVAC 시스템의 기본 환경 제어 장치(ECU)에 따라 다양한 HVAC 시스템이 다르게 동작할 수 있다. 또한, HVAC 시스템(26A)의 다양한 특성이 HVAC 시스템(26A)의 다른 특성 및 잠재적으로 차량 시스템(26B-26N)의 다른 특성과 상호 작용할 수 있다는 것을 고려한다. 예를 들어, HVAC 온도를 설정할 때, HVAC 시스템(26A)은 팬의 속도를 자동으로 변경할 수 있다. HAL(28)은 HVAC 온도를 설정하기 위해 명령 세트(25A)를 차량 시스템(26)에 출력함으로써 발생하는 동작 상태(27A)로 표시되는 HVAC 시스템(26A)의 다양한 차량 특성들 사이의 연관성(29)을 결정할 수 있다.
이러한 방식으로, HAL(28)은 명령 세트(25A)를 발행하는 것에 응답하고 그리고 동작 상태 변경 후, 시스템(26)으로부터 각각의 차량 파라미터의 동작 상태의 각각의 표시(indications)를 획득할 수 있다(402). 다음으로, HAL(28)은 명령 세트(25A)에 대해 차량 파라미터의 동작 상태 사이의 종속성(29)을 결정할 수 있다(404).
HAL(28)은 연관성(29)에 기초하여, 제1 차량의 시스템(26)과 제2 차량의 시스템 사이의 가변성을 수용하도록 명령 세트(25A)를 적응시킬 수 있다(406). 위의 예에서, HAL(28)은 HVAC 온도 설정과 팬 속도 자동 변경 사이의 의존성(종속성)을 식별하는 연관성(29)에 기초하여, HVAC 시스템(26A)의 팬 속도를 이전에 설정된 팬 속도 값(이는 탑승자 선호도에 기초하여 또는 탑승자가 HVAC 시스템(26A)의 팬 속도를 미리 설정한 결과로 구성될 수 있음)으로 설정하는 추가 명령을 포함하도록 명령 세트(25A)를 적응(조정)시킬 수 있다. HAL(28)은 이러한 방식으로, 연관성(29)("종속성(29)"으로도 지칭될 수 있음)에 기초하여, 차량(10)의 차량 시스템(26)과 제2 차량의 차량 시스템 사이의 가변성을 수용하기 위해 명령 세트(25)를 적응시킬 수 있다. HAL(28)은 또한 적응된 명령 세트에 기초하여 EM(31)을 자동으로 생성할 수 있다(408).
이와 관련하여, HAL(28)은 변화(변경)의 기록을 생성하기 위해 동작 상태들(27) 사이의 변화(변경)를 처리하고, 특성들("파라미터"라고도 함, 예를 들어 파라미터 A가 변경되면 파라미터 B와 C도 변경됨) 사이의 인과관계를 찾기 위해 동작 상태(27)를 분석(파싱)하고, 동작 상태(27)에서의 변화들 사이의 인과관계(즉, 의존성(종속성))를 식별하는 연관성(29)을 생성할 수 있다. 일부 예에서, HAL(28)은 연관성(29)을 테이블, 링크 된리스트, 그래프, 트리 또는 임의의 다른 적합한 데이터 구조로서 저장할 수 있다. 다른 예에서, HAL(28)은 기계 학습을 사용하여 연관성(29)을 식별하고 연관성(29)을 처리하는 상이한 버전의 명령 세트(25)를 동적으로 생성하기 위해 모델을 훈련시킬 수 있다. 이와 같이, HAL(28)은 의존성(29)을 결정하기 위해, 차량 파라미터의 동작 상태(27) 및 명령 세트(25)에 의해 개시된 동작 상태 변화와 관련하여 기계 학습을 수행할 수 있다.
이러한 방식으로, 기술은 OS(30)가 차량 하드웨어, 예를 들어 차량 시스템(26)과 상호작용할 수 있도록 하드웨어 추상화 계층(VHAL)(28)을 제공할 수 있다. HAL(28)은 차량의 다른 제조사/모델을 취하려고 시도할 수 있으며 모든 차량의 제조사/모델에 공통적인 APIs(Application Programmer Interface surface)를 생성할 수 있다. 한 가지 문제는 다양한 차량이 있고, 차량 동작(behaviors)이 쉽게 추상화되지 않을 수 있다는 것이다. 예를 들어, 차량의 HVAC 시스템은 차량의 점화 상태 및 HVAC ECU 구성에 따라 다르게 동작한다. 차량의 각 제조업체/모델에 대한 동작을 추상화(abstract)하는 공통 API를 생성하지 못할 수 있다.
HAL(28)은 현재 SET 및 GET일 수 있는 차량 특성(속성)의 리스트로서 구현될 수 있다. 예를 들어, HAL(28)은 HVAC 온도를 설정할 수 있고 차량(10)은 이에 응답할 것이다. 속성(특성)이 서로 상호 작용하여 부작용을 만들 때 복잡성이 발생하다. 예를 들어, HVAC 온도를 설정할 때 온도 변화에 따라 팬 속도가 자동으로 변경 될 수 있다. 이 동작은 차량에 따라 다를 수 있다. 특정 문제는 HVAC 컨트롤러(제어기)의 설정에 따라 일부 속성이 비활성화/활성화될 수 있으며 OS(30)은 태스크를 수행하기 위해 이러한 복잡성을 이해해야 할 수 있다는 것이다.
예를 들어, HVAC 장치가 꺼져있어 AC 시스템이 비활성화된 경우, OS(30)은 AC를 켜기전에 HVAC 장치를 켜야할 수 있다. 따라서, 탑승자가 "AC를 켜는"것으로 표시하면, OS(30)는 차량 시스템(26)의 동작 상태에 기초하여 정확한 명령 시퀀스를 개시한다.
어떤 경우에는, 임피던스 불일치이다. OS(30)은 API 세트를 노출시킬 수 있고(즉, "AC를 최대로 켭니다"), 차량은 그들이 지원하는 기능 세트를 갖는다(즉, "팬 속도를 5로 설정" 또는 "온도를 65로 설정"). 이 두 API가 항상 완벽하게 정렬되는 것은 아니며 타협(compromises)이 이루어진다. 이 문제에 대한 한 가지 해결책은 차량 제조업체가 차량이 지원하는 데 필요한 OS(30)을 수행하기 위해 더 많은 "미들웨어" 코드를 작성하도록 하는 것이다. 각 차량 제조업체는 코드를 작성하도록 교육을 받아야하기 때문에 노동 집약적이고 오류가 발생하기 쉽다. 또 다른 해결책은 모든 차량에 공통적인 낮은 수준의 기능으로 추상화를 생성하는 것이지만 모든 다양한 차량에 이상적인 것은 아니다. 이와 같이, OS(30)는 일부 동작 및 코드를 최저 공통 분모로 한정/제한할 수 있다.
본 개시물의 기술들은 차량 파라미터들 간의 의존성(29)을 추출하는 알고리즘을 제공할 수도 있다. HAL(28)은 설정/획득할 수 있는 속성들의 목록을 결정할 수 있다. 속성이 부작용을 생성하는 경우(예: 속성을 설정하면 시스템의 다른 속성이 변경됨), HAL(28)은 이 연관성(29)을 검출하고 기록할 수 있으므로, 탑승자가 현재 허용되지 않은 동작 변경을 개시할 때, HAL(28)은 동작 변경을 개시하도록 명령 세트(25)를 통해 속성을 구성하는 방법을 결정할 수 있다.
종속성을 결정하기 위해, HAL(28)은, 1) 속성이 변경되는 시점을 관찰하고 그 기록을 유지하고; 2) 데이터를 분석하여 파라미터들 간의 인과관계를 획득하고(예: 파라미터 A가 변경되면 파라미터 B와 C도 함께 변경됨); 3) 이러한 인과관계에 대한 테이블을 작성하고, 시스템이 차량 속성(특성)에 대해 조치를 취하려고 할 때 이를 참조할 수 있다.
HAL(28)은 여러 방식으로 구현될 수 있다. 일부 사례에서, HAL(28)은 시간에 따른 관측된 데이터로서 기계 학습(ML) 훈련 세트를 수집할 수 있다. 다른 경우에, HAL(28)은 속성의 시간적 상관관계를 추적하고 상관 관계로부터 휴리스틱(heuristics)을 결정할 수 있다. 어느 경우이든, 개념은 HAL(28)이 수동으로 명령 세트(25)를 각 차량의 고유한 특성에 자동으로 적용하여 사람이 직접 코드에 입력하지 않아도 되도록하는 것이다. 이러한 방식으로, HAL(28)은 차량의 변화에 자동으로 적응할 수 있고 하드 코딩될 필요가 없기 때문에 새로운 차량 구현을 시장에 출시하는 복잡성을 감소시킬 수 있다.
조항 1. 제1 차량과 인터페이스하는 방법으로서, 상기 방법은, 프로세서에 의해 그리고 제1 차량의 하나 이상의 시스템에, 하나 이상의 시스템의 동작 상태 변경을 개시하도록 하는 명령 세트를 발행하는 단계; 명령 세트의 발행에 응답하고 동작 상태 변경 후, 프로세서에 의해 하나 이상의 시스템으로부터 하나 이상의 차량 파라미터 각각의 동작 상태의 각각의 표시를 획득하는 단계; 프로세서에 의해 그리고 명령 세트에 대해, 하나 이상의 차량 파라미터의 동작 상태들 사이의 하나 이상의 종속성을 결정하는 단계; 그리고 프로세서에 의해 그리고 하나 이상의 종속에 기초하여, 제1 차량의 하나 이상의 시스템과 제2 차량의 하나 이상의 시스템 사이의 가변성을 수용하도록 상기 명령 세트를 적응시키는 단계를 포함한다.
조항 2. 조항 1의 방법에 있어서, 상기 명령 세트는 상기 하나 이상의 차량 파라미터의 제1 서브 세트 각각에 대한 상태를 지정하기 위한 제1 명령 세트를 포함하고, 상기 명령 세트를 적응시키는 단계는 하나 이상의 차량 파라미터의 제2 서브 세트 각각에 대한 상태를 지정하기 위한 제2 명령 세트를 결정하는 단계를 포함하며, 하나 이상의 차량 파라미터의 제1 서브 세트는 하나 이상의 차량 파라미터의 제2 서브 세트와 다르다.
조항 3. 조항 1과 조항 2의 방법에 있어서, 상기 명령 세트를 적응시키는 단계는 상기 프로세서에 의해 상기 명령 세트를 적응시키기 위해 하드웨어 추상화 계층을 실행하는 단계를 포함한다.
조항 4. 조항 1-3의 방법에 있어서, 상기 하나 이상의 종속성을 결정하는 단계는 상기 명령 세트에 의해 개시된 동작 상태 변경 및 상기 하나 이상의 차량 파라미터의 동작 상태를 연관시키는 테이블을 유지하는 단계를 포함한다.
조항 5. 조항 1 내지 조항 4의 방법에 있어서, 상기 하나 이상의 종속성을 결정하는 단계는 상기 하나 이상의 종속성을 식별하기 위해 상기 명령 세트에 의해 개시된 동작 상태 변경 및 상기 하나 이상의 차량 파라미터의 상태와 관련하여 기계 학습(머신 러닝)을 수행하는 단계를 포함한다.
조항 6. 조항 1 내지 조항 5에 있어서, 상기 방법은, 디스플레이 장치를 통해, 명령 세트를 나타내는 그래픽 사용자 인터페이스 요소를 디스플레이하는 단계를 더 포함한다.
조항 7. 조항 1 내지 조항 6의 방법에 있어서, 명령 세트는 초기에 하나 이상의 시스템의 동작 상태 변경을 개시할 수 없고, 상기 명령 세트를 적응시키는 단계는 상기 명령 세트가 상기 하나 이상의 시스템의 동작 상태 변경을 개시하도록 상기 명령 세트를 적응시키는 단계를 포함한다.
조항 8. 조항 1-7의 방법에 있어서, 제1 차량의 하나 이상의 시스템은 제1 차량의 HVAC(heating, ventilation, and air conditioning) 시스템을 포함한다.
조항 9. 조항 1 내지 조항 8의 방법에 있어서, 상기 제1 차량의 하나 이상의 시스템은 제1 벤더 세트이고, 상기 제2 차량의 하나 이상의 시스템은 제2 벤더 세트이고, 상기 제1 벤더 세트 및 상기 제2 벤더 세트는 적어도 하나의 벤더가 다르다.
조항 10. 제1 차량과 인터페이스하도록 구성된 장치로서, 헤드 유닛은, 제1 차량의 하나 이상의 시스템의 동작 상태 변경을 개시하도록 명령 세트를 저장하기 위해 구성된 하나 이상의 메모리; 그리고 하나 이상의 프로세서를 포함하며, 하나 이상의 프로세서는, 제1 차량의 하나 이상의 시스템에 명령 세트를 발행하고; 명령 세트의 발행에 응답하여 그리고 동작 상태 변경 후, 하나 이상의 시스템으로부터 하나 이상의 차량 파라미터 각각의 동작 상태의 각각의 표시를 획득하고; 명령 세트에 대해, 하나 이상의 차량 파라미터의 동작 상태들 사이의 하나 이상의 종속성을 결정하고; 그리고 하나 이상의 종속성에 기초하여, 제1 차량의 하나 이상의 시스템과 제2 차량의 하나 이상의 시스템 사이의 가변성을 수용하도록 명령 세트를 적응시키도록 구성된다.
조항 11. 조항 10의 장치에 있어서, 상기 명령 세트는 상기 하나 이상의 차량 파라미터의 제1 서브세트 각각에 대한 상태를 지정하기 위한 제1 명령 세트를 포함하고, 상기 하나 이상의 프로세서는 상기 하나 이상의 차량 파라미터의 제2 서브세트 각각에 대한 상태를 지정하기 위해 제2 명령 세트를 결정하도록 구성되고, 하나 이상의 차량 파라미터의 제1 서브 세트와 하나 이상의 차량 파라미터의 제2 서브 세트는 다르다.
조항 12. 조항 10 및 11의 장치에 있어서, 하나 이상의 프로세서는 하드웨어 추상화 계층을 포함하는 운영 체제를 실행하도록 구성되고, 하드웨어 추상화 계층은 명령 세트를 적응시키도록 구성된다.
조항 13. 조항 10-12의 임의의 조합의 장치에 있어서, 상기 하나 이상의 프로세서는 상기 명령 세트에 의해 개시된 동작 상태 변경 및 상기 하나 이상의 차량 파라미터의 동작 상태를 연관시키는 테이블을 유지하도록 구성된다.
조항 14. 조항 10-13의 임의의 조합의 장치에 있어서, 상기 하나 이상의 프로세서는 상기 하나 이상의 종속성을 식별하기 위해 상기 하나 이상의 차량 파라미터의 상태 및 상기 명령 세트에 의해 개시된 동작 상태 변경에 대해 기계 학습을 수행하도록 구성된다.
조항 15. 조항 10-14 중 임의의 조합의 장치에 있어서,상기 장치는, 명령 세트를 나타내는 그래픽 사용자 인터페이스 요소를 표시하도록 구성된 디스플레이 장치를 더 포함한다.
조항 16. 조항 10-15의 임의의 조합의 장치에 있어서, 명령 세트는 하나 이상의 시스템의 동작 상태 변경을 초기에 개시할 수 없으며, 상기 하나 이상의 프로세서는 상기 명령 세트가 상기 하나 이상의 시스템의 동작 상태 변경을 개시할 수 있도록 상기 명령 세트를 적응시키도록 구성된다.
조항 17. 조항 10-16의 임의의 조합의 장치에 있어서, 제1 차량의 하나 이상의 시스템은 제1 차량의 HVAC 시스템을 포함한다.
조항 18. 조항 10-17의 임의의 조합의 장치에 있어서, 상기 제1 차량의 하나 이상의 시스템은 제1 벤더 세트이고, 상기 제2 차량의 하나 이상의 시스템은 제2 벤더 세트이고, 상기 제1 벤더 세트 및 상기 제2 벤더 세트는 적어도 하나의 벤더가 다르다.
조항 19. 조항 10-18의 임의의 조합의 장치에 있어서, 상기 장치는 제1 차량을 포함하고, 상기 제1 차량은 헤드 유닛을 포함하고, 상기 헤드 유닛은 상기 메모리 및 하나 이상의 프로세서를 포함한다.
조항 20. 실행될 때, 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령어들을 저장한 컴퓨터 판독 가능한 매체로서, 상기 동작들은, 차량의 하나 이상의 시스템에 하나 이상의 시스템의 작동 상태 변경을 개시하도록 설정된 명령을 발행하는 동작; 명령 세트의 발행에 응답하여 그리고 동작 상태 변경 후, 하나 이상의 시스템으로부터, 하나 이상의 차량 파라미터 각각의 동작 상태의 각각의 표시를 획득하는 동작; 명령 세트에 대해, 하나 이상의 차량 파라미터의 작동 상태들 사이의 하나 이상의 종속성을 결정하는 동작; 그리고 하나 이상의 종속성(의존성)에 기초하여, 제1 차량의 하나 이상의 시스템과 제2 차량의 하나 이상의 시스템 사이의 가변성을 수용하도록 명령 세트를 적응시키는 동작을 포함한다.
조항 21. 방법으로서, 차량의 하나 이상의 프로세서에 의해, 차량의 하나 이상의 시스템을 제어하기 위해 운영 체제를 실행하는 단계;
하나 이상의 프로세서에 의해, 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 운영 체제에 의해 지원되는 표준 제어 메시지 사이의 확장 가능한 맵핑을 획득하는 단계;
하나 이상의 프로세서에 의해 실행되는 운영 체제에 의해 표준 제어 메시지를 생성하는 단계 -표준 제어 메시지는 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 명령 세트의 제1 표현을 포함함-;
하나 이상의 프로세서에 의해 그리고 확장 가능한 맵핑에 기초하여, 로컬 제어 메시지를 획득하도록 표준 제어 메시지를 변환하는 단계 -로컬 제어 메시지는 명령 세트의 제2 표현을 포함함-; 그리고
하나 이상의 프로세서에 의해 그리고 하나 이상의 시스템 및 하나 이상의 프로세서에 연결된 제어 버스를 통해, 하나 이상의 시스템의 동작 상태 변경을 개시하기 위해 로컬 제어 메시지를 전송하는 단계를 포함한다.
조항 22. 조항 21의 방법에 있어서, 상기 확장성(확장 가능한) 매핑을 획득하는 단계는 상기 로컬 제어 메시지와 상기 표준 제어 메시지 사이의 확장성 매핑을 정의하는 파일을 획득하는 단계를 포함한다.
조항 23. 조항 21 및 조항 22의 임의의 조합의 방법에 있어서, 상기 표준 제어 메시지를 변환하는 단계는, 제어 버스와 운영 체제 사이에 심을 제공하기 위해 차량 하드웨어 추상화 계층을 실행하는 단계; 그리고
차량 하드웨어 추상화 계층에 의해 그리고 확장 가능한 맵핑에 기초하여, 표준 제어 메시지를 로컬 제어 메시지를 획득하기 위해 변환하는 단계를 포함한다.
조항 24. 조항 21-23의 임의의 조합의 방법에 있어서,
상기 표준 제어 메시지를 변환하는 단계는,
하나 이상의 프로세서의 전용 제어 버스 프로세서에 의해, 제어 버스와 운영 체제 사이에 심(shim)을 제공하기 위해 제어 버스 게이트웨이를 실행하는 단계; 그리고
제어 버스 게이트웨이에 의해 그리고 확장 가능한 맵핑에 기초하여 표준 제어 메시지를 로컬 제어 메시지로 변환하는 단계를 포함한다.
조항 25. 조항 21-24의 임의 조합의 방법으로서, 상기 방법은,
제어 버스를 통해, 제2 로컬 제어 메시지를 수신하는 단계;
확장 가능한 맵핑에 기초하여, 제2 표준 제어 메시지를 획득하기 위해 제2 로컬 제어 메시지를 변환하는 단계; 그리고
제2 표준 제어 메시지에 기초하여, 하나 이상의 차량 파라미터의 하나 이상의 동작 상태를 업데이트하는 단계를 더 포함한다.
조항 26. 조항 21 내지 조항 25의 임의의 조합의 방법에 있어서, 상기 방법은 로컬 제어 메시지와 표준 제어 메시지 사이의 다른 매핑을 정의하는 업데이트 된 확장가능한 매핑을 획득하는 단계를더 포함한다.
조항 27. 조항 21-26의 임의의 조합의 방법에 있어서, 차량의 하나 이상의 시스템은 차량의 가열, 환기 및 공조 시스템을 포함한다.
조항 28. 조항 21-27의 임의의 조합의 방법에 있어서, 상기 제어 버스 프로토콜은 CAN(Controller Area Network) 프로토콜을 포함한다.
조항 29. 조항 21-28의 임의의 조합의 방법에 있어서, 상기 로컬 제어 메시지는 DBC 포맷 또는 카약 CAN 정의(KCD) 포맷 중 하나에 따라 포맷된 로컬 제어 메시지를 포함한다.
조항 30. 조항 21-29의 임의 조합의 방법으로서, 상기 방법은, 차량의 하나 이상의 시스템에, 하나 이상의 시스템의 탐색적(exploratory) 동작 상태 변경을 개시하도록 설정된 탐색적 명령을 발행하는 단계;
명령 세트의 발행에 응답하여 그리고 탐색적 동작 상태 변경 후, 하나 이상의 시스템으로부터 하나 이상의 차량 파라미터 각각의 실제 동작 상태들의 각각의 표시를 획득하는 단계;
탐색적 명령 세트에 대해, 하나 이상의 차량 파라미터의 실제 동작 상태들 사이의 하나 이상의 종속성을 결정하는 단계; 그리고
하나 이상의 종속성에 기초하여, 로컬 제어 메시지로부터 표준 제어 메시지로 명령 세트를 변환하도록 확장 가능한 맵핑을 생성하는 단계를 더 포함한다.
조항 31. 차량과 상호 작용하도록 구성된 장치로서, 상기 장치는,
제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 운영 체제에 의해 지원되는 표준 제어 메시지 사이의 확장 가능한 맵핑을 저장하도록 구성된 메모리; 그리고
하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는,
차량의 하나 이상의 시스템을 제어하기 위해 운영 체제를 실행하고 -운영 체제는 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 명령 세트의 제1 표현을 포함하는 표준 제어 메시지를 생성하도록 구성됨-;
확장 가능한 매핑에 따라 표준 제어 메시지를 변환하여 로컬 제어 메시지를 획득하고 -로컬 제어 메시지는 명령 세트의 제2 표현을 포함함-; 그리고
하나 이상의 프로세서 및 하나 이상의 시스템에 결합된 제어 버스를 통해, 하나 이상의 시스템의 동작 상태 변경을 개시하기 위해 로컬 제어 메시지를 송신하도록 구성된다.
조항 32. 조항 31의 장치로서, 상기 하나 이상의 프로세서는 상기 로컬 제어 메시지와 상기 표준 제어 메시지 사이의 확장 가능한 맵핑을 정의하는 파일을 획득하도록 구성된다.
조항 33. 조항 31 및 32의 임의의 조합의 장치로서, 상기 하나 이상의 프로세서는,
제어 버스와 운영 체제 사이에 심을 제공하기 위해 차량 하드웨어 추상화 계층을 실행하고; 그리고
차량 하드웨어 추상화 계층에 의해 그리고 확장 가능한 맵핑에 기초하여, 표준 제어 메시지를 로컬 제어 메시지를 획득하도록 변환한다.
조항 34. 조항 31-33의 임의의 조합의 장치로서, 상기 하나 이상의 프로세서는,
하나 이상의 프로세서의 전용 제어 버스 프로세서에 의해, 제어 버스와 운영 체제 사이에 심을 제공하기 위한 제어 버스 게이트웨이를 실행하고; 그리고
제어 버스 게이트웨이에 의해 그리고 확장 가능한 맵핑에 기초하여 표준 제어 메시지를 로컬 제어 메시지로 변환하도록 구성된다.
조항 35. 조항 31-34의 임의의 조합의 장치로서, 상기 하나 이상의 프로세서는,
제어 버스를 통해 제2 로컬 제어 메시지를 수신하고;
확장 가능한 맵핑에 기초하여, 제2 표준 제어 메시지를 획득하도록 제2 로컬 제어 메시지를 변환하고; 그리고
제2 표준 제어 메시지에 기초하여, 하나 이상의 차량 파라미터의 하나 이상의 동작 상태를 업데이트하도록 더 구성된다.
조항 36. 조항 31-35의 임의의 조합의 장치로서, 상기 하나 이상의 프로세서는 상기 로컬 제어 메시지와 상기 표준 제어 메시지 사이의 다른 매핑을 정의하는 업데이트된 확장 가능한 매핑을 획득하도록 더 구성된다.
조항 37. 조항 31-36의 임의의 조합의 장치로서, 차량의 하나 이상의 시스템은 차량의 가열, 환기 및 공조 시스템을 포함한다.
조항 38. 조항 31 내지 37의 임의의 조합의 장치로서, 상기 제어 버스 프로토콜은 CAN (Controller Area Network) 프로토콜을 포함한다.
조항 39. 조항 31-38의 임의의 조합의 장치로서, 상기 로컬 제어 메시지는 DBC 포맷 또는 카약 CAN 정의(KCD) 포맷 중 하나에 따라 포맷된 로컬 제어 메시지를 포함한다.
조항 40. 실행될 때, 차량 헤드 유닛의 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령어들을 저장한 비-일시적 컴퓨터 판독 가능 저장 매체로서, 상기 동작들은,
차량의 하나 이상의 시스템을 제어하기 위해 운영 체제를 실행하는 동작;
제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 운영 체제에서 지원하는 표준 제어 메시지 간의 확장 가능한 맵핑을 획득하는 동작 -운영 체제는 표준 제어 메시지를 생성하도록 구성되고, 표준 제어 메시지는 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 명령 세트의 제1 표현을 포함함-;
확장 가능한 매핑에 기초하여 표준 제어 메시지를 변환하여 로컬 제어 메시지를 획득하는 동작 -로컬 제어 메시지는 명령 세트의 제2 표현을 포함함-; 그리고
하나 이상의 프로세서에 의해 그리고 하나 이상의 프로세서 및 하나 이상의 시스템에 결합된 제어 버스를 통해, 하나 이상의 시스템의 동작 상태 변경을 개시하기 위해 로컬 제어 메시지를 전송하는 동작을 포함한다.
예로서, 이러한 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 저장 매체를 포함할 수 있지만, 이에 제한되지는 않는다. 또한, 모든 연결은 컴퓨터 판독 가능 매체로 적절히 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어(twisted pair), DSL(digital subscriber line) 또는 적외선, 라디오 및 마이크로 웨이브와 같은 무선 기술을 사용하여 웹 사이트, 서버 또는 기타 원격 소스에서 명령어이 전송되는 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술이 매체의 정의에 포함된다. 그러나, 컴퓨터 판독 가능 저장 매체 및 미디어 및 데이터 저장 매체는 연결체, 반송파, 신호 또는 다른 일시적 매체를 포함하지 않지만, 비-일시적 유형의 저장 매체로 지향된다는 것을 이해해야한다. 본 명세서에서 사용되는 디스크(Disk) 및 디스크(disc)는 컴팩트 디스크(CD), 레이저 디스크, 광학 디스크, 디지털 다목적 디스크(DVD), 플로피 디스크 및 블루 레이 디스크를 포함하며, 여기서 디스크(disk)는 일반적으로 자기적으로 데이터를 재생하는 반면, 디스크(disc)는 레이저로 데이터를 광학적으로 재생한다. 상기의 조합은 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야한다.
명령어는 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그램 가능 논리 어레이(FPGA), 또는 기타 동등한 통합 또는 이산 논리 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 용어 "프로세서"는 전술한 구조 중 어느 하나 또는 본 명세서에 설명된 기술의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다. 또한, 일부 양태들에서, 여기에 설명된 기능은 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있다. 또한, 기술은 하나 이상의 회로 또는 논리 요소에서 완전히 구현될 수 있다.
본 개시의 기술들은 무선 핸드셋, 집적 회로(IC) 또는 IC 세트(예를 들어, 칩 세트)를 포함하는 다양한 장치 또는 장치에서 구현될 수 있다. 개시된 컴포넌트들을 수행하도록 구성된 디바이스들의 기능적 측면들을 강조하기 위해 다양한 컴포넌트들, 모듈들 또는 유닛들이 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 오히려, 전술한 바와 같이, 다양한 유닛은 하드웨어 유닛으로 조합되거나 적절한 소프트웨어 및/또는 펌웨어와 함께 전술 한 바와 같은 하나 이상의 프로세서를 포함하는 상호 운용 가능한 하드웨어 유닛의 컬렉션에 의해 제공될 수 있다.
다양한 실시 예들이 설명되었다. 이들 및 다른 실시 양태는 하기 청구 범위의 범주 내에 있다.
Claims (20)
- 방법으로서,
차량에 통합된 차량 헤드 유닛의 하나 이상의 프로세서에 의해, 상기 차량 헤드 유닛의 운영 체제를 실행하여 상기 차량의 하나 이상의 시스템을 제어하고, 상기 차량의 탑승자에게 엔터테인먼트를 제공하고, 상기 차량에 관한 정보를 제공하고, 하나 이상의 애플리케이션이 실행되는 실행 환경을 제공하는 단계;
상기 하나 이상의 프로세서에 의해, 상기 하나 이상의 프로세서와 상기 하나 이상의 시스템에 연결된 제어 버스와 상기 운영 체제 사이에 소프트웨어 심(shim)을 제공하도록 차량 하드웨어 추상화 계층(abstraction layer)을 실행하는 단계;
하나 이상의 프로세서에 의해, 차량 시스템 버스에 의해 지원되는 로컬 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 상기 차량 헤드 유닛의 운영 체제에 의해 지원되는 표준 제어 메시지 사이의 확장 가능한 맵핑을 획득하는 단계;
하나 이상의 프로세서에 의해 실행되는 운영 체제에 의해, 표준 제어 메시지를 생성하는 단계 -상기 표준 제어 메시지는 하나 이상의 시스템의 동작 상태 변경을 개시하기 위한 명령 세트의 제1 표현을 포함함-;
하나 이상의 프로세서에 의해, 상기 표준 제어 메시지에 상기 확장 가능한 맵핑을 적용함으로써 상기 표준 제어 메시지를 상기 로컬 제어 메시지로 변환(translating)하는 단계 -상기 로컬 제어 메시지는 상기 명령 세트의 제2 표현을 포함함-; 그리고
상기 하나 이상의 프로세서에 의해 그리고 상기 하나 이상의 시스템 및 상기 하나 이상의 프로세서에 연결된 상기 제어 버스를 통해, 상기 하나 이상의 시스템의 동작 상태 변경을 개시하도록 상기 로컬 제어 메시지를 전송하는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서, 상기 확장 가능한 맵핑을 획득하는 단계는 상기 로컬 제어 메시지와 상기 표준 제어 메시지 사이의 확장 가능한 맵핑을 정의하는 파일을 획득하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 표준 제어 메시지를 변환(translating)하는 단계는,
상기 차량 하드웨어 추상화 계층에 의해, 상기 운영 체제가 상기 변환을 수행하도록 상기 차량 하드웨어 추상화 계층에 요청하지 않고, 상기 확장 가능한 맵핑에 기초하여 상기 로컬 제어 메시지를 획득하도록 상기 표준 제어 메시지를 변환(translating)하는 단계를 포함하는 것을 특징으로 하는 방법. - 삭제
- 제1항에 있어서, 상기 방법은,
상기 하나 이상의 프로세서에 의해 그리고 제어 버스를 통해, 상기 로컬 제어 버스 프로토콜에 따라 지정된 제2 로컬 제어 메시지를 수신하는 단계;
확장 가능한 맵핑에 기초하여, 상기 운영 체제에 의해 지원되는 제2 표준 제어 메시지를 획득하도록 제2 로컬 제어 메시지를 변환(translating)하는 단계; 그리고
제2 표준 제어 메시지에 기초하여, 하나 이상의 차량 파라미터의 하나 이상의 동작 상태를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서, 상기 방법은, 로컬 제어 메시지와 표준 제어 메시지 사이의 다른 맵핑을 정의하는 업데이트된 확장가능한 맵핑을 획득하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 방법은, 차량의 하나 이상의 시스템은 차량의 HVAC(heating, ventilation, and air conditioning) 시스템을 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 로컬 제어 버스 프로토콜은 CAN(Controller Area Network) 프로토콜을 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 로컬 제어 메시지는 DBC 포맷 또는 카약(Kayak) CAN 정의(KCD) 포맷 중 하나에 따라 포맷된 로컬 제어 메시지를 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 방법은,
차량의 하나 이상의 시스템에, 하나 이상의 시스템의 탐색적(exploratory) 동작 상태 변경을 개시하도록 설정된 탐색적 명령을 발행하는 단계;
명령 세트의 발행에 응답하여 그리고 탐색적 동작 상태 변경 후, 하나 이상의 시스템으로부터 하나 이상의 차량 파라미터의 실제 동작 상태들의 각각의 표시를 획득하는 단계;
탐색적 명령 세트에 대해, 하나 이상의 차량 파라미터의 상기 실제 동작 상태들 사이의 하나 이상의 종속성을 결정하는 단계; 그리고
하나 이상의 종속성에 기초하여, 로컬 제어 메시지로부터 표준 제어 메시지로 명령 세트를 변환(translating)하도록 확장 가능한 맵핑을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 차량과 상호작용하도록 구성된 장치로서, 상기 장치는 상기 차량에 통합된 차량 헤드 유닛을 포함하며, 상기 차량 헤드 유닛은,
차량 시스템 버스에 의해 지원되는 로컬 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 상기 차량 헤드 유닛의 운영 체제에 의해 지원되는 표준 제어 메시지 사이의 확장 가능한 맵핑을 저장하도록 구성된 메모리; 그리고
하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는,
상기 운영 체제를 실행하여 상기 차량의 하나 이상의 시스템을 제어하고, 상기 차량의 탑승자에게 엔터테인먼트를 제공하고, 상기 차량에 관한 정보를 제공하고 -상기 운영 체제는 상기 표준 제어 메시지를 생성하고 그리고 하나 이상의 애플리케이션이 실행되는 실행 환경을 제공하고, 상기 표준 제어 메시지는 상기 하나 이상의 시스템의 동작 상태 변경을 개시하도록 하는 명령 세트의 제1 표현을 포함함-;
상기 하나 이상의 프로세서와 상기 하나 이상의 시스템에 연결된 제어 버스와 상기 운영 체제 사이에 소프트웨어 심(shim)을 제공하도록 차량 하드웨어 추상화 계층(abstraction layer)을 실행하고;
상기 표준 제어 메시지에 상기 확장 가능한 맵핑을 적용함으로써 상기 표준 제어 메시지를 상기 로컬 제어 메시지로 변환하고 -로컬 제어 메시지는 명령 세트의 제2 표현을 포함함-; 그리고
상기 하나 이상의 프로세서 및 상기 하나 이상의 시스템에 결합된 상기 제어 버스를 통해, 하나 이상의 시스템의 동작 상태 변경을 개시하도록 상기 로컬 제어 메시지를 송신하도록 구성되는 것을 특징으로 하는 장치. - 제11항에 있어서, 상기 하나 이상의 프로세서는 상기 로컬 제어 메시지와 상기 표준 제어 메시지 사이의 확장 가능한 맵핑을 정의하는 파일을 획득하도록 구성되는 것을 특징으로 하는 장치.
- 제11항에 있어서, 상기 하나 이상의 프로세서는,
상기 차량 하드웨어 추상화 계층에 의해, 상기 운영 체제가 상기 변환을 수행하도록 상기 차량 하드웨어 추상화 계층에 요청하지 않고, 확장 가능한 맵핑에 기초하여 상기 로컬 제어 메시지를 획득하도록 상기 표준 제어 메시지를 변환하도록 구성되는 것을 특징으로 하는 장치. - 삭제
- 제11항에 있어서, 상기 하나 이상의 프로세서는,
제어 버스를 통해 상기 로컬 제어 버스 프로토콜에 따라 지정된 제2 로컬 제어 메시지를 수신하고;
확장 가능한 맵핑에 기초하여, 상기 운영 체제에 의해 지원되는 제2 표준 제어 메시지를 획득하도록 제2 로컬 제어 메시지를 변환(translate)하고; 그리고
제2 표준 제어 메시지에 기초하여, 하나 이상의 차량 파라미터의 하나 이상의 동작 상태를 업데이트하도록 더 구성되는 것을 특징으로 하는 장치. - 제11항에 있어서, 상기 하나 이상의 프로세서는,
상기 로컬 제어 메시지와 상기 표준 제어 메시지 사이의 다른 맵핑을 정의하는 업데이트된 확장 가능한 맵핑을 획득하도록 더 구성되는 것을 특징으로 하는 장치. - 제11항에 있어서, 차량의 하나 이상의 시스템은 차량의 HVAC(heating, ventilation, and air conditioning) 시스템을 포함하는 것을 특징으로 하는 장치.
- 제11항에 있어서, 상기 로컬 제어 버스 프로토콜은 CAN(Controller Area Network) 프로토콜을 포함하는 것을 특징으로 하는 장치.
- 제11항에 있어서, 상기 로컬 제어 메시지는 DBC 포맷 또는 카약 CAN 정의(KCD) 포맷 중 하나에 따라 포맷된 로컬 제어 메시지를 포함하는 것을 특징으로 하는 장치.
- 실행될 때, 차량 헤드 유닛의 하나 이상의 프로세서로 하여금 동작들을 수행하게 하는 명령어들을 저장한 비-일시적 컴퓨터 판독 가능 저장 매체로서, 상기 동작들은,
상기 차량 헤드 유닛의 운영 체제를 실행하여 상기 차량의 하나 이상의 시스템을 제어하고, 상기 차량의 탑승자에게 엔터테인먼트를 제공하고, 상기 차량에 관한 정보를 제공하고, 하나 이상의 애플리케이션이 실행되는 실행 환경을 제공하는 동작;
차량 시스템 버스에 의해 지원되는 로컬 제어 버스 프로토콜에 따라 지정된 로컬 제어 메시지와 상기 차량 헤드 유닛의 운영 체제에서 지원하는 표준 제어 메시지 간의 확장 가능한 맵핑을 획득하는 동작 -상기 운영 체제는 표준 제어 메시지를 생성하도록 구성되고, 상기 표준 제어 메시지는 하나 이상의 시스템의 동작 상태 변경을 개시하도록 하는 명령 세트의 제1 표현을 포함함-;
상기 하나 이상의 프로세서와 상기 하나 이상의 시스템에 연결된 제어 버스와 상기 운영 체제 사이에 소프트웨어 심(shim)을 제공하도록 차량 하드웨어 추상화 계층(abstraction layer)을 실행하는 동작;
상기 표준 제어 메시지에 상기 확장 가능한 맵핑을 적용함으로써 상기 표준 제어 메시지를 상기 로컬 제어 메시지로 변환하는 동작 -로컬 제어 메시지는 명령 세트의 제2 표현을 포함함-; 그리고
상기 하나 이상의 프로세서에 의해, 그리고 상기 하나 이상의 프로세서 및 상기 하나 이상의 시스템에 연결된 상기 제어 버스를 통해, 하나 이상의 시스템의 동작 상태 변경을 개시하도록 상기 로컬 제어 메시지를 전송하는 동작을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862720701P | 2018-08-21 | 2018-08-21 | |
US62/720,701 | 2018-08-21 | ||
PCT/US2019/037536 WO2020040848A1 (en) | 2018-08-21 | 2019-06-17 | Extensible mapping for vehicle system buses |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200087222A KR20200087222A (ko) | 2020-07-20 |
KR102451033B1 true KR102451033B1 (ko) | 2022-10-06 |
Family
ID=67138134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207017170A KR102451033B1 (ko) | 2018-08-21 | 2019-06-17 | 차량 시스템 버스를 위한 확장 가능한 매핑 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11405234B2 (ko) |
EP (1) | EP3698242A1 (ko) |
JP (1) | JP7068455B2 (ko) |
KR (1) | KR102451033B1 (ko) |
CN (1) | CN111542807B (ko) |
WO (1) | WO2020040848A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144053B2 (en) * | 2019-04-04 | 2021-10-12 | Toyota Research Institute, Inc. | Controlling driving condition components of an autonomous vehicle based on a current driving mode and current conditions |
WO2021033298A1 (ja) * | 2019-08-22 | 2021-02-25 | 日本電気株式会社 | 情報処理装置、情報処理方法及び記憶媒体 |
CN114553764B (zh) * | 2020-11-24 | 2022-12-09 | 比亚迪股份有限公司 | 汽车网关路由配置*** |
KR102404908B1 (ko) | 2021-10-27 | 2022-06-07 | 주식회사 네오오토 | Rv 차량의 컨트롤 보드 제어 시스템 |
CN115571072B (zh) * | 2022-10-24 | 2024-06-14 | 中国第一汽车股份有限公司 | 抬头显示器模式转换方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014162286A (ja) | 2013-02-22 | 2014-09-08 | Panasonic Corp | 車載機器制御装置および車載機器制御プログラム |
KR101491622B1 (ko) | 2014-02-17 | 2015-02-11 | 연세대학교 산학협력단 | 자율 주행형 차량의 주행 제어 장치 및 방법 |
US20150191175A1 (en) * | 2012-06-29 | 2015-07-09 | Harman International (China) Holdings Co., Ltd. | Method and apparatus for uniform access of onboard devices |
US20170072876A1 (en) * | 2015-09-14 | 2017-03-16 | Broadcom Corporation | Hardware-Accelerated Protocol Conversion in an Automotive Gateway Controller |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3692820B2 (ja) | 1999-03-10 | 2005-09-07 | 株式会社デンソー | 自動車用制御装置 |
JP3690179B2 (ja) | 1999-04-26 | 2005-08-31 | 株式会社デンソー | 自動車用制御装置 |
JP3666297B2 (ja) | 1999-04-26 | 2005-06-29 | 株式会社デンソー | 自動車用制御装置 |
JP2005236560A (ja) | 2004-02-18 | 2005-09-02 | Sony Corp | 車両通信システムおよびゲートウエイ装置 |
US7281118B2 (en) * | 2005-08-05 | 2007-10-09 | International Business Machines Corporation | Sending thread message generated using DCR command pointed message control block storing message and response memory address in multiprocessor |
CN101598930A (zh) * | 2008-04-22 | 2009-12-09 | 万国卡车知识产权有限公司 | 可编程的can总线消息到模拟信号的转换器 |
JP5434512B2 (ja) | 2009-11-18 | 2014-03-05 | トヨタ自動車株式会社 | 車載通信システム、ゲートウェイ装置 |
JP6133622B2 (ja) * | 2013-02-27 | 2017-05-24 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
US10251034B2 (en) * | 2013-03-15 | 2019-04-02 | Blackberry Limited | Propagation of application context between a mobile device and a vehicle information system |
CN104571069A (zh) | 2013-10-09 | 2015-04-29 | 上海通用汽车有限公司 | 用于车身控制器的仿真测试*** |
CN110290039B (zh) * | 2014-09-12 | 2021-08-31 | 松下电器(美国)知识产权公司 | 电子控制单元、车载网络***以及车辆用通信方法 |
EP3099019B1 (en) * | 2015-05-27 | 2019-01-02 | OpenSynergy GmbH | Method, computer program product, and control unit for an automotive vehicle |
KR101765001B1 (ko) * | 2016-01-20 | 2017-08-10 | 인천유시티 주식회사 | 다양한 유형의 이기종 디바이스 연계 및 수집 데이터의 통합에 기반한 중앙집중 의사결정방식의 지능형 유시티 통합관제플랫폼 구현방법 및 그 시스템 |
CN105564351B (zh) * | 2016-01-27 | 2018-03-13 | 北京汽车股份有限公司 | 汽车动力电源控制方法、can接口处理装置及控制*** |
WO2017140367A1 (en) | 2016-02-18 | 2017-08-24 | Renesas Electronics Corporation | Message handler |
CN106020191B (zh) | 2016-05-26 | 2017-10-13 | 百度在线网络技术(北京)有限公司 | 无人车的控制方法、装置及*** |
CN106114420B (zh) * | 2016-07-21 | 2018-11-20 | 贵州吉利新能源汽车有限公司 | 车窗的控制方法及其控制*** |
CN107465695A (zh) | 2017-09-21 | 2017-12-12 | 扬州航盛科技有限公司 | 一种基于数据库动态更新can解析参数的方法和*** |
US11184778B2 (en) * | 2018-02-20 | 2021-11-23 | Intel Corporation | Mobile service chain placement |
-
2019
- 2019-06-17 CN CN201980007272.5A patent/CN111542807B/zh active Active
- 2019-06-17 WO PCT/US2019/037536 patent/WO2020040848A1/en unknown
- 2019-06-17 KR KR1020207017170A patent/KR102451033B1/ko active IP Right Grant
- 2019-06-17 US US16/764,153 patent/US11405234B2/en active Active
- 2019-06-17 EP EP19735073.9A patent/EP3698242A1/en active Pending
- 2019-06-17 JP JP2020529523A patent/JP7068455B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150191175A1 (en) * | 2012-06-29 | 2015-07-09 | Harman International (China) Holdings Co., Ltd. | Method and apparatus for uniform access of onboard devices |
JP2014162286A (ja) | 2013-02-22 | 2014-09-08 | Panasonic Corp | 車載機器制御装置および車載機器制御プログラム |
KR101491622B1 (ko) | 2014-02-17 | 2015-02-11 | 연세대학교 산학협력단 | 자율 주행형 차량의 주행 제어 장치 및 방법 |
US20170072876A1 (en) * | 2015-09-14 | 2017-03-16 | Broadcom Corporation | Hardware-Accelerated Protocol Conversion in an Automotive Gateway Controller |
Also Published As
Publication number | Publication date |
---|---|
US11405234B2 (en) | 2022-08-02 |
JP2021516802A (ja) | 2021-07-08 |
WO2020040848A1 (en) | 2020-02-27 |
CN111542807A (zh) | 2020-08-14 |
EP3698242A1 (en) | 2020-08-26 |
KR20200087222A (ko) | 2020-07-20 |
CN111542807B (zh) | 2023-09-29 |
JP7068455B2 (ja) | 2022-05-16 |
US20200396101A1 (en) | 2020-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102451033B1 (ko) | 차량 시스템 버스를 위한 확장 가능한 매핑 | |
US9324234B2 (en) | Vehicle comprising multi-operating system | |
JP7223895B2 (ja) | 車両のための拡張可能なコンピューティングアーキテクチャ | |
US20170227960A1 (en) | Autonomous vehicle with modular control interface | |
JP6564845B2 (ja) | オペレーティングシステム起動加速 | |
US20100211582A1 (en) | Open architecture vehicle information module for vehicle and trailer, and system and method thereof | |
CN114363385B (zh) | 一种云端更新汽车端软件的方法、***、设备及存储介质 | |
KR20220065669A (ko) | 온-디바이스 캐시를 이용한 하이브리드 페칭 | |
CN112817677B (zh) | 车载信息娱乐***主题切换方法、***、设备及存储介质 | |
EP4369186A1 (en) | Control method and apparatus, device, and storage medium | |
CN116018585A (zh) | 经由硬件抽象层进行流式传输 | |
KR102371527B1 (ko) | 차량용 운영 체제와 차량 제조업체 사용자 관리 시스템의 통합 | |
CN112181371A (zh) | 用户界面设计方法、用户界面设计装置和存储介质 | |
US20240069928A1 (en) | Network management for vehicle operating systems | |
CN116873021A (zh) | 一种方向盘及其使用方法、车辆 | |
CN117774847A (zh) | 车辆控制架构和车辆 | |
CN116165993A (zh) | 车辆智能座舱的测试装置、方法及*** | |
CN113401072A (zh) | 车辆驾驶舱组成部件的运行模式设置与启动方法和装置 | |
CN116963929A (zh) | 用于管理管理设备的人机界面的运行的管理方法以及相关联的***和机动车辆,所述管理设备用于管理机动车辆的自适应玻璃门窗的运行 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |