RISS에서 찾아보면 CAN에대한 논문을 많이 볼 수 있다.
페스카로 블로그 에서도 확인할 수 있다.
CAN은 Controller Area Network 의 약자이다.
처음에 Car Area Network인 줄 알았다.
학교 다닐 떄 LAN, WAN등등 개념이랑 같이 배웠던 걸로 기억한다.
자동차에서 쓰이는 걸로 기억난다.
자 그러면 CAN에 대해서 살펴보자.
사진은 두개로 준비해봤다. 밑에 사진을 보면 2개의 선이 꼬여있는 것을 볼 수 있다.
꼬는 이유는 간섭을 줄이기 위해서이다. 상식으로 알고 있자!
OSI 7계층 사진이다.
CAN에서는 이중 Data Link Layer와 Physical Layer만 필수적으로 사용하고 나머지는 상위계층에서 구현하기 나름이다. OSI 7계층은 외워두자! 네트워크를 다루게 되는 날에는 자동암기해야하는 부분이다.
Frame
- Data Frame
- Remote Frame
- Error Frame
- OverloadFrame
DataFrame은 data 전송
RemoteFrame은 data 요청
Error Frame은 error시
OverloadFrame은 과부하 걸려서 지연되었을 때
사용된다고 간략하게 알고 있자.
A는 Identifier부분이 11bit이고
B는 Identifier부분이 29bit이다.
Arbitration Field는 중재 필드로 Identifier랑 RTR(1bit)
RTR의 값이 0이냐 1이냐에따라서 Data Frame이냐 Remote Frame이냐가 결정된다.
Control Field는 제어 필드로 r(reserve)와 DLC(Data length code)로 구성되어 있다.
Data Field는 전송할 데이터를 의미한다.
RemoteFrame과 DataFrame의 차이는 RTR의값과 Data Field의 존재여부이다.
RemoteFrame은 DataField가 없다.