2014-06-23 2 views
1

저는 CAN 버스를 사용하는 두 개의 lpc2129 마이크로 컨트롤러를 인터페이스하고 있습니다. 한 번에 송신기에서 메시지를 송신하지만 수신자 측에서는 수신 인터럽트가 연속적으로 실행됩니다.CAN에서 ACK 슬롯 오류를 제거하는 방법은 무엇입니까?

수신 인터럽트보다 우선 순위가 낮은 인터럽트이지만 처음에는 수신 오류가 발생하지만 수신 인터럽트는 계속 발생하며 송신기에서 한 번만 송신 중이지만 데이터도 올바르게 수신됩니다. 거의 자세한 내용은 다음과 같습니다 전송 속도 : 125 kbps의 트랜시버 : MCP2551 수용 필터 (FULL CAN 모드를 사용하지 않는)를 활성화

가 친절하게 방법이 오류 ACK 오류를 제거하는 데 도움이.

답변

1

"소스에서"ACK 오류를 제거해야합니다.

수신자가 수신 인터럽트를받는 경우 프레임에 ACK가 있다고 생각해야합니다 (잘못된 CAN 프레임에 대한 수신 인터럽트를받지 않아야 함).

따라서 Tx 측은 ACK 비트를 "보지 못하고"있어야합니다. 그러면 프레임을 다시 시도하기 때문에 연속 수신 인터럽트가 계속됩니다.

오실로스코프의 버스를보고 무슨 일이 일어나고 있는지 확인해보십시오. 아마도 ACK 비트가 수신기 노드에서 송신기 노드로 올바르게 나오지 않는 것을 볼 수 있습니다. 그럼 그 이유가 뭔지 알아낼까요? (도지 납땜 이겠지요?)

+0

친절한 답장을 보내 주셔서 감사합니다. – Raghu

+0

당신은 환영합니다 - 문제를 찾았습니까? –

관련 문제