에러 발생 시 메세지 전송에 대한 질문
안녕하세요. 에러 수업을 듣다가 질문이 있어 남깁니다.
원래 어떤 제어기가 메세지를 송신하고 있을 때는, 다른 제어기들은 컨트롤러가 버스에 메세지를 누군가가 보내고 있는지를 확인하고, 이 메세지 송신이 끝나면 송신을 원하는 메세지들이 앞다투어 메세지를 보내다가, ID가 작은 우선순위부터 다시 메세지를 보낸다고 이해했습니다.
즉, 결국 하나의 제어기만이 버스에 메세지를 송신할 수 있습니다.
그런데, 에러 발생 시 passive의 에러 발생을 보내는 힘이 약한 이유를 듣고 보니, 얘는 어떤 제어기가 송신중임에도 에러 인지를 위해 바로 카운터를 보낸다고 하셨습니다.
그러면 0이던 1이던 에러 카운터를 보내면서, 이미 송신중이던 제어기의 데이터가 제대로 다른 제어기들에게 송신이 안될 것이라 생각이 됩니다.
결론적인 질문을 말씀드리면,
1.메세지를 수신하고 있는데 에러가 발생했을 때, 이미 다른 제어기가 송신중임에도 에러 카운터를 보내는 것이 맞나요?
2.혹시 맞다면, 이미 송신중인 데이터가 제대로 송신이 어떻게 될 수 있는지 궁금합니다. 에러 카운터가 송신중인 데이터와 버스에 섞일 것이라 생각이 됩니다.
감사합니다.
답변 1
1
안녕하세요. 제가 질문을 제대로 이해했는지 모르겠지만 답변 드리겠습니다.
0.
먼저 잘못이해하고 계신게 있는데 에러카운터는 메세지에 담아서 보내는 값이 아니라 각각의 제어기 내부에서 관리되는 값입니다.
에러가 발생되면 내부적으로 에러카운트 값을 올리는 것입니다. 이 값을 메세지에 담아서 보내지는 않습니다.
카운터 값을 보내는건 아니고, 에러를 알리기 위해 에러메세지(에러프레임)을 보내게 됩니다.이때 에러프레임 보내는 제어기의 상태에 따라서 active error frame을 보낼 수도 있고 passive error frame을 보낼 수도 있죠.
1.다른 제어기가 메세지 송신하고 있더라도 에러로 인지했으면 에러프레임을 보내는게 맟습니다. 그러면 새롭게 송신하는 에러프레임과 원래 보내고 있던 송신 메세지가 섞여서 메세지 송신이 안 될수도 있고 잘될수도 있습니다.
2.패시브 에러프레임은 연속된 recessive 값입니다. 캔에서 dominant와 recessive 가 동시에 출력되면 버스에는 dominant가 실립니다. 그러니까 패시브 에러프레임은 송신해봤자 기존에 보내던 송신메세지에 영향을 못미쳐서 메세지 송신은 잘될겁니다. (원래 송신하려는 값이 recrasive면 recessive가 나갈거고, 원래 송신하려는 값이 dominant면 패시브에러 보내봤자 dominant가 출력되니까.. 결과적으로 패시브 에러프레임을 보내도 원래 송신하던 메세지에 영향을 못줍니다그래서 패시브라고 불리는거죠.
반면 액티브 에러프레임은 연속된 dominant기 때문에 기존에 송신하던 메세지를 망가지게해서 송신중이던 메세지는 정상적으로 송신이 안됩니다.
이 답변으로 해결이 됐나요..??
6:19 다이어그램에서 CANH CANL사이에 SPLIT 핀은 뭐하는 핀인가요?
0
21
0
candb와 data
0
82
1
Bus Off(버스 오프) 상태가 흔히 발생되는 상태인가요?
0
243
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
212
1
E2E protocol을 사용할때 data frame에 crc와 counter 영역을 따로 둔다고 했는데 데이터 영역에 있는 crc와 메세지 프레임에 따로 CRC 영역이 있는데 그 둘간의 차이는 뭘까요...?
0
249
1
D-sub 핀과 120옴 저항 질문드립니다
0
491
2
ERROR PASSIVE FRAME
0
134
1
CAN wake-up 시퀀스에 대해
0
653
2
통신 타이밍을 비교하는 시점
0
174
0
센서신호와 CAN
0
350
1
Profile1에서 사용하는 Data ID : 2BYTE
0
201
2
CRC 계산 방법
0
760
1
CAN DBC 파일이 있는데요. 어느 부분에서 E2E프로토콜
0
383
1
ack 기능 궁금한 점
0
429
2
수업 자료 관련 문의
0
249
1
데이터 영역에서 보면서 궁금증 잇읍니다
0
178
1
CAN통신에서 PDU라는 개념도 있나요?
0
600
2
혹시 무선 충전 관련해서 강의가 만들어질 수 있을까요?
0
212
1
CAN 메시지 ID 관련되서
0
331
2





