임베디드 Linux 기반 산업용 HMI 개발 및 양산
C/C++Embedded LinuxQt디바이스 드라이버U-BootARMHMIModbus
산업용 HMI 제품군의 개발·양산 팀 프로젝트에서 임베디드 소프트웨어와 디바이스 드라이버 개발을 담당했습니다. ARM 플랫폼의 시스템 소프트웨어를 산업용 하드웨어 및 Qt 기반 사용자 인터페이스와 연동했습니다.
프로젝트 개발 범위
- U-Boot, Linux 커널, 디바이스 드라이버 및 루트 파일시스템 개발
- Qt·QML 기반 설비 모니터링 및 제어 화면 구현
- 터치·LCD·통신·저장장치·전원 관리 인터페이스 연동
- PLC·SCADA 연동, 데이터 로깅, 알람 및 업데이트 기능 개발
주요 구현 내용
- 입출력 드라이버: 정전식·감압식 터치, TFT-LCD·IPS 패널, GPIO 및 ADC/DAC 연동
- 통신 인터페이스: RS-232, RS-422/485, UART, USB OTG·HSIC, Ethernet, LTE, Fieldbus, CAN, Modbus RTU/TCP 지원
- 주변장치: MMC/SD, eMMC, SRAM, HDMI, CCTV 입력, 오디오 코덱 연동
- 무선·전원 관리: LoRa, BLE, Wi-Fi, PMIC 제어 및 저전력 모드 구현
- GUI: 설비 상태 표시, 터치 제어, 경고 메시지, 운영 데이터 기록, 다국어 및 반응형 화면 구성
- 시스템 소프트웨어: Device Tree 구성, 실시간 패치, Secure Boot, 부팅 및 전력 관리 최적화
- 유지보수 기능: Buildroot·Yocto 기반 파일시스템과 OTA 업데이트, REST API 서버 구현
시스템 구성
Samsung Exynos, Amlogic, Allwinner, NXP i.MX 계열 ARM 플랫폼을 대상으로 산업용 터치스크린, 메모리 및 I/O 인터페이스를 구성했습니다. 임베디드 Linux에서 드라이버와 통신 계층을 실행하고, Qt 애플리케이션에서 설비 상태와 제어 기능을 제공합니다.
통신 노이즈에는 필터링, 오류 검출과 재전송, 차폐 및 접지 보완을 적용했습니다. GUI와 제어 로직의 응답성은 실시간 선점 패치, 멀티스레드 구조와 GPU 활용으로 조정했으며, 발열과 전력 소비는 DVFS, 화면 밝기 조절과 절전 모드로 다뤘습니다.
개발에는 Qt Creator, Visual Studio Code, CMake, Makefile, ARM GCC, GDB 및 JTAG를 사용했습니다.
프로젝트 화면


