KR20230132923A - 차량 및 차량의 제어방법 - Google Patents

차량 및 차량의 제어방법 Download PDF

Info

Publication number
KR20230132923A
KR20230132923A KR1020220029783A KR20220029783A KR20230132923A KR 20230132923 A KR20230132923 A KR 20230132923A KR 1020220029783 A KR1020220029783 A KR 1020220029783A KR 20220029783 A KR20220029783 A KR 20220029783A KR 20230132923 A KR20230132923 A KR 20230132923A
Authority
KR
South Korea
Prior art keywords
vehicle
bootloader
flash
reprogramming
control unit
Prior art date
Application number
KR1020220029783A
Other languages
English (en)
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 KR1020220029783A priority Critical patent/KR20230132923A/ko
Publication of KR20230132923A publication Critical patent/KR20230132923A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Regulating Braking Force (AREA)

Abstract

일 실시예에 의한 차량은, 차량의 제어를 위한 어플리케이션 블록 및 플래시 부트로더를 저장하는 메모리, 상기 메모리와 프로세서를 포함하는 제어부를 포함하고, 상기 제어부는, 재프로그래밍 요청을 수신하면, 상기 플래시 부트로더의 바이너리에 대한 체크섬을 계산하여 재프로그래밍 여부를 결정하고,상기 어플리케이션 블록에 손상이 발생하면 상기 플래시 부트로더의 제어를 어플리케이션의 복제 이미지로 변경할 수 있다.

Description

차량 및 차량의 제어방법{VEHICLE, CONTROLLING METHOD OF VEHICLE}
개시된 발명은 차량 및 차량의 제어방법에 관한 것으로, 더욱 상세하게는 차량 제어기 내부의 부트로더를 제어하여 안전을 도모할 수 있는 차량 및 그 제어방법에 관한 것이다.
부트로더(boot loader, 초기적재프로그램)란 운영 체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영 체제를 시동시키기 위한 목적을 가진 프로그램을 말한다.
최근에는 차량 내부에서 사용되는 어플리케이션의 크기가 증가하여 소프트웨어를 업데이트 할 필요성이 증가하였고, 그에 따라 차량 제어기의 초기 시동 시 부트로더가 어플리케이션에 접근할 필요성 역시 증가하였다.
이때, 어플리케이션에서 오류나 손상이 발생하면 부트로더에서 어플리케이션으로의 접근이 중단되어 어플리케이션에 의해 제어되는 차량의 기능이 작동하지 않을 수 있다는 문제점이 있었다.
개시된 발명의 일 측면은 어플리케이션이 손상되는 경우에도 추가적인 어플리케이션 복제 이미지로 부트로더의 제어를 변경하여 안전을 도모하는 차량 및 차량의 제어 방법을 제공하고자 한다.
개시된 발명의 일 측면에 따른 차량은, 차량의 제어를 위한 어플리케이션 블록 및 플래시 부트로더를 저장하는 메모리, 상기 메모리와 프로세서를 포함하는 제어부를 포함하고, 상기 제어부는, 재프로그래밍 요청을 수신하면, 상기 플래시 부트로더의 바이너리에 대한 체크섬을 계산하여 재프로그래밍 여부를 결정하고, 상기 어플리케이션 블록에 손상이 발생하면 상기 플래시 부트로더의 제어를 어플리케이션의 복제 이미지로 변경할 수 있다.
상기 제어부는, 기준 체크섬과 현재 체크섬이 일치하면 재프로그래밍을 시작할 수 있다.
상기 제어부는, 현재 체크섬과 기준 체크섬이 일치하지 않으면 재프로그래밍을 종료할 수 있다.
개시된 발명의 일 측면에 따른 차량은, 통신부를 더 포함하고, 상기 제어부는 상기 통신부를 제어하여 외부 플래싱 도구에서 재프로그래밍 요청을 수신할 수 있다.
상기 제어부는, 상기 재프로그래밍 요청이 수신되면, 상기 외부 플래싱 도구의 플래시 드라이버를 상기 플래시 부트로더로 내려받을 수 있다.
상기 제어부는, 상기 재프로그래밍이 종료되면, 상기 플래시 드라이버를 상기 플래시 부트로더에서 삭제할 수 있다.
개시된 발명의 일 측면에 따른 차량의 제어 방법은, 차량의 제어를 위한 어플리케이션 블록 및 플래시 부트로더를 저장하는 단계, 재프로그래밍 요청을 수신하는 단계, 상기 플래시 부트로더의 바이너리에 대한 체크섬을 계산하여 재프로그래밍 여부를 결정하는 단계, 상기 어플리케이션 블록에 손상이 발생하면 상기 플래시 부트로더의 제어를 어플리케이션의 복제 이미지로 변경하는 단계를 포함할 수 있다.
상기 재프로그래밍 여부를 결정하는 단계는,기준 체크섬과 현재 체크섬이 일치하면 재프로그래밍을 시작할 수 있다.
상기 재프로그래밍 여부를 결정하는 단계는, 현재 체크섬과 기준 체크섬이 일치하지 않으면, 재프로그래밍을 종료할 수 있다.
개시된 발명의 일 측면에 따른 차량의 제어 방법은, 통신부를 제어하여 외부 플래싱 도구에서 재프로그래밍 요청을 수신하는 단계를 더 포함할 수 있다.
상기 재프로그래밍 요청이 수신되면, 상기 외부 플래싱 도구의 플래시 드라이버를 상기 플래시 부트로더로 내려받는 단계를 더 포함할 수 있다.
상기 재프로그래밍이 종료되면, 상기 플래시 드라이버를 상기 플래시 부트로더에서 삭제하는 단계를 더 포함할 수 있다.
개시된 발명의 일 측면에 따르면, 차량 제어기 내의 어플리케이션이 손상되는 경우에도 추가적인 어플리케이션 복제 이미지를 구비하여 부트로더의 제어를 변경할 수 있고, 이에 따라 차량 및 운전자의 안전을 도모할 수 있다.
도 1은 일 실시예에 의한 차량의 구성을 도시한다.
도 2은 일 실시예에 의한 운전자 보조 시스템의 구성을 도시한다.
도 3은 일 실시예에 의한 운전자 보조 시스템이 포함된 카메라 및 센서를 도시한다.
도 4는 일 실시예에 의한 부트로더가 구비되는 블록도를 나타낸 도면이다.
도 5는 일 실시예에 의한 차량에서 부트로더에 의해 각 제어기가 업데이트 되는 구조를 나타낸 도면이다.
도 6은 일 실시예에 의한 차량에서 외부 플래싱 툴에 의해 어플리케이션이 업데이트 되는 블록도를 나타낸 도면이다.
도 7은 일 실시예에 의한 차량에서 부트로더가 복제된 어플리케이션 블록에양측 접근하는 것을 나타내는 도면이다.
도 8은 일 실시예에 의한 차량의 제어흐름도이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 개시된 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '부, 모듈, 부재, 블록'이라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 모듈, 부재, 블록'이 하나의 구성요소로 구현되거나, 하나의 '부, 모듈, 부재, 블록'이 복수의 구성요소들을 포함하는 것도 가능하다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 간접적으로 연결되어 있는 경우를 포함하고, 간접적인 연결은 무선 통신망을 통해 연결되는 것을 포함한다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
명세서 전체에서, 어떤 부재가 다른 부재 "상에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
제 1, 제 2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 전술된 용어들에 의해 제한되는 것은 아니다.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하 첨부된 도면들을 참고하여 개시된 발명의 작용 원리 및 실시예들에 대해 설명한다.
도 1은 일 실시예에 의한 차량의 구성을 도시한다.
도 1에 도시된 바와 같이, 차량(1)은 엔진(10)과, 변속기(20)와, 제동 장치(30)와, 조향 장치(40)를 포함한다. 엔진(10)은 실린더와 피스톤을 포함하며, 차량(1)이 주행하기 위한 동력을 생성할 수 있다. 변속기(20)는 복수의 기어들을 포함하며, 엔진(10)에 의하여 생성된 동력을 차륜까지 전달할 수 있다. 제동 장치(30)는 차륜과의 마찰을 통하여 차량(1)을 감속시키거나 차량(1)을 정지시킬 수 있다. 조향 장치(40)는 차량(1)의 주행 방향을 변경시킬 수 있다.
차량(1)은 복수의 전장 부품들을 포함할 수 있다. 예를 들, 차량(1)은 엔진 관리 시스템(Engine Management System, EMS) (11)과, 변속기 제어 유닛(Transmission Control Unit, TCU) (21)과, 전자식 제동 제어 모듈(Electronic Brake Control Module) (31)과, 전자식 조향 장치(Electronic Power Steering, EPS) (41)과, 바디 컨트롤 모듈(Body Control Module, BCM)과, 운전자 보조 시스템(100)(Driver Assistance System, DAS)과, 사용자 인터페이스(200)를 포함할 수 있다.
엔진 관리 시스템(11)은 가속 페달을 통한 운전자의 가속 의지 또는 운전자 보조 시스템(100)의 요청에 응답하여 엔진(10)을 제어할 수 있다. 예를 들어, 엔진 관리 시스템(11)은 엔진(10)의 토크를 제어할 수 있다.
엔진 관리 시스템(11)은 연료분사 제어, 연비 피드백 제어, 희박 연소 제어, 점화 시기 제어 및 공회전수 제어 등을 수행한다. 이러한 엔진 관리 시스템(11)은 단일의 장치일 수 있을 뿐만 아니라, 통신을 통하여 연결된 복수의 장치들일 수도 있다.
변속기 제어 유닛(21)은 변속 레버를 통한 운전자의 변속 명령 및/또는 차량(1)의 주행 속도에 응답하여 변속기(20)를 제어할 수 있다. 예를 들어, 변속기 제어 유닛(21)은 엔진(10)으로부터 차륜까지의 변속 비율을 조절할 수 있다.
전자식 제동 제어 모듈(31)은 제동 페달을 통한 운전자의 제동 의지 및/또는 차륜들의 슬립(slip)에 응답하여 제동 장치(30)를 제어할 수 있다. 예를 들어, 전자식 제동 제어 모듈(31)은 차량(1)의 제동 시에 감지되는 차륜의 슬립에 응답하여 차륜의 제동을 일시적으로 해제할 수 있다(Anti-lock Braking Systems, ABS). 전자식 제동 제어 모듈(31)은 차량(1)의 조향 시에 감지되는 오버스티어링(oversteering) 및/또는 언더스티어링(understeering)에 응답하여 차륜의 제동을 선택적으로 해제할 수 있다(Electronic stability control, ESC). 또한, 전자식 제동 제어 모듈(31)은 차량(1)의 구동 시에 감지되는 차륜의 슬립에 응답하여 차륜을 일시적으로 제동할 수 있다(Traction Control System, TCS).
전자식 조향 장치(41)는 스티어링 휠을 통한 운전자의 조향 의지에 응답하여 운전자가 쉽게 스티어링 휠을 조작할 수 있도록 조향 장치(40)의 동작을 보조할 수 있다. 예를 들어, 전자식 조향 장치(41)는 저속 주행 또는 주차 시에는 조향력을 감소시키고 고속 주행 시에는 조향력을 증가시키도록 조향 장치(40)의 동작을 보조할 수 있다.
바디 컨트롤 모듈(51)은 운전자에게 편의를 제공하거나 운전자의 안전을 보장하는 전장 부품들의 동작을 제어할 수 있다. 예를 들어, 바디 컨트롤 모듈(51)은 헤드 램프, 와이퍼, 클러스터, 다기능 스위치 및 방향 지시 램프 등을 제어할 수 있다.
운전자 보조 시스템(100)은 운전자가 차량(1)을 조작(구동, 제동, 조향)하는 것을 보조할 수 있다. 예를 들어, 운전자 보조 시스템(100)은 차량(1)이 주행 중인 도로의 환경(예를 들어, 다른 차량, 보행자, 사이클리스트(cyclist), 차선, 도로 표지판, 신호등 등)을 감지하고, 감지된 환경에 응답하여 차량(1)의 구동 및/또는 제동 및/또는 조향을 제어할 수 있다.
운전자 보조 시스템(100)은 운전자에게 다양한 기능을 제공할 수 있다. 예를 들어, 운전자 보조 시스템(100)은 차선 이탈 경고(Lane Departure Warning, LDW)와, 차선 유지 보조(Lane Keeping Assist, LKA)와, 상향등 보조(High Beam Assist, HBA)와, 자동 긴급 제동(Autonomous Emergency Braking, AEB)과, 교통 표지판 인식(Traffic Sign Recognition, TSR)과, 스마트 크루즈 컨트롤(Smart Cruise Control, SCC)과, 사각지대 감지(Blind Spot Detection, BSD) 등을 제공할 수 있다.
운전자 보조 시스템(100)은 차량(1) 주변의 영상 데이터를 획득하는 카메라 모듈(101)과, 차량(1) 주변의 객체 데이터를 획득하는 레이더 모듈(102)을 포함한다. 카메라 모듈(101)은 카메라(101a)와 제어기(Electronic Control Unit, ECU) (101b)를 포함하며, 차량(1)의 전방을 촬영하고 다른 차량, 보행자, 사이클리스트, 차선, 도로 표지판, 신호등 등을 인식할 수 있다. 레이더 모듈(102)은 레이더(102a)와 제어기(102b)를 포함하며, 차량(1) 주변의 객체(예를 들어, 다른 차량, 보행자, 사이클리스트 등)의 상대 위치, 상대 속도 등을 획득할 수 있다.
즉, 운전자 보조 시스템(100)은 카메라 모듈(101)에서 획득한 영상 데이터와 레이더 모듈(102)에서 획득한 감지 데이터(레이더 데이터)를 처리하고, 영상 데이터와 레이더 데이터를 처리한 것에 응답하여 차량(1)이 주행 중인 도로의 환경, 차량(1)의 전방에 위치하는 전방 객체 및 차량(1)의 측방에 위치하는 측방 객체를 감지할 수 있다.
운전자 보조 시스템(100)은 도 1에 도시된 바에 한정되지 아니하며, 차량(1) 주변을 스캔하며 객체를 감지하는 라이다(lidar)를 더 포함할 수 있다.
이상의 전자 부품들은 차량용 통신 네트워크(NT)를 통하여 서로 통신할 수 있다. 예를 들어, 전장 부품들은 이더넷(Ethernet), 모스트(MOST, Media Oriented Systems Transport), 플렉스레이(Flexray), 캔(CAN, Controller Area Network), 린(LIN, Local Interconnect Network) 등을 통하여 데이터를 주고 받을 수 있다. 예를 들어, 운전자 보조 시스템(100)은 엔진 관리 시스템(11), 전자식 제동 제어 모듈(31) 및 전자식 조향 장치(41)에 각각 차량용 통신 네트워크(NT)를 통하여 구동 제어 신호, 제동 신호 및 조향 신호를 전송할 수 있다.
도 2는 일 실시예에 의한 운전자 보조 시스템의 구성을 도시하고, 도 3은 일 실시예에 의한 운전자 보조 시스템에 포함된 카메라 및 레이더를 도시한다.
도 2에 도시된 바와 같이, 차량(1)은 가속 시스템(12)과, 제동 시스템(32)과, 스피커(60), 디스플레이(70)와, 운전자 보조 시스템(100)을 포함할 수 있다.
가속 시스템(12)은 도 1과 함께 설명된 엔진 관리 시스템(11, 도 1 참조)과 엔진(10, 도 1 참조)을 포함하며, 제동 시스템(32)은 전자식 제동 제어 모듈(31, 도 1 참조)과 제동 장치(30, 도 1 참조)를 포함할 수 있다. 스피커(60) 및 디스플레이(70)는 음성 및 영상의 형태로 운전자에게 알림을 제공할 수 있다.
운전자 보조 시스템(100)은 전방 카메라(110)와, 제1 센서(120) 및 제2 센서(130)를 포함할 수 있다.
전방 카메라(110)는 도 3에 도시된 바와 같이 차량(1)의 전방을 향하는 시야(field of view) (110a)를 가질 수 있다. 전방 카메라(110)는 예를 들어 차량(1)의 프론트 윈드 쉴드에 설치될 수 있다.
전방 카메라(110)는 차량(1)의 전방을 촬영하고, 차량(1) 전방의 영상 데이터를 획득할 수 있다.
전방 카메라(110)는 복수의 렌즈들 및 이미지 센서를 포함할 수 있다. 이미지 센서는 광을 전기 신호로 변환하는 복수의 포토 다이오드들을 포함할 수 있으며, 복수의 포토 다이오드들이 2차원 매트릭스로 배치될 수 있다.
전방 카메라(110)는 제어부(140)와 전기적으로 연결될 수 있다. 예를 들어, 전방 카메라(110)는 차량용 통신 네트워크(NT)를 통하여 제어부(140)와 연결되거나, 하드 와이어(hard wire)를 통하여 제어부(140)와 연결되거나, 인쇄 회로 기판(Printed Circuit Board, PCB)을 통하여 제어부(140)와 연결될 수 있다.
이에 따라, 전방 카메라(110)는 차량(1) 전방의 영상 데이터를 제어부(140)로 전달할 수 있다.
제1 센서(120)는 도 3에 도시된 바와 같이 차량(1)의 전방을 향하는 감지 시야(field of sensing) (120a)을 가질 수 있다. 제1 센서(120)는 예를 들어 차량(1)의 그릴(grille) 또는 범퍼(bumper)에 설치될 수 있다. 제1 센서(120)는 레이더의 형태로 제공될 수 있다.
제1 센서(120)는 차량(1)의 전방을 향하여 송신 전파를 방사하는 송신 안테나(또는 송신 안테나 어레이)와, 객체에 반사된 반사 전파를 수신하는 수신 안테나(또는 수신 안테나 어레이)를 포함할 수 있다. 제1 센서(120)는 송신 안테나에 의한 송신된 송신 전파와 수신 안테나에 의하여 수신된 반사 전파로부터 제1 센서 데이터를 획득할 수 있다. 제1 센서 데이터는 차량(1) 전방에 위치하는 다른 차량 또는 보행자 또는 사이클리스트에 관한 거리 정보 및 속도 정도를 포함할 수 있다. 속도 정보는 횡방향 속도 정보와 종방향 속도 정보를 모두 포함할 수 있다. 제1 센서(120)는 송신 전파와 반사 전파 사이의 위상 차이(또는 시간 차이)에 기초하여 객체까지의 상태 거리를 산출하고, 송신 전파와 반사 전파 사이의 주파수 차이에 기초하여 객체의 상대 속도를 산출할 수 있다.
제1 센서(120)는 예를 들어 차량용 통신 네트워크(NT) 또는 하드 와이어 또는 인쇄 회로 기판을 통하여 제어부(140)와 연결될 수 있다. 이에 따라, 제1 센서(120)는 제1 센서 데이터를 제어부(140)로 전달할 수 있다.
또한, 운전자 보조 시스템(100)은 제2 센서(130)를 더 포함할 수 있으며, 제2 센서(20)는 복수의 코너 레이더의 형태로 제공될 수 있다.
제2 센서(130)는 차량(1)의 전방 우측에 설치되는 제1 코너 레이더(131)와, 차량(1)의 전방 좌측에 설치되는 제2 코너 레이더(132)와, 차량(1)의 후방 우측에 설치되는 제3 코너 레이더(133)와, 차량(1)의 후방 좌측에 설치되는 제4 코너 레이더(134)를 포함할 수 있다.
제1 코너 레이더(131)는 도 3에 도시된 바와 같이 차량(1)의 전방 우측을 향하는 감지 시야(131a)를 가질 수 있다. 제1 센서(120)는 예를 들어 차량(1)의 전방 범퍼의 우측에 설치될 수 있다. 제2 코너 레이더(132)는 차량(1)의 전방 좌측을 향하는 감지 시야(132a)를 가질 수 있으며, 예를 들어 차량(1)의 전방 범퍼의 좌측에 설치될 수 있다. 제3 코너 레이더(133)는 차량(1)의 후방 우측을 향하는 감지 시야(133a)를 가질 수 있으며, 예를 들어 차량(1)의 후방 범퍼의 우측에 설치될 수 있다. 제4 코너 레이더(134)는 차량(1)의 후방 좌측을 향하는 감지 시야(134a)를 가질 수 있으며, 예를 들어 차량(1)의 후방 범퍼의 좌측에 설치될 수 있다.
제1, 제2, 제3 및 제4 코너 레이더들(131, 132, 133, 134) 각각은 송신 안테나와 수신 안테나를 포함할 수 있다. 제1, 제2, 제3 및 제4 코너 레이더들(131, 132, 133, 134)은 각각 제1 코너 레이더 데이터와 제2 코너 레이더 데이터와 제3 코너 레이더 데이터와 제4 코너 레이더 데이터를 획득할 수 있다. 제1 코너 레이더 데이터는 차량(1) 전방 우측에 위치하는 다른 차량 또는 보행자 또는 사이클리스트(이하 "객체"라 한다)에 관한 거리 정보 및 속도 정도를 포함할 수 있다. 제2 코너 레이더 데이터는 차량(1) 전방 좌측에 위치하는 객체의 거리 정보 및 속도 정도를 포함할 수 있다. 제3 및 제4 코너 레이더 데이터는 차량(1) 후방 우측 및 차량(1) 후방 좌측에 위치하는 객체의 거리 정보 및 상대 속도를 포함할 수 있다.
제1, 제2, 제3 및 제4 코너 레이더들(131, 132, 133, 134) 각각은 예를 들어 차량용 통신 네트워크(NT) 또는 하드 와이어 또는 인쇄 회로 기판을 통하여 제어부(140)와 연결될 수 있다. 제1, 제2, 제3 및 제4 코너 레이더들(131, 132, 133, 134)은 각각 제1, 제2, 제3 및 제4 코너 레이더 데이터를 제어부(140)로 전달할 수 있다.
네비게이션(165)은 도로 정보를 수신할 수 있다. 예를 들어, 차량(1)의 전방에 신호등이 존재하는지 여부에 관한 정보를 수신할 수 있다.
제어부(140)는 카메라 모듈(101, 도 1 참조)의 제어기(101b, 도 1 참조) 및/또는 레이더 모듈(102, 도 1 참조)의 제어기(102b, 도 1 참조) 및/또는 별도의 통합 제어기를 포함할 수 있다.
제어부(140)는 프로세서(141)와 메모리(142)를 포함할 수 있다.
프로세서(141)는 전방 카메라(110)의 전방 영상 데이터와 제1 센서(120)의 제1 센서 데이터 및 제2 센서(130)의 제2 센서 테이터를 처리하고, 가속 시스템(12), 제동 시스템(32), 스피커(60) 및 디스플레이(70)를 제어하기 위한 신호를 생성할 수 있다. 예를 들어, 프로세서(141)는 전방 카메라(110)의 전방 영상 데이터를 처리하는 이미지 프로세서 및/또는 제1 센서(120) 및 제2 센서(130)의 레이더 데이터를 처리하는 디지털 시그널 프로세서 및/또는 구동 신호와 제동 신호를 생성하는 마이크로 컨트롤 유닛(Micro Control Unit, MCU)을 포함할 수 있다.
프로세서(141)는 전방 카메라(110)의 전방 영상 데이터와 제1 센서(120)의 제1 센서 데이터에 기초하여 차량(1) 전방의 객체들(예를 들어, 전방 차량)을 인식할 수 있다.
구체적으로, 전방 카메라(110)의 전방 영상 데이터에 기초하여 차량(1) 전방의 객체들의 위치(방향) 및/또는 유형 정보 및/또는 차로 정보를 획득할 수 있다.
또한, 프로세서(141)는 전방 영상 데이터에 의하여 감지된 객체들을 제1 센서 데이터에 의한 감지된 객체에 매칭하고, 매칭 결과에 기초하여 차량(1)의 전방 객체들의 유형 정보와 위치와 상대 속도를 획득할 수 있다.
프로세서(141)는 전방 영상 데이터 및/또는 제1 센서 데이터에서 전방 차량이 인식되면 인식된 전방 차량을 타겟 차량으로 선정할 수 있다.
이 때, 프로세서(141)는 전방 영상 데이터에서 인식된 전방 차량과 제1 센서 데이터에서 인식된 전방 차량이 일치할 때 전방 차량을 타겟 차량으로 선정할 수도 있다.
이후, 프로세서(141)는 가속 시스템(12), 제동 시스템(32), 및 조향 시스템(42)을 제어하여 차량(1)과 타겟 차량 사이의 거리를 유지시킬 수 있다.
예를 들어, 프로세서(141)는 차량(1)과 타겟 차량 사이의 거리를 유지시키기 위해 차량(1)과 타겟 차량 사이의 거리가 미리 설정된 거리보다 크면 차량(1)이 가속되도록 가속 시스템(12)을 제어할 수 있다.
즉, 프로세서(141)는 타겟 차량을 추종하도록 차량(1)의 속도를 제어할 수 있으며, 이 때, 타겟 차량을 추종하기 위한 요구 가속도를 결정하고 가속 시스템(12) 및/또는 제동 시스템(32)을 제어하여 차량(1)의 가속도를 요구 가속도로 가속시킬 수 있다.
또한, 프로세서(141)는 제2 센서(130)의 제2 센서 데이터에 기초하여 차량(1) 양측의 객체들에 관한 정보를 획득할 수 있다. 예를 들어, 제2 센서 데이터에 기초하여 차량(1)의 양측에 차량의 존부와 정지 여부를 판단할 수 있다.
메모리(142)는 프로세서(141)가 영상 데이터를 처리하기 위한 프로그램 및/또는 데이터와, 레이더 데이터를 처리하기 위한 프로그램 및/또는 데이터와, 프로세서(141)가 구동 신호 및/또는 제동 신호를 생성하기 위한 프로그램 및/또는 데이터를 저장할 수 있다.
메모리(142)는 전방 카메라(110)로부터 수신된 영상 데이터 및/또는 제1 센서(120) 및 제2 센서(130)로부터 수신된 레이더 데이터를 임시로 기억하고, 프로세서(141)의 영상 데이터 및/또는 레이더 데이터의 처리 결과를 임시로 기억할 수 있다.
메모리(142)는 S램(S-RAM), D램(D-RAM) 등의 휘발성 메모리뿐만 아니라 플래시 메모리, 롬(Read Only Memory, ROM), 이피롬(Erasable Programmable Read Only Memory: EPROM) 등의 비휘발성 메모리를 포함할 수 있다.
운전자 보조 시스템(100)은 도 2에 도시된 바에 한정되지 아니하며, 차량(1) 주변을 스캔하며 객체를 감지하는 라이다(lidar)를 더 포함할 수 있다.
이하에서는, 전술한 구성요소를 제어하기 위한 제어부(140)의 동작과 플래시 부트로더(500)의 제어에 관하여 구체적으로 설명한다.
도 4는 일 실시예에 의한 부트로더가 구비되는 블록도를 나타낸 도면이다.
도 4를 참조하면, 부트로더 블록도(200)의 가장 상위 Application/SWC(SoftWare Componet) 계층은 차량의 에어백, 브레이크와 같은 기능을 제어하기 위한 어플리케이션 레벨에 해당하며, 어플리케이션, 액츄에이터, 센서로 구분되고 인터페이스를 통해 운전자와 커뮤니케이션이 가능하다.
다음으로, 부트로더 블록도(200)의 OS(Operating System)/BSW(Basic SoftWare) 계층은 서비스 계층, ECU 추상화 계층, 드라이버 계층을 포함할 수 있으며, 마이크로 컨트롤러에 직접 액세스 할 수 있다. 또한, OS(Operating System)/BSW(Basic SoftWare) 계층은 소프트웨어를 관리하거나 하드웨어를 직접 제어하기 위한 인터페이스를 제공할 수 있다.
부트로더 블록도(200)의 부트로더(500)(Bootloader)는 별도의 계층으로 관리되는 것은 아니지만, 편의를 위해 별도의 계층으로 설명하며, 운영체제(OS)를 동작시키기 위해 운영체제의 일부인 커널을 로드하며, 이후 마이크로컨트롤러(Microcontroller)가 사용자 명령을 처리할 수 있도록 하드웨어 환경을 구축할 수 있다.
본 발명은, 부트로더(500)의 한 종류인 플래시 부트로더(500)에 관한 것으로, 차량에서 부트로더(500)가 어플리케이션에 접근하는 경우의 제어방법을 개시하며, 이하에서 설명하는 부트로더(500)는 플래시 부트로더(500)를 의미하는 것으로 한다.
도 5는 일 실시예에 의한 차량에서 부트로더에 의해 각 제어기가 업데이트 되는 구조를 나타낸 도면이다.
차량의 관리자가 차량의 어플리케이션을 업데이트 하기 위해 차량 소프트웨어 업데이트 ECU(Software Update ECU)를 차량용 진단 도구에 연결할 수 있다.
차량 소프트웨어 업데이트 ECU(Software Update ECU)가 차량용 진단 도구에연결되면 소프트웨어 업데이트 패키지가 소프트웨어 업데이트 ECU로 전송될 수 있다.
소프트웨어 업데이트 ECU는 소프트웨어 패키지를 해독하기 위해 OEM의 공개 키로 사전 프로그래밍될 수 있고, 이에 따라 소프트웨어 업데이트 패키지는 전송 중에 변경되지 않는다.
이후 소프트웨어 업데이트 ECU는 공개 키를 사용하여 업데이트 패키지를 해독하고 패키지 무결성을 보장할 수 있다.
위와 같은 과정을 통해 제어부(140)는 소프트웨어를 업데이트 할 준비를 완료할 수 있다.
일 실시예에 의한 차량에는, 중간 속도 캔 버스(300)인 MS-CAN과 고속 캔 버스(301)인 HS-CAN의 두 가지 네트워크 아키텍처가 존재할 수 있다.
중간 속도 캔 버스(300)의 데이터 처리량은 100Kbps인 반면 고속 캔 버스(301)의 처리량은 최대 1Mbps일수 있으며, 게이트웨이 ECU(Gateway ECU)는 일반적으로 중간 속도 캔 버스(300) 및 고속 캔 버스(301) 사이의 메시지를 변환하는 역할을 할 수 있다.
중간 속도 캔 버스(300)는 차량의 인포테인먼트, 차체 제어, 뒷좌석 엔터테인먼트 시스템 등과 같은 안전상 중요하지 않은 ECU를 연결할 수 있다.
반면, 고속 캔 버스(301)는 엔진 제어 ECU(Engine Control ECU), 에어백 ECU(Airbag control ECU) 등과 같은 시간 및 안전에 중요한 ECU를 연결할 수 있다.
소프트웨어 업데이트 ECU는 선택된 ECU에 대상 CAN 메시지를 전송하여 펌웨어 업데이트 시퀀스를 시작할 수 있다.
이후 제어부(140)가 CAN 부트로더(500) 모드에 진입하면 ECU는 내부 메모리(142)를 업그레이드하기 위해 펌웨어를 수신할 준비를 할 수 있고, 펌웨어를 수신한 ECU는 내부 프로그램 메모리(142) 업데이트를 시작할 수 있다.
전체 펌웨어가 전송되면 소프트웨어 업데이트 ECU는 선택한 ECU에서 펌웨어를 다시 읽어 검증 프로세스를 시작할 수 있다. 이후 소프트웨어 업데이트 ECU는 전송된 펌웨어와 수신된 펌웨어를 비교하여 전송 중에 손상이 없는지 확인할 수 있다.
소프트웨어 업데이트 ECU는 펌웨어 검증에 실패하면 다시 ECU 업데이트를 시도할 수 있다. 이때, 소프트웨어 업데이트 ECU와 선택된 ECU의 CAN 부트로더(500)는 펌웨어를 적절하게 전송하기 위해 수락된 핸드셰이크 메시지에 동의할 수 있다.
소프트웨어 업데이트 ECU가 펌웨어 전송을 성공적으로 완료하면 업데이트된 ECU가 새 펌웨어를 실행할 수 있다.
부트로더(500)는 차량 시동시 위와 같은 소프트웨어 업데이트를 진행할 수 있으며, 일 실시예에 의한 차량에 의하면 차량용 소프트웨어에 결함이 생긴 경우에도 소프트웨어 작동 중단이 발생하지 않으므로 안전을 도모할 수 있다.
도 6은 일 실시예에 의한 차량에서 외부 플래싱 도구에 의해 어플리케이션이 업데이트 되는 블록도를 나타낸 도면이다.
플래시 부트로더(500)는 자동차 제어 장치를 플래싱하기 위한 플래시 드라이버와 소프트웨어 모듈로 구성될 수 있다. 이러한 플래시 드라이버는 메모리(142) 위치와 ECU 플래싱을 위한 외부 플래싱 도구(400) 간의 연결 역할을 할 수 있다.
플래시 드라이버는 특정 오작동으로 인해 플래시 부트로더(500)의 메모리(142) 위치를 손상시킬 수 있으며, 이러한 시나리오가 발생하면 자동차 제어 장치가 업데이트를 수락하지 않을 수 있다.
플래시 부트로더(500)를 설계할 때 플래시 부트로더(500)의 메모리(142) 위치 손상을 고려하면, 기능 안전을 위한 ISO 26262 표준 및 ASIL B를 준수할 수 있다.
플래시 부트로더(500)가 ASIL B 이상을 준수하려면 메모리(142) 손상 문제가 완전히 완화되는 방식으로 자동차 ECU 부트로더(500)를 설계해야 하며, 일 실시예에 의한 차량이 해당 설계를 만족할 수 있다.
도 7은 일 실시예에 의한 차량에서 부트로더(500)가 복제된 어플리케이션 블록에 접근하는 것을 나타내는 도면이다.
차량에서 전자식 안정성 프로그램 또는 자동 브레이크 시스템(Auto Brake System)과 같은 중요한 어플리케이션(600-1)의 실행 실패는 심각한 오작동을 일으킬 수 있다.
일 실시예에 의한 플래시 부트로더(500)는 자동차 ECU 어플리케이션(600-1)이 손상될 때 어플리케이션(600-1) 실행 실패 문제를 해결할 수 있다.
구체적으로, 차량용 제어기(Automotive ECU)는 보조 어플리케이션 블록으로 저장된 어플리케이션(600-1)의 클론 이미지를 추가로 구비할 수 있다.
이에 따라, 제어부(140)는 기존 어플리케이션(600-1)에서 문제가 발견되면 플래시 부트로더(500)의 제어를 어플리케이션의 복제 어플리케이션(600-2)으로 이동시키므로 어플리케이션(600-1)을 중단할 필요가 없다.
즉, 제어부(140)는 안전에 직결되는 안정성 프로그램 또는 자동 브레이크 시스템(Auto Brake System)과 같은 어플리케이션(600-1)의 손상이 있더라도 생명을 더 안전하게 보호할 수 있다.
도 8은 일 실시예에 의한 차량의 제어흐름도이다.
일 실시예에 의한 차량의 제어부(140)는 시스템 부팅 시 커널을 로드하기 위한 적어도 하나의 부트로더(500) 프로그램 코드를 실행할 수 있다(800).
이후 제어부(140)는 부트로더(500) 프로그램 코드의 무결성을 확인할 수 있고(810), 무결성을 확인하기 위해 기준 체크섬과 현재 체크섬이 일치하면 재프로그래밍을 시작하거나, 기준 체크섬과 현재 체크섬이 일치하지 않으면 재프로그래밍을 종료하는 방식을 사용할 수 있다.
제어부(140)는 부트로더(500) 프로그램 코드 자체에 오류가 있는지 판단할 수 있고(820), 오류가 있으면(820의 예), 시스템 부팅 자체를 중단할 수 있다(830).
제어부(140)는 부트로더(500) 프로그램 코드 자체에 오류가 없는 것으로 판단하면(820의 아니오), 차량에서 사용되는 어플리케이션(600-1)이 손상되었는지 판단할 수 있다(840).
제어부(140)는 어플리케이션(600-1) 영역의 콘텐츠가 손상되었다면, 어플리케이션(600-1)이 중단되어 차량의 제어를 잃게 되고 안전을 위협할 수 있으므로 부트로더(500)의 제어를 어플리케이션(600-1)의 복제 어플리케이션(600-2)으로 이동시킬 수 있다(850).
이후 제어부(140)는 어플리케이션(600-1) 영역의 콘텐츠가 손상되지 않았거나(840의 아니오), 어플리케이션(600-1)의 복제 어플리케이션(600-2)에 의해 정상적으로 부트로더(500)가 실행되는 경우, 시스템을 부팅하고 어플리케이션을 실행시킬 수 있다(860).
이에 따라 일 실시예에 의한 차량은 기존 어플리케이션(600-1)에서 문제가 발견되더라도 부트로더(500)가 제어를 소프트웨어의 복제 어플리케이션(600-2)으로 이동하므로 어플리케이션(600-1)을 중단할 필요가 없다.
결국, 일 실시예에 의한 차량에 의하면 안전과 직결되는 중요한 어플리케이션(600-1)에서 손상이 발생되더라도, 어플리케이션(600-1)을 중단하지 않으므로 생명을 더 안전하게 보호하는 효과가 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서(141)에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리(142), 광 데이터 저장장치 등이 있을 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
1: 차량
100: 운전자 보조 시스템
140: 제어부
141: 프로세서
142: 메모리
200: 부트로더 블록도
300: 중간속도 캔 버스
301: 고속 캔 버스
400: 외부 플래싱 도구
500: 부트로더
600, 600-1: 어플리케이션
600-2: 복제 어플리케이션

Claims (12)

  1. 차량의 제어를 위한 어플리케이션 블록 및 플래시 부트로더를 저장하는 메모리;
    상기 메모리와 프로세서를 포함하는 제어부;를 포함하고,
    상기 제어부는,
    재프로그래밍 요청을 수신하면, 상기 플래시 부트로더의 바이너리에 대한 체크섬을 계산하여 재프로그래밍 여부를 결정하고,
    상기 어플리케이션 블록에 손상이 발생하면 상기 플래시 부트로더의 제어를 어플리케이션의 복제 이미지로 변경하는 차량.
  2. 제 1항에 있어서,
    상기 제어부는,
    기준 체크섬과 현재 체크섬이 일치하면 재프로그래밍을 시작하는 차량.
  3. 제 1항에 있어서,
    상기 제어부는,
    현재 체크섬과 기준 체크섬이 일치하지 않으면 재프로그래밍을 종료하는 차량.
  4. 제 1항에 있어서,
    통신부를 더 포함하고,
    상기 제어부는 상기 통신부를 제어하여 외부 플래싱 도구에서 재프로그래밍 요청을 수신하는 차량.
  5. 제 4항에 있어서,
    상기 제어부는,
    상기 재프로그래밍 요청이 수신되면, 상기 외부 플래싱 도구의 플래시 드라이버를 상기 플래시 부트로더로 내려받는 차량.
  6. 제 5항에 있어서,
    상기 제어부는,
    상기 재프로그래밍이 종료되면, 상기 플래시 드라이버를 상기 플래시 부트로더에서 삭제하는 차량.
  7. 차량의 제어를 위한 어플리케이션 블록 및 플래시 부트로더를 저장하는 단계;
    재프로그래밍 요청을 수신하는 단계;
    상기 플래시 부트로더의 바이너리에 대한 체크섬을 계산하여 재프로그래밍 여부를 결정하는 단계;
    상기 어플리케이션 블록에 손상이 발생하면 상기 플래시 부트로더의 제어를 어플리케이션의 복제 이미지로 변경하는 단계;
    를 포함하는 차량의 제어방법.
  8. 제 7항에 있어서,
    상기 재프로그래밍 여부를 결정하는 단계는,
    기준 체크섬과 현재 체크섬이 일치하면 재프로그래밍을 시작하는
    차량의 제어방법.
  9. 제 7항에 있어서,
    상기 재프로그래밍 여부를 결정하는 단계는,
    현재 체크섬과 기준 체크섬이 일치하지 않으면, 재프로그래밍을 종료하는 차량의 제어방법.
  10. 제 7항에 있어서,
    통신부를 제어하여 외부 플래싱 도구에서 재프로그래밍 요청을 수신하는 단계;
    를 더 포함하는 차량의 제어방법.
  11. 제 10항에 있어서,
    상기 재프로그래밍 요청이 수신되면, 상기 외부 플래싱 도구의 플래시 드라이버를 상기 플래시 부트로더로 내려받는 단계;
    를 더 포함하는 차량의 제어방법.
  12. 제 11항에 있어서,
    상기 재프로그래밍이 종료되면, 상기 플래시 드라이버를 상기 플래시 부트로더에서 삭제하는 단계;
    를 더 포함하는 차량의 제어방법.
KR1020220029783A 2022-03-10 2022-03-10 차량 및 차량의 제어방법 KR20230132923A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220029783A KR20230132923A (ko) 2022-03-10 2022-03-10 차량 및 차량의 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220029783A KR20230132923A (ko) 2022-03-10 2022-03-10 차량 및 차량의 제어방법

Publications (1)

Publication Number Publication Date
KR20230132923A true KR20230132923A (ko) 2023-09-19

Family

ID=88196481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220029783A KR20230132923A (ko) 2022-03-10 2022-03-10 차량 및 차량의 제어방법

Country Status (1)

Country Link
KR (1) KR20230132923A (ko)

Similar Documents

Publication Publication Date Title
US11492011B2 (en) Autonomous driving control device and method for autonomous driving control of vehicles
US20180154906A1 (en) Autonomous vehicle processor self-diagnostic
JP7485117B2 (ja) プログラム
US11840223B2 (en) Driver assistant system and method of controlling the same
US20210343148A1 (en) Driver assistance system and control method for the same
US20230271632A1 (en) Apparatus for controlling autonomous driving of a vehicle, system having the same and method thereof
KR20200115827A (ko) 운전자 보조 시스템 및 그 제어 방법
US10082796B2 (en) Pedestrian face detection
CN114103989A (zh) 具有集成控制设备的自动驾驶车辆的驾驶控制方法
US11890939B2 (en) Driver assistance system
KR102323483B1 (ko) 스마트 순항 제어 시스템 및 그 제어 방법
KR20230132923A (ko) 차량 및 차량의 제어방법
US20200377127A1 (en) Vehicle control system and vehicle control interface
US20220234582A1 (en) Driver assistance system and control method thereof
US20230138932A1 (en) Software updating device, software updating method, and software update processing program
KR102662730B1 (ko) 운전자 보조 장치 및 그 제어 방법
US20210284164A1 (en) Vehicle control apparatus, vehicle, operating method of vehicle control apparatus, and storage medium
CN114475415A (zh) 一种车灯控制方法、系统、装置、存储介质和车机系统
KR102614820B1 (ko) 운전자 보조 시스템 및 그 제어 방법
US20220004375A1 (en) Software update device, software update method, non-transitory storage medium, and vehicle
KR20220011381A (ko) 차량용 전장 시스템에 설치된 운영 체제의 부팅 방법
US20220396266A1 (en) Driver assistance system and method of controlling the same
US20210300429A1 (en) Apparatus for controlling autonomous driving of a vehicle, system having the same and method thereof
KR20230158161A (ko) 자율 주행 차량의 제어기 이중화 시스템 및 방법
WO2021124931A1 (ja) 運転支援装置および運転支援プログラム

Legal Events

Date Code Title Description
A201 Request for examination