inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CAN 통신 - 자동차 신입이 알아야 할 모든 것

CAN 에러 처리 - 3. 에러의 종류 및 마무리

ack 기능 궁금한 점

429

박연수

작성한 질문수 1

0

안녕하세요 강의 잘 수강하고 있습니다.

CAN통신의 ack기능에 대해 궁금한 점이 있는데

송신하는 제어기가 ack비트에 1을 채워서 보내고

수신제어기들이 정상적으로 잘 받았으면 0을 채워서 보낸다고

설명해주셨는데

 

버스에는 어짜피 한번에 하나의 제어기만 보낼 수 있잖아요?

 

예를 들어 1,2,3번 제어기가 있다고 할때

1번 제어기가 2,3번에 메시지를 보내고나서

2,3번이 잘 수신했다면 ack비트에 0을 채워서 보낼텐데

 

그때 2,3번은 can frame 전체중에서 ack비트에만 0을 채워서 보낸다고 이해하면 될까요?

 

CAN ack

답변 2

0

존버매니아

이해하신게 맞습니다.

수신측 제어기는 ack 라는 새로운 메세지로 답장을 보낸다는 개념이 아니고.

송신측이 보낸 메세지 프레임 중에서 ack 비트 부분만 0으로 채우는겁니다.

0이 도미넌트니까 버스 전체에 ack가 0 이 될꺼고. 송신측은 그걸 보고 내가 송신한 메세지가 문제 없이 다른 제어기에게 전해졌다고 판단하게됩니다.

0

박연수

빠른 답변 감사합니다.

그러면 송신제어기가 메시지를 보낼때 ack비트까지

작성하고 잠시 대기하면서 수신제어기들이 메시지를 정상적으로 수신하고 ack비트에 0을 쓰는 것을 확인한 뒤에, 다시 송신제어기가 end of frame을 보내면서 송신이 마무리된다고 보면될까요?

 

*ack비트를 보낸 뒤에 수신제어기들이 메시지를 정상적으로 확인하고 CRC체크하고 하는 과정들이 곧바로 이루어지진 않을 것 같아서 질문드립니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

박연수님께서 질문하신 CAN 통신의 ACK 기능에 대한 의문은 많은 분들이 공통적으로 가지는 궁금증입니다. CAN 통신 과정에서 ACK(Acknowledgment) 비트는 데이터 프레임이나 원격 프레임이 성공적으로 수신된 것을 표시하는 데 사용되며, 매우 중요한 역할을 합니다.

질문하신 내용에 대해 직접적으로 관련된 내용을 제공할 수 있는 링크는 다음과 같습니다:

  • 에러의 종류: CRC 에러와 Ack 에러의 차이점: 이 질문에서는 구체적으로 ACK 에러와 관련된 설명이 이루어지며, 송신자와 수신자 간의 신호 처리 방식에 대한 설명이 포함되어 있습니다. 링크에서 다루고 있는 내용은 CAN 통신 중 ACK 비트에 1을 채워서 보낸 후 수신기가 정상적으로 메시지를 받았다면 해당 수신기가 ACK 비트를 0으로 변경하는 과정입니다. 이 과정은 네트워크 상의 모든 수신기가 메시지를 정상적으로 받았는지를 확인하는 중요한 단계입니다.

ACK 메커니즘에 대해 조금 더 설명드리면, CAN 네트워크에서 한 노드가 메시지를 송신할 때, 모든 수신 노드가 해당 메시지를 수신하고 정상임을 확인한 경우에는 ACK 슬롯에 도미넌트(0) 값을 채웁니다. 이는 수신 노드들이 메시지를 제대로 받았다는 것을 의미하며, 이 과정은 하드웨어 레벨에서 자동으로 이루어지기 때문에 수신 노드가 별도로 전체 CAN 프레임을 송신하는 것이 아니라, 전체 네트워크 상에서 제어 신호를 통해 이루어집니다. CAN 네트워크의 이러한 특성은 효율적인 통신과 더불어 네트워크 상의 충돌을 방지하는 데 기여합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

6:19 다이어그램에서 CANH CANL사이에 SPLIT 핀은 뭐하는 핀인가요?

0

22

0

candb와 data

0

84

1

Bus Off(버스 오프) 상태가 흔히 발생되는 상태인가요?

0

247

1

차량용 이더넷 통신 강의 계획은 없으신가요?

0

114

1

강의자료 문의

0

80

2

B라는 제어기가 CAN 버스에 CAN 신호를 송신하고 있다면 A제어기는 B제어기의 작업이 끝날 때까지 CAN 신호를 송신 못하나요? 작업이 완료될 때까지 기다려야 하나요?

0

114

2

120옴 저항 관련 문의

0

224

2

여러개 제어기가 동일한 메시지를 수신할 때 동시에 수신하나요?

0

119

2

Error 프레임 보낼 때

0

213

1

E2E protocol을 사용할때 data frame에 crc와 counter 영역을 따로 둔다고 했는데 데이터 영역에 있는 crc와 메세지 프레임에 따로 CRC 영역이 있는데 그 둘간의 차이는 뭘까요...?

0

249

1

D-sub 핀과 120옴 저항 질문드립니다

0

491

2

ERROR PASSIVE FRAME

0

135

1

CAN wake-up 시퀀스에 대해

0

654

2

통신 타이밍을 비교하는 시점

0

174

0

센서신호와 CAN

0

351

1

Profile1에서 사용하는 Data ID : 2BYTE

0

201

2

CRC 계산 방법

0

765

1

CAN DBC 파일이 있는데요. 어느 부분에서 E2E프로토콜

0

383

1

수업 자료 관련 문의

0

249

1

데이터 영역에서 보면서 궁금증 잇읍니다

0

178

1

CAN통신에서 PDU라는 개념도 있나요?

0

600

2

혹시 무선 충전 관련해서 강의가 만들어질 수 있을까요?

0

212

1

CAN 메시지 ID 관련되서

0

331

2

tja1043에서 모드 설정을 위해 stb-n 와 en 핀을 H,L로 설정한다는게 의미하는 바

0

306

2