Využití embedded zařízení v inteligentních dopravních systémech Microsoft IT Academy Program, VŠB - Technická univerzita Ostrava, FEI Microsoft IT Academy Program, VŠB - Technická univerzita Ostrava, FEI Michal Krumnikl
Embedded systém jednoúčelový systém, ve kterém je řídicí počítač zcela zabudován do zařízení, které ovládá
Historie Naváděcí počítač pro Apollo Počítač Autonetics D-17 pro balistickou střelu LGM-30 Minuteman (1961) Kalkulačka s Intel 4004 (1971) Naváděcí počítač pro Apollo Počítač Autonetics D-17 pro balistickou střelu LGM-30 Minuteman (1961) Kalkulačka s Intel 4004 (1971)
Vlastnosti embedded systémů Konkrétní činnost Požadavky na práci v real-time Nízké náklady Omezené prostředky zařízení Specifická uživatelská rozhraní Konkrétní činnost Požadavky na práci v real-time Nízké náklady Omezené prostředky zařízení Specifická uživatelská rozhraní
Používané architektury procesorů ARM (ARM6, ARM7, ARM9E, Xscale) MIPS (R2000, R3000 … R16000) Coldfire/68k PowerPC (PowerPC 405, Cell) x86 PIC AVR Renesas H8, SH … ARM (ARM6, ARM7, ARM9E, Xscale) MIPS (R2000, R3000 … R16000) Coldfire/68k PowerPC (PowerPC 405, Cell) x86 PIC AVR Renesas H8, SH …
Vývojové nástroje Kompilátory, assemblery, debuggery Cross-compilers In-circuit emulator (ICE) Generátory CRC Aplikace DSP - pluginy pro MathCad Kompilátory, assemblery, debuggery Cross-compilers In-circuit emulator (ICE) Generátory CRC Aplikace DSP - pluginy pro MathCad
Softwarové architektury Jednoduchá nekonečná smyčka Přerušením řízený systém Ne-preemptivní multitasking Preemptivní multitasking Mikrojádra Monolitická jádra Jednoduchá nekonečná smyčka Přerušením řízený systém Ne-preemptivní multitasking Preemptivní multitasking Mikrojádra Monolitická jádra
Jednoduchá nekonečná smyčka while (1) { if (H_pressed()) print_help; if (temp>60) heater_on; count++; delay(10); } while (1) { if (H_pressed()) print_help; if (temp>60) heater_on; count++; delay(10); }
Přerušením řízený systém SIGNAL (SIG_UART_RECV) { read_buf[read_buf_pt]=UDR; … } int main() { while (1); } SIGNAL (SIG_UART_RECV) { read_buf[read_buf_pt]=UDR; … } int main() { while (1); }
Ne-preemptivní multitasking Myšlenka nekonečné smyčky skrytá v API
Preemptivní multitasking Přepínaní mezi procesy časovačem Oddělení procesů Přepínaní kontextu Synchronizace Zdánlivý paralelismus Přepínaní mezi procesy časovačem Oddělení procesů Přepínaní kontextu Synchronizace Zdánlivý paralelismus
Mikrojádra Základní služby OS Správa paměti, řízení procesů Podpora souborového systému, správa síťových rozhraní – samostatné procesy mimo jádro Základní služby OS Správa paměti, řízení procesů Podpora souborového systému, správa síťových rozhraní – samostatné procesy mimo jádro
Monolitická jádra Podpora souborových systémů, síťových služeb, ovladačů zařízení je integrována v jednom celku Více systémových volání, sofistikovanější služby Větší požadavky na HW Podpora souborových systémů, síťových služeb, ovladačů zařízení je integrována v jednom celku Více systémových volání, sofistikovanější služby Větší požadavky na HW
Operační systémy pro embedded zařízení DOS Windows CE Windows XP Embedded SymbianOS OpenBSD Linux FreeRTOS … DOS Windows CE Windows XP Embedded SymbianOS OpenBSD Linux FreeRTOS …
Windows CE Zcela odlišné jádro než desktopové verze Windows Podpora Intel x86, MIPS, ARM, SuperH Real-time – deterministická latence IRQ 256 úrovní priorit Vlákna Zcela odlišné jádro než desktopové verze Windows Podpora Intel x86, MIPS, ARM, SuperH Real-time – deterministická latence IRQ 256 úrovní priorit Vlákna
Windows XP Embedded „očesaná“ verze Windows XP Podpora jen architektury x86 Binárně shodná s XP Pro, shodné ovladače zařízení Úplné Win32 API Určeno pro OEM zákazníky, pro běžné PC neprodejné „očesaná“ verze Windows XP Podpora jen architektury x86 Binárně shodná s XP Pro, shodné ovladače zařízení Úplné Win32 API Určeno pro OEM zákazníky, pro běžné PC neprodejné
Embedded Linux UNIXový OS využívající jádro Linux Obsahuje jen nezbytně nutné utility a programy pro běh daného zařízení Minimální prostorové nároky instalace Open-source GPL licence UNIXový OS využívající jádro Linux Obsahuje jen nezbytně nutné utility a programy pro běh daného zařízení Minimální prostorové nároky instalace Open-source GPL licence
Využítí embedded systémů
Inteligentní dopravní systémy Projekty M-Net, CAS Vytváření modelů dopravních situací na základě znalostí údajů získávaných přímo z vozidla, nebo jiných zdrojů Projekty M-Net, CAS Vytváření modelů dopravních situací na základě znalostí údajů získávaných přímo z vozidla, nebo jiných zdrojů
M-Net Základní topologie sítě Centrální server – M-net, DB, GIS Klienti – PDA, Mobilní telefony, WWW Základní topologie sítě Centrální server – M-net, DB, GIS Klienti – PDA, Mobilní telefony, WWW
M-Net hardware vozidla I. Siemens TC65 ARM7 procesor Paměť Flash: 1.7 MB, RAM: 400 kB Java, IMP 2.0 AVR – ATMega16 16 KB Flash 1 KB SRAM 512 B EEPROM ASM, C, C++ (gcc) Siemens TC65 ARM7 procesor Paměť Flash: 1.7 MB, RAM: 400 kB Java, IMP 2.0 AVR – ATMega16 16 KB Flash 1 KB SRAM 512 B EEPROM ASM, C, C++ (gcc)
M-Net hardware vozidla II.
Řídící jednotky vozidla
Propojení řídících jednotek Propojení mezi řídícími jednotkami – proprietární protokoly, dnes CAN Diagnostická rozhraní – OBD2 Propojení mezi řídícími jednotkami – proprietární protokoly, dnes CAN Diagnostická rozhraní – OBD2
Diagnostická rozhraní OBD I – standardizace DTC (1989) OBD II – DTC + měření emisí (1996) EOBD – EU směrnice 98/69/EC (2001) Protokoly ISO , ISO14230 KWP2000, ISO 15765, SAE J1850, KWP1281 VAG OBD I – standardizace DTC (1989) OBD II – DTC + měření emisí (1996) EOBD – EU směrnice 98/69/EC (2001) Protokoly ISO , ISO14230 KWP2000, ISO 15765, SAE J1850, KWP1281 VAG
Data dostupná pomocí EOBD Čtení a mazání paměti závad (DTC) Aktuální naměřené hodnoty senzorů Diagnostika lambda sond Adaptace a kódování jednotek Aktivní testování komponent Čtení a zápis firmwaru řídících jednotek Informace o sériových číslech a kódování řídících jednotek Čtení a mazání paměti závad (DTC) Aktuální naměřené hodnoty senzorů Diagnostika lambda sond Adaptace a kódování jednotek Aktivní testování komponent Čtení a zápis firmwaru řídících jednotek Informace o sériových číslech a kódování řídících jednotek
Ukázka dat (EOBD) I.
Ukázka dat (EOBD) II.
Ukázka dat (akcelerometr)
M-Net Mobilní klienti
M-Net WWW
Aplikace Diagnostika vozidel Zabezpečovací moduly Sběr telemetrických dat Elektronická kniha jízd Diagnostika vozidel Zabezpečovací moduly Sběr telemetrických dat Elektronická kniha jízd
Směr dalšího vývoje I. Přímé připojení k sběrnici CAN Ovládání systému vozidla Kamerový systém (detekce dělících čar) Výkonnější centrální jednotka Přímé připojení k sběrnici CAN Ovládání systému vozidla Kamerový systém (detekce dělících čar) Výkonnější centrální jednotka
Směr dalšího vývoje II. Colibri XScale PXA MHz 64 MB of SDRAM 32 MB of FLASH CMOS/CCD MSL (up to 416 Mbps) I2C, SPI, CAN Colibri XScale PXA MHz 64 MB of SDRAM 32 MB of FLASH CMOS/CCD MSL (up to 416 Mbps) I2C, SPI, CAN
Konec první části
Témata pro semestrální a diplomové práce
M-Net server Databázové funkce Napojení na GIS systémy Filtry událostí Optimalizace protokolů Komunikace mezi více servery Import dat z externích zdrojů Databázové funkce Napojení na GIS systémy Filtry událostí Optimalizace protokolů Komunikace mezi více servery Import dat z externích zdrojů
Klienti M-Net Implementace rozhraní WWW, PDA, Mobilní telefony Vizualizace dat GIS Export dat pro externí systémy Implementace rozhraní WWW, PDA, Mobilní telefony Vizualizace dat GIS Export dat pro externí systémy
Kontakt Michal Krumnikl A1029 Michal Krumnikl A1029