Sdílet prostřednictvím


Použití UART v aplikacích vysoké úrovně

Azure Sphere podporuje univerzální asynchronní přijímače-vysílače (UART) pro sériovou komunikaci. UART je typ integrovaného obvodu, který se používá k odesílání a přijímání dat přes sériový port na počítači nebo periferním zařízení. UARTs jsou široce používané a známé pro svou jednoduchost. Na rozdíl od SPI a I2C však UART nepodporují více podřízených zařízení.

Poznámka

Toto téma popisuje, jak používat UARTs v aplikaci vysoké úrovně. Informace o používání objektů UART v aplikacích RTApps najdete v tématu Použití periferních zařízení v aplikaci podporující reálném čase .

Aplikace azure Sphere vysoké úrovně můžou komunikovat s UART voláním rozhraní UART API applibs. Ukázka UART_HighLevelApp ukazuje, jak komunikovat s UARTs na zařízení MT3620.

Požadavky na UART

Aplikace, které komunikují s objekty UART, musí obsahovat příslušné soubory hlaviček a přidat nastavení UART do manifestu aplikace.

Všechny aplikace musí nastavit svůj cílový hardware a zahrnout odpovídající soubor hlavičky definice hardwaru.

Soubory hlaviček

 #define UART_STRUCTS_VERSION 1
 #include <applibs/uart.h>
 #include "path-to-your-target-hardware.h"

Deklarujte definici UART_STRUCTS_VERSION preprocesoru před zahrnutím souboru hlaviček. Určuje verzi struktury, kterou aplikace používá.

Nahraďte path-to-your-target-hardware.h cestou k souboru hlaviček pro váš hardware.

Nastavení manifestu aplikace

Nastavení UART v manifestu aplikace obsahuje seznam objektů UART, ke kterým aplikace přistupuje. Objekt UART může současně používat jenom jedna aplikace. Pokud chcete tato nastavení nakonfigurovat, přidejte Uart funkci do manifestu aplikace a pak do funkce přidejte každý objekt UART. Manifest aplikace Azure Sphere obsahuje další podrobnosti o manifestu aplikace.

V kódu použijte konstanty definované pro váš hardware k identifikaci UART. Kompilátor při sestavování aplikace přeloží tyto hodnoty na nezpracované hodnoty.

Tady je například výňatek z manifestu aplikace, který cílí na vývojovou panel mt3620 (RDB) a konfiguruje dva UART na MT3620.

"Uart": [ "$MT3620_RDB_HEADER2_ISU0_UART", "$MT3620_RDB_HEADER4_ISU1_UART" ],

Následující úryvek ukazuje, jak zadat stejné UARTy v aplikaci, která cílí na úvodní sadu Avnet MT3620:

"Uart": [ "$AVNET_MT3620_SK_ISU0_UART", "$AVNET_MT3620_SK_ISU1_UART" ],

Konfigurace a otevření objektu UART

Před provedením operací s objektem UART musíte nakonfigurovat nastavení a otevřít objekt UART. Když otevřete UART, vrátí se popisovač souboru, který můžete předat funkcím, které provádějí operace s objektem UART.

Pokud chcete nakonfigurovat nastavení, zavolejte funkci funkce UART_InitConfig Function , která inicializuje strukturu UART_Config Struct . Po inicializaci struktury UART_Config můžete změnit nastavení UART ve struktuře.

Pokud chcete otevřít UART a použít nastavení, zavolejte funkci UART_Open a předejte UART_Config strukturu.

Provádění operací čtení a zápisu v objektu UART

Funkce POSIX můžete použít k provádění operací čtení a zápisu na objektu UART. Pokud chcete u objektu UART provést operaci čtení, zavolejte funkci read(). Pokud chcete na objektu UART provést operaci zápisu, zavolejte funkci write().

Zavření objektu UART

Pokud chcete zavřít objekt UART, zavolejte funkci POSIX close().

Podpora pro MT3620

Tato část popisuje možnosti UART, které platí jenom při spuštění Azure Sphere na MT3620.

Specifikace UART pro MT3620 jsou uvedené ve stavu podpory MT3620. Uživatelská příručka vývojové desky MT3620 popisuje rozložení kolíků a funkce pro zapojení.

Složka HardwareDefinitions v instalačním adresáři sady Microsoft Azure Sphere SDK obsahuje definice pro běžné vývojové panely, moduly a čipy Azure Sphere. Obsahuje hlavičky a soubory JSON, které definují hlavní rozhraní pro MT3620, MT3620 RDB a další hardware MT3620. Výchozí umístění složky HardwareDefinitions je C:\Program Files (x86)\Microsoft Azure Sphere SDK\Hardware Definitions ve Windows a /opt/azurespheresdk/HardwareDefinitions v Linuxu.

Podporují se následující nastavení UART. 8N1 (8 datových bitů, 1 zarážka a žádná parita) je výchozí nastavení:

  • Při konfiguraci vývojové desky MT3620 můžete jako rozhraní UART použít libovolný port ISU . Pokud jako rozhraní UART použijete port ISU, nemůžete použít stejný port jako rozhraní I2C nebo SPI.
  • přenosová rychlost: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 500000, 576000, 921600, 10000000, 1152000, 1500000 a 2000000.
  • Datový bit: 5, 6, 7 a 8.
  • Stop bit: 1 a 2.
  • Parita: lichá, sudá a žádná.
  • Režim řízení toku: RTS/CTS, XON/XOFF a bez řízení toku.
  • Vyrovnávací paměť pro příjem hardwaru: 32 bajtů.

Při použití UART v aplikaci vysoké úrovně se používají pouze 4 z 5 dostupných pinů periferních bloků ISU. Nepoužitý špendlík může použít jako špendlík GPIO stejná aplikace vysoké úrovně. Seznam nepoužívaných pinů ISU, které je možné znovu použít pro GPIO, najdete v tématu V/V periferie .