관리 메뉴

드럼치는 프로그래머

[자동차] CAN 통신2 본문

★─My Life/☆─자동차 통신

[자동차] CAN 통신2

드럼치는한동이 2011. 4. 14. 14:46

CAN 프로토콜의 작동 원리

 

 

 

각각의 노드(ECU)가 CAN 버스에 흘러 다니는 데이터를 읽거나 쓰기 위해 액세스(access)할 때 전체 노드를 제어하는 마스터(master)가 없다.

각 노드에서 데이터를 전송할 준비가 되면, 먼저 전송 준비가 되었는지를 버스에 확인하고 그 후 CAN 프레임을 네트워크에 전송하는데, 전송되는 CAN 프레임은 전송이나 수신 노드 중 어느 노드의 주소도 포함하고 있지 않으며, 대신, 고유한 ID를 통해 프레임을 분류하여 데이터를 인식하게 된다.

각 노드들이 동시에 메시지를 CAN 버스로 전송하려는 경우 최우선 순위를 가진 노드 (가장 낮은 중재 ID)가 자동적으로 버스에 액세스된다.

  <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><?xml:namespace prefix = o />

CAN 통신을 통해 데이터를 액세스하는 과정을 살펴보면 다음과 같다.

① 먼저 CAN 버스라인이 사용 중인지를 확인한다.

② CAN 버스라인이 사용 중이 아니면, CAN 네트워크상의 모든 노드(ECU)는 메시지를 수신하여 자신에게 필요한 메시지인지를 식별자를 통해 확인한다.

③ 자신에게 필요한 메시지일 경우 입력받아 데이터를 분석하게 되고, 불필요 한 메시지는 무시하게 된다.

여러 노드의 데이터가 동시에 자신의 노드로 유입되는 경우에, 식별자의

숫자를 비교하여 먼저 취할 메시지의 우선순위를 정한다.

식별자의 숫자가 낮은 경우가 우선순위가 가장 높다.

각각의 CAN 메시지는 11비트의 식별자(CAN 2.0A) 또는 29비트의 식별자 (CAN 2.0B)를 가지며 CAN 메시지의 맨 처음 시작부분에 위치한다.

⑥ CAN 프레임의 식별자(ID)는 메시지의 내용을 식별시켜 주는 역할과 메시지 의 우선순위를 부여하는 역할을 한다.

⑦ 각 노드로부터 출력되는 데이터 메시지는 송신측이나 수신측의 주소를 가지 고 있지 않다. 대신 각 노드(ECU)를 식별할 수 있도록 각 노드마다 고유한 식별자를 가지고 있다.



CSMA/CD-CR이란?

1. CS(Carrier Sense): 모든 노드(node)들은 메시지를 전송하기 전에 Bus 라인상태가 사용 중인지를 필히 확인한다.

2. MA(Multiple Access): Bus의 사용 중인 상태를 확인한 후에는 모든 Node 들이 메시지 전송에 동등한 기회를 가짐

3. CD(Collision Detection): 2개 이상의 Node가 동시에 메시지 전송을 하는 경우에는 충돌이 발생하게 되며 이를 감지하게 된다.

4. CR(Collision Resolution): Non-destructive bitwise arbitration으로 충돌 을 해결한다.

- 충돌 후에도 메시지의 내용은 그대로 보존되어야 한다.

- 중재 과정에서 우선순위에 의해 전송되지 못한 메시지는 다음 Bus Idle 상태에서 재전송된다.

 

CAN 프레임의 구성

 

 

 

프레임(Frame) : 하나의 message를 이루는 field 또는 bit들의 집합을 말한다.

Bus idle: 버스라인에 어떤 프레임도 떠있지 않은 전송이 가능한 상태를 말한다.

 

위 그림은 CAN 프레임의 구성을 나타낸다.

① SOF(Start Of Frame): 프레임의 시작을 나타낸다.

② ID(Identifier): 식별자로서 메시지의 내용을 식별하고 메시지의 우선순위를 부여한다. 표준형(11비트, CAN 2.0A)와 확장형(29비트, CAN 2.0B)가 있 다.

Control: 데이터의 길이(DLC)를 나타낸다.

④ Data : 전달하고자 하는 내용을 나타낸다.

⑤ CRC: 프레임의 송신 에러를 검사한다.

⑥ ACK(acknowledge): 전달한 내용을 잘 받았고, 에러가 없을 때를 표시한다.

⑦ EOF(End Of Frame): 프레임의 끝을 나타내고 종료한다

 

'★─My Life > ☆─자동차 통신' 카테고리의 다른 글

[자동차] OBD-II 커넥터  (0) 2011.04.18
[자동차] CAN 통신1  (0) 2011.04.14
Comments