This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
project:eaton:proj_eaton [2018/08/20 13:09] xkubalik [Knihovní funkce pro mikroprocesor] |
project:eaton:proj_eaton [2018/10/25 10:43] (current) xkubalik |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| ===== Knihovní funkce pro mikroprocesor ===== | ===== Knihovní funkce pro mikroprocesor ===== | ||
| + | **Cíle:** | ||
| + | • Prozkoumejte, jak je naimplementován blok kontrolního součtu, časovače, I2C komunikační sběrnice, pulzně šířkové modulace na zadaném mikrokontroléru. | ||
| + | • Zjistěte, které části jsou již implementovány (Hardware Abstract Layer) . | ||
| + | • Navrhněte seznam knihovních funkcí (Application Programming Interface), které jsou potřeba naimplementovat. | ||
| + | • Navržené knihovní funkce naimplementujte v jazyku C. | ||
| + | • Výsledné řešení otestujte. | ||
| + | • Pro veškeré navržené funkce vytvořte dokumentaci v dOxygen formátu. | ||
| - | **Cíle** | + | **Výstupy:** Knihovní funkce a dokumentace v dOxygen formátu pro: |
| - | + | • blok kontrolního součtu (CRC) | |
| - | * Prozkoumejte, jak je naimplementován blok kontrolního součtu, časovače, I2C komunikační sběrnice, pulzně šířkové modulace na zadaném mikrokontroléru. | + | • časovače (CCTIMER, SWTIMER) |
| - | * Zjistěte, které části jsou již implementovány (Hardware Abstract Layer) . | + | • I2C komunikační sběrnice (I2C) |
| - | * Navrhněte seznam knihovních funkcí (Application Programming Interface), které jsou potřeba naimplementovat. | + | • pulzně šířkové modulace (PWM) |
| - | * Navržené knihovní funkce naimplementujte v jazyku C. | + | |
| - | * Výsledné řešení otestujte. | + | |
| - | * Pro veškeré navržené funkce vytvořte dokumentaci v dOxygen formátu. | + | |
| - | + | ||
| - | **Výstupy - knihovní funkce a dokumentace v dOxygen formátu pro:** | + | |
| - | + | ||
| - | * blok kontrolního součtu (CRC) | + | |
| - | * časovače (CCTIMER, SWTIMER) | + | |
| - | * I2C komunikační sběrnice (I2C) | + | |
| - | * pulzně šířkové modulace (PWM) | + | |
| **Otestovat tyto knihovní funkce :** | **Otestovat tyto knihovní funkce :** | ||
| - | + | • Spočítat kontrolní součet celé paměti a porovnat jej s očekávaným výsledkem. | |
| - | * Spočítat kontrolní součet celé paměti a porovnat jej s očekávaným výsledkem. | + | • S použitím čítače a sensoru zjistit rychlost a směr otáčení hřídele motoru. |
| - | * S použitím čítače a sensoru zjistit rychlost a směr otáčení hřídele motoru. | + | • Otestovat komunikaci po sběrnici s obvodem reálného času připojeného přes Arduino shield. |
| - | * Otestovat komunikaci po sběrnici s obvodem reálného času připojeného přes Arduino shield. | + | • Otestovat řízení motoru pomocí H-můstku připojeného přes Arduino shield. |
| - | * Otestovat řízení motoru pomocí H-můstku připojeného přes Arduino shield. | + | • Otestovat funkčnost dostupných led diod. |
| - | * Otestovat funkčnost dostupných led diod. | + | |
| ===== Knihovna logovacích funkcí pro zachycení chyb ===== | ===== Knihovna logovacích funkcí pro zachycení chyb ===== | ||
| - | **Cíle** | + | **Cíle:** |
| • Prostudujte způsob řešení pro zpracování chybových výstupu periferií procesoru. | • Prostudujte způsob řešení pro zpracování chybových výstupu periferií procesoru. | ||
| • Navrhněte knihovní funkce, které budou obstarávat obsluhu chyb a chybový výstup. | • Navrhněte knihovní funkce, které budou obstarávat obsluhu chyb a chybový výstup. | ||
| Line 39: | Line 35: | ||
| • Výsledné řešení otestujte. | • Výsledné řešení otestujte. | ||
| - | **Výstupy** | + | **Výstupy:** |
| • Knihovní funkce, které budou obstarávat obsluhu chyb a chybový výstup. | • Knihovní funkce, které budou obstarávat obsluhu chyb a chybový výstup. | ||
| • Script v jazyce Python pro následné dekódování logu. | • Script v jazyce Python pro následné dekódování logu. | ||
| • Test logovacího systému s pomocí RaspberyPi, které bude řídit testovaný mikrokontrolér. | • Test logovacího systému s pomocí RaspberyPi, které bude řídit testovaný mikrokontrolér. | ||
| - | |||
| ===== Reálný model pásového dopravníku řízený uC ===== | ===== Reálný model pásového dopravníku řízený uC ===== | ||
| - | **Cíle** | + | **Cíle:** |
| • Prozkoumejte, jak jsou naimplementované časovače a pulzně šířková modulace na zadaném mikrokontroléru (nastudovat dané části ve specifikaci mikrokontroléru). | • Prozkoumejte, jak jsou naimplementované časovače a pulzně šířková modulace na zadaném mikrokontroléru (nastudovat dané části ve specifikaci mikrokontroléru). | ||
| • Zjistěte, které části jsou již naimplementovány (Hardware Abstract Layer). | • Zjistěte, které části jsou již naimplementovány (Hardware Abstract Layer). | ||
| Line 59: | Line 54: | ||
| • Výsledné řešení otestujte. | • Výsledné řešení otestujte. | ||
| - | **Výstupy** | + | **Výstupy:** |
| • Funkční model pásového dopravníku sestaveného ze stavebnice merkur. | • Funkční model pásového dopravníku sestaveného ze stavebnice merkur. | ||
| • Knihovní funkce a dokumentace v dOxygen formátu k řízení motoru a optimalizace k omezení času, kdy oba tranzistory v H-můstku jsou aktivní. | • Knihovní funkce a dokumentace v dOxygen formátu k řízení motoru a optimalizace k omezení času, kdy oba tranzistory v H-můstku jsou aktivní. | ||
| Line 65: | Line 60: | ||
| • Knihovní funkce a dokumentace v dOxygen formátu k PID regulaci. | • Knihovní funkce a dokumentace v dOxygen formátu k PID regulaci. | ||
| • Test - vstupem bude pozice dopravníku a dopravník musí dané pozice dosáhnout co nejrychleji s danou přesností. | • Test - vstupem bude pozice dopravníku a dopravník musí dané pozice dosáhnout co nejrychleji s danou přesností. | ||
| - | |||
| ===== Grafické uživatelské rozhraní (GUI) pro definování funkcionality vývodů mikrokontroléru a generování kostry kódu v jazyku C ===== | ===== Grafické uživatelské rozhraní (GUI) pro definování funkcionality vývodů mikrokontroléru a generování kostry kódu v jazyku C ===== | ||
| - | **Cíle ** | + | |
| + | **Cíle:** | ||
| • Prozkoumejte, jak je implementován blok přiřazení funkce k vývodům mikrokontroléru (nastudovat specifikaci IO_CTRL bloku) pozn.: IO_CTRL - ovládá propojení mezi vývodem na ASICu a periferií uvnitř obvodu (například přiřadí funkci I2C.SDA nebo I2C.SCL k vývodům). | • Prozkoumejte, jak je implementován blok přiřazení funkce k vývodům mikrokontroléru (nastudovat specifikaci IO_CTRL bloku) pozn.: IO_CTRL - ovládá propojení mezi vývodem na ASICu a periferií uvnitř obvodu (například přiřadí funkci I2C.SDA nebo I2C.SCL k vývodům). | ||
| • Zjistěte, které části jsou již naimplementovány (Hardware Abstract Layer). | • Zjistěte, které části jsou již naimplementovány (Hardware Abstract Layer). | ||
| Line 76: | Line 71: | ||
| • Uživatelské rozhraní umožní vygenerovat kostru v jazyku C, která bude implementovat funkcionalitu (přiřazení funkce k vývodu obvodu), která byla nastavena uživatelem v uživatelském rozhraní. | • Uživatelské rozhraní umožní vygenerovat kostru v jazyku C, která bude implementovat funkcionalitu (přiřazení funkce k vývodu obvodu), která byla nastavena uživatelem v uživatelském rozhraní. | ||
| • Navržené řešení implementujte a následně otestujte. | • Navržené řešení implementujte a následně otestujte. | ||
| - | **Výstupy** | + | |
| + | **Výstupy:** | ||
| • Grafické rozhraní v jazyce Python včetně dokumentace. | • Grafické rozhraní v jazyce Python včetně dokumentace. | ||
| • Možnost generování C kódu z grafického rozhraní. | • Možnost generování C kódu z grafického rozhraní. | ||
| Line 83: | Line 79: | ||
| ===== Grafické uživatelské rozhraní (GUI) pro nastavení hodinových stromů v mikrokontroléru a generování kostry kódu v jazyku C ===== | ===== Grafické uživatelské rozhraní (GUI) pro nastavení hodinových stromů v mikrokontroléru a generování kostry kódu v jazyku C ===== | ||
| + | |||
| **Cíle:** | **Cíle:** | ||
| • Prozkoumat jak je implementován blok přiřazení hodinových stromů v mikrokontroléru (nastudovat specifikaci CLK_NRES bloku) pozn.: CLK_NRES - ovládá propojení hodinových stromů mezi vstupním hodinovým signálem a periferií, dále umožňuje nastavení hodinového závěsu (PLL) a různé hodinové děličky. | • Prozkoumat jak je implementován blok přiřazení hodinových stromů v mikrokontroléru (nastudovat specifikaci CLK_NRES bloku) pozn.: CLK_NRES - ovládá propojení hodinových stromů mezi vstupním hodinovým signálem a periferií, dále umožňuje nastavení hodinového závěsu (PLL) a různé hodinové děličky. | ||
| Line 94: | Line 91: | ||
| • Uživatelské rozhraní kontroluje nastavení, zda-li dává smysl a respektuje pravidla definovaná specifikací (např. že max. výstupní frekvence PLL je 100MHz). | • Uživatelské rozhraní kontroluje nastavení, zda-li dává smysl a respektuje pravidla definovaná specifikací (např. že max. výstupní frekvence PLL je 100MHz). | ||
| • Navržené řešení zrealizujte a řádně otestujte. | • Navržené řešení zrealizujte a řádně otestujte. | ||
| + | |||
| **Výstupy:** | **Výstupy:** | ||
| • Grafické rozhraní v Python včetně dokumentace. | • Grafické rozhraní v Python včetně dokumentace. | ||
| Line 100: | Line 98: | ||
| • Možnost načíst omezující podmínky pro konfiguraci hodinových stromů v grafickém rozhraní. | • Možnost načíst omezující podmínky pro konfiguraci hodinových stromů v grafickém rozhraní. | ||
| • Možnost načíst definici (topologii) hodinových stromů v grafickém rozhraní | • Možnost načíst definici (topologii) hodinových stromů v grafickém rozhraní | ||
| + | |||
| + | ===== Sběr dat z elektroměrů pomocí RaspberryPI ===== | ||
| + | |||
| + | **Cíle:** | ||
| + | • Proveďte průzkum trhu elektroměrů používaných pro datová centra. | ||
| + | • Nainstalujte a nakonfigurujte NUT (Network UPS Tools) na RaspberryPi. | ||
| + | • Navrhněte a naimplementujte podporu Eaton zařízení (resp. zařízení od našich konkurentů) do NUTu. | ||
| + | • Při návrhu zohledněte návrhové vzory projektu NUT. | ||
| + | • Výsledné zařízení otestujte na reálném hardware a vytvořte několik ukázkových příkladu použití. | ||
| + | • Pro výsledné řešení vytvořte dokumentaci. | ||
| + | |||
| + | **Výstupy:** | ||
| + | • Předpokládaný výstup práce zahrnuje zprovoznění NUTu na RaspberryPi a rozšíření jeho současné implementace o nová zařízení, a to o elektroměry používající SNMP protokol: přidáním SNMP objektů, nezbytné rozšíření kódu NUTu (přidání nového ovladače, popř. nového namespace). | ||
| + | • RaspberryPi by mělo být schopné číst data z vybraných zařízení. | ||
| + | • Kód bude dokumentován a testován. | ||
| + | • Dokumentace k vytvořenému řešení. | ||
| + | |||
| + | ===== Monitorování dieselového generátoru pomocí RaspberryPI ===== | ||
| + | |||
| + | **Cíle:** | ||
| + | • Proveďte průzkum trhu dieselgenerátorů se zaměřením na jejich dostupné komunikační rozhraní. | ||
| + | • Navrhněte a implementujte Modbus TCP a RTU ovladače do NUTu na platformě RaspberryPi. | ||
| + | • Implementovanou podporu sběrnice Modbus použijte ke komunikaci s dieselovým generátorem (bude poskytnuta specifikace ke konkrétnímu zařízení) a sběru dat. | ||
| + | • Pro výsledné řešení vytvořte několik přikladu pro ověření správné funkce komunikace s dieselagregatem. | ||
| + | • Pro realizované řešení vytvořte dokumentaci. | ||
| + | |||
| + | |||
| + | **Výstupy:** | ||
| + | Předpokládaný výstup práce zahrnuje zprovoznění NUTu na RaspberryPi a rozšíření jeho současné implementace o nový ovladač Modbusu TCP/RTU. | ||
| + | RaspberryPi by mělo být schopné použít Modbus TCP/RTU převodník ke komunikaci s dieselovým generátorem. | ||
| + | Výsledné řešení bude dokumentováno a testováno s reálným dieselgeneratorem. | ||