2012-05-28 3 views
2

나는 인터뷰를 가졌습니다. 면접관이 저에게 질문했습니다 :CAN에서 어떤 일이 발생합니까?

두 노드가 서로 다른 데이터를 가진 동일한 식별자 (0x100)의 두 개의 메시지를 보내는 경우 누가 중재에서 이길 것입니까? 버스에 어떤 메시지가 올까요?

노드 1이 승리하면 노드 2의 메시지는 무엇입니까? 노드 2의 메시지는 언제 전송됩니까?

답변

0

대답의 내용은 Controller Area Network - CAN Information입니다.

네트워크의 두 노드가 동일한 ID로 메시지를 보낼 수 없습니다. 두 노드가 동일한 ID를 가진 메시지를 동시에 보내려고하면 중재가 작동하지 않습니다. 대신, 송신 노드 중 하나는 자신의 메시지가 중재 필드 외부에서 왜곡되어 있음을 감지합니다. 그런 다음 노드는 CAN의 오류 처리를 사용하며,이 경우 궁극적으로 송신 노드 중 하나가 꺼지게됩니다 (버스 - 오프 모드).

2

여기에 두 가지 경우가 있습니다

  1. 동일한 ID와 같은 데이터 필드
  2. 다른 데이터 필드

CASE 1과 동일 ID : 두 개의 노드가 전송하려는 동일한 ID 및 동일한 데이터 필드를 사용하는 경우 CAN은이를 단일 메시지로보고 CAN 버스로 전송합니다. 여기서는 노드 1이 전송 중이거나 노드 2가 전송 중인지 여부를 말할 수 없습니다. 왜냐하면 둘 다 동일한 ID와 데이터를 가지고 있기 때문입니다.

사례 2 : 여기에서는 데이터 필드가 다릅니다. 중재 영역이 생길 때까지 아무런 문제가 없습니다. 두 노드의 데이터가 다르므로 버스 오류가 발생합니다. 이는 데이터 필드가 CRC으로 보호되고 비트 스터핑도 사진에 포함되기 때문입니다.

+0

감사합니다. –

0

2 개의 장치가 동일한 노드 ID를 가진 경우 CAN N/W에서는 두 장치가 모두 감지하지 않습니다 & 메시지의 응답/응답은 발생하지 않습니다. (아무것도 동작하지 않습니다 .. 비트 채우기, 중재, 오류 감지, 비트 모니터링, ACK, CRC).

ID가 다른 경우 N/W에서는 동일하거나 다른 메시지를 전송할 수 있습니다. CAN N/W를 통제하기 위해서 중재라는 개념을 사용합니다.

관련 문제