통신속도 : 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
- Sync, Prop(Propagation Time), Phase_1 , Phase_2(TSEG_2)
- Sync, Prop(Propagation Time), Phase_1 과 Phase_2(TSEG_2) 사이가 Sampling Point
- TSEG_1 : Prop(Propagation Time), Phase_1
- TSEG_2 : Phase_2

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는 얼마로 할지도 제조사에서 정해주기도 함.
'회사 > Can통신' 카테고리의 다른 글
CAN FD 소개AN 통신 (섹션5_1 ~ 5_4) (2) | 2024.10.11 |
---|---|
CAN 통신 (섹션3_3) 메세지 속 "시그널" (1) | 2024.10.09 |
CAN 통신 (섹션2_5) CAN Tranceiver & CAN Controller (0) | 2024.10.05 |
CAN 통신 (섹션2_2 ~섹션2_4) (0) | 2024.10.04 |
CAN 통신 (섹션1 ~ 섹션2_1) (2) | 2024.10.03 |