[can_tech] CANTech Architecture

New Jenice!·2024년 11월 3일
0

[Toy Project] can_tech

목록 보기
2/2
post-thumbnail

Architecture

  • CAN의 주요 기능으로는
    • 노드 N에서 보낸 메시지가 CAN 버스를 통해 모든 노드로 전달할 수 있다
    • 수신측 노드에서 메시지 ID를 통해 필요한 메시지만 처리할 수 있다
    • 메시지 ID 기반의 우선순위 기반 처리할 수 있다

주요 함수 기능

  • CAN 프로토콜을 따르는 Server 함수
    • 메시지 수신하여 ID에 따라 우선순위로 처리
    • 메시지를 제대로 전달했다면 송신측 노드로 Response(ACK)
  • Node1, Node2 함수
    • 프로토콜에 따라 메시지를 송신
    • 필요한 메시지에 대한 정보만 가지고 수신된다면 관련 처리
    • ACK가 없다면 메시지 재 송신

고려 사항

  • 송신 주기 및 속도 제어 기능
    • 송신 주기: 각 노드가 일정한 주기로 메시지를 송신하도록 설정
    • 속도 제어: 각 노드의 송신 속도를 랜덤한 간격으로 송신하도록 설정
  • 에러 처리 기능
    • 특정 메시지에서 CRC 오류를 발생시키는 기능 추가
  • ID 기반 우선순위 기능
    • 여러 노드가 동시에 송신 시 ID가 낮은 메시지를 우선순위로 두어 전송하고 다른 메시지는 재전송
  • ACK 타임아웃 및 재전송 기능
    • 각 노드에서 ACK를 기다리는 최대 시간과 재전송 간격 설정 기능 추가
  • 결과 분석 기능
    • 각 노드의 송수신 패턴을 분석하여 특정 ID의 메시지가 얼마나 자주 재전송되었는지 또는 ACK 수신 실패율 등이 포함된 리포트를 생성하는 기능
  • 가변 데이터
    • 각 메시지의 데이터 필드를 고정값이 아닌 가변값으로 설정
  • 데이터 무결성
    • 수신한 메시지의 데이터 필드가 정확히 송신한 값과 일치하는지 검사
profile
Embedded Software Engineer

0개의 댓글