==== Průběh MSZZ ==== {{:statnice:statnice_prubeh.pdf|}} komise: http://oi-wiki.cz/doku.php/statnice/komise * {{:statnice:oi-vytah-pi.pdf|Výtah části PI (nekompletní)}} ====== 1. Architektura distribuovaných síťových aplikací. Struktura sítě, aplikační vrstvy, její hlavní části. Nejběžnější databázové servery v průmyslových aplikacích a jejich management. (A0M35PII)====== ===== Architektura distribuovaných síťových aplikací ===== Obecně: * MVC * Webové služby * Více-vrstvá architektura V kontextu průmyslových informačních systémů: * [[http://en.wikipedia.org/wiki/OLE_for_process_control|OLE for Process Control (OPC)]] * [[http://en.wikipedia.org/wiki/Industrial_control_systems|Centralized Control Architecture]] * Vrstvy: * Senzory, Field Devices (aktivní členy) * Programmable Logic Controller - zpracovává data ze senzorů * více PLC, vždy kontroluje skupinu senzorů * Centrální Controller, jež přijímá data od PLC * Výhody: * Rychly pristup na I/O, centralizovaná správa * Nevýhody: * Závada jednoho PLC implikuje odstávku celého systému * Velké programy * Není škálovatelné * [[http://en.wikipedia.org/wiki/Distributed_control_system|Distributed Control System]] * Rozprostření zdrojů dat -- jeden řídící PLC, více senzorů/zdrojů dat, Více PLC s řídicím programem komunikují mezi sebou Materialy primo od Ing. Susty : {{:statnice:piiokruhy.pdf|}} ===== Struktura sítě, aplikační vrstvy, její hlavní části ===== * ISO/OSI, TCP/IP, Topologie kruh/hvězda/sběrnice ===== Nejběžnější databázové servery v průmyslových aplikacích a jejich management ===== * Velké databáze: * Oracle SQL Server, Microsoft SQL Server, Sybase, PostgreSQL, MySQL * Tvorba uživatelů, uživatelská oprávnění, zálohování, kontrola integrity dat * Embedded databáze: * SQLite, eXtremeDB * Možný běh v omezených podmínkách (málo paměti, nízký výpočetní výkon) a bez operačního systému * Nemají uživatele, oprávnění * Vhodné např. jako úložiště pro diagnostické záznamy či záznamy ze senzorů ====== 2. Webové aplikace v distribuovaných řídicích systémech. Webové komponenty pro vývoj průmyslových internetových aplikací. Zabezpečení, přístupová práva, veřejné klíče, hashovací kódy, digitální podpisy. Spolehlivost sítí a řešení vhodná pro kritické aplikace. (A0M35PII) ====== * Jak získávat a zobrazovat data -- Db, Ajax. Webservices, Vzdálená volání (?). * Veřejné klíče, hashovací kódy, digitální podpisy * viz. http://statnice.stm-wiki.cz/doku.php?id=spolecne:spol21 * [[http://en.wikipedia.org/wiki/Fieldbus|Fieldbus (IEC 61158)]] definuje architekturu průmyslových sítí a několik prootokolů tuto architekturu implementujících. * Propojení senzorů a řídících prvků ([[http://en.wikipedia.org/wiki/Programmable_logic_controller|Programmable Logic Controller]]) * Sdílení linky různými senzory, konkrétní protokol řeší arbitraci na síťové vrstvě * Důraz na [[http://en.wikipedia.org/wiki/Real-time_computing|real-time]], determinističnost, vyšší odolnost proti rušení * Na [[http://en.wikipedia.org/wiki/Osi_model|OSI modelu]] řeší 1., 2. a 7. vrstvu; některé protokoly i další * Příklady: * [[http://en.wikipedia.org/wiki/Controller_area_network|CAN (Controller Area Network)]] - sběrnice používaná primárně v automobilovém průmyslu na propojení jednotlivých systémů * [[http://en.wikipedia.org/wiki/EtherNet/IP|EtherNet/IP (Ethernet Industrial Protocol)]] - založené na Ethernetu, TCP/IP a použití [[http://en.wikipedia.org/wiki/Common_Industrial_Protocol|CIP (Common Industrial Protocol)]] jako aplikační vrstvy; nedeterministický!; nutno dbát na správný typ switchu a plánování sítě tak, že se využije < 1% teoretické kapacity; praktické z hlediska propojení s Enterprise sítí * [[http://en.wikipedia.org/wiki/ControlNet|ControlNet]], [[http://en.wikipedia.org/wiki/DeviceNet|DeviceNet]] - další sběrnice, jež používají CIP jako aplikační protokol * Protokoly s konstantním vysílacím časem informací (time-driven) * Redundantní data v případě, že se měřená data nemění * V případě rychlé změny stavu nemusí tato změna být zaregistrována (vzorkovací teorém) * Protokoly reagující na události (event-driven) * Často doplněno o "heartbeat" signál, který v delších časových intervalech podává informace o měřených datech * Nutné řešit ztrátu informace a její spožděné doručení * Volit protokol na základě těchto požadavků * Spožděné doručení nutno řešit! Na úrovni senzorů často není k dispozici synchronizovaný timestamp a je proto nutné použít čítač synchronizovaný danou sběrnicí * Master-stave -- Filedbus, Devicenet / Arbitr vs. podřízená zařízení / Rovnocenná zařízení -- Ethernet (jak ho přizpůsobit, aby byl realtimeový) ====== 3. Metodiky návrhu analogových, digitálních a smíšených integrovaných systémů. Aplikačně specifické integrované systémy - plně zákaznický návrh, hradlová pole, standardní buňky, programovatelné obvody FPGA. (A4M34ISC) ====== ===== ASIC - Aplikačně specifické integrované obvody ===== (zdroj: přednáška 1 ISC - Uvod) Kritéria efektivity: počet kusů, cena za kus, počet zákazníků * Plně zákaznické obvody * Monolitické IO, většinou analogové obvody * Návrh celé topologie – všech vrstev * Výborná flexibilita, limitováno pouze návrhovými pravidly * Ruční návrh (některé digitální bloky mohou být automatizovány) – Návrhář nepoužívá předdefinované bloky z důvodu malé rychlosti, velké spotřeby atd. * Analogový i digitální návrh dohromady * Vlastnosti * Dlouhý čas návrhu a technologické realizace * Velice efektivní využití plochy čipu * Levné pouze ve velikých sériích * Příklady: * Analogové obvody, uP, paměti, převodníky, dekodéry…. * Hradlová pole * Monolitické IO, složené z řad nebo sloupců tranzistorů. Programují se pomocí masek propojení * Prefabrikované čipy * Definované I/O obvody * Jednotné pole tranzistorů propojovacích kanálů a propojek, tzv. primitivní buňky * Funkční zapojení je realizováno pomocí jedné nebo více vrstev metalizace * Vlastnosti: * Rychlá výroba * Levné ve středních sériích * Nevhodné pro realizaci RAM, PLA, ALU * Standardní buňky * Monolitické IO, navržené pomocí knihovních buňek * Celý výrobní proces: * Předdefinované knihovny základních buňek (NAND, NOR, OpAmp, Převodníky…) * Návrhář definuje umístění a vzájemné propojení * Mohou být digitální i analogové * Vlastnosti: * Velikost čipu limituje funkčnost * Dlouhý výrobní čas * Levné ve velkých sériích * Definována výška buňky – snadné skládání * Lepší funkčnost při nižší ploše v porovnání s hradlovými poli (1:4) * Programovatelné obvody * Monolitické IO, tvořené logickými buňkami a bloky, které jsou zákaznicky programovány pomocí propojek * Základem je univerzální logická struktura (matice AND propojená s maticí OR) * Logická funkce je vytvořena promocí programovatelných propojek, jejichž přerušením se odpojí logické signály. * Velice rychlý návrh a realizace * Patrí sem * PROM – Programmable Read Only Memory * PAL – Programmable Array Logic * PLA – Programmable Logic Array * FPGA – Field programmable Gate Array * FPGA * Pro naprogramování není nutná technologická realizace * Předdefinované logické bloky * Vlastnosti: * velikost: až 8‘000’000 logických hradel (např. Virtex - Xilinx) * až 4 PowerPC RISC procesory na čipu * Velké čipy (>100 mil. tranzistorů) * Krátký návrhový a realizační čas * Levné pro malé série * V porovnání s ASIC mají FPGA menší frekvence hodin ====== 4. Jazyky HDL, HDL-A, logická a fyzická syntéza systému. Frond End a Back End návrh. Problematika rozmístění (floorplaning), časové analýzy, návrh testů a verifikace návrhu. (A4M34ISC) ====== Takový přehled z ASICentra {{:statnice:2c_navrh_a_verifikace.pdf|}} ===== HDL Languages ===== * HDL (Hardware Description Lanuage) - označení pro rodinu programovacích jazyků, jež popisujou nízkoúrovňovou implementaci hardware. Mezi nejpoužívanější zástupce se řadí Verilog a VHDL, jež slouží pro návrh digitálních obvodů. * HDL-A - proprietární jazyk pro design analogových komponent. ===== Floorplanning ===== * rozmístění komponent na čipu, klade se důraz na následující faktory (mimo jiné): * rozložení kontaktních ploch (bonding pads, spojují obvod v jádru na pin vnějšího pouzdra) * limitace na maximální velikost * rozdělení na clustery, aby se minimalizovaly délky datových vodičů (a tudíž spoždění a ztráty) * limitace dané technologií (velikost tranzistoru, rozestupy mezi jednotlivými komponentami a vodiči) ===== Front End - Back End ===== [[http://en.wikipedia.org/wiki/Semiconductor_fabrication#Front-end-of-line_.28FEOL.29_processing]] {{:statnice:front-back-end.gif|}} ====== 5. CAD prostředky a standardy pro návrh analogových a smíšených integrovaných obvodů, mobilní IO s nízkou spotřebou, verifikace návrhu. Technologická realizace, verifikace integrovaných systémů, problematika převodu návrhu systému mezi jednotlivými technologiemi. (A4M34ISC) ====== {{:statnice:pi-05.pdf|PI-05 (PDF)}} {{:statnice:pi-05.doc|(DOC)}} ====== 6. Techniky správy a organizace rozsáhlých softwarových projektů. Nástroje pro správu verzí a vývojových větví zdrojových kódů, nástroje pro automatické generování dokumentace a podporu orientace v rozsáhlých projektech. Infrastruktury zajišťující spolupráci mezi vývojáři navzájem a i s uživateli. Systémy pro sledování a řešení chyb a uživatelskou podporu. (A4M35OSP) ====== * Verzovací systémy distribuované/centralizované. * Doxygen. Je lepší psát dokumentaci přímo do kódu -- aby nedocházelo k její neaktualizaci. * Sourceforge/googlecode, Trac, ... * Bugzilla, Mailinglist. Různé stavy chyby (potvrzena, vyřešena, ...). Automatické generování backtrace po pádu systému. **Převzato z SI:** founemi2 {{:statnice:6_techniky_spravy_a_organizace_rozsahlych_softwarovych_projektu_3.doc|}} - 100%, doplněna motivace a kontinuální integrace ====== 7. Požadavky a pravidla pro tvorbu přenositelného kódu. Organizace projektů a operačních systémů pro splnění přenositelnosti mezi různými architekturami CPU. Konverze vnitřních a vnějších/síťových formátů dat. (A4M35OSP) ====== * Nespoléhat se na bitovou šířku integeru v C. Dávat si pozor na endianess. * Určit co je jádro, co je navíc. Udělat adresářovou strukturu podle architektur, kde budou jen nejnutnější HW záležitosti v ASM. Stejné funkce, vyžadující různou implementaci pro jednotlivé architektury, implementovat se stejným prototypem. * Dávat si pozor na endianess. Používat funkce jako htons() ntohs(). **Převzato z SI:** vejmema1 [[OI_SI_7|OI SI otázka 7]] ====== 8. PCI a USB, funkce a způsob implementace, ovladače PCI a USB zařízení pro OS Windows a Linux. (A4M38KRP) ====== {{:statnice:pi-08.pdf|PI-08 (PDF)}} {{:statnice:pi-08.doc|(DOC)}} ====== 9. Implementace rozhraní Ethernet, Auto-negotiation, PoE. (A4M38KRP) ====== {{:statnice:ethernet.pdf|Ethernet, Auto-negotiation, PoE}} {{:statnice:pi-09.pdf|PI-09 (PDF)}} {{:statnice:pi-09.doc|(DOC)}} ====== 10. Bezdrátové sítě (WiFi, Bluetooth, ZigBee) a možnosti jejich implementace. (A4M38KRP) ====== {{:statnice:pi-10.pdf|PI-10 (PDF)}} {{:statnice:pi-10.doc|}} ====== 11. Pokročilé architektury procesorů. Paralelismus na úrovni instrukcí (ILP). Superskalární procesory se statickým a dynamickým plánováním provádění instrukcí. Spekulativní provádění instrukcí a podpora přesného přerušení. Procesory VLIW a EPIC. Využití datového paralelismu, SIMD a vektorové instrukce v ISA. (A4M36PAP) ====== {{:statnice:pi-11.pdf|}} ====== 12. Architektura paměťového a periferního subsystému. Návrh a optimalizace paměťového subsystému, cache a virtuální paměť. Způsoby propojení procesoru, paměti a periférií uvnitř systémů na čipu (SoC). Vyrovnávací paměti v periferním subsystému, způsoby implementace sdíleného přístupu k vyrovnávací paměti. (A4M36PAP) ====== ===== Architektura paměťového a periferního subsystému ===== {{:statnice:09_pamet_a_io_a4m36pap.pdf|}} {{:statnice:11_io_a4m36pap.pdf|}} ===== SoC ===== * SoC (System on Chip) * [[http://en.wikipedia.org/wiki/System_on_a_chip]] * SiP (System in Package) * [[http://en.wikipedia.org/wiki/System_in_package]] * PoP (Package on package) {{:statnice:soc-vs-sip.gif|}} ====== 13. Architektury multiprocesorových počítačů. Architektury symetrických multiprocesorových počítačů (SMP). Způsoby zajištění koherence v SMP. Pravidla pro provádění paměťových operací, zajištění sekvenční konzistence, slabší modely paměťové konzistence. Architektury s distribuovanou sdílenou pamětí, zajištění koherence a konzistence. Vícevláknové procesory. (A4M36PAP) ====== {{:statnice:pi-13.pdf|PI-13 (PDF)}} {{:statnice:pi-13.doc|(DOC)}} ====== 14. Uspořádání, vlastnosti, funkční bloky a oblasti použití 8- bitových mikrořadičů, jejich typické periferie a výpočetní výkon. (A4M38AVS) ====== {{:statnice:pi-14.pdf|8-bit mikoradice}} ====== 15. Mikroprocesory řady ARM a číslicové signálové procesory (DSP), základní funkční bloky, vlastnosti, výpočetní možnosti z hlediska aplikace ve vestavném systému. (A4M38AVS) ====== ===== Mikroprocesory řady ARM ===== Intro: {{:statnice:armbasics.pdf|}} (Zdroj: [[http://embeddedcraft.org/armbasics.pdf]]) [[http://en.wikipedia.org/wiki/ARM_architecture]] ===== Číslicové signálové procesory (DSP) ===== [[http://measure.feld.cvut.cz/system/files/files/cs/vyuka/predmety/A4M38AVS/AVS_signalove_procesory.pdf]] ====== 16. Způsoby vstupu analogového signálu (ze snímačů zvuku, obrazu a dalších snímačů) do vestavných systémů, použití DMA, způsoby ovládání výstupních akčních členů (akustických, silových,..). (A4M38AVS) ====== ~~DISCUSSION~~