### 0.0.1 DroneCAN 마이크로컨트롤러(MCU) 내장형 GPS의 토폴로지(Topology) 및 종단 저항(120\Omega) 물리 계층 구성
앞서 언급했듯, DroneCAN 규격을 준수하는 지능형 GPS(Smart GPS) 노드는 내장형 마이크로컨트롤러(MCU)와 CAN 트랜시버(Transceiver) IC를 결합하여 구성된다. 메인 비행 제어기(FC) 하드웨어와 하나 이상의 지능형 GPS 모듈들이 엮어내는 CAN 네트워크는 철저한 고주파 전송선로(Transmission Line) 회로망의 특성을 띠므로, 이를 물리적으로 결선할 때는 배선 토폴로지와 임피던스 매칭(Impedance Matching)에 각별한 주의를 기울여야 한다.
0.1 데이지 체인(Daisy Chain) 토폴로지 구조
CAN 버스는 기본적으로 메인 간선(Backbone/Trunk)을 따라 여러 기기가 굴비 엮이듯 병렬로 매달리는 버스(Bus) 토폴로지를 기반으로 한다. PX4 생태계에서 권장하는 연결 방식은 데이지 체인(Daisy Chain) 방식이다.
- 듀얼 커넥터 브릿징: 표준 DroneCAN GPS 돔이나 보드 기판을 살펴보면, 4핀(VCC, TX/CAN_H, RX/CAN_L, GND) 규격의 JST-GH CAN 커넥터가 2개씩 병렬 커플링되어 있는 것을 볼 수 있다.
- 연결의 연속성: 비행 제어기(FC)의
CAN1포트에서 출발한 케이블이 첫 번째 GPS의 1번 포트에 꽂히고, 해당 GPS의 2번 포트에서 다시 케이블이 나와 다음 노드(예: 에어스피드 센서, 혹은 두 번째 GPS)로 계속해서 이어지는(In-and-Out) 구조를 취한다.
이러한 직렬화된 데이지 체인 배선은 중앙의 별개 보드(CAN Hub)에서 방사형으로 뻗어 나가는 성형(Star Topology) 배선에 비해 간선의 선로 길이 불연속(Stub Length)을 최소화하여 데이터 충돌 및 반사파 잔향을 줄이는 최적의 솔루션이다.
0.2 신호 반사(Signal Reflection) 현상과 종단 저항(Termination Resistor)
케이블을 따라 1Mbps(CAN 2.0B 기준)의 고속 펄스(Pulse)가 주행할 때, 케이블의 끝단이 그냥 개방(Open)되어 있으면 전자 신호파가 절벽에 부딪힌 파도처럼 반향(Reflection)되어 원래의 신호와 겹치는 강력한 노이즈로 작용한다. 이러한 전송선로 반사파를 흡수하기 위해 선로 양 끝단에 반드시 달아주어야 하는 소자가 바로 **종단 저항(Termination Resistor)**이다.
- 120\Omega 저항 규격: CAN 버스 케이블(꼬임쌍선)의 고유 특성 임피던스(Characteristic Impedance)는 약 120\Omega이다. 임피던스 매칭 법칙에 따라 네트워크의 양쪽 극단(End-nodes) 간선 사이에 각각 120\Omega의 저항을 병렬 연결해야 한다.
- 물리적 통합 저항 체계: 정상적인 CAN 네트워크는 양단에 120\Omega이 두 개 배치되므로, 테스터기(멀티미터)로
CAN_H와CAN_L핀 사이의 저항을 측정하면 병렬 합성 저항값인 약 60\Omega이 관측되어야만 한다.
0.3 지능형 GPS 내부의 종단 저항 스위칭 설계
과거 초창기에는 사용자가 기체 조립 시 끝단 커넥터에 120\Omega 더미 플러그(Dummy Plug)를 손수 꽂아야 하는 번거로움이 있었다. 그러나 최근에 출시되는 고급형 PX4 호환 DroneCAN GPS 모듈(예: Holybro M9N GPS, CUAV NEO 3 프로 등)은 MCU 자체 보드에 종단 저항을 기본 내장하고 출고된다.
- 제조사에 따라서는 DIP 스위치나 점퍼(Solder Jumper)를 보드 상단에 마련하여, 해당 GPS 모듈이 간선의 끝(End-node)에 위치할 때는 스위치를 ON시켜 120\Omega 저항을 버스에 연결하고, 중간 노드로 사용될 때는 OFF시키도록 설계한다.
- 조립 과정에서 이 종단 저항 설정이 결여되거나(120\Omega 관측됨) 과잉 중복되면(30\Omega 이하 관측됨), PX4 부트 후 QGroundControl 시스템 탭에 CAN Bus Error가 지속적으로 카운트되며 센서 인식(
uavcan status명령어 출력 누락)이 거부되는 치명적 하드웨어 무응답을 유발하므로 개발자는 필수적으로 이 결선 저항치를 사전 점검해야 한다.