본문 바로가기
임베디드 개발/펌웨어

1553B (MIL-STD-1553)

by eteo 2026. 6. 7.
반응형

 

 

 

개요

MIL-STD-1553은 군용 항공기 내부의 전자 장비 간 통신을 위해 설계된 차동 직렬 데이터 버스 프로토콜이다.


1970년대 항공기 내 다양한 서브시스템 간 통신 방식을 표준화하고, 체계 수준에서 데이터 흐름을 예측 가능하게 관리하기 위해 도입되었다.

초기 버전인 MIL-STD-1553A가 발간된 이후, 개정된 MIL-STD-1553B가 현재까지 사용되는 표준으로 자리 잡았기 때문에, 통상적으로 짧게 1553B라고도 부른다.

 

 

 

 

이중화 (Redundancy)

1553B는 단일 버스의 고장이 발생하더라도 통신의 연속성과 데이터의 무결성을 확보하기 위해 이중화 구조를 채택하고 있다.

  • Primary Bus (Bus A)
  • Backup Bus (Bus B)

두 버스는 전기적으로 완전히 독립되어 있으며, 동일한 네트워크 구성을 갖는다. 일반적으로 한쪽 버스를 주 통신 경로로 사용하고, 다른 버스는 예비 상태로 운용하다가 네트워크의 마스터 장치가 통신 장애를 감지하면 즉시 다른 버스로 전환(Fallback)하여 통신을 재개할 수 있다.

 

이러한 Redundant 구조는 항공기와 같이 신뢰성이 절대적으로 중요한 환경에서 필수적인 설계 요소다.

https://www.bloomy.com/support/blog/mil-std-1553b-technical-brief

 

 

 

 

 

물리적 연결

1. 종단 저항

버스의 양 끝단에는 신호 반사를 억제하기 위해 78Ω 종단저항을 연결한다.

 

2. 연결 방식

1553B의 Stub 연결 방식은 Direct Coupling과 Transformer Coupling 방식 두 가지가 있다.

 

✓ Stub : 메인 버스에서 각 단말로 연결되는 Branch line

 

 

  1. Direct Coupling
    • 버스에 Stub을 직접 연결하는 방식으로 구조가 단순하다.
    • 단일 장치의 고장이 버스 전체에 영향을 줄 수 있다.
  2. Transformer Coupling
    • 커플러(Coupler)를 통 해 트랜스포머 방식으로 Stub을 연결한다.
    • 단일 장치의 고장이 버스 전체에 영향을 주지 않도록 절연(Isolation) 효과를 제공한다. 
    • 최대 Stub 허용 길이가 늘어나는 장점이 있다.

실제 항공 시스템에서는 장애 격리와 신뢰성 확보를 위해 Transformer Coupling 방식을 일반적으로 사용한다.

 

 

 

 

 

네트워크 구성요소

1553B 버스는 다음 세 가지 구성요소로 이루어지며, 버스 상에 1개의 BC와 1개 이상의 RT가 존재해야 한다.

 

1. Bus Controller (BC)

  • 버스 상의 데이터 흐름을 제어하는 유일한 장치로, 모든 통신은 BC의 명령으로 시작한다.
  • 메시지 스케줄링을 담당하며, 주기적인 스케줄에 따라 특정 RT의 특정 Subaddress로 데이터를 전송하거나 요청한다.
  • Primary 또는 Backup 버스를 통해 데이터를 전송할 수 있으며, RT가 Primary 버스에서 응답하지 않을 경우 Backup 버스로 재시도하도록 구성할 수 있다.

 

2. Remote Terminal (RT)

  • BC의 명령에 따라 데이터를 송신하거나 수신하는 단말 장치다.
  • 한 버스에 최대 30개의 RT가 연결될 수 있다.
    • RT 주소는 5비트(0~31) 32개가 있지만, RT 주소 0과 31은 브로드캐스트 용도로 예약되어 있기 때문에 최대 30개 RT에 주소를 할당할 수 있다.
  • RT는 BC의 명령이 있을 때만 응답하며, 자율적으로 데이터를 전송하지 않는다.
    • BC로부터 송신 명령 수신 시 요청된 데이터를 전송
    • BC로부터 수신 명령 수신 시 데이터를 수신 후 Status Word 응답
  • 각 RT는 최대 30개의 송신 및 수신 Subaddress를 가질 수 있으며, Subaddress는 RT의 특정 기능 또는 데이터 세트를 식별하는 용도로 사용된다.
    • Subaddress(SA) 역시 5비트이며, 0과 31은 Mode Code 용으로 예약되어 있기 때문에 데이터 전송용으로는 SA 1~30 범위를 사용한다.

 

3. Bus Monitor (BM)

버스 상의 모든 메시지를 모니터링하는 장치로 통신에 개입하지 않으면서 로깅 및 분석만 수행한다

 

 

 

 

전송 특성

1. 전송 속도

1Mbps의 고정 속도를 사용한다.

 

2. 전송 방식

반이중(Half-Duplex) 방식으로 차동 데이터 라인을 통해 한 번에 한 방향으로만 데이터 전송이 가능하다.

 

3. 인코딩 방식

Manchester II Bi-phase 방식을 사용한다.

  • 로직 '1' : High → Low 전환 (+V → -V)
  • 로직 '0' : Low → High 전환 (-V → +V)

이 방식은 비트 중간에 반드시 전압 변화가 발생하므로, 별도의 클럭 신호 없이 데이터 라인만으로도 동기화를 유지하는 Self-Clocking 방식이다.

 

 

 

 

 

 

메시지 구조

1553B 통신은 Word 단위로 구성되며, 하나의 Word는 물리적으로는 20-bit, 논리적으로는 16-bit 길이를 가진다. (Bit Count 방식은 문서마다 상이하긴 한데, Sync와 Parity 비트를 제외한 Data Payload만 0~15로 넘버링하는 방식이 더 일반적이다.)

 

1. Word의 물리적 구조

  • Sync (3bit) : 동기화를 위한 3us의 펄스 구간이다. 이 펄스는 맨체스터 인코딩 규칙을 의도적으로 위반한 형태라서, Word의 시작점을 명확히 구분할 수 있게 한다. (Command Word 및 Status Word와 Data Word의 Sync 펄스는 서로 반전된 구조이다.)
  • Data Payload (16bit) : 실제 정보가 담기는 데이터 구간이다.
  • Parity (1bit) : 오류 검출을 위해 Odd Parity를 사용한다. 앞선 16비트 내 '1'의 총 개수가 홀수이면 0으로, 짝수이면 1로 설정해서 전체 '1'의 개수를 항상 홀수로 유지한다.

 

 

2. Word의 종류

메시지는 다음 세 가지 종류의 Word 조합으로 이루어진다.

  • Command Word
  • Data Word
  • Status Word

 

 

2.1. Command Word

오직 BC만 Command Word를 전송할 수 있으며, 어떤 RT가 어떤 SA로 몇 워드를 송신 또는 수신할지 지시한다.

  • RT Address (5bit) 
    • 1~30 : 대상 RT를 식별한다.
    • 31 : 브로드캐스트 메시지로 버스 상 모든 RT의 해당 SA로 수신된다.
    • 0 : 미사용. 1533A 버전에서 0을 브로드캐스트용도로 사용하기도 했기 때문에 하위호환성을 위해 일반 RT에게 0은 할당하지 않는 것이 관례이다.
  • T/R bit (1bit) : 
    • 0 : RT가 데이터를 수신(RX)한다. (BC는 Command Word 바로 뒤에 Data Word를 붙여서 보내고 RT는 수신한다.)
    • 1 : RT가 데이터를 송신(TX)한다. (BC의 Command Word 뒤에, 해당 RT가 Status Word를 먼저 보낸 후 이어서 Data Word를 송신한다.)
  • Subaddress (5bit) 
    • 1~30 : 대상 Subaddres를 지정한다. (동일 SA 번호라도 T/R 비트에 따라 완전히 다른 데이터 세트나 기능을 수행하도록 정의할 수 있다.)
    • 0 or 31 : Mode Code 
  • Word Count / Mode Code (5bit) :
    • SA가 1~30인 경우 : 전송 또는 수신할 Data Word의 개수를 의미한다. 0~31 사이의 값이 올 수 있으며, 지정된 값만큼의 Data Word가 이어서 전송된다. 이때 '0'은 32개로 해석되므로, 한 번의 명령으로 최대 32개의 Data Word를 연속해서 송수신할 수 있다.
    • SA가 0 또는 31인 경우 : Mode Code로 해석한다.

 

2.2. Data Word

실제 전송하고자 하는 데이터가 담기는 Word이다. BC 또는 RT가 전송할 수 있다. 

  • 16bit Payload에는 센서값, 제어 명령값, 장비 상태값 등이 포함될 수 있다.
  • 명령값, 상태값 등을 표현할 때는 비트필드 방식을 사용하고, 센서값 등 물리량을 표현할 때는 16-bit 정수값에 미리 약속된 Scale Factor를 곱해 해석하는 고정 소수점 방식을 주로 사용한다.

 

2.3. Status Word

Command Word를 받은 RT가 자신의 상태를 BC하게 보고하기 위해 전송하는 Word이다.

  • RT Address (5bit) : RT의 고유 주소
  • Message Error (1bit) : 수신된 Word에 오류가 있을 경우 1로 설정한다.
  • Instrumentation (1bit) : Command Word와 Status Word를 구분하기 위한 비트로 0으로 고정된다.
  • Service Request (1bit) : BC에게 미리 정의된 특정 작업을 수행할 것을 요청할 때 1로 설정한다.
  • Reserved (3bit) : 추후 확장을 위해 예약된 비트
  • Broadcast Command Receive (1bit) : 직전 수신한 명령이 브로드캐스트 명령이었을 경우 1로 설정한다.
  • Busy (1bit) : RT가 데이터를 처리할 수 없는 바쁜 상태일 때 1로 설정한다.
  • Subsystem Flag (1bit) : RT 내부 Subsystem에 오류가 있을 경우 1로 설정한다.
  • Dynamic Bus Control Acceptance (1bit) : BC로부터 버스 제어권 이양 명령을 받았을 때, 이를 수락하면 1로 설정한다.
  • Terminal Flag (1bit) : RT 장치에 물리적인 결함이 발생했을 경우 1로 설정한다.

 

https://en.wikipedia.org/wiki/MIL-STD-1553

 

 

 

 

✓ Mode Code

Mode Code는 BC가 RT에게 제어 명령을 내릴 때 사용하는 32가지 특수 명령어다. 

0~15번은 Data Word 전송이 없고, 16~31번은 1개의 Data Word가 연결된다. Data Word가 0개 또는 1개로 고정되는 이유는, Word Count 필드 자리를 Mode Code 번호로 대체한 구조상 데이터 워드 개수를 별도로 지정할 수 없기 때문이다.

 

  • 0. Dynamic Bus Control : 버스 제어권을 RT에게 위임. 이후 해당 RT가 BC 역할을 수행
  • 1. Synchronize : 모든 RT의 내부 타이머 또는 동작을 동기화
  • 2. Transmit Status Word : RT의 현재 Status Word를 BC에게 전송
  • 3. Initiate Self-Test : RT 내부 자가진단 시작
  • 4. Transmitter Shutdown : 이중화된 채널 중 현재 채널의 RT 송신기를 강제로 비활성화
  • 5. Override Transmitter Shutdown : 4번으로 끈 송신기 재활성화
  • 6. Inhibit Terminal Flag : Status Word의 Terminal Flag 비트 설정을 강제로 금지
  • 7. Override Inhibit Terminal Flag : 6번 명령 해제
  • 8. Reset Remote Terminal : RT 전체 리셋
  • 9~15. Reserved
  • 16. Transmit Vector Word : RT가 보낸 Service Request에 대해 구체적으로 어떤 요청인지 되묻는 명령 (T)
  • 17. Synchronize with data : Data Word에 시간정보를 같이 보내 모든 RT의 타이머를 더 정밀하게 동기화 (R)
  • 18. Transmit Last Command Word : RT가 마지막으로 수신한 Command Word를 BC에게 되돌려 줌. 주로 디버깅/검증용 (T)
  • 19. Transmit BIT Word : 3번 자가진단(Built-In Test) 결과 데이터를 전송 (T)
  • 20. Selected Transmitter Shutdown : 4번과 달리 특정 RT 송신기만 선택적으로 비활성화 (R)
  • 21. Override Selected Transmitter Shutdown : 20번으로 끈 특정 송신기 재활성화 (R)
  • 22~31. Reserved

Broadcast 허용 여부는 Mode Code마다 다른데, RT의 응답이 필요한 명령(0, 2, 16, 18, 19)은 Broadcast가 허용되지 않고 나머지 제어성 명령은 허용된다.

 

 

 

 

 

 

 

 

 

메시지 전송 포맷

1553B에서는 10가지 종류의 메시지 전송 포맷을 정의하고 있다. 이들은 데이터 전송 포맷 3가지, 모드 코드 전송 포맷 3가지 그리고 브로드캐스트 전송포맷 4가지로 나눌 수 있다.

 

  • **. Response Time : RT는 BC의 명령을 받은 후 보통 4~12us 이내에 Status Word를 응답해야 한다. 이 시간을 초과하면 BC는 해당 RT에 통신 오류가 발생한 것으로 판단할 수 있다.
  • #. Inter-message Gap : 메시지와 메시지 사이에는 최소 4us 이상의 시간 간격을 두어 버스의 안정성을 확보한다.
  • TX, RX : 1553B 규격에서 TX와 RX는 'RT'의 입장으로 표기한다.

 

데이터 전송 포맷 3가지

 

1) BC to RT Transfers : BC가 특정 RT에게 RX Command를 보내고, 이어서 Data Word를 보낸다. 해당 RT는 데이터를 모두 수신한 후 Status Word를 응답하여 수신 완료를 알린다. 

 

2) RT to BC Transfers : BC가 특정 RT에게 데이터를 보내라는 TX Command를 보낸다. 해당 RT는 즉시 자신의 Status Word로 응답하고 이어서 요청받은 Data Word를 전송한다.

 

3) RT to RT Transfers : BC가 수신 측 RT에게 RX Command를 먼저 보내고, 송신 측 RT에게 TX Command를 연달아 보낸다. 이후 송신 RT는 Status Word로 응답한 이후 Data Word를 보내면, 수신 RT가 이를 수신한 뒤 Status Word로 응답한다.

 

모드코드 전송 포맷 3가지

 

4) Mode Command without Data Word : BC가 특정 RT에게 데이터 워드 없이 Mode Command를 전송하고, RT는 명령을 수신한 후 Status Word로 응답한다.

 

5) Mode Command with Data Word (TX) : BC가 특정 RT에게 Mode Command를 전송하면, RT는 즉시 Status Word로 응답하고 이어서 요청된 Data Word를 전송한다.

 

6) Mode Command with Data Word (RX) : BC가 특정 RT에게 Mode Command와 함께 Data Word 1개를 연달아 전송하고, RT는 데이터를 수신한 후 Status Word로 응답한다.


브로드캐스트 전송 포맷 4가지

 

7) BC to RT Broadcast : BC가 모든 RT에게 RX Command를 보내고 이어서 Data Word를 전송한다. 수신 대상이 버스 전체이므로 RT들은 Status Word를 응답하지 않는다.

 

8) RT to RT Broadcast : BC가 모든 RT에게 RX Command를 먼저 보내고, 이어서 특정 RT에게 TX Command를 전송한다. 송신 RT는 Status Word로 응답한 후 Data Word를 전송하며, 모든 RT들은 데이터를 수신하고, Status Word 응답은 하지 않는다.

 

9) Mode Command Broadcast without Data Word : BC가 모든 RT에게 데이터 워드 없이 Mode Command만을 전송한다. RT들은 명령을 수신하고 Status Word 응답은 하지 않는다.

 

10) Mode Command Broadcast with Data Word (RX) : BC가 모든 RT에게 Mode Command와 함께 Data Word 1개를 전송한다. RT들은 데이터를 수신하고 Status Word 응답은 하지 않는다.

 

 

 

 

 

 

메시지 스케줄링

BC는 일반적으로 주기적인 스케줄에 따라 메시지를 전송한다. 1553B는 결정론적(Deterministic) 시분할(Time Division) 통신 구조를 기반으로 하며, 특정 데이터가 정해진 시간 내에 반드시 전송됨을 보장해야 하기 때문이다.

 

이 때 전체 반복 주기를 Major Frame이라 하며, Major Frame 은 다시 여러 개의 Minor Frame으로 나뉜다. Minor Frame은 하나 이상의 메시지를 포함하는 최소 시간 단위로, 전체 스케줄의 메트로놈 역할을 한다.

 

스케줄링 예시를 들기위해 다음과 같이 전송 주기가 서로 다른 메시지들이 존재한다고 해보자.

  • 메시지 A(20Hz), 메시지 B(10Hz), 메시지 C(5Hz)

이 중 가장 빠른 메시지 A에 맞춰 Minor Frame 주기를 50ms로 설정하고 프레임을 다음과 같이 구성한다.

  • Minor Frame 1 : A, B, C 전송
  • Minor Frame 2 : A 전송
  • Minor Frame 3 : A, B 전송
  • Minor Frame 4 : A 전송

즉, 메시지 A는 매 Minor Frame마다(50ms), B는 두 Minor Frame마다(100ms), C는 네 Minor Frame마다(200ms) 전송되고, 전체 Major Frame 주기는 200ms가 된다.

 

그리고 정해진 스케줄 외에 비주기적 메시지가 발생할 경우 남는 유휴 시간에 삽입되며, 기존 스케줄된 메시지의 타이밍을 침해하지 않는 범위 내에서 처리된다.

 

https://www.milstd1553.com/resources-2/desginers-guide/designers-notes/5-bus-controller-implementation/

 

 

Reference : 

https://www.bloomy.com/support/blog/mil-std-1553b-technical-brief

https://photo-sonics.co.uk/technical-library/mil-std-1553b-avionic-data-bus/

https://www.milstd1553.com/resources-2/desginers-guide/designers-notes/5-bus-controller-implementation/

 

 

 

 

반응형