요약
"M", "S", "P", "H"는 모두 컨트롤러의 상태를 의미하며, 컨트롤러의 실제 하드웨어 구현 정도를 나타낸다.
- MIL (Model In Loop): 컨트롤러를 모델로 시뮬레이션
- SIL (Software In Loop): 모델을 변환한 C 코드 기반의 시뮬레이션
- PIL (Processor In Loop): 실제 컨트롤러 프로세서에서 코드 실행 (I/O 연결 없음)
- HIL (Hardware In Loop): 실제 컨트롤러 하드웨어와 I/O를 포함한 테스트
용어
이 개념들은 일반적으로 제어 시스템 개발에서 사용되며, 이는 기계/전자 시스템과 상호 작용하는 제어 소프트웨어를 개발하는 과정에서 활용된다.
- Control system(제어 시스템): '컨트롤러(controller)'로 지칭됨
- Mechatronic system(메카트로닉 시스템): '플랜트(plant)'로 지칭됨
Model In Loop, MIL
MIL은 제어 모델을 사용하여 플랜트 모델과 함께 시뮬레이션하는 방식이다. 일반적으로 Simulink에서 제어 모델을 작성하고, 동일한 Simulink 다이어그램 내에서 물리 시스템 모델과 직접 연결하여 테스트를 수행한다. 이 단계에서는 모델의 변경이 즉시 테스트될 수 있어 개발 속도가 매우 빠르다.
Software In Loop, SIL
SIL에서는 컨트롤러 모델이 실제 C 또는 C++ 코드로 변환되어 시뮬레이션에 통합된다. 이는 코드 자동 생성(autocoding) 또는 핸드 코딩을 통해 구현될 수 있으며, 주로 코드 검증을 위한 과정이다. SIL에서는 MIL보다 개발 속도가 다소 느려지지만, 코드 변환 과정에서 발생하는 문제점을 발견하고 수정하는 것이 가능하다.
Processor In Loop, PIL
PIL 단계에서는 더 이상 소프트웨어를 시뮬레이션 환경에서 실행하지 않고, 이를 실제 마이크로프로세서에 배포하여 실행한다. 하지만 I/O는 실제 하드웨어가 아니라 JTAG 또는 고속 통신 버스를 통해 플랜트 시뮬레이션과 연결된다. 이 테스트의 주요 목적은 임베디드 환경에서 실행 시간을 검증하는 것이다. 예를 들어, 제어 루프가 임베디드 프로세서의 실행 시간 내에서 수행될 수 있는지 확인하는 것이 중요하다. 이 단계에서는 코드 배포 및 실행을 반복해야 하므로 개발 속도가 더욱 느려진다.
Hardware In Loop, HIL
HIL 단계에서는 제어 시스템이 최종 컨트롤러 하드웨어에 완전히 배포되며, 플랜트 모델은 실시간(real-time) 시뮬레이션 환경에서 실행된다. 이 시뮬레이션 환경은 컨트롤러가 실제 플랜트에 연결된 것처럼 동작하도록 I/O 신호를 조작하여 구현된다. HIL 테스트는 주로 소프트웨어 검증을 위해 사용되며, 개발 속도가 매우 느려지지만 실제 애플리케이션 환경과 가장 유사한 테스트 환경을 제공한다. 따라서 최종적인 문제점을 찾고 수정하는 데 매우 효과적이다.
https://www.linkedin.com/groups/Difference-between-MIL-SIL-PIL-109866.S.167229094/
'임베디드 개발 > 펌웨어' 카테고리의 다른 글
Cold Reset과 Warm Reset (0) | 2023.08.14 |
---|---|
Types of IC Packages (0) | 2023.07.24 |
CAN FD Bus Load Calculator (0) | 2023.06.25 |
readelf 명령어와 elf 파일 구조 (0) | 2023.06.25 |
JTAG, SWD (0) | 2023.06.25 |