RF 중계기 송수신 조립체 — STM32 펌웨어와 C# 관제 프로그램 통합 개발
RF 중계기 송수신 조립체의 STM32 펌웨어와 Windows 관제 프로그램을 함께 개발했습니다. WMI 기반 시리얼 통신으로 장시간 운영 안정성을 확보하고, 전용 부트로더로 원격 OTA 업데이트를 구현했습니다.
적용 기술
과제
RF 중계기 송수신 조립체는 현장에 설치된 뒤 장시간 무중단으로 동작해야 합니다.
펌웨어와 PC 관제 프로그램을 서로 다른 업체가 맡으면 통신 규약 조율에 시간이 들고,
문제가 생겼을 때 원인이 어느 쪽인지 가리기 어렵습니다.
이 프로젝트는 펌웨어와 관제 소프트웨어를 한 팀이 함께 개발해 그 경계를 없애는 것을 목표로 했습니다.
Windows 관제 프로그램 (C# / .NET)
WMI 기반 통신 구조
표준 시리얼 통신의 불안정성을 피하기 위해 WMI(Windows Management Instrumentation)를 사용했습니다.
Windows 커널 레벨에서 하드웨어 포트를 직접 제어하므로 드라이버 충돌이나 포트 점유 문제에서 자유롭고,
장시간 운영에도 데이터 교환이 끊기지 않습니다.
멀티스레드 UI
하드웨어와 실시간 통신이 진행되는 중에도 화면이 멈추지 않도록 멀티스레딩 구조를 적용했습니다.
RF 파라미터 변화는 그래프와 시각 컴포넌트로 표시해 즉시 파악할 수 있습니다.
데이터베이스 연동
각 조립체에서 수집한 dBm·온도·상태 값을 데이터베이스에 축적해,
이력 추적과 성능 분석에 쓸 수 있도록 했습니다.
STM32 임베디드 펌웨어
ARM Cortex-M 기반 STM32에서 하드웨어를 직접 제어하고 상위 C# 프로그램과 통신하는 펌웨어를 설계했습니다.
원격 OTA 업데이트
펌웨어 업데이트 실패는 장비 전체의 마비로 이어집니다. 그래서 다단계 안전장치를 뒀습니다.
- 전용 부트로더 — 전원 인가 시 메인 펌웨어 실행 전에 업데이트 명령을 먼저 확인하는 독립 부트로더
- 업데이트 절차 중 오류가 나도 기존 펌웨어로 복귀할 수 있는 구조
적용 기술
| 구분 | 내용 |
|---|---|
| MCU | STM32 (ARM Cortex-M) |
| 펌웨어 | C, 전용 부트로더, OTA 업데이트 |
| 관제 SW | C#, .NET, 멀티스레딩 |
| 통신 | WMI 기반 시리얼 |
| 데이터 | 수집값 DB 저장, 이력 추적 |
이런 경우에 참고하세요
- 펌웨어와 PC 제어 프로그램을 한 곳에 맡기고 싶은 경우
- 현장 설치 후 원격으로 펌웨어를 갱신해야 하는 장비
- 장시간 무중단 운영이 요구되는 계측·통신 장비