본문 바로가기
회사/Can통신

CAN 통신 (섹션2_6) 통신속도 : BaudRate

by 응가1414 2024. 10. 6.

통신속도 : BaudRate

BaudRate : 통신속도 (볼렛)

단위 : bps (bit per second)

  • bps의 값이 클수록 더 많은 bit을 보낼 수 있다.

버스에 참여하고 있는 제어기들은 모두 같은 baud Rate으로 통신한다.

CAN DB

  • 통신의 규격, bps은 현대 CAN DB에서 사양을 확정
  • 통신 규격 (CAN DB)을 실제로 개발을 하는 사람에게 보내고
  • 개발을 하는 사람은 CAN DB를 보면서 BaudRate을 맞게 구현을 한다.



 

✔ CAN 통신 프로토콜

프로토콜 최대 속도 최대 길이
Low-Speed CAN (Fault-Tolerant) ~ 125kbps 40m
High-Speed CAN ~ 1Mbps 100m
CAN FD ( CAN with Fast Data-Rate) ~ 8Mbps 500m

High-Speed CAN 많이 사용

  • 높은 확률로 500kbps

✔ Baud Rate 와 물리적인 전선의 길이

물리 적인 전선의 길이

  • 속도 ^(빨라질수록) 최대 길이 짧아진다.
  • 만약 - 속도 (1Mbps) ≠ 버스의 길이 200m 이면 ERR(에러)

** 왜 속도가 빠르면 ⇒ 길이가 줄어 드는가?

  • 전기적인 신호가 구리선을 타고 통신을 한다
  • ACK(수신가 응답 메세지)을 보낸다.
  • 구리선이 길어지는 전기적인 신호와 ≠ 답장하는 시간이 안맞아진다.
  • 그래서 속도가 빠르면 ⇒ 길이가 짧아진다.

✔ Sampling Point

Sample Point

  • 하나의 비트 값이 ‘0’ OR ‘1’ 인지 판단하는 지점을 의미
  • 단위는 %이다.
  • Baud Rate와 같이 제조자 CAN DB에서 정의을 한다.
  • OEM에서 Spec으로 지정
  • CAN 통신의 데이터 로깅 장비에 BORATE와 Sampling Point setting 한다.

✔ Sampling Point : Sync, TSEG_1, TSEG_2

Sync, TSEG_1, TSEG_2

  • Sampling Point을 설정하는 기준이다.

Nominal Bit Time

Sampling Point 계산

  • Sync, Prop(Propagation Time), Phase_1(TSEG_1) — Phase_2(TSEG_2) —— Sampling Poin

EX) Sampling Point : 70% , Sync : 1 이면

Prop + Phase_1 = 6

Phase_2 = 3

7 (Sampling Point) - 1 (Sync)= 6 (Prop + Phase_1)

✔ Time Qunta

메모리 성능 (CPU, HZ)

  • 단위 = HZ 이다.
  • 3.0GHZ ⇒ CPU로 공급되는 클락의 속도가 3.0GHZ 라는 이야기이다.

Time Qunta

  • 제어기 안에 CAN Controller을 동작하는 클락
  • CAN 클락의 속도가 100HZ이면 ⇒ Time Qunta 0.01초
  • 1개의 BIT는 총 100개 Time Qunta
  • CAN 클락 속도 1000HZ ⇒ Time Qunta 0.001초
  • 1개의 BIT는 총 1000개 Time Qunta

EX)

1bps이면 ⇒ Nominal Bit Time 1초

CAN 클럭으로 공급되는 CAN 클럭 ⇒ 10HZ

Time Qunta ⇒ 0.1 초

1개의 비트는 총 10개의 타임컨터로 구성

✔ Synchronization

TSEG_1, TSEG_2의 역할 설명 및 SJW에 대하여

SJW : Synchronization Jump Width

✔ TSEG_1. 클락 속도가 빠를 떄

Sync을 이용해 Phase_1을 연장하는 능력

배경

  • CAN 통신은 모든 메시지가 브로드 캐스트 방식으로 송신
  • 모두 공통된 전선을 사용
  • 하나의 제어기가 메시지를 보냈을 때, 그 메시지가 모두에게 전달
  • 만약 1의 제어기가 ‘0’의 메시지을 보내면 모든 제어기가 (2, 3번) ‘0’으로 해석
  • 싱크 또한 모든 것이 맞아야한다.

크리스탈 :실제로 CAN클락 공급의 오차

  • CAN클락을 공급또한 같아야한다.
  • CAN클락 공급 ⇒ 크리스탈
  • 실제로는 오차가 있다.
  • 10HZ ⇒ 실제 11HZ이다. (10%는 실제로 작은 오차이다)

예시 (가정) 통신 이상 발생

  • 1bps
  • CAN Controller 1
    • 공급 10HZ ⇒ 실제 11HZ
    • 1초을 판단 하면 ⇒ 실제 0.9초
  • 예상 3개의 BIT ⇒ 3초
    • 실제 4개의 BIT ⇒ 0.9초 * 4 (예시)
    • 향후 10개의 BIT ⇒ 실제 11개의 비트(예시)
    • 통신 이상 발생

해결 ( 통신, bps 오차 해결)

Nominal BIT Time의 Sync이용

  • 1비트의 시작 지점을 Sync
  • 속도가 빠른 제어기 입장 에서 동작을 하는데 TSEG_1 타이밍에 Sync 신호을 응답 받으면
  • 제어기는 (정상보다 빠르 다는 것을 인식)
  • Phase_1을 연장한다.
    • 0.9s ⇒ 0.9s ⇒ 0.9s 이니
    • 0.9s ⇒ 0.9s ⇒ 0.9s + 0.3s 이렇게 Phase_1을 연장한다.

✔ TSEG_2. 클락 속도가 느릴 떄

가정 ⇒ 예상 1.1s ⇒ 실제 1s

  • 2번째 제어기 수신 Sync ⇒ 실제 1번째 제어기 응답 Phase_2
  • 2번째 제어기 판단 → 내가 늦게 동작을 한다.
    • 2번째 Nominal Bit Time의 Phase_2 의 길이 줄임
    • 수신 : 1s + 1s + 1s + 1s
    • 응답 : 1.1S + 0.9s + 1.1s + 0.9s

✔ SJW (Synchronization Zump Width)

TSEG_1을 늘리고, TSEG_2을 줄이고

늘리고 줄이는 길이의 최대길이

✔ BaudRate 요약

이번 강의 요약

  • CAN 통신 속도를 Baud Rate라고 한다. 단위는 bps이다.
  • 해당 네트워크에 참여하는 모든 제어기들은 모두 동일한 Baud Rate를 사용해야 한다.
  • Baud Rate을 얼마나 할 건지는 OEM(완성차회사)에서 지정하여 CAN DB에 나타낸다.
  • CAN 프로토콜은 크게 Low-Speed CAN, High-Speed CAN(1Mbps), CAN FD 3가지 종류로 나뉘며, 각 프로토콜 별로 최대속도의 차이가 있다.
  • 물리적인 버스(전선)의 최대길이에 따라 최대속도에 한계가 있다. (CAN
  • Sampling Point라는 것이 있다. 단위는 **%이다.** 이것도 OEM에서 몇 %로 해야 하는지 정해준다.
  • 하나의 bit는 Sync, Tseg1, Tseg2로 나뉘고, 이것들은 모두 여러 개의 time quanta로 구성됨. Tseg1, Tseg2의 값을 적절하게 설정함으로써 Sampling Point 값을 조절할 수 있음.
  • Tseg1, Tseg2는 얼마로 할지도 제조사에서 정해주기도 함.