소프트웨어 개발 프로세스 모델은 크게 Plan Driven Model, Agile Model이 있다. Plan Driven Model의 예시로는 waterfall process model과 v-cycle process model이 있다.
V-Cycle 모델은 추상화 단계를 낮추어가며 Verification을 진행하고 구현이 완료되면 추상화 수준을 높여가며 반복적으로 Validation이 진행된다.
- Verification: 각 개발 단계에서 설계 및 구현 과정이 요구 사항을 올바르게 반영하고 있는지 확인하는 과정
- Validation: 최종 제품이 실제 사용 환경에서 요구 사항을 만족하는지 확인하는 과정
V-Cycle 프로세스의 유형
![](https://velog.velcdn.com/images/hyeon-ii/post/81a6a59e-32bf-471f-8518-acf874d815ab/image.png)
Function-oriented
- 기능 개발 위주의 프로세스로 여러 개발 도구를 사용한다.
- Tool-based V-cycle
Safety-oriented
- 시스템의 safety를 중심으로 한 V-Cycle
- ISO 26262(자동차 기능 안전성 국제 표준)
- Software 표준 아님
- 시스템의 안전을 보장하기 위한 프로세스와 절차를 정의한다.
Quality-oriented
- Safety 보장을 위한 기본 조건
- Automotive SPICE
- 자동차에서 중요한 요소인 quality
- 자동차 산업에 적합한 성숙도 모델로, 전자 및 소프트웨어 기반 시스템의 개발 프로세스의 성숙도를 평가한다.
ECU 개발을 위한 V-Cycle 프로세스 (도구 중심)
![](https://velog.velcdn.com/images/hyeon-ii/post/64ec33ef-d612-42fc-aa28-ff9b9c1067bb/image.png)
세부적인 사항은 용도에 맞추어 커스텀 될 수 있다.
Modeling and Design
- 제약점: 종방향 제어 같은 전통적 제어 시스템에 한정된다.
- Modeling: Feedback control system을 modeling 하는 방법
- Physical world와 Cyber workd가 함께 동작하는 Hybrid system
- Physical World
- 차량의 기계적/물리적 동작을 의미하며 아날로그 신호로 동작한다.
- 시간에 대해 연속적이다.
- 시간에 대한 미적분으로 각종 계산이 가능하다.
- Cyber World(ECU, Software)
- ECU, 소프트웨어와 같은 전자적 제어 부분을 의미하며 디지털 신호를 사용하여 동작한다.
- Discrete 주기에 따라 동작의 완성도의 차이가 발생한다. 이는 컴퓨터의 성능과 trade off 관계이다.
- Logic, code로 모델링 되어 있다.
- A/D, D/A convert가 필요하다.
- Modeling Tools
- Simulink: Plant의 연속 도메인에서의 움직임을 미분방정식으로 표현한다. Computer의 계산을 visual language로 표현한다.
- Stateflow: Computer의 로직을 state machine으로 표현한다. Logic 표현력이 강하다.
- ASCET: Simulink, Stateflow와 유사한 도구로, 엔진제어에서 주로 사용한다.
- Cruise Control Plant Modeling의 경우
- 미분방정식으로 차량의 속도를 모델링하고 수학 계산을 그림으로 표현하는 방향으로 모델링을 한다.
- Cruise Control Computer Modeling은 ECU의 소프트웨어 로직과 계산을 모델링한다.
- State machine은 state의 변화를 관리하고 input에 따른 수식 계산 과정을 나타내는 diagram 형태로 모델링을 할 수 있따.
- Cruise Control Simulation
- Input으로 버튼을 누르면 도로 경사 같은 physical 입력과 디지털 입력이 simulink에서 계산되어 차량 속도가 출력된다.
- Advanced Simulation Methods
- MIL, SIL, PIL 단계를 거쳐 프로그램이 완성된다.
- MIL (Model-In-the-Loop): 모델 수준에서의 시뮬레이션으로, 실제 코드 생성 전에 Simulink 같은 도구로 시스템 동작을 검증한다. C 코드와는 다름
- SIL (SW-In-the-Loop): 모델로부터 생성된 C 코드로 PC에서 실행하여 소프트웨어가 제대로 동작하는지 검증한다.
- PIL (Processor-In-the-Loop): 크로스컴파일(임베디드 보드에서 실행파일이 동작하도록 처리하는 것) 된 코드를 실제 ECU에 탑재하여 동작을 검증한다.
![](https://velog.velcdn.com/images/hyeon-ii/post/1812ccbe-3c60-4ad1-a02e-ed455e7af4e4/image.png)
- Commercial Plant Models
- Vehicle 동적 모델링을 위한 CarSim, CarMaker
Rapid Prototyping
- 실제 자동차와 연결하여 실험적으로 빠르게 작업하는 단계
- Control Logic Model을 다운로드하여 ECU 대신에 실제 Vehicle에서 Model을 Validation
- Plant Model 없이 실제 차량에서 테스트한다.
- dSPACE MicroAutoBox
- ECU를 시뮬레이션하는 하드웨어
- Real-Time Target이라고도 불린다.
- 모델링 툴과 연동되어 모델 코드를 실시간으로 실행한다.
- CAN, LIN, Serial, Analog and Digital IO 등이 지원된다.
Targeting
- 양산형 ECU를 만드는 과정
- Control Logic Model을 기반으로 자동으로 코드 생성 또는 사람이 직접 코딩
- Automatic Code Generation
- 툴에서 자동으로 코드를 생성하기 때문에 버그 가능성이 있다.
- 사람의 요구사항에 맞는 code가 아닐 수 있다.
- 모델과 코드의 일관성 유지가 어렵다.
- 모델과 코드를 이중으로 관리해야하고 ECU 개발로 쉽게 이어지지 않는다.
- Simulink Embedded Coder, dSPACE TargetLink
- Manual Coding
- 모델링 결과를 바탕으로 사람이 다시 C 코드를 작성하는 것
- 사람의 실수 가능성이 있다.
- 코드 생성 후 Targeting 단계 고려사항
- Targeting은 아키텍처, 수식을 C 코드로 구현하고 ECU를 만드는 과정이다.
- Runnable Period, CAN, AUTOSAR, Deadline, Real Time, Mutex, ISO 26262, MISRA-C 등을 고려해야 한다.
- AUTOSAR: 자동차 소프트웨어 아키텍처 표준으로, ECU 소프트웨어가 일관되게 동작할 수 있도록 정의한 표준
- MISRA-C: 자동차 소프트웨어에서 안전한 C 코드 작성을 위한 가이드라인
Hardware-in-the-Loop Simulation
- ECU를 시뮬레이션 하는 MIL, SIL, PIL과 반대로 ECU는 고정한 채로 실차 탑재 직전에 엔진을 시뮬레이션하는 것
- 실차 없이 가상의 환경에서 ECU를 검증한다.
- Rapid Prototyping 과정과 반대
- HIL은 비용을 절감하고 위험을 줄이기 위해 많이 사용된다.
- Model을 HILS Platform에 다운로드하고 Control Code를 탑재한 채로 ECU를 검증하는 과정
- 주요 HIL 제품으로는 ETAS LABCAR, dSPACE SCALEXIO가 있따.
System Testing
- 실제 ECU와 차량으로 테스트하는 과정
- CAN Calibration Protocol
- Sensor, ECU를 측정할 때 PC와 자동차 ECU 간 데이터를 주고받는 프로토콜
- Mearure과 보정(parameter 수정) 과정을 반복한다.
- ECU Calibration and Measurement
- 대표적인 C&M 툴로는 ETAS INA, Vector Canape가 있다.
- 중요 표준으로는 ASAM의 XCP, CCP가 있다.
- 효율적인 디버깅을 위해 실시간 측정과 모니터링이 중요하다.
- 중요 파일 포맷 - A2L 파일
- 제어를 위한 실행파일로, 변수가 어느 메모리에 가는지 확인하기 위한 파일이다.
- "어느 제어기의 어느 데이터를 확인해야 하는가"