기타

CAN(Controller Area Network) Protocol

전두선 2019. 9. 6. 10:34

CAN 프로토콜 특징

- 멀티마스터 프로토콜
- 확장 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)
- 멀티캐스트 프로토콜
- 우선순위 부여 메세지
- 문제 억제

 

멀티마스터 프로토콜

멀티마스터 프로토콜이란 버스가 사용되지 않을 때(=프리 상태일때)에는 어느 노드든 데이터를 네트워크에 송신할 수 있다는 것이다. 

 

확장 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

버스가 프리상태 일 때, 복수의 노드가 동시에 네트워크에 데이터를 송신한다는 상황, 즉 경합이 발생할 가능성이 있다. 또한 송신 데이터의 충돌이 발생할 위험성도 있다. 이 문제를 해결하기 위해 CAN의 액세스 방식의 바탕이 되는 CSMA/CD는 복수의 메세지가 경합하여 충돌이 발생할 경우 즉시 송신을 중단하게 된다. 그리고 임의의 시간만큼 기다린 다음 이 동안에 다른 노드에서의 송신이 없는 경우 송신을 재개하게 되어 있다. 그러나 이 CSMA/CD를 그대로 자동차의 제어용 액세스 방식으로 이용하는 데에는 문제가 있다. 그 문제란 '무작위 대기 시간'이며 실시간성을 중시하는 자동차용 창치에는 적절하지 않다. 이 점을 개량한 것이 CAN의 액세스 방식이다.

(또한 경합자체를 없애는 액세스 방법의 하나로 TDM이 있는데 그 대표적인 예로는 FlexRay 프로토콜이 있다

 

 

 

멀티캐스트 프로토콜

멀티캐스트 프로토콜이란 네트워크에 연결되어 있는 모든 노드가 같은 메세지를 수신하고 그 메세지에 대해 각 노드가 조치를 취하는 것을 말한다.

 

CAN dataframe

1) 프레임의 시작(SOF : Start Of Frame) : 송신측은 자신이 메세지를 보낼 것을 다른 수신측들에게 알린다.

2) ID(식별자) : 송신측은 반드시 자신의 ID를 말한다.

3) 컨트롤 필드의 데이터 길이 코드(DLC : Data Length Code) : 보낼 것의 길이(시간)을 말한다.

4) 데이터 필드 : DLC에서 정한 크기로 데이터를 송신한다.

5) 인지(ACK : ACKnowledgement) : 송신측에서 보낸 데이터를 수신측이 알아들었고, 그 데이터에 에러가 없을 때 이상이 없다는 대답을 받는다.

6) 프레임 종료(EOF : End Of Frame) : 송신측은 자신이 데이터를 다 보내고 송신을 종료할 것을 알리고 종료한다.

 

멀티캐스트 프로토콜에서는 위와같은 단계의 과정들을 거치게 되고, 수신측에서는 송신측에서 보낸 데이터프레임을 올바르게 수신하려면 에러를 검출하는 단계도 거쳐야한다.

 

에러 검출

- 메세지 레벨 : CRC 에러, ACK 에러, 프레임 에러
- 비트 레벨 : 비트 에러, 스태프 에러

이러한 에러가 발생 시 수신측은 송신측에 재송신을 요구할 수 있다.

 

우선순위 부여 메세지

CAN은 멀티마스터 프로토콜이므로 버스가 프리 상태이면 경합이 발생하고 충돌이 일어날 수도 있다. 그래서 우선순위를 부여함으로써 경합이나 충돌을 방지한다.

 

CAN arbitration

 

CAN에서는 두 개 이상의 노드가 동시에 메세지 송신을 개시했을 때 ID를 사용한 비트마다 우선순위를 나타냄으로써(= 조정, arbitration) 버스 액세스의 충돌을 해결할 수가 있다. 조정 중에 모든 송신기는 송신된 비트의 레벨과 버스를 모니터링한 레벨을 비교한다. 만약 두 레벨이 같으면 송신을 계속 진행하고, 반대로 송신 레벨과 버스 레벨이 다르다면 즉시 송신을 중지한다.

 

  • 메시지의 우선순위에 따라 할당된 유일한 식별자(ID)를 이용해 메시지를 구별함
  • CAN BUS 네트워크에 두 개의 노드에서 메시지가 동시에 전송되려고 할 때, 더 높은 우선순위(더 낮은 ID번호)를 가진 노드의 메시지가 먼저 전송됨

 

문제 억제

노드에 대해 짧은 시간의 장애와 영구적인 문제를 식별하고 결함 노드에 대해 스위치 OFF(이탈)하는 기능이 CAN에는 있다. 이는 CAN 프로토콜의 특징중에 하나인 문제 억제에 해당한다.

 

 

 

 

 

'기타' 카테고리의 다른 글

[Lenovo] Thinkpad t480 노트북 전원 안 켜질때 해결방법  (1) 2021.08.07
[Lenovo] Thinkpad T480 SSD 확장하기  (0) 2020.04.27
test images  (0) 2019.09.27
드모르간 법칙  (0) 2019.08.14