Delen via


UART's gebruiken in toepassingen op hoog niveau

Azure Sphere ondersteunt universal asynchrone receiver-transmitters (UART's) voor seriële communicatie. Een UART is een type geïntegreerd circuit dat wordt gebruikt voor het verzenden en ontvangen van gegevens via een seriële poort op een computer of randapparaat. UART's worden veel gebruikt en staan bekend om hun eenvoud. In tegenstelling tot SPI en I2C ondersteunen UART's echter geen meerdere onderliggende apparaten.

Opmerking

In dit onderwerp wordt beschreven hoe u UART's gebruikt in een toepassing op hoog niveau. Zie Randapparatuur gebruiken in een realtime-compatibele toepassing voor informatie over UART-gebruik in RTApps.

Azure Sphere-toepassingen op hoog niveau kunnen communiceren met UART's door UART-API's van Applibs aan te roepen. Het voorbeeld van UART_HighLevelApp laat zien hoe u kunt communiceren met UART's op een MT3620-apparaat.

UART-vereisten

Toepassingen die communiceren met UART's moeten de juiste headerbestanden bevatten en UART-instellingen toevoegen aan het toepassingsmanifest.

Alle toepassingen moeten hun doelhardware instellen en het bijbehorende headerbestand voor de hardwaredefinitie bevatten.

Koptekstbestanden

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

Declareer de UART_STRUCTS_VERSION preprocessordefinitie voordat u het headerbestand opgeeft. Hiermee geeft u de struct-versie op die wordt gebruikt door de toepassing.

Vervang path-to-your-target-hardware.h door het pad naar het headerbestand voor uw hardware.

Toepassingsmanifestinstellingen

De UART-instellingen in het toepassingsmanifest vermelden de UART's die door de toepassing worden geopend. Slechts één toepassing kan een UART tegelijk gebruiken. Als u deze instellingen wilt configureren, voegt u de Uart mogelijkheid toe aan het toepassingsmanifest en voegt u vervolgens elke UART toe aan de mogelijkheid. Het Azure Sphere-toepassingsmanifest bevat meer informatie over het toepassingsmanifest.

Gebruik in uw code de constanten die zijn gedefinieerd voor uw hardware om de UART's te identificeren. De compiler vertaalt deze waarden naar onbewerkte waarden wanneer u de app bouwt.

Hier volgt bijvoorbeeld een fragment van een toepassingsmanifest dat is gericht op een MT3620-referentieontwikkelingsbord (RDB) en twee UART's configureert op een MT3620.

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

In het volgende fragment ziet u hoe u dezelfde UART's opgeeft in een toepassing die is gericht op de Avnet MT3620 Starter Kit:

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

Een UART configureren en openen

Voordat u bewerkingen uitvoert op een UART, moet u de instellingen configureren en de UART openen. Wanneer u een UART opent, wordt een bestandsdescriptor geretourneerd die u kunt doorgeven aan functies die bewerkingen uitvoeren op de UART.

Als u de instellingen wilt configureren, roept u de functie UART_InitConfig functie aan om de UART_Config Struct-struct te initialiseren. Nadat u de UART_Config-struct hebt geïnitialiseerd, kunt u de UART-instellingen in de struct wijzigen.

Als u de UART wilt openen en de instellingen wilt toepassen, roept u de functie UART_Open aan en geeft u de struct UART_Config door.

Lees- en schrijfbewerkingen uitvoeren op een UART

U kunt POSIX-functies gebruiken om lees- en schrijfbewerkingen uit te voeren op een UART. Als u een leesbewerking wilt uitvoeren op een UART, roept u de functie read() aan. Als u een schrijfbewerking wilt uitvoeren op een UART, roept u de functie write() aan.

Een UART sluiten

Als u de UART wilt sluiten, roept u de functie POSIX close() aan.

MT3620-ondersteuning

In deze sectie worden de UART-opties beschreven die alleen van toepassing zijn bij het uitvoeren van Azure Sphere op een MT3620.

De UART-specificaties voor de MT3620 worden vermeld in MT3620-ondersteuningsstatus. De gebruikershandleiding van het MT3620-ontwikkelbord beschrijft de speldindeling en -functies voor bedrading.

De map HardwareDefinitions in de installatiemap van de Microsoft Azure Sphere SDK bevat definities voor algemene Azure Sphere-ontwikkelborden, -modules en -chips. Het bevat header- en JSON-bestanden die de hoofdinterfaces definiëren voor de MT3620, MT3620 RDB, samen met andere MT3620-hardware. De standaardlocatie voor de map HardwareDefinitions is C:\Program Files (x86)\Microsoft Azure Sphere SDK\Hardware Definitions in Windows en /opt/azurespheresdk/HardwareDefinitions op Linux.

De volgende UART-instellingen worden ondersteund. 8N1 (8 gegevensbits, 1 stopbit en geen pariteit) is de standaardinstelling:

  • Wanneer u het MT3620-ontwikkelbord configureert, kunt u elke ISU-poort gebruiken als een UART-interface. Wanneer u een ISU-poort als UART-interface gebruikt, kunt u niet dezelfde poort gebruiken als een I2C- of SPI-interface.
  • baud rate : 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000 en 2000000.
  • Gegevensbit: 5, 6, 7 en 8.
  • Stopbit: 1 en 2.
  • Pariteit: oneven, even en geen.
  • Stroombeheermodus: RTS/CTS, XON/XOFF en geen stroombeheer.
  • Hardware-ontvangstbuffer: 32-bytes.

Bij het gebruik van een UART in een toepassing op hoog niveau worden slechts 4 van de vijf beschikbare isu randapparatuurblokpins gebruikt. De ongebruikte pin kan worden gebruikt als een GPIO-pin door dezelfde toepassing op hoog niveau. Zie I/O-randapparatuur voor een lijst met ongebruikte ISU-pinnen die opnieuw kunnen worden gebruikt voor GPIO.