Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
2018:gsm-retransmitter [2019/01/14 10:09] Vladimír Šustek [Implementace] |
2018:gsm-retransmitter [2019/01/14 10:14] (aktuální) Vladimír Šustek [Materiály a zdroje] |
||
---|---|---|---|
Řádek 24: | Řádek 24: | ||
přijetí jako odezvu na prázdný AT command. Daná SMS musí být nejprve otevřena a její obsah zkrácen o hlavičku (data o odesílateli, čas odeslání, status SMS) a bezprostředně za textem ukončena, jinak nebude taková zpráva měřidlem správně vyhodnocena. Z důvodu limitované počtu SMS (24) je SMS následně smazána. Modul disponuje i interupt pinem, který v případě speciální akce změní stav, nicméně z preventivních důvodů není využit (zaseknutí - zamrznutí). | přijetí jako odezvu na prázdný AT command. Daná SMS musí být nejprve otevřena a její obsah zkrácen o hlavičku (data o odesílateli, čas odeslání, status SMS) a bezprostředně za textem ukončena, jinak nebude taková zpráva měřidlem správně vyhodnocena. Z důvodu limitované počtu SMS (24) je SMS následně smazána. Modul disponuje i interupt pinem, který v případě speciální akce změní stav, nicméně z preventivních důvodů není využit (zaseknutí - zamrznutí). | ||
- | Pokud je modul hovorově vyzváněn, jako v předchozím případě, je odpovězeno na prázdný AT příkaz notifikací 'RING' časově podobně se opakující přerušovanému vyzváněcímu tónu u mobilního telefonu (myšleno ze strany volajícího). Z praktického hlediska je až 4. posloupná zpráva RING vyhodnocena jako žádost o kompletní reset - vzdálené resetování systému. | + | Pokud je modul hovorově vyzváněn, jako v předchozím případě, je odpovězeno na prázdný AT příkaz notifikací 'RING' časově podobně se opakující přerušovanému vyzváněcímu tónu u mobilního telefonu (myšleno ze strany volajícího). Z praktického hlediska je až 4. posloupná hláška RING vyhodnocena jako žádost o kompletní reset - vzdálené resetování systému. |
V případě přijatých dat UART1 spojujícím měřidlo a Re-Transmitter je vyvolána obsluha MMS. Obluha MMS svojí dobou trvání převyšuje periodu Watch Dog a tedy je resetován i v této rutině. MMS adresátem je recipient, jenž byl obsažen v SMS, která měření a tedy příjem dat na UARTu způsobila, nebo je MMS poslána na defaultní adresu. Při MMS obsluze není rozbalena případně přijatá SMS ani není reagováno na vyzvánění hovoru. Při odesílání MMS jsou jednotlivé příkazy nutné k odeslání akumulovány do jedné hodnoty, kde je zásádní GSM_MMS_SENT s hodnotou 1000 - výsledek rutiny musí být vyšší 1000. | V případě přijatých dat UART1 spojujícím měřidlo a Re-Transmitter je vyvolána obsluha MMS. Obluha MMS svojí dobou trvání převyšuje periodu Watch Dog a tedy je resetován i v této rutině. MMS adresátem je recipient, jenž byl obsažen v SMS, která měření a tedy příjem dat na UARTu způsobila, nebo je MMS poslána na defaultní adresu. Při MMS obsluze není rozbalena případně přijatá SMS ani není reagováno na vyzvánění hovoru. Při odesílání MMS jsou jednotlivé příkazy nutné k odeslání akumulovány do jedné hodnoty, kde je zásádní GSM_MMS_SENT s hodnotou 1000 - výsledek rutiny musí být vyšší 1000. | ||
Řádek 134: | Řádek 134: | ||
Funkcemi refresh_uart1() a refresh_uart3() jsou zkontrolovány a vyhodnoceny DMA buffery UART periferií, kde UART1 obsluhuje linku s naměřenými daty (výstup z měřidla), či UART3 neustálou komunikaci mezi GSM modulem a procesorem. | Funkcemi refresh_uart1() a refresh_uart3() jsou zkontrolovány a vyhodnoceny DMA buffery UART periferií, kde UART1 obsluhuje linku s naměřenými daty (výstup z měřidla), či UART3 neustálou komunikaci mezi GSM modulem a procesorem. | ||
- | V případě příjmu znaku '\n' (uart3_received_flag) na UART3 sběrnici a vypršení časového úseku timeru tim_gsm_respnd() je vyhodnocena přijmutá odpověď na zaslaný AT command pomocí gsm_rec_respond2(), je vyresetován timer i Watch Dog a pomocná signalizační Green_LED nastavena na mód jednoho blinknutí za sekundu ONCE_FLASH (pracovní mód). LED může blikat i 2x za vteřinu (TWICE_FLASH) pokud modul neodpovídá a pokusu o restart UART3 gsm_missed_response() ) | + | V případě příjmu znaku '\n' (uart3_received_flag) na UART3 sběrnici a vypršení časového úseku timeru tim_gsm_respnd() je vyhodnocena přijmutá odpověď na zaslaný AT command pomocí gsm_rec_respond2(), je vyresetován timer i Watch Dog a pomocná signalizační Green_LED nastavena na mód jednoho blinknutí za sekundu ONCE_FLASH (pracovní mód). LED může blikat i 2x za vteřinu (TWICE_FLASH) pokud modul neodpovídá a při pokusu o restart UART3 gsm_missed_response() ) |
Pokud vypršel časovač tim_gsm_respnd(), pomocí funkce gsm_missed_response() je při opakovaném vypršení času restartováno rozhraní UART3, přičemž je vždy nastaven cmd_val na GSM_OK, aby byl zaslán další prázdný AT command na začátku smyčky. Pokud se nepodaří navázat delší dobu, Watch Dog způsobí restart celého systému (zmíněných 26s). | Pokud vypršel časovač tim_gsm_respnd(), pomocí funkce gsm_missed_response() je při opakovaném vypršení času restartováno rozhraní UART3, přičemž je vždy nastaven cmd_val na GSM_OK, aby byl zaslán další prázdný AT command na začátku smyčky. Pokud se nepodaří navázat delší dobu, Watch Dog způsobí restart celého systému (zmíněných 26s). | ||
Řádek 153: | Řádek 153: | ||
Pomocí dvou-vteřinového časovače tim_gsm_respnd() lze v přetrvávající neaktivitě restartovat UART3, stejně jako při jakékomkoliv detekovatelném problému UARTu - Využit HAL_UART_ErrorCallback(UART_HandleTypeDef *huart), jenž je schopen zaznamena například šum na RX terminálu, stejně jako zapnutí nového příjmu UART. Poznámka, při rádiové aktivitě modulu občas dochází k šumu na UART3 sběrnici (modul vysílá až 2 watty výkonu). | Pomocí dvou-vteřinového časovače tim_gsm_respnd() lze v přetrvávající neaktivitě restartovat UART3, stejně jako při jakékomkoliv detekovatelném problému UARTu - Využit HAL_UART_ErrorCallback(UART_HandleTypeDef *huart), jenž je schopen zaznamena například šum na RX terminálu, stejně jako zapnutí nového příjmu UART. Poznámka, při rádiové aktivitě modulu občas dochází k šumu na UART3 sběrnici (modul vysílá až 2 watty výkonu). | ||
- | Vzdálené resetování je patrné voláním na modul - číslo není veřejné, pokud modul neodpovídá je sám WatchDogem zresetován. | + | Vzdálené resetování je patrné voláním na modul - číslo není veřejné, pokud modul neodpovídá je sám Watch Dogem zresetován. |
=====Detaily při implementaci==== | =====Detaily při implementaci==== | ||
Řádek 204: | Řádek 204: | ||
{{ :2018:gsm:gsm_modul_schema.pdf |Schéma finálního přípravku (deska vpravo - sekce detaily implementace)}} | {{ :2018:gsm:gsm_modul_schema.pdf |Schéma finálního přípravku (deska vpravo - sekce detaily implementace)}} | ||
- | --- //[[xsuste08@stud.feec.vutbr.cz|Vladimír Šustek]] 2019/01/10 12:31// | + | --- //[[xsuste08@stud.feec.vutbr.cz|Vladimír Šustek]] 2019/01/14 10:14// |