앤디 블로그
  • 모두
  • 아키텍처
  • 기술
  • 자바
  • 스프링
  • 인프라
  • 카프카
  • 데이터베이스
  • 컨퍼런스
  • 개발 문화
책
짧은 글
  • 모두
  • ISOBUS
이력서
  • 모두
  • 아키텍처
  • 기술
  • 자바
  • 스프링
  • 인프라
  • 카프카
  • 데이터베이스
  • 컨퍼런스
  • 개발 문화
책
짧은 글
  • 모두
  • ISOBUS
이력서
  • 통신과 CAN 기초

    • 소개
    • CH1. 통신의 기초
    • CH2. CAN 통신 입문
    • CH3. CAN 물리 계층
    • CH4. CAN 데이터 프레임
    • CH5. CAN 중재와 우선순위
    • CH6. CAN 에러 처리
    • CH7. CAN FD
  • SAE J1939

    • CH8. J1939 입문
    • CH9. J1939 메시지 구조
    • CH10. J1939 주소 체계
    • CH11. J1939 Transport Protocol
  • ISOBUS (ISO 11783)

    • CH12. ISOBUS 개요
    • CH13. 네트워크 아키텍처
    • CH14. 네트워크 관리
      • 1. 주소 클레임 (ISOBUS 방식)
        • CF (Control Function)
        • 주소 범위
        • 주소 클레임 흐름
      • 2. Working Set
        • 마스터-멤버 관계
        • Working Set 선언 메시지 (PGN 65070)
      • 3. 진단 메시지
        • 고장 코드 구조: SPN + FMI
        • 주요 진단 메시지
        • FMI 주요 값
      • 4. 네트워크 관리 타임라인
        • 타임라인 요약
      • 다음 챕터
  • Virtual Terminal (VT)

    • CH15. VT 기초
    • CH16. VT 오브젝트 풀
    • CH17. VT 명령어
  • Task Controller (TC)

    • CH18. TC 기초
    • CH19. TC 프로세스 데이터
    • CH20. TC DDOP
  • 심화 및 실습

    • CH21. 기타 기능
    • CH22. 종합 실습
  • 부록

    • 용어 사전
    • PGN/SPN 목록
    • DDI 목록
    • 트러블슈팅
    • 참고 자료

ISOBUS 네트워크 관리

학습 목표

  • ISOBUS의 주소 클레임 방식과 CF(Control Function) 개념을 설명할 수 있다.
  • Working Set Master와 Member의 관계를 도식으로 이해한다.
  • DM1~DM3 진단 메시지의 역할과 SPN+FMI 조합을 구분할 수 있다.
  • 전원 ON부터 통신 완료까지의 시간 흐름을 설명할 수 있다.

1. 주소 클레임 (ISOBUS 방식)

ISOBUS의 주소 클레임은 J1939의 방식을 기반으로 하되, 농업 기계에 맞게 확장된 규칙을 적용한다.

CF (Control Function)

ISOBUS에서는 네트워크에 참여하는 모든 장치를 CF(Control Function)라고 부른다. 하나의 물리적 ECU가 여러 CF를 포함할 수도 있다. 각 CF는 독립적인 주소를 가진다.

주소 범위

주소 범위용도
0 ~ 127고정 주소 (특정 기능에 예약)
128 ~ 247Self-Configurable 주소 (동적 협상)
248 ~ 253산업별 예약
254Null Address (주소 미확정 상태)
255Global Address (브로드캐스트)

ISOBUS 작업기 ECU는 대부분 128~247 범위의 Self-Configurable 주소를 사용한다. 이 범위의 주소는 여러 장치가 동시에 원할 경우 NAME 값의 우선순위로 자동 협상된다.

주소 클레임 흐름

sequenceDiagram
    participant ECU_A as ECU A<br>(NAME: 낮은 값)
    participant ECU_B as ECU B<br>(NAME: 높은 값)
    participant BUS as ISOBUS

    ECU_A->>BUS: Request for Address Claimed<br>(주소 128 원함)
    ECU_B->>BUS: Request for Address Claimed<br>(주소 128 원함)

    Note over ECU_A,ECU_B: 충돌 발생 — 두 ECU가 같은 주소 요청

    ECU_A->>BUS: Address Claimed (128)<br>NAME = 낮은 값
    ECU_B->>BUS: Address Claimed (128)<br>NAME = 높은 값

    Note over ECU_A,ECU_B: NAME 값 비교: 낮은 값이 우선권 획득

    ECU_A->>BUS: Address Claimed (128) 유지<br>주소 128 확정
    ECU_B->>BUS: Cannot Claim Address (128)<br>다른 주소(129)로 재시도
    ECU_B->>BUS: Address Claimed (129) 확정

2. Working Set

작업기(Implement)는 내부에 여러 ECU를 포함할 수 있다. 예를 들어 파종기(Seeder)는 메인 제어 ECU, 섹션 밸브 ECU, 속도 센서 ECU를 각각 가질 수 있다. 이 ECU들을 하나의 논리적 단위로 묶는 것이 Working Set이다.

마스터-멤버 관계

graph TD
    subgraph Working_Set_파종기
        WSM["Working Set Master<br>파종기 메인 ECU<br>주소: 132<br>─────────────<br>VT·TC와 직접 통신<br>작업기 대표"]

        M1["Working Set Member 1<br>섹션 밸브 ECU<br>주소: 133<br>─────────────<br>좌/우 섹션 개폐 제어"]

        M2["Working Set Member 2<br>속도 센서 ECU<br>주소: 134<br>─────────────<br>지면 속도 측정 및 보고"]

        M3["Working Set Member 3<br>비료 탱크 ECU<br>주소: 135<br>─────────────<br>잔량 센서, 경보"]

        WSM -- "내부 제어 명령" --> M1
        WSM -- "센서 값 수신" --> M2
        WSM -- "잔량 모니터링" --> M3
    end

    VT["VT<br>(트랙터 화면)"] -- "UI 데이터 요청" --> WSM
    TC["TC<br>(작업 컨트롤러)"] -- "섹션 명령" --> WSM

Working Set 선언 메시지 (PGN 65070)

WSM은 네트워크에 참여한 후 PGN 65070 (Working Set Master)를 브로드캐스트하여 자신이 마스터임을 선언한다. 이 메시지에는 Working Set에 속한 멤버 수가 포함된다.

멤버 ECU들은 PGN 65075 (Working Set Member)를 전송하여 자신이 특정 마스터에 속함을 알린다.

VT와 TC는 이 메시지를 수신하여 작업기의 구조를 파악하고, WSM을 통해서만 작업기와 통신한다.


3. 진단 메시지

ISOBUS는 ISO 11783-12를 통해 표준화된 진단 메시지를 정의한다. J1939의 진단 메시지 체계를 그대로 사용한다.

고장 코드 구조: SPN + FMI

모든 고장은 SPN(Suspect Parameter Number)과 FMI(Failure Mode Identifier)의 조합으로 식별한다.

  • SPN: 어떤 파라미터에 문제가 생겼는지 (예: SPN 100 = 엔진 오일 압력)
  • FMI: 어떤 종류의 고장인지 (예: FMI 1 = 데이터 낮음, FMI 3 = 전압 높음)

주요 진단 메시지

메시지PGN이름설명
DM165226Active Diagnostic Troubles현재 발생 중인 활성 고장 코드 목록
DM265227Previously Active Diagnostics이전에 발생했다가 해소된 고장 코드
DM365228Diagnostic Data Clear저장된 고장 코드 초기화 요청
graph LR
    subgraph 진단_메시지_흐름
        FAULT[고장 발생<br>SPN+FMI 감지] --> DM1[DM1 전송<br>활성 고장 코드]
        DM1 --> VT_WARN[VT 화면에<br>경고 표시]
        FAULT_CLEAR[고장 해소] --> DM2[DM2로 이동<br>이전 고장 기록]
        TECH[정비사 요청] --> DM3[DM3 전송<br>고장 코드 초기화]
        DM3 --> DM2_CLEAR[DM2 기록 삭제]
    end

FMI 주요 값

FMI의미
0데이터 유효 범위 초과 (높음)
1데이터 유효 범위 초과 (낮음)
2데이터 불안정 / 간헐적
3전압 높음 / 단락 (High)
4전압 낮음 / 단락 (Low)
5전류 낮음 / 단선
6전류 높음 / 단락 (GND)
12고장 모드 불명확
19수신 네트워크 데이터 오류

4. 네트워크 관리 타임라인

전원을 켠 순간부터 ISOBUS 통신이 완전히 확립될 때까지의 시간 흐름이다.

gantt
    title ISOBUS 네트워크 초기화 타임라인
    dateFormat  ss.SSS
    axisFormat  %S.%L s

    section 전원 / 하드웨어
    전원 ON / 버스 안정화      : 00.000, 50ms

    section 주소 클레임
    모든 ECU 주소 클레임 시작  : 00.050, 50ms
    주소 충돌 협상             : 00.100, 100ms
    주소 클레임 완료 (~250ms)  : milestone, 00.250, 0ms

    section Working Set
    WSM PGN 65070 브로드캐스트 : 00.250, 100ms
    Member PGN 65075 응답      : 00.350, 150ms
    Working Set 구성 완료 (~1s): milestone, 01.000, 0ms

    section VT 연결
    VT Status 수신             : 01.000, 200ms
    Object Pool 전송 시작      : 01.200, 300ms
    Object Pool 전송 완료      : milestone, 01.500, 0ms

    section 정상 동작
    TC Device Descriptor 교환  : 01.500, 200ms
    정상 동작 시작 (~2s)       : milestone, 02.000, 0ms

타임라인 요약

시점이벤트
0 ms전원 ON, 버스 전압 안정화
~50 ms각 ECU 주소 클레임 시작
~250 ms모든 ECU 주소 확정 완료
~250 msWSM Working Set 선언 (PGN 65070)
~1,000 msWorking Set 구성 완료
~1,000 msVT Status 수신 시작
~1,500 msObject Pool 전송 완료, 화면 표시 시작
~2,000 msTC Device Descriptor 완료, 전체 통신 확립

실제 현장에서의 차이: Object Pool 크기, ECU 수, 버스 부하에 따라 타임라인은 달라진다. 복잡한 작업기의 경우 Object Pool 전송만 수 초가 걸릴 수 있다.


핵심 정리

  • ISOBUS에서 ECU는 CF(Control Function)라 불리며, Self-Configurable 주소(128~247)를 NAME 우선순위로 동적 협상한다.
  • Working Set은 작업기 내 여러 ECU를 하나의 논리 단위로 묶으며, WSM이 VT·TC와의 모든 통신을 대표한다.
  • DM1은 현재 활성 고장, DM2는 이전 고장 이력, DM3는 고장 코드 초기화 명령이다.
  • 전원 ON 후 약 2초 안에 주소 클레임 → Working Set → VT 연결 → 정상 동작 순으로 초기화가 완료된다.

다음 챕터

  • 다음 : Virtual Terminal 기초
Prev
ISOBUS 네트워크 아키텍처