CAN 통신이란?
CAN(Controller Area Network) 통신은 자동차 및 산업용 장비에서 사용되는 고속, 신뢰성 높은 네트워크 프로토콜입니다.
1980년대 독일의 Bosch에서 개발되었으며, 자동차의 ECU(전자 제어 장치) 간 데이터를 효율적으로 교환하기 위해 설계되었습니다. 오늘날 자동차뿐만 아니라 의료 장비, 항공, 산업 자동화 등 다양한 분야에서 사용됩니다.
1. CAN 통신의 주요 특징
- 멀티 마스터 구조:
- 네트워크 내의 모든 노드가 주(master) 역할을 할 수 있어, 특정 노드의 장애로 인해 네트워크 전체가 영향을 받지 않습니다.
- 각 노드는 데이터 요청 및 송신을 자유롭게 수행.
- 우선순위 기반 메시지 전송:
- CAN 프레임의 **식별자(identifier)**를 사용해 메시지의 우선순위를 설정.
- 우선순위가 높은 메시지가 먼저 버스에 접근.
- 고속 데이터 전송:
- 표준 CAN: 최대 1 Mbps
- CAN FD(CAN Flexible Data-rate): 최대 8 Mbps
- 높은 신뢰성:
- 데이터 전송 중 오류 검출 및 복구 기능 제공.
- CRC(순환 중복 검사), ACK(응답 슬롯), 에러 플래그 등 다양한 메커니즘으로 데이터 무결성 보장.
- 버스 토폴로지:
- CAN 통신은 버스(bus) 형태로 구성되며, 노드들이 동일한 물리적 선로를 공유.
- 네트워크 내의 노드 추가/삭제가 용이.
- 비용 효율성:
- 단순한 배선 구조로 시스템 비용 절감.
2. CAN 통신의 구성 요소
1. 물리적 계층
- 케이블:
- 트위스트 페어(Twisted Pair) 케이블 사용.
- CAN_H(고속선), CAN_L(저속선)의 두 선으로 구성.
- 터미네이션 저항:
- 버스 양 끝에 120Ω 저항을 배치해 신호 반사를 방지.
2. 데이터 링크 계층
- CAN 컨트롤러:
- 데이터 프레임 생성, 수신, 오류 검출을 수행.
- CAN 트랜시버:
- 물리적 신호(CAN_H, CAN_L)를 전기적 신호로 변환.
3. 어플리케이션 계층
- 상위 프로토콜:
- CAN 통신은 어플리케이션 계층을 정의하지 않음.
- 예: ISO-TP, SAE J1939, CANopen 등이 상위 계층 프로토콜로 사용.
3. CAN 통신 프레임 구조
CAN 통신의 데이터 전송은 프레임(frame) 단위로 이루어집니다. 주요 프레임 구조는 다음과 같습니다:
1. 표준 CAN(11비트 식별자)
필드설명
Start of Frame (SOF) | 프레임 시작을 알리는 비트. |
Identifier | 메시지 우선순위를 결정하는 11비트 식별자. |
Control | 데이터 길이(DLC: Data Length Code)를 포함한 제어 필드. |
Data | 실제 데이터(최대 8바이트). |
CRC | 오류 검출을 위한 15비트 CRC. |
ACK | 수신 측 노드가 프레임 수신을 확인하는 슬롯. |
End of Frame (EOF) | 프레임 종료를 알리는 비트. |
1.1 예제: 요청 메시지 (진단 도구 → ECU)
바이트값 (16진수)설명
1 | 7D F | Identifier (진단 요청). |
2 | 08 | DLC (데이터 길이: 8바이트). |
3 | 02 | UDS 헤더 (데이터 길이: 2바이트). |
4 | 01 | UDS 서비스 ID (0x01, OBD-II 요청). |
5 | 0D | PID (차량 속도 요청). |
6~8 | 00 00 00 00 | 패딩 데이터 (사용되지 않음). |
요청 메시지 (전체):
7D F 08 02 01 0D 00 00 00 00
- Identifier: 0x7DF (broadcast 요청 식별자).
- Data:
- 02: UDS 메시지 데이터 길이.
- 01: OBD-II 요청 서비스 (Read Data by PID).
- 0D: PID (차량 속도 요청).
2. CAN FD(확장된 데이터 전송)
추가 필드설명
BRS (Bit Rate Switch) | 데이터 전송 속도 변경 여부를 지정. |
Data Field | 최대 64바이트 데이터 전송 가능. |
4. CAN 통신의 동작 원리
- 프레임 전송:
- CAN 노드가 데이터를 전송하려면 네트워크가 유휴 상태인지 확인합니다.
- 네트워크가 유휴 상태이면 식별자를 사용해 데이터를 전송.
- 충돌 해결 (Arbitration):
- 여러 노드가 동시에 데이터를 전송하려고 하면 식별자 값으로 우선순위를 판단.
- 더 낮은 값(높은 우선순위)의 식별자를 가진 노드가 전송 권한을 가짐.
- 프레임 수신 및 ACK:
- 수신 측 노드는 프레임을 수신한 후 ACK 슬롯에 도미넌트 신호를 기록해 성공적인 수신을 알림.
- 오류 검출 및 복구:
- CAN은 CRC, ACK, 에러 플래그 등을 통해 오류를 검출하고, 오류 발생 시 자동 복구.
5. CAN 통신의 오류 처리 메커니즘
CAN은 네트워크 신뢰성을 높이기 위해 다양한 오류 처리 메커니즘을 제공합니다:
- 비트 오류 (Bit Error):
- 전송한 비트와 수신된 비트가 불일치할 경우 발생.
- CRC 오류 (CRC Error):
- 수신된 데이터의 CRC 값이 계산된 CRC 값과 다를 경우 발생.
- ACK 오류 (ACK Error):
- 송신된 프레임에 대한 ACK 슬롯 응답이 없을 경우 발생.
- 형식 오류 (Form Error):
- 프레임 구조가 CAN 규격에 맞지 않을 경우 발생.
- 복구:
- 오류 발생 시 에러 플래그를 전송하고, 전송 중이던 프레임을 다시 전송.
6. CAN 통신의 확장
- CAN FD (Flexible Data-rate)
- CAN의 개선된 버전으로, 데이터 전송 속도와 용량을 증가.
- 최대 64바이트 데이터 전송 및 8 Mbps 속도 지원.
- CANopen
- 산업 자동화를 위해 개발된 상위 프로토콜.
- 장치 간의 표준화된 통신을 지원.
- SAE J1939
- 상용차 및 중장비에서 사용하는 상위 프로토콜.
- 엔진, 트랜스미션, ABS 등의 데이터를 교환.
- ISO-TP (ISO 15765-2)
- CAN에서 데이터 패킷을 여러 프레임으로 나누어 전송.
7. CAN 통신의 장점과 단점
장점
- 신뢰성:
- 오류 검출 및 복구 메커니즘으로 데이터 무결성 보장.
- 효율성:
- 우선순위 기반 메시지 전송으로 네트워크 활용 최적화.
- 유연성:
- 멀티 마스터 구조로 네트워크 확장이 용이.
- 비용 절감:
- 단순한 배선 구조로 시스템 비용 절감.
단점
- 전송 속도 제한:
- 표준 CAN은 1 Mbps로 고속 통신에 한계.
- 데이터 크기 제한:
- 표준 CAN은 최대 8바이트 데이터만 전송 가능(CAN FD로 개선).
- 복잡한 네트워크 설계:
- 대규모 네트워크 설계 시 식별자 및 우선순위 관리가 필요.
8. CAN 통신의 활용 분야
- 자동차
- ECU 간 통신(엔진 제어, ABS, 에어백 등).
- 전기차 및 자율주행 차량의 데이터 교환.
- 산업 자동화
- 센서, 액추에이터 간의 통신.
- 의료 장비
- MRI, CT 등의 장치 제어 및 데이터 교환.
- 항공 및 철도
- 실시간 데이터 교환 및 시스템 모니터링.
결론
CAN 통신은 신뢰성, 효율성, 유연성을 갖춘 네트워크 프로토콜로, 다양한 산업에서 필수적으로 사용되고 있습니다.
특히 자동차 산업에서 ECU 간 데이터 교환의 핵심 역할을 수행하며, CAN FD와 같은 확장 기술로 고속 통신 및 데이터 용량 증가 요구를 충족하고 있습니다. 🚗✨
'Programming > CANoe' 카테고리의 다른 글
CANoe CAN/CANFD 진단통신 전송 1: 환경 구성 (0) | 2025.02.08 |
---|---|
CANoe의 ACK설정에 대해서 (0) | 2025.02.08 |
CANoe의 Grade에 대해서 (0) | 2025.02.08 |
CANoe란? (0) | 2025.02.08 |