- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[자동차] CAN 통신2 본문
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): 프레임의 끝을 나타내고 종료한다
[출처] 자동차 CAN 통신3 (자동차 정비 정보 공유) |작성자 정태균
'★─My Life > ☆─자동차 통신' 카테고리의 다른 글
[자동차] OBD-II 커넥터 (0) | 2011.04.18 |
---|---|
[자동차] CAN 통신1 (0) | 2011.04.14 |