통신이란? -> 서로 다른 두 주체가 정보를 주고받는것
정보를 주고받기 위해선 매채가 필요함
CAN 통신은 버스형 토폴로지
메세지를 보내는것 -> 전선의 전기적인 신호를 발생시켜 전달
CAN 에서는 CAN High, CAN Low 간의 전압 차를 이용하여 데이터를 표현한다
전압 차를 이용한 방법의 장점: Noise에 강하다
CAN BUS 양 끝단에 120옴의 저항이 필요하다.
CAN에서는 데이터를 표현할때 CAN High, CAN Low 의 전압차를 이용하여 표현한다.
CAN에서는 데이터를 0을 Dominant, 데이터 1을 Recessive 라고 표현한다.
CAN에서는 Dominant가 Recessive보다 우선순위가 높다.
각각의 제어기 안에는 일종의 작은 컴퓨터인 MCU가 있다.
MCU 내부에는 각종 peripheral들이 있고, 그 중에 CAN 통신과 관련된 역할을 하는 CAN Controller 라는 periphera이 있다.
CAN Controller가 송신하는 데이터는 CAN TX핀(반대쪽은 RX핀)을 통해서 CAN Transceiver에게 전달된다.
CAN Tranceiver는 CAN controller로 부터 정보를 받아서 CAN High, CAN Low 핀으로 실제 '전압' 을 출력하는 역할을 한다.
반대로 다른 제어기가 메세지를 전송하면 CAN High, CAN Low의 전압값을 읽어서 비트로 해석하여 CAN Controller에게 전달해준다.(CAN RX핀)
CAN Controller: 메세지에 담기는 값과 관련(Data Link Layer라고 함)
CAN Transceiver: 실제로 전선에 출력되는 전압과 관련(Physical Layer라고 함)
Sample Point : 하나의 비트 값이 0인지 1인지 판단하는 지점을 의미. 단위는 %이다
CAN Controller로 제공되는 클락속도에 따라 Time qunta 라는 것이 계산된다
CAN 에서는 1bit를 아래 그림처럼 Sync, TSEG1(prop, phase1), TSEG2 3개의 구간으로 분류한다.
TSEG1, TSEG2의 길이를 세는 단위는 Time Qunta 이다.
CAN Clock의 속도를 얼마로 할 건지 까지도 OEM에서 정해주기도 한다.
TSEG1, TSEG2의 역할 설명 및 SJW에 대하여
Tseg1. 클락 속도가 빠를 때
Tseg2. 클락 속도가 느릴 때
CAN 통신 속도를 Baud Rate이라고 한다. 단위는 bps
해당 네트워크에 참여하는 모든 제어기들은 모두 통일된 Baud Rate을 사용해야한다
Baud Rate을 얼마로 할 건지는 OEM에서 지정하여 CAN DB에 나타낸다
CAN Protocol은 크게 Low-Speed CAN, High-Speed CAN, CAN FD 3가지 종류로 나뉘며 각 protocol 별로 최대 속도의 차이가 있다
물리적인 BUS의 최대 길이에 따라 최대 속도에 한계가 있다
Sampling Point라는 것이 있다. 단위는 %. 이것도 OEM에서 몇 %로 해야하는지 정해준다.
하나의 bit는 Sync, Tseg1, Tseg2 라는 것으로 나뉘고 이것들은 모두 여러 개의 time qunta로 구성됨
Tseg1, Tseg2의 값을 적절하게 정함으로써 Sampling Point 값을 조절할 수 있음
Tseg1, Tseg2 얼마로 할지도 제조사에서 정해주기도 함