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. | ||