KR100850803B1 - Can 시스템에서의 타임 트리거 기반의 메시지 스케줄링방법, 장치 및 시스템 - Google Patents

Can 시스템에서의 타임 트리거 기반의 메시지 스케줄링방법, 장치 및 시스템 Download PDF

Info

Publication number
KR100850803B1
KR100850803B1 KR1020070014019A KR20070014019A KR100850803B1 KR 100850803 B1 KR100850803 B1 KR 100850803B1 KR 1020070014019 A KR1020070014019 A KR 1020070014019A KR 20070014019 A KR20070014019 A KR 20070014019A KR 100850803 B1 KR100850803 B1 KR 100850803B1
Authority
KR
South Korea
Prior art keywords
time
message
node
critical
slot
Prior art date
Application number
KR1020070014019A
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 KR1020070014019A priority Critical patent/KR100850803B1/ko
Application granted granted Critical
Publication of KR100850803B1 publication Critical patent/KR100850803B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40143Bus networks involving priority mechanisms
    • H04L12/4015Bus networks involving priority mechanisms by scheduling the transmission of messages at the communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40143Bus networks involving priority mechanisms
    • H04L12/40156Bus networks involving priority mechanisms by using dedicated slots associated with a priority level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

CAN(controller area network) 시스템에서의 타임 트리거 기반의 메시지 스케줄링 방법, 장치 및 시스템 이 제공된다. CAN 노드는 CAN을 통해 메시지를 전송하기 위한 통신 모듈; 사이클 타임 중 메시지 송신을 시도할 수 있는 타임 슬롯을 인식하기 위한 메시지 스케줄링 모듈; 및 자체 컨트롤러 또는 연결된 오실레이터의 클럭을 이용하여, 특정 시점부터 메시지 스케줄링 모듈에 의한 타임 슬롯에 상응하는 전송 시작 시간을 인식하기 위한 시간 산출 모듈을 포함한다. 본 발명에 따르면, 별도의 하드웨어 추가 없이 타임 트리거 기반의 프로토콜로 메시지 전송 시간을 보장할 수 있다.
Figure R1020070014019
CAN, 차량, 시분할, TDMA, TTCAN

Description

CAN 시스템에서의 타임 트리거 기반의 메시지 스케줄링 방법, 장치 및 시스템{Time-triggered message scheduling method in CAN system and device, system thereof}
도 1은 본 발명의 일 실시예에 따른 타임 트리거 기반의 메시지 스케줄링을 수행하는 CAN 시스템을 개략적으로 나타낸 구성도.
도 2는 본 발명의 일 실시예에 따른 한 사이클의 시간 구성을 도시한 도면.
도 3은 본 발명의 일 실시예에 따른 각 사이클의 타임 슬롯을 예시한 도면.
도 4는 본 발명의 바람직한 일 실시예에 따른 타임 트리거 기반 CAN 시스템의 노드에서의 시분할 메시지 스케줄링 방식을 이용한 메시지 처리 과정을 나타낸 흐름도.
도 5는 본 발명의 바람직한 실시예에 따른 이벤트 트리거에 따른 시분할 메시지 스케쥴링 과정을 나타낸 흐름도.
<도면의 주요 부분에 대한 부호 설명>
10-1, 10-2, ..., 10-n : 크리티컬 노드
20 : 긴급 메시지 노드
30-1, 30-2, ..., 30-m : 논크리티컬 노드
50 : 메시지 스케줄링 모듈
60 : 시간 산출 모듈
100 : CAN 시스템
본 발명은 CAN(controller area network)에 관한 것으로서, 좀 더 상세하게는 CAN 시스템에서의 타임 트리거 기반의 메시지 스케줄링 방법, 장치 및 시스템에 관한 것이다.
일반적으로 자동차 분야에서 엔진 관리 시스템, 변속장치 제어, 계기 팩, 그리고 차체 전자 기술 같은 온-보드 전자 제어 장치(ECUs)들 간의 정보 교환에 사용되는 캔(CAN : controller area network)은, 제어 응용시스템 내에 있는 센서나 기동장치 등과 같은 들을 서로 연결해 주는 마이크로 제어기용 을 가리킨다.
종래의 CAN은 이벤트 트리거(event trigger) 방식을 사용하며, 그에 따른 비선점형 특성 및 중재 메커니즘(mechanism)으로 인해 메시지 지연을 초래하여 차량의 안정성과 편리성 증대를 위한 다양한 시스템으로의 적용이 제한된다. 즉, 우선순위를 두어 메시지를 전송함에 있어, 중재 메커니즘으로 인해 우선순위가 높은 메 시지도 약간의 지연(delay)이 발생하며, 우선순위가 낮은 메시지는 CAN 고유의 경쟁(arbitration) 메커니즘으로 인해 전송 지연이 발생한다.
따라서, 차량 내 CAN 기술로 타임 트리거(time trigger) 방식의 프로토콜들이 제안되고 있는 실정이다. 그러나 종래의 타임 트리거 방식의 CAN(TTCAN : Time Triggered CAN)은 CAN과는 다른 별도의 하드웨어 장비가 추가적으로 구비되어야 하며, 이에 따라 비용 추가 등의 문제가 발생한다.
따라서, 본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, 메시지 전송 시간 지연을 해소할 수 있는 CAN 시스템에서의 타임 트리거 기반의 메시지 스케줄링 방법, 장치 및 시스템을 제공하기 위한 것이다.
또한, 본 발명은 별도의 하드웨어 추가 없이 타임 트리거 기반의 프로토콜로 메시지 전송 시간을 보장할 수 있는 CAN 시스템에서의 타임 트리거 기반의 메시지 스케줄링 방법, 장치 및 시스템을 제공하기 위한 것이다.
또한, 본 발명은 설계자의 의도에 따라 특정 메시지의 전송 시기를 결정할 수 있으며, 긴급 메시지에 대한 전송 시간을 보장할 수 있어 신뢰성을 제공하는 CAN 시스템에서의 타임 트리거 기반의 메시지 스케줄링 방법, 장치 및 시스템을 제공하기 위한 것이다.
본 발명의 다른 목적들은 이하에 서술되는 바람직한 실시예를 통하여 보다 명확해질 것이다.
상술한 목적을 달성하기 위한 본 발명의 일측면에 따르면, CAN(controller area network) 노드에 있어서, CAN을 통해 메시지를 전송하기 위한 통신 모듈; 사이클 타임 중 메시지 송신을 시도할 수 있는 타임 슬롯을 인식하기 위한 메시지 스케줄링 모듈; 및 자체 컨트롤러 또는 연결된 오실레이터의 클럭을 이용하여, 특정 시점부터 상기 메시지 스케줄링 모듈에 의한 상기 타임 슬롯에 상응하는 전송 시작 시간을 인식하기 위한 시간 산출 모듈을 포함하는 타임 트리거 기반 CAN 노드가 제공된다.
여기서, 상기 시간 산출 모듈은 상기 컨트롤러 또는 상기 연결된 오실레이터의 시간당 클럭 수를 이용하여 상기 전송 시작 시간까지의 클럭 수를 산출하여 카운팅함으로써, 상기 통신 모듈이 상기 전송 시작 시간에 메시지 전송을 시도할 수 있다.
또한, 상기 특정 시점은 시스템이 온(ON)된 시점 및 새로운 사이클이 시작된 시점 중 어느 하나일 수 있다.
또한, 상기 타임 슬롯은 메시지 전송시간 및 처리시간을 합한 값과 일치하거나 그 이상으로 설정될 수 있다.
또한, 상기 노드는 크리티컬 노드 및 논크리티컬 노드로 구분되며, 상기 사이클 타임은 크리티컬 노드가 메시지를 전송하는 크리티컬 슬롯 및 복수의 논크리티컬 노드가 경쟁(arbitration)하여 메시지를 전송하는 논크리티컬 슬롯을 포함할 수 있다.
상술한 목적을 달성하기 위한 본 발명의 다른 측면에 따르면, CAN(controller area network) 시스템에 있어서, 사이클 타임의 복수의 타임 슬롯 중 크리티컬 슬롯에서 메시지를 전송하는 크리티컬 노드; 상기 타임 슬롯 중 논크리티컬 슬롯에서 타 노드와 경쟁하여 메시지를 전송하는 논크리티컬 노드; 및 긴급 메시지를 송신하는 긴급 메시지 노드를 포함하되, 상기 각 노드는 구비된 메시지 스케줄링 모듈에 의해 사이클 타임 중 메시지 송신을 시도할 수 있는 타임 슬롯을 인식하고, 구비된 시간 산출 모듈에 의해 자체 컨트롤러 또는 연결된 오실레이터의 클럭을 이용하여 특정 시점부터 상기 타임 슬롯에 상응하는 전송 시작 시간을 인식하는 하나 이상의 노드를 포함하는 타임 트리거 기반 CAN 시스템이 제공된다.
여기서, 상기 긴급 메시지 노드는 상기 긴급 메시지를 다음 사이클 타임의 특정 타임 슬롯을 예약하여 전송할 수 있으며, 상기 특정 타임 슬롯은 상기 다음 사이클 타임의 첫번째 타임 슬롯일 수 있다.
상술한 목적을 달성하기 위한 본 발명의 또 다른 측면에 따르면, CAN(controller area network) 노드에서의 메시지 스케줄링 방법에 있어서, 시스템이 온(on)되면 자체 컨트롤러 또는 연결된 오실레이터의 클럭을 이용하여 시각을 산출하여 저장 및 갱신하는 단계; 사이클 타임 중 메시지 송신을 시도할 수 있는 타임 슬롯을 인식하는 단계; 및 상기 타임 슬롯에 상응하는 전송 시작 시간을 상기 갱신되는 시각을 이용하여 인식하고, 상기 전송 시작 시간에 메시지 송신을 시도하는 단계를 포함하는 타임 트리거 기반의 메시지 스케줄링 방법이 제공된다.
여기서, 상기 타임 슬롯은 메시지 전송시간 및 처리시간을 합한 값과 일치하거나 그 이상으로 설정될 수 있다.
또한, 상기 노드는 크리티컬 노드 및 논크리티컬 노드로 구분되며, 상기 타임 슬롯은 크리티컬 노드가 메시지를 전송하는 크리티컬 슬롯 및 복수의 논크리티컬 노드가 경쟁(arbitration)하여 메시지를 전송하는 논크리티컬 슬롯으로 구분될 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관 련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여 본 발명에 따른 실시예들을 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어 도면 부호에 상관없이 동일하거나 대응하는 구성 요소는 동일한 참조번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 타임 트리거 기반의 메시지 스케줄링을 수행하는 CAN 시스템을 개략적으로 나타낸 구성도이고, 도 2는 본 발명의 일 실시예에 따른 한 사이클의 시간 구성을 도시한 도면이고, 도 3은 본 발명의 일 실시예에 따른 각 사이클의 타임 슬롯을 예시한 도면이다.
본 발명에 따른 CAN 시스템(100)은 TTCAN(Time Triggered CAN)과 같이 버스(BUS)의 통신 패턴을 미리 정의하여 높은 우선순위의 메시지 전송 보장 및 낮은 우선순위를 가진 노드로부터의 메시지 전송 지연을 줄일 수 있다. CAN 시스템(100)은 사이클(cycle)의 규칙적인 반복을 이용하여 TDMA(Time Division Multiple Access) 방식의 버스 접속을 제어할 수 있다.
도 1을 참조하면, 본 발명의 실시예에 따른 시분할 메시지 스케줄링(scheduling)하는 CAN 시스템(100)은 복수의 노드(node)를 포함하며, 각 노드들은 메시지 스케줄링 모듈(50) 및 시간 산출 모듈(60)을 포함한다.
CAN 시스템(100)의 각 노드는 크리티컬(critical) 노드(10-1, 10-2, ..., 10-n, 이하 10으로 통칭), 논크리티컬(non-critical) 노드(30-1, 30-2, ..., 30-m, 이하 30으로 통칭) 및 긴급 메시지 노드(20)로 구분될 수 있으며, 상기한 각 노드 로부터 발송되는 메시지는 크리티컬(critical) 메시지, 논크리티컬(non-critical) 메시지 및 긴급 메시지로 구분될 수 있다. 예를 들어, 크리티컬 노드(10)는 ABS(Anti Brake System), EMS(Engine Management System), ESP(Electronic Stability Program), TCS(Traction Control System), TCU(Transmission Control Unit), ACC(Advanced Cruise Control System) 노드 등일 수 있으며, 긴급 메시지 노드(20)로는 AirBag 노드 등이 설정되고, 나머지 노드들이 논크리티컬 노드(30)로 설정될 수 있다(도 3 참조).
도 2에 도시된 바와 같이 한 사이클 타임은 복수의 타임 슬롯으로 분할될 수 있다. 본 실시예에서는 도면에 도시된 바와 같이 한 사이클 타임에 5개의 타임 슬롯(210, 220, 230, 240, 250)이 존재하는 것을 예로 들었으나, 이는 하나의 실시예에 불과하며 이에 한정되는 것은 아니다. 또한, 크리티컬 메시지를 위한 타임 슬롯(210, 230, 250, 이하 크리티컬 슬롯)과 논크리티컬 메시지를 위한 타임 슬롯(220, 240, 이하 논크리티컬 슬롯)의 수량 또는/및 순서는 예시된 구성으로 제한되지 않음은 자명하다.
각각의 타임 슬롯은 메시지를 전송하는 시간인 MTT(message transmitting time)와 노드에서 메시지를 처리하는 시간인 MPT(message processing time)를 더한 시간과 일치하거나 그 이상으로 설정할 수 있다. MTT는 하기의 수학식 1과 같이, CAN 시스템(100)에서 사용되는 데이터 포맷의 크기인 CAN 데이터 프레임(data frame)을 CAN 버스 속도(BUS rate)로 나눈 값이다.
Figure 112007012411808-pat00001
크리티컬 노드(10)는 한 사이클 중 미리 지정된 타임 슬롯(즉, 도 2에 도시된 크리티컬 타임 슬롯 중 미리 지정된 어느 하나)에서 데이터 버스(BUS)를 점유하여 메시지를 송신할 수 있다. 사이클의 예시를 도시한 도 3을 함께 참조하면, 각 크리티컬 노드(10)는 해당하는 사이클 타임 중 메시지를 송신하는 타임 슬롯이 미리 지정된다. 이에 비해, 논크리티컬 노드(30)는 미리 지정된 타임 슬롯이 없으며, 한 사이클 중 논크리티컬 슬롯에서 복수의 논크리티컬 노드(30)가 서로 경쟁(arbitration)하며, 선택된 하나의 논크리티컬 노드(30)가 해당 타임 슬롯에서 메시지를 송신할 수 있다. 각 노드가 경쟁하여 버스를 이용하는 것은 현재의 CAN에서도 사용되는 기술이므로, 당업자에게는 자명하다 할 것이다.
긴급 메시지 노드(20)는 현재 사이클 이후의 다음 사이클의 특정 슬롯(예를 들어, 첫번째 타임 슬롯)을 예약하여, 해당 타임 슬롯에서 긴급 메시지를 전송할 수 있다.
따라서, 각 노드들은 구비된 메시지 스케줄링 모듈(50)을 이용하여 자신이 메시지를 보내는 시간을 인식할 수 있다. 메시지 스케줄링 모듈(50)은 미리 저장된 스케줄링 데이터를 이용하여 해당 노드가 메시지를 전송할 시간(타임 슬롯)을 인식하도록 기능한다. 예를 들어, 임의의 논크리티컬 노드(30)에서 메시지 전송 이벤트가 발생하면, 해당 메시지 스케줄링 모듈(50)은 전송 가능한 논크리티컬 슬롯이 언 제인지를 인식하여, 해당 타임 슬롯에서 메시지 전송이 시도될 수 있도록 기능한다.
또한, 각 노드들은 구비된 시간 산출 모듈(60)을 이용하여 현(現) 사이클의 현재 타임 슬롯을 인식한다. 즉, 최초 CAN 시스템(100)이 온(on)되면(예를 들어, 자동차에 시동이 걸려 CAN 시스템(100)에 전원이 인가되는 경우), 각 노드의 시간 산출 모듈(60)은 내부 컨트롤러(예를 들어, 통신 기능을 위한 통신 컨트롤러(도면에는 도시되지 않음) 등) 또는 해당 컨트롤러에 연결된 오실레이터(일반적으로 각 노드는 통신 컨트롤러의 외부 오실레이터가 존재함)의 클럭(clock)을 이용하여 현재 사이클의 현재 타임 슬롯을 인식한다. 물론, 한 사이클 타임은 미리 지정되어 각각의 노드가 인지하고 있어야 하며, 예를 들어 한 사이클 타임이 5초인 경우 각 노드는 이를 인지하고 있어야만 현 사이클 및 현재 타임 슬롯을 인지할 수 있다.
각 노드의 외부 오실레이터가 서로 상이할 수 있으므로, 한 클럭당 처리되는 시간은 각각 상이할 수 있다. 따라서, 특정 시간에 자신의 메시지 전송을 위해서는 클럭을 이용한 전송 시작 시간을 계산하는 알고리즘이 필요하다.
노드의 오실레이터의 시간당 클럭 값을 k, 메시지를 전송해야 하는 시간인 전송 시작 시간(기준은 시스템이 온된 시점 또는 새로운 사이클이 시작되는 시점일 수 있으며, 그 외에도 다양한 기준에 따른 특정 시점일 수 있음)을 y라고 설정하면, 클럭 수 x는 하기의 수학식 2를 이용하여 산출할 수 있다.
y = x * 1/k, y * k(sec) = x
예를 들어, 임의의 크리티컬 노드(10)의 오실레이터의 시간당 클럭 값 k가 30hz이고, 메시지 전송 시작 시간 y가 2(sec) 라고 가정하면, 클럭 수 x값은 수학식 2에 의해 2(sec) * 30(sec) = 60(클럭 수)과 같이 계산된다. 즉, 오실레이터의 시간당 클럭 값이 30hz이면 한 클럭당 시간은 1/30(sec)이므로, 전송 시작 시간 y까지의 클럭 수 x는 상기와 같이 60으로 산출될 수 있다.
따라서, 해당 노드는 새로운 사이클이 시작되면, 60번의 클럭이 발생되는 시점에 메시지 전송을 시도할 수 있다. 물론, 각 사이클 타임의 시작 시간도, 오실레이터의 클럭을 이용하여 인식할 수 있음은 당연하다.
이해의 편의를 위해 하나의 예를 들어, 한 사이클 타임이 5초이고 각 사이클 타임은 1초를 갖는 5개의 타임 슬롯으로 구성된 경우를 가정해 보기로 한다. 임의의 한 노드가 한 사이클의 두 번째 타임 슬롯에서 메시지를 전송해야 할 경우, 해당 노드는 자체(즉, 연결된 오실레이터 등) 클럭을 이용하여 새로운 사이클 타임이 시작됨을 인식하고, 사이클 타임이 시작된 시점부터 두 번째 타임 슬롯 시작 시간인 1초가 되는 시점을 인식함으로써, 해당 타임 슬롯에서 메시지 전송을 시도한다.
여기서, 전송 시작 시간을 인식하기 위해 클럭 수가 산출되는 경우를 예로 들었으나, 매번 메시지를 전송할 때마다 해당 전송 시작 시간을 인식하기 위한 클럭 수가 산출될 필요 없이, 오실레이터 값(k)에 따른 한 클럭당 시간(즉, 1/k)를 이용하여 현재 시각(예를 들어, 새로운 사이클의 시작 이후 카운팅되는 시간)이 계속하여 갱신되어 레지스터(register) 등의 저장수단에 저장될 수도 있다. 따라서, 메시지를 전송할 타임 슬롯의 전송 시작 시간과 갱신되어 저장되는 현재 시각이 비 교되고, 서로 일치하는 시간에 메시지 전송을 시도할 수도 있다. 쉽게 정리하면, 각 노드는 자체 클럭을 이용하여 시스템 온된 이후의 시간을 자체적으로 인식하고, 메시지 스케줄링에 따라 자신에게 할당된 타임 슬롯에서 메시지 전송을 시도할 수 있다.
또한, 각 노드의 메시지 스케줄링 모듈(50) 및 시간 산출 모듈(60)은 반드시 하드웨어적으로 구현될 필요는 없으며, 하드웨어 추가에 따른 비용 증감을 억제하도록 프로그램과 같이 소프트웨어적으로 구현되는 것이 보다 바람직하다.
또한, 도면에는 도시되지 않았으나, 각 노드는 CAN을 통해 메시지를 전송하거나 수신할 수 있는 데이터 통신 모듈, 메시지 스케줄링 모듈(50)과 시간 산출 모듈(60) 등의 구성부를 제어하기 위한 제어 모듈 등을 더 포함할 수 있으며, 이는 당업자에게는 자명하다 할 것이므로 상세한 설명은 생략한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 타임 트리거 기반 CAN 시스템의 노드에서의 시분할 메시지 스케줄링 방식을 이용한 메시지 처리 과정을 나타낸 흐름도이다.
도 4를 참조하면, CAN 시스템(100)이 온(on)됨에 따라, 구비된 오실레이터의 클럭을 이용한 시간이 카운팅된다(단계 410). 즉, 클럭에 의한 카운팅으로 인해 현재 시간(즉, 각 사이클 및 현재의 타임 슬롯 등)이 인식된다.
메시지를 전송할 수 있는 시간(즉, 메시지 전송 시도가 허용된 타임 슬롯)이 언제인지가 인식되어 메시지 스케줄링된다(단계 420). 즉, 현재 시각부터 메시지 전송이 가능한 타임 슬롯까지의 시간이 산출된다. 물론, 각 노드는 메시지 전송이 가능한 타임 슬롯에 대한 정보를 가지고 있다.
상술한 수학식 2에 의해 현재 시간부터 전송 시작 시간까지의 시간에 따른 오실레이터의 클럭 수가 산출된다(단계 430).
산출된 클럭 수만큼 카운팅되어(단계 440) 해당 타임 슬롯의 시작 시간이 되면, 이벤트 발생에 따른 메시지 전송이 시도된다(단계 450).
전술한 바와 같이 본 실시예와는 달리, 전송 시작 시간을 인식하기 위한 클럭 수가 산출되지 않고, 오실레이터 값(k)에 따른 한 클럭당 시간(즉, 1/k)을 이용하여 현재 시각(예를 들어, 새로운 사이클의 시작 이후 카운팅되는 시간)이 계속하여 갱신되어 레지스터(register) 등의 저장수단에 저장될 수도 있다. 따라서, 메시지를 전송할 타임 슬롯의 전송 시작 시간과 갱신되어 저장되는 현재 시각이 비교되고, 서로 일치하는 시간에 메시지 전송을 시도할 수도 있다.
도 5는 본 발명의 바람직한 실시예에 따른 이벤트 트리거에 따른 시분할 메시지 스케쥴링 과정을 나타낸 흐름도이다.
본 발명의 바람직한 실시예에 따른 CAN 시스템(100)은 상기한 바와 같이 TDMA 방식의 시분할 스케줄링을 사용하며, 만일 특정 노드가 긴급한 메시지를 전송해야 할 경우에는 이벤트 트리거(event trigger) 방식으로 메시지를 송신할 수도 있다.
예를 들어, AirBag과 같은 노드는 반드시 주기적으로 메시지를 송신할 필요 는 없으며 급작스런 브레이크 작동과 같은 긴급한 이벤트가 발생될 경우에만 긴급 메시지를 전송할 수도 있다.
따라서, 본 발명의 바람직한 실시예에 따른 CAN 시스템(100)의 특정 노드(즉, 긴급 메시지 노드(20))는 긴급한 이벤트가 발생하여 긴급 메시지를 송신해야 할 경우, 다음 사이클의 특정 타임 슬롯(예를 들어 첫 번째 타임 슬롯)을 예약하여 해당 긴급 메시지를 전송한다. 물론, 해당 특정 타임 슬롯에 메시지를 송신하도록 미리 지정된 노드가 존재할 수 있으나, 긴급 메시지의 전송이 우선될 수 있으므로 해당 노드는 다음 사이클에서 메시지를 송신하도록 구현되는 것이 바람직하다.
도 5를 참조하여 그 과정을 설명하면, 이벤트가 발생됨에 따라(단계 510), 해당 노드는 발생된 이벤트가 긴급한 이벤트인지 여부를 판단한다(단계 520).
판단 결과, 긴급하지 않은 일반 이벤트인 경우 도 4에 도시된 바와 같은 시분할 스케쥴링 과정을 통해 해당 이벤트에 따른 메시지를 송신한다(단계 530).
단계 520에서의 판단 결과 긴급한 이벤트인 경우, 다음 사이클의 특정 타임 슬롯을 예약한다(단계 540). 타임 슬롯의 예약은 CAN 시스템(100)을 제어하는 메인 컨트롤 노드(도면에는 도시되지 않음)에 의해 제어될 수 있으며, 또는 해당 노드에 의해 제어될 수도 있다. 예를 들어, 메인 컨트롤러 노드에 의해 제어되는 경우, 메인 컨트롤러는 예약된 특정 타임 슬롯에서 다른 노드들이 메시지를 전송하지 못하도록 제어 메시지를 미리 전송할 수 있다. 따라서, 해당 노드는 긴급 메시지를 위한 특정 타임 슬롯을 예약하기 위한 예약 신호를 메인 컨트롤 노드로 제공할 수 있다.
다른 실시예에 따르면, 별도의 예약 신호 없이, 해당 노드는 다음 사이클의 특정 타임 슬롯을 사용하여 메시지를 전송할 수도 있으며, 이 경우 해당 노드는 식별정보(예를 들어 우선순위 정보)를 이용하여 타 노드들이 상기한 특정 타임 슬롯을 이용하지 못하도록 할 수 있다.
해당 노드는 상기한 바와 같이 예약된 사이클의 특정 타임 슬롯 시간에 긴급 메시지를 전송한다(단계 550).
따라서, 본 실시예에 따른 CAN 시스템(100)은 긴급 메시지 노드(20)의 긴급 메시지에 대한 전송 시간을 보장할 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드디스크, 광자기디스크 등)에 저장될 수 있다.
본 발명은 상기한 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.
이상에서 상술한 바와 같이 본 발명에 따르면, 메시지 전송 시간 지연을 해소할 수 있는 CAN 시스템에서의 타임 트리거 기반의 메시지 스케줄링 방법, 장치 및 시스템을 제공할 수 있다.
또한, 본 발명에 따르면, 별도의 하드웨어 추가 없이 타임 트리거 기반의 프 로토콜로 메시지 전송 시간을 보장할 수 있다.
또한, 본 발명에 따르면, 설계자의 의도에 따라 특정 메시지의 전송 시기를 결정할 수 있으며, 긴급 메시지에 대한 전송 시간을 보장할 수 있어 신뢰성을 제공할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (11)

  1. CAN(controller area network) 노드에 있어서,
    CAN을 통해 메시지를 전송하기 위한 통신 모듈;
    사이클 타임 중 메시지 송신을 시도할 수 있는 타임 슬롯을 인식하기 위한 메시지 스케줄링 모듈; 및
    자체 컨트롤러 또는 연결된 오실레이터의 클럭을 이용하여, 특정 시점부터 상기 메시지 스케줄링 모듈에 의한 상기 타임 슬롯에 상응하는 전송 시작 시간을 인식하기 위한 시간 산출 모듈을 포함하는 타임 트리거 기반 CAN 노드.
  2. 제 1항에 있어서,
    상기 시간 산출 모듈은 상기 컨트롤러 또는 상기 연결된 오실레이터의 시간당 클럭 수를 이용하여 상기 전송 시작 시간까지의 클럭 수를 산출하여 카운팅함으로써, 상기 통신 모듈이 상기 전송 시작 시간에 메시지 전송을 시도하는 것을 특징으로 하는 타임 트리거 기반 CAN 노드.
  3. 제 1항에 있어서,
    상기 특정 시점은 시스템이 온(ON)된 시점 및 새로운 사이클이 시작된 시점 중 어느 하나인 것을 특징으로 하는 타임 트리거 기반 CAN 노드.
  4. 제 1항에 있어서,
    상기 타임 슬롯은 메시지 전송시간 및 처리시간을 합한 값과 일치하거나 그 이상으로 설정되는 것을 특징으로 하는 타임 트리거 기반 CAN 노드.
  5. 제 1항에 있어서,
    상기 노드는 크리티컬 노드 및 논크리티컬 노드로 구분되며, 상기 사이클 타임은 크리티컬 노드가 메시지를 전송하는 크리티컬 슬롯 및 복수의 논크리티컬 노드가 경쟁(arbitration)하여 메시지를 전송하는 논크리티컬 슬롯을 포함하는 것을 특징으로 하는 타임 트리거 기반 CAN 노드.
  6. CAN(controller area network) 시스템에 있어서,
    사이클 타임의 복수의 타임 슬롯 중 크리티컬 슬롯에서 메시지를 전송하는 크리티컬 노드;
    상기 타임 슬롯 중 논크리티컬 슬롯에서 타 노드와 경쟁하여 메시지를 전송하는 논크리티컬 노드; 및
    긴급 메시지를 송신하는 긴급 메시지 노드를 포함하되,
    상기 각 노드는 구비된 메시지 스케줄링 모듈에 의해 사이클 타임 중 메시지 송신을 시도할 수 있는 타임 슬롯을 인식하고, 구비된 시간 산출 모듈에 의해 자체 컨트롤러 또는 연결된 오실레이터의 클럭을 이용하여 특정 시점부터 상기 타임 슬롯에 상응하는 전송 시작 시간을 인식하는 하나 이상의 노드를 포함하는 타임 트리거 기반 CAN 시스템.
  7. 제 6항에 있어서,
    상기 긴급 메시지 노드는 상기 긴급 메시지를 다음 사이클 타임의 특정 타임 슬롯을 예약하여 전송하는 것을 특징으로 하는 타임 트리거 기반 CAN 시스템.
  8. 제 7항에 있어서,
    상기 특정 타임 슬롯은 상기 다음 사이클 타임의 첫번째 타임 슬롯인 것을 특징으로 하는 타임 트리거 기반 CAN 시스템.
  9. CAN(controller area network) 노드에서의 메시지 스케줄링 방법에 있어서,
    시스템이 온(on)되면 자체 컨트롤러 또는 연결된 오실레이터의 클럭을 이용 하여 시각을 산출하여 저장 및 갱신하는 단계;
    사이클 타임 중 메시지 송신을 시도할 수 있는 타임 슬롯을 인식하는 단계; 및
    상기 타임 슬롯에 상응하는 전송 시작 시간을 상기 갱신되는 시각을 이용하여 인식하고, 상기 전송 시작 시간에 메시지 송신을 시도하는 단계를 포함하는 타임 트리거 기반의 메시지 스케줄링 방법.
  10. 제 9항에 있어서,
    상기 타임 슬롯은 메시지 전송시간 및 처리시간을 합한 값과 일치하거나 그 이상으로 설정되는 것을 특징으로 하는 타임 트리거 기반의 메시지 스케줄링 방법.
  11. 제 9항에 있어서,
    상기 노드는 크리티컬 노드 및 논크리티컬 노드로 구분되며, 상기 타임 슬롯은 크리티컬 노드가 메시지를 전송하는 크리티컬 슬롯 및 복수의 논크리티컬 노드가 경쟁(arbitration)하여 메시지를 전송하는 논크리티컬 슬롯으로 구분되는 것을 특징으로 하는 타임 트리거 기반의 메시지 스케줄링 방법.
KR1020070014019A 2007-02-09 2007-02-09 Can 시스템에서의 타임 트리거 기반의 메시지 스케줄링방법, 장치 및 시스템 KR100850803B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070014019A KR100850803B1 (ko) 2007-02-09 2007-02-09 Can 시스템에서의 타임 트리거 기반의 메시지 스케줄링방법, 장치 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070014019A KR100850803B1 (ko) 2007-02-09 2007-02-09 Can 시스템에서의 타임 트리거 기반의 메시지 스케줄링방법, 장치 및 시스템

Publications (1)

Publication Number Publication Date
KR100850803B1 true KR100850803B1 (ko) 2008-08-06

Family

ID=39881314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070014019A KR100850803B1 (ko) 2007-02-09 2007-02-09 Can 시스템에서의 타임 트리거 기반의 메시지 스케줄링방법, 장치 및 시스템

Country Status (1)

Country Link
KR (1) KR100850803B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221619A (zh) * 2019-05-29 2019-09-10 北京三快在线科技有限公司 无人飞行设备及其中的时间同步方法、装置和存储介质
KR20220076961A (ko) * 2020-12-01 2022-06-08 현대오토에버 주식회사 차량용 마스터 제어기, 차량용 슬레이브 제어기, 및 차량용 슬레이브 제어기의 태스크 수행 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060058602A (ko) * 2004-11-25 2006-05-30 한국전자통신연구원 동적 우선순위에 기반한 메시지 전달 장치 및 그를 이용한우선순위 조정 장치와 동적 우선순위 메시지 처리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060058602A (ko) * 2004-11-25 2006-05-30 한국전자통신연구원 동적 우선순위에 기반한 메시지 전달 장치 및 그를 이용한우선순위 조정 장치와 동적 우선순위 메시지 처리 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221619A (zh) * 2019-05-29 2019-09-10 北京三快在线科技有限公司 无人飞行设备及其中的时间同步方法、装置和存储介质
KR20220076961A (ko) * 2020-12-01 2022-06-08 현대오토에버 주식회사 차량용 마스터 제어기, 차량용 슬레이브 제어기, 및 차량용 슬레이브 제어기의 태스크 수행 방법
KR102485286B1 (ko) * 2020-12-01 2023-01-04 현대오토에버 주식회사 차량용 마스터 제어기, 차량용 슬레이브 제어기, 및 차량용 슬레이브 제어기의 태스크 수행 방법

Similar Documents

Publication Publication Date Title
Navet et al. Trends in automotive communication systems
JP6500875B2 (ja) 車載ネットワークシステム、及び、車載ネットワークシステムにおける通信制御方法
US10397332B2 (en) In-vehicle communication system
JP5363379B2 (ja) 通信システム
US20200136993A1 (en) Method and apparatus for allocating transmission opportunities in vehicle network
JP4953861B2 (ja) 車載ゲートウェイ装置及びデータ転送方法
US8934351B2 (en) Communication apparatus and communication system
US20050102456A1 (en) Command transmission method and command transmission apparatus in pipeline bus system
JP6010207B2 (ja) 通信システム
CN103403771A (zh) 用于车辆控制设备的数据重写支持系统和数据重写支持方法
Nolte Share-driven scheduling of embedded networks
US10090996B2 (en) Communication system
US20180307635A1 (en) A vehicle safety electronic control system
JP2014053741A (ja) 通信システム
KR100747760B1 (ko) Can에서의 시분할 스케줄링 방법 및 그 can 시스템
KR100850803B1 (ko) Can 시스템에서의 타임 트리거 기반의 메시지 스케줄링방법, 장치 및 시스템
JP2012239143A (ja) 電子制御ユニット、車載ネットワーク、データ送信方法
JP2003264567A (ja) Can通信方法およびシステム
Keskin In-vehicle communication networks: a literature survey
CN113545012A (zh) 通信装置、通信系统及消息仲裁方法
US7406531B2 (en) Method and communication system for data exchange among multiple users interconnected over a bus system
JP2009161076A (ja) 車載システム
CN110574027A (zh) 车辆控制系统验证方法及验证装置以及控制装置
JP2002207691A (ja) データ転送制御装置
JP2012114537A (ja) 電子制御装置、車両ネットワークシステム、通信方法、プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130628

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140703

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160705

Year of fee payment: 9