(SDV 8๊ฐ•) ๋ฏธ๋“ค์›จ์–ด·OS ํฌํŒ…·์ถ”์ƒํ™” ๊ณ„์ธต, ๋ถ€ํŠธ๋กœ๋”·๋“œ๋ผ์ด๋ฒ„ ๊ตฌ์กฐ, ์‹ค์‹œ๊ฐ„์„ฑ ๊ฒ€์ฆ ์ „๋žต

๐Ÿ“Œ  ๋ฉ”ํƒ€ ์„ค๋ช…

 

SDV ๋ฏธ๋“ค์›จ์–ด, OS ํฌํŒ…, HAL, BSP, ๋ถ€ํŠธ๋กœ๋”, ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‹ค์‹œ๊ฐ„์„ฑ ๊ฒ€์ฆ ์ „๋žต๊นŒ์ง€ ์‹ค๋ฌด ์ค‘์‹ฌ์œผ๋กœ ์•Œ์•„๋ณด๋Š” SDV ๊ฐœ๋ฐœ ๊ฐ•์ขŒ 8๊ฐ•์ž…๋‹ˆ๋‹ค.

 8๊ฐ•: ๋ฏธ๋“ค์›จ์–ด·OS ํฌํŒ…·์ถ”์ƒํ™” ๊ณ„์ธต, ๋ถ€ํŠธ๋กœ๋”·๋“œ๋ผ์ด๋ฒ„ ๊ตฌ์กฐ, ์‹ค์‹œ๊ฐ„์„ฑ ๊ฒ€์ฆ ์ „๋žต ๐Ÿš—๐Ÿ’ป

 


SDV(Software Defined Vehicle) ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง๋ณด๋‹ค ์˜คํžˆ๋ ค ๊ทธ ์•„๋ž˜ ๊ณ„์ธต์ด ๋” ์–ด๋ ต๊ฒŒ ๋А๊ปด์งˆ ๋•Œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜…

๊ธฐ๋Šฅ ์ž์ฒด๋Š” ๋‹จ์ˆœํ•œ๋ฐ OS ํฌํŒ… ๊ณผ์ •์—์„œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,

๋“œ๋ผ์ด๋ฒ„ ์ธํ„ฐ๋ŸฝํŠธ ํ•˜๋‚˜ ๋•Œ๋ฌธ์— ์ „์ฒด ์‘๋‹ต์‹œ๊ฐ„์ด ํ”๋“ค๋ฆฌ๋Š” ๊ฒฝ์šฐ๋„ ์ ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” SDV ํ”Œ๋žซํผ ๊ฐœ๋ฐœ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๋ฏธ๋“ค์›จ์–ด(Middleware), OS ํฌํŒ…(OS Porting), HAL(Hardware Abstraction Layer), ๋ถ€ํŠธ๋กœ๋”(Bootloader), ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„(Device Driver) ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹ค์‹œ๊ฐ„์„ฑ ๊ฒ€์ฆ ์ „๋žต๊นŒ์ง€ ์—ฐ๊ฒฐํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


1. SDV์—์„œ ๋ฏธ๋“ค์›จ์–ด์™€ ์ถ”์ƒํ™” ๊ณ„์ธต์ด ์ค‘์š”ํ•œ ์ด์œ  ๐Ÿ”ง

SDV ํ”Œ๋žซํผ์€ ์ˆ˜๋งŽ์€ ์†Œํ”„ํŠธ์›จ์–ด ์„œ๋น„์Šค๊ฐ€ ๋™์‹œ์— ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•˜๋“œ์›จ์–ด ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ง์ ‘ ์•Œ๊ฒŒ ๋˜๋ฉด ํ”Œ๋žซํผ ๋ณ€๊ฒฝ ์‹œ ์ˆ˜์ • ๋ฒ”์œ„๊ฐ€ ๋งค์šฐ ์ปค์ง‘๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋Œ€๋ถ€๋ถ„์˜ SDV ํ”Œ๋žซํผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Application
    ↓
Middleware
    ↓
OSAL
    ↓
HAL
    ↓
BSP
    ↓
Driver
    ↓
Hardware

 

๊ณ„์ธต๋ณ„ ์—ญํ• 

๊ณ„์ธต์—ญํ• 

Middleware ์„œ๋น„์Šค ํ†ต์‹ , ์ง„๋‹จ, OTA, ์ƒํƒœ๊ด€๋ฆฌ
OSAL OS  ์ถ”์ƒํ™”
HAL ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ ์ถ”์ƒํ™”
BSP ๋ณด๋“œ ์ดˆ๊ธฐํ™” ๋ฐ ์„ค์ •
Driver ๋ ˆ์ง€์Šคํ„ฐ ์ง์ ‘ ์ œ์–ด

 

๐Ÿ“Œ ํ•ต์‹ฌ์€ ์ฐจ์ด๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ณ€๊ฒฝ ์˜ํ–ฅ์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์‹ค์ œ๋กœ ํ•„์ž๊ฐ€ ์ฐธ์—ฌํ–ˆ๋˜ Ethernet ECU ํ”„๋กœ์ ํŠธ์—์„œ๋Š”

MCU ํ”Œ๋žซํผ์„ ์ฐจ์„ธ๋Œ€ SoC๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ฑฐ์˜ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ Timer HAL๊ณผ Interrupt ์ถ”์ƒํ™” ๊ณ„์ธต์€ ์ƒ๋‹น ๋ถ€๋ถ„ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ƒํ™” ๊ณ„์ธต์€ "์€ํ"๊ฐ€ ์•„๋‹ˆ๋ผ "๊ณ„์•ฝ๋ฉด(Contract Interface)"์ด๋ผ๋Š” ์‚ฌ์‹ค์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.


2. OS ํฌํŒ…์€ ๋‹จ์ˆœ ๋นŒ๋“œ ์„ฑ๊ณต์ด ์•„๋‹ˆ๋‹ค โš™๏ธ

OS ํฌํŒ…์ด๋ผ๋Š” ๋ง์„ ๋“ค์œผ๋ฉด ๋‹จ์ˆœํžˆ ์ปดํŒŒ์ผ ์„ฑ๊ณต์„ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹ค์ œ SDV ๊ฐœ๋ฐœ์—์„œ๋Š” ๋‹ค์Œ ํ•ญ๋ชฉ๊นŒ์ง€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • Scheduler ๋™์ž‘ ๊ฒ€์ฆ
  • Timer ์ •ํ™•๋„ ๊ฒ€์ฆ
  • Memory Management ๊ฒ€์ฆ
  • Interrupt Latency ๊ฒ€์ฆ
  • Driver Interface ๊ฒ€์ฆ

์‹ค์Šต ์˜ˆ์‹œ

void Timer_ISR(void)
{
    gpio_toggle();
}

 

์œ„ ์ฝ”๋“œ๋Š” ๋งค์šฐ ๋‹จ์ˆœํ•˜์ง€๋งŒ ์‹ค์ œ ํฌํŒ… ์‹œ์—๋Š” ๋‹ค์Œ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ธํ„ฐ๋ŸฝํŠธ ์‘๋‹ต์‹œ๊ฐ„
  • Context Switch ์‹œ๊ฐ„
  • Jitter ๋ฐœ์ƒ ์—ฌ๋ถ€
  • ์šฐ์„ ์ˆœ์œ„ ์—ญ์ „(Priority Inversion)

๐Ÿ“Œ ๋”ฐ๋ผ์„œ OS ํฌํŒ… ์™„๋ฃŒ ๊ธฐ์ค€์€ Build Success๊ฐ€ ์•„๋‹ˆ๋ผ Integration Test ํ†ต๊ณผ์™€ Timing Requirement ๋งŒ์กฑ์ด ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


3. ๋ถ€ํŠธ๋กœ๋”๋Š” SDV ์‹ ๋ขฐ์˜ ์‹œ์ž‘์  ๐Ÿš€

์˜ˆ์ „์—๋Š” ๋ถ€ํŠธ๋กœ๋”๋ฅผ ๋‹จ์ˆœ ๋ถ€ํŒ… ์ฝ”๋“œ ์ •๋„๋กœ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ SDV์—์„œ๋Š” OTA์™€ ์‚ฌ์ด๋ฒ„๋ณด์•ˆ์ด ์ค‘์š”ํ•ด์ง€๋ฉด์„œ ๋ถ€ํŠธ๋กœ๋” ์—ญํ• ์ด ํฌ๊ฒŒ ํ™•๋Œ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Power On
   ↓
Bootloader
   ↓
Image Validation
   ↓
Secure Boot Check
   ↓
Application Start

 

์ตœ๊ทผ ์ฐจ๋Ÿ‰์—์„œ๋Š” ๋‹ค์Œ ๊ธฐ๋Šฅ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

  • Secure Boot
  • Image Validation
  • A/B Update
  • Rollback Recovery
  • Memory Initialization

ํŠนํžˆ OTA ํ™˜๊ฒฝ์—์„œ๋Š” ๋ถ€ํŠธ๋กœ๋”๊ฐ€ ์ฐจ๋Ÿ‰ ์‹ ๋ขฐ ์ฒด์ธ์˜ ์‹œ์ž‘์ (Root of Trust)์ด ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“š ์ถœ์ฒ˜: ISO/SAE 21434, Secure Boot Architecture


4. ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„ ์„ค๊ณ„์™€ ์‹ค์‹œ๊ฐ„์„ฑ โšก

๋“œ๋ผ์ด๋ฒ„๋Š” ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ๋ ˆ๋ฒจ์˜ ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ์œ„ํ•ด ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์ง€๋งŒ ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์ด ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค๋ฌด์—์„œ๋Š” ๋‹ค์Œ ์š”์†Œ๋ฅผ ๋ช…ํ™•ํžˆ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ISR(Interrupt Service Routine) : ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ์ฆ‰์‹œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
  • DSR(Deferred Service Routine) : ISR ์ดํ›„ ํ›„์† ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ
  • Timeout ์ฒ˜๋ฆฌ
  • Error Propagation
  • DMA ๊ฒฝ๊ณ„ ์ •์˜

์‹ค์Šต ์˜ˆ์‹œ

ISR:
์„ผ์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์‹ 

DSR:
ํ•„ํ„ฐ๋ง ์ˆ˜ํ–‰
๋ฉ”์‹œ์ง€ ํ ์ „๋‹ฌ

 

์ด๋Ÿฌํ•œ ๋ถ„๋ฆฌ๋Š” ์ธํ„ฐ๋ŸฝํŠธ ์ ์œ  ์‹œ๊ฐ„์„ ์ค„์—ฌ ์‹ค์‹œ๊ฐ„์„ฑ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.


5. ์‹ค์‹œ๊ฐ„์„ฑ ๊ฒ€์ฆ์€ ํ‰๊ท ๊ฐ’์œผ๋กœ ํŒ๋‹จํ•˜๋ฉด ์•ˆ ๋œ๋‹ค โฑ๏ธ

๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ CPU Load 40% ์ˆ˜์ค€์ด๋ฉด ์•ˆ์ „ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ Deadline Miss๋Š” ํ‰๊ท ์ด ์•„๋‹ˆ๋ผ ์ตœ์•… ์กฐ๊ฑด์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋‹ค์Œ ํ•ญ๋ชฉ์„ ํ•จ๊ป˜ ๊ฒ€์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • WCET (Worst Case Execution Time)
  • Interrupt Latency
  • Scheduling Jitter
  • Bus Contention
  • Boot Time Budget
  • Degraded Mode ์ „ํ™˜ ์‹œ๊ฐ„

์‹ค์Šต ์ฒดํฌ๋ฆฌ์ŠคํŠธ

โ–ก ์ตœ๋Œ€ ์‘๋‹ต์‹œ๊ฐ„ ์ธก์ •
โ–ก ์ธํ„ฐ๋ŸฝํŠธ ์ง€์—ฐ ์ธก์ •
โ–ก Fault Injection ์ˆ˜ํ–‰
โ–ก Stress Test ์ˆ˜ํ–‰
โ–ก Integration Test ์ˆ˜ํ–‰

 


6. ์‹ค๋ฌด ์ ์šฉ ๋ฐฉ์•ˆ ๐Ÿญ

์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹ค์Œ 4๊ฐ€์ง€๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

  1. Application / Middleware / HAL / BSP / Driver ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์ •์˜
  2. ๊ณ„์ธต๋ณ„ ์ฑ…์ž„๊ณผ ๊ธˆ์ง€์‚ฌํ•ญ ๋ฌธ์„œํ™”
  3. ๊ธฐ๋Šฅ๋ณ„ Timing Budget ์„ค์ •
  4. Integration Test ๊ธฐ๋ฐ˜ ํฌํŒ… ์™„๋ฃŒ ๊ธฐ์ค€ ์ˆ˜๋ฆฝ

 


OEM / Tier1 / Tier2 ๊ด€์  ์š”์•ฝ

OEM

  • ํ”Œ๋žซํผ ์•„ํ‚คํ…์ฒ˜ ์ •์˜
  • OTA ๋ฐ ๋ณด์•ˆ ์ •์ฑ… ์ˆ˜๋ฆฝ
  • Timing Requirement ์ •์˜

Tier1

  • Middleware ๋ฐ HAL ๊ฐœ๋ฐœ
  • OS ํฌํŒ… ๋ฐ ํ†ตํ•ฉ ๊ฒ€์ฆ ์ˆ˜ํ–‰
  • ECU ํ”Œ๋žซํผ ๊ฐœ๋ฐœ

Tier2

  • Driver ๋ฐ BSP ๊ฐœ๋ฐœ
  • MCU/SoC ์ง€์›
  • ์ €์ˆ˜์ค€ ๊ฒ€์ฆ ์ˆ˜ํ–‰

์ด๋ฒˆ ๊ฐ•์˜ ํ•ต์‹ฌ ์ •๋ฆฌ โœจ

  • ๋ฏธ๋“ค์›จ์–ด์™€ ์ถ”์ƒํ™” ๊ณ„์ธต์€ ๋ณ€๊ฒฝ ์˜ํ–ฅ์„ ์ œํ•œํ•˜๋Š” ๊ณ„์•ฝ๋ฉด์ด๋‹ค.
  • OS ํฌํŒ…์€ ๋นŒ๋“œ ์„ฑ๊ณต์ด ์•„๋‹ˆ๋ผ Timing Requirement ์ถฉ์กฑ๊นŒ์ง€ ํฌํ•จํ•œ๋‹ค.
  • ๋ถ€ํŠธ๋กœ๋”๋Š” OTA์™€ Secure Boot์˜ ์‹œ์ž‘์ ์ด๋‹ค.
  • ๋“œ๋ผ์ด๋ฒ„ ๊ตฌ์กฐ๋Š” ์‹ค์‹œ๊ฐ„์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ฒฐ์ •ํ•œ๋‹ค.
  • ์‹ค์‹œ๊ฐ„์„ฑ ๊ฒ€์ฆ์€ ํ‰๊ท ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์ตœ์•… ์กฐ๊ฑด(WCET) ๊ธฐ์ค€์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

๋‹ค์Œ ๊ฐ•์˜ ์˜ˆ๊ณ  ๐Ÿ””

๋‹ค์Œ ๊ฐ•์˜์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์กฐ ์„ค๊ณ„๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋ถ„ํ•ด(Service Decomposition), ์ƒํƒœ ๊ด€๋ฆฌ(State Management), ์‹คํ–‰ ๋ชจ๋ธ(Runtime Model)์„ ์ค‘์‹ฌ์œผ๋กœ SDV ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์‚ดํŽด๋ณธ ํ•˜๋ถ€ ํ”Œ๋žซํผ ์œ„์— ์–ด๋–ค ๊ตฌ์กฐ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š”์ง€๋งŒ ์ดํ•ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿš€

 

๋ฐ˜์‘ํ˜•