본문으로 건너뛰기

M28.01 · IVN·물리 계층·토폴로지·중재·프레임

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • 차량 내 통신의 응용·제어기·트랜시버 역할과 고속 CAN의 배선/종단 조건을 구별한다.
  • 같은 형식의 CAN 데이터 프레임이 동시에 경쟁할 때 비트별 중재를 추적한다.
  • 프레임의 전송 비용을 계산하고 ACK·ID·수신 시각으로 보장할 수 없는 것을 설명한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M01.03의 시간/시스템 계약, M03.04의 전기 인터페이스, M04.04의 버스/프레임·ACK를 연결한다. 일반 언어 문법 없이 자체 가상 그림·비트열·수치표를 분석한다. 실제 차량/장비 연결·송수신·수리나 규격 적합성 시험은 수행하지 않는다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

차량에 여러 컴퓨터가 있다면 무엇을 공유해야 하는가

차량의 센서·제어 장치가 값을 주고받는 통신을 차량 내 네트워크, IVN(In-Vehicle Network)이라고 한다. ECU(Electronic Control Unit)는 그 안에서 특정 기능을 맡는 전자 제어 장치다. 센서 값을 읽는 ECU와 표시하는 ECU가 다를 수 있으므로 전기 신호뿐 아니라 값의 뜻·단위·유효 시각도 맞아야 한다.

IVN은 한 가지 통신 규격의 이름이 아니다. 여기서는 고속 Classical CAN의 선형 버스와 표준 11bit 데이터 프레임을 다룬다. CAN은 Controller Area Network의 약자다. 이후의 CAN FD나 29bit 확장 프레임에 이 단위의 길이 계산을 그대로 적용하지 않는다. 차량 전체가 하나의 CAN 선으로 이어진다고도 가정하지 않는다. 다른 네트워크/게이트웨이를 거치면 주소·전달·시간 계약이 추가된다.

기본 활동은 자체 가상 버스의 종이 분석이다. 아래 ECU A/B, ID·종단·속도는 교육용 조건이며 실제 차종의 배선/신호 정의가 아니다. 일반 코딩 지식으로 바로 알 수 없는 계층·물리·시간 개념을 먼저 익힌다.

응용 프로그램·CAN 제어기·트랜시버를 나눈다

Microchip의 CAN 개요는 노드를 응용 제어기·CAN 제어기·트랜시버로 구분한다. MCU에 CAN 제어기가 내장되어도 이 역할 구분은 유효하다.

CAN의 층과 공통 버스: 응용/메시지 계약 → CAN 제어기 → 트랜시버 → 버스/종단.그림 원본 크기로 보기

그림 M28.01-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.

부분맡는 일과 별도로 확인할 것
응용 프로그램속도/상태 등 payload의 뜻·단위/축·버전·유효성·명령/관측 구별
CAN 제어기(controller)프레임 생성/수신·ID 필터·중재·오류 검출. MCU 내부 또는 외부 장치일 수 있음
CAN 트랜시버(transceiver)제어기의 논리 TXD/RXD와 버스의 차동 CANH/CANL 사이 전기 변환
배선/접속·종단간선과 분기·양끝 종단·연결/전원·공통모드 범위 등의 물리 조건

TXD/RXD는 제어기와 트랜시버 사이 논리 신호다. CANH/CANL은 버스의 두 선이며 두 전압의 차이를 이용한다. MCU GPIO를 CANH/CANL에 직접 연결하는 그림으로 바꾸면 전기 변환 계층이 빠진다. 논리 0/1과 특정 핀 전압을 같은 것으로 취급하지 않는다. 실제 전압 범위·전원/논리 호환·허용 공통모드는 사용할 트랜시버 자료에서 확인해야 한다.

M03.04 전기 인터페이스의 정격/논리 호환과 M04.04 버스의 통신/데이터 유효성 구분을 그대로 이어 간다. 프레임을 읽었다고 속도 단위나 실제 물리 동작까지 확인한 것은 아니다.

고속 버스의 끝은 ECU 개수와 다르다

다음은 고속 CAN의 개념 배치다. 두 종단은 간선 양끝의 CANH와 CANL 사이에 놓는다. ASCII 선은 실제 치수/배선도나 접지/보호 회로를 대신하지 않는다.

종단120Ω (간선 끝1)
      ║
      ╠══ ECU A
      ║
      ╠══ ECU B
      ║
종단120Ω (간선 끝2)

여기서 ║와 ═는 CANH/CANL 두 선을 묶어 그린 기호다. 각 ECU는 트랜시버를 통해 두 선에 접속하고, 각 종단은 CANH와 CANL 사이에 연결한다.

TI SLOA101B p6는 고속 간선과 양끝 120Ω 종단을 설명한다. 목적은 케이블 끝의 반사를 줄이는 것이며, 노드마다 무조건 종단 하나씩 붙이는 규칙이 아니다. 간선/분기 길이와 전파 지연은 속도·토폴로지에 영향을 주므로 임의의 긴 별 모양 분기로 바꾸고 같은 성능을 가정하지 않는다.

종이 계산에서 배선 저항과 다른 경로를 무시하고 120Ω 저항만 병렬로 두었다고 하자. 같은 두 선 사이의 이상 등가 저항은 다음과 같다.

종단 수계산이상 등가값
1개120120Ω
2개1/(1/120+1/120)60Ω
3개1/(1/120+1/120+1/120)40Ω

이 계산은 제시한 저항망의 결과다. 60Ω이라는 수치만으로 종단 위치·단선·분기/반사·전원/공통모드·실제 통신 정상까지 판정할 수 없다. 두 저항이 잘못된 같은 쪽에 몰려 있어도 이상 병렬값은 같을 수 있다. 실제 차량에 저항계를 연결하는 절차나 실측 결과를 제공한 것이 아니다.

ID는 메시지의 식별/우선순위이며 노드의 인증서가 아니다

가상 버스에서 ID 0x120을 '축 속도 관측 v1'로 약속했다고 하자. 이 약속과 payload 해석 표는 응용 설계에 속한다. CAN ID 자체에 속도 단위·발신 장치 이름·생성 시각이 자동으로 들어 있지는 않다.

프레임은 같은 버스에 방송되고 각 제어기는 ID 필터 등으로 필요한 프레임을 받아들인다. ID를 일반적인 목적지 주소와 혼동하지 않는다. 모든 ECU가 모든 메시지를 응용까지 처리한다는 뜻도 아니다. 예상 ID가 보였다는 사실만으로 발신자를 인증하거나 명령 권한을 확인한 것은 아니다.

같은 ID를 여러 생산자가 임의로 다른 뜻/데이터로 쓰면 수신자는 해석을 신뢰하기 어렵다. 시스템 설계에서 생산자·형식/길이·버전·갱신 주기·오류/유효성 계약을 맞춰야 한다. CAN 링크 CRC는 전송 오류 검출 장치이며 발신자 인증이나 응용 데이터의 의미 검증을 대신하지 않는다.

동시에 보내려 하면 비트마다 버스를 관찰한다

같은 버스에서 두 송신자가 동시에 시작할 수 있다. CAN은 중재(arbitration) 구간에서 자신이 내보내려는 비트와 버스에서 읽은 비트를 비교한다. dominant는 논리 0, recessive는 논리 1이다. 정상 동작을 가정한 중재에서 0과 1이 경쟁하면 버스는 0으로 관측된다. 1을 보내려던 노드가 0을 읽으면 경쟁에서 물러나 수신으로 전환한다. 이 중재 패배 자체는 전송 오류가 아니며 승자의 프레임은 계속된다.

동일한 11bit 데이터 프레임 형식에서 A의 ID는 0x120, B는 0x100이라고 하자. 두 노드는 같은 SOF(Start Of Frame, 프레임 시작)에서 경쟁한다. ID는 가장 높은 자리 MSB(Most Significant Bit)부터 비교한다. 아래는 설명을 위해 ID 비트만 뽑은 표이며 실제 선로의 stuffing 비트/나머지 필드는 표시하지 않았다.

A의 ID 비트열은 00100100000, B는 00100000000이다.

ID bitAB
1000
900
811
700
600
5 (첫 차이)10
400
300
200
100
000

처음 다른 곳은 ID bit5, ID 안에서 여섯 번째 비트다. A는 1, B는 0이므로 A가 물러나고 B가 계속 전송한다. SOF나 삽입 비트까지 센 선로상의 여섯 번째 비트라는 뜻은 아니다. 같은 형식/조건에서는 수치가 작은 ID가 높은 우선순위를 갖는 이유를 이 비교에서 확인할 수 있다.

이 과정은 이미 전송 중인 프레임을 나중의 높은 우선순위 요청이 중간에서 끊는 선점이 아니다. 버스가 사용 중이면 다음 전송 기회를 기다린다. 중재에서 진 A도 이후 다시 경쟁하며, 다른 부하 조건 없이 A가 정확히 언제 전송된다고 보장할 수 없다.

조건을 바꿔 A/B가 같은 ID인데 payload가 다르면 어떻게 될까? ID 중재로 생산자를 구별하지 못하고 뒤의 데이터 구간에서 차이가 오류를 일으킬 수 있다. '동순위이니 두 프레임이 차례로 자동 전달된다'는 결론은 틀리다. 또 표준/확장 형식이 섞이면 IDE/SRR/RTR 등도 중재에 관여하므로 11bit/29bit ID의 정수 크기만 비교하는 규칙으로 일반화하지 않는다.

payload 바이트 수와 프레임 전송량은 다르다

Microchip DS70070D §23.5.1.1·Figure23-3는 Classical CAN 표준 데이터 프레임의 필드를 설명한다. 여기서는 payload 8B인 11bit 데이터 프레임으로 한정한다. B는 바이트, 1B=8bit다.

순서/필드비트 수와 역할
SOF1: 프레임 시작, dominant
중재12: ID11 + RTR1. 여기의 데이터 프레임은 RTR=0
제어6: IDE1 + 예약 r0 1 + DLC4. 이 표준 형식의 IDE=0, DLC(Data Length Code)=8은8B
data64: 응용 payload 8B
CRC 시퀀스/구분자15+1: CRC(Cyclic Redundancy Check) 오류 검사와 구분
ACK 슬롯/구분자1+1: 수신 확인과 구분
EOF7: 프레임 끝

이 필드 합은 1+12+6+64+16+2+7=108bit다. 그 뒤의 intermission 3bit까지 포함하면 111bit다. intermission은 다음 프레임 전에 필요한 구간으로, 이 계산에서는 프레임 자체 108bit와 구분해서 센다.

단, 이 합은 bit stuffing을 세기 전의 계산이다. Classical CAN은 SOF부터 CRC 시퀀스까지 같은 값이 다섯 번 연속되면 반대 비트를 삽입하는 규칙을 사용하며 수신자는 이를 제거한다. 내용에 따라 실제 전송 비트 수가 늘 수 있다. 오류 프레임·재전송, 추가 대기 등도 이 합에 없다. payload만 보고 전송 시간을 고정하지 않는 것이 핵심이다.

제공 비트율을 500kbit/s=500,000bit/s로 두면 1bit 시간은2µs다.

  • payload만 계산: 64×2=128µs.
  • 필드 합만 계산: 108×2=216µs.
  • intermission까지 계산: 111×2=222µs.

이 세 값은 계산 범위가 다르다. 222µs를 이 메시지의 전체 지연 상한으로 쓰면 안 된다. stuffing·앞선 프레임/중재 대기·오류/재전송·소프트웨어 처리 지연을 제외했기 때문이다. 원본 표본의 생성 시각에서 응용 처리까지의 지연은 더 넓은 시간 구간이다. 비트 타이밍과 오류/버스 부하의 상세는 M28.02에서 다룬다.

ACK 한 비트로 애플리케이션 결과를 알 수 있는가

정상적인 링크 동작에서 송신자는 ACK 슬롯에 recessive를 내보내고, 프레임을 올바르게 받은 수신 노드는 dominant로 응답할 수 있다. 이것은 어느 응용 소비자가 처리했는지 알려주는 개별 응답 목록이 아니다. 수신 필터로 응용에 넘기지 않는 노드의 링크 ACK도 있을 수 있다. 송신자 자신만 있고 ACK할 수신 노드가 없으면 같은 수신 확인을 기대할 수 없다.

따라서 'ACK 있음 → 원하는 ECU의 응용 처리 완료 → 물리 장치 동작 완료'로 단계를 건너뛰지 않는다. ACK 타임스탬프도 센서의 원본 측정 시각이 아니다. 새로 도착한 프레임 안에 오래된 표본이 있을 수 있고, ID/CRC가 맞아도 다른 버전·단위·축을 사용한 값일 수 있다.

다음은 전부 자체 가상 기록의 판단이다.

제공 관찰확인할 수 있는 것 / 더 필요한 근거
정상 링크에서 ACK 관측수신 확인 신호가 있었음 / 특정 응용의 처리·물리 결과는 별도
예상 ID·8B 수신지정 ID/길이의 데이터가 들어옴 / 스키마·생산자·값/유효성·버전 확인 필요
수신 시각이 '방금'그 수신 사건의 시각 / 원본 표본 시각·clock/오차·전송/처리 지연 별도
종단 이상 계산60Ω제시한 병렬 저항망 계산 일치 / 실제 위치·배선·반사·전원·송수신 미검증

기존 4.4 시간 정합과 M26.05 접수/관측 구분을 연결한다. DBC라는 신호 정의 자료로 비트를 물리 단위에 대응시키는 다음 단위에서도, 그 해석이 현재 형상/시각에 유효한지는 별도로 확인해야 한다.

다음 단계로 넘길 버스 계약

가상 버스의 메모를 한 장으로 정리한다. 물리 계층은 고속 선형 간선/종단 위치·제어기/트랜시버·연결 조건, 링크는 Classical/11bit 데이터·제공 비트율/ID·길이, 응용은 생산자/버전·단위/축·유효성·표본 시각/clock·기대 주기를 기록한다. 아직 자료가 없는 전기 수치/부하/최악 지연을 '정상'으로 채우지 않는다.

M26.06 통합 근거에서 이어 온 요구/형상·원본/미확인의 원칙이다. 기본 학습 완료는 이 분석을 할 수 있다는 뜻이며 실제 차량 통신 시험 완료를 뜻하지 않는다. 다음은 M28.02 비트 타이밍·에러 관리·CAN FD·DBC다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

위의 자체 가상 그림/ID/수치표로 한 장의 검토 기록을 만든다. 장비나 설치·코딩 없이 수행한다.

  1. 응용→CAN 제어기→트랜시버→CANH/CANL의 역할을 적고 TXD/RXD의 위치를 표시한다. 종단을 ECU마다 붙인 그림을 양끝 두 개로 고친다.
  2. 이상120Ω 종단1/2/3개의 등가값을 계산한다. 같은60Ω이 나와도 두 종단이 같은 끝에 있다면 무엇을 아직 모르는지 적는다.
  3. A0x120/B0x100의11자리 비트열을 비교해 첫 차이와 승자/패자를 적는다. 이미 전송 중인 A에 나중에 B 요청이 온 경우와 같은ID/다른payload 경우를 별도로 설명한다.
  4. 8B 표준 데이터 프레임의108/111bit·500kbit/s의216/222µs를 계산한다. ACK·ID/길이·최신 수신 기록만으로 속도 관측의 신선도/물리 동작을 보증할 수 없는 이유와 다음에 확인할 계약을 쓴다.

막히면 물리 조건→링크 프레임→응용 의미/시각을 세 줄로 나눈다. 중재는 11자리 왼쪽부터 비교하고, 시간은 먼저 세는 비트 범위를 적는다. 숫자나 ACK 하나를 전체 시스템의 통과 표시로 바꾸지 않는다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

ECU마다120Ω을 추가해 세 종단이 된 가상 고속 버스에서 'MCU GPIO를CANH/CANL에직결해도되고, ACK가 있으니 원하는 ECU가 명령을 실행했다'고 한다. 계층·종단·ACK의 의미를 고쳐 설명하라. 이상 병렬값과 그 해석 한계도 적어라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

같은SOF부터 경쟁하는 표준11bit 데이터 프레임 A0x120/B0x100의 비트열·첫 차이·승자를 구하라. 'B는 늦게 와도 A를 중간에서 끊는다', '같은ID의 다른payload는 안전하게 차례로 전송된다'는 설명도 평가하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

500kbit/s에서8B 데이터니까128µs 안에 항상 처리되고, ID/CRC/ACK와 최신 수신 시각이 있으니 최신 속도 관측이라고 한다. 이 단위의 필드 합/인터미션 시간을 계산하고, 전체 지연·의미/시각에 추가로 필요한 근거를 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.