Использование UART в высокоуровневых приложениях
Azure Sphere поддерживает универсальные асинхронные приемники-преобразователи (UART) для последовательной связи. UART — это тип интегральной схемы, которая используется для отправки и получения данных через последовательный порт на компьютере или периферийном устройстве. UART широко используются и известны своей простотой. Однако, в отличие от SPI и I2C, UART не поддерживают несколько подчиненных устройств.
Примечание
В этом разделе описывается использование UART в высокоуровневом приложении. Сведения об использовании UART в RTApp см. в статье Использование периферийных устройств в приложении с поддержкой реального времени .
Высокоуровневые приложения Azure Sphere могут взаимодействовать с UART, вызывая API UART Applibs. В примере UART_HighLevelApp показано, как взаимодействовать с UART на устройстве MT3620.
Требования UART
Приложения, взаимодействующие с UART, должны включать соответствующие файлы заголовков и добавлять параметры UART в манифест приложения.
Все приложения должны задать целевое оборудование и включить соответствующий файл заголовка определения оборудования.
Файлы заголовков
#define UART_STRUCTS_VERSION 1
#include <applibs/uart.h>
#include "path-to-your-target-hardware.h"
Объявите UART_STRUCTS_VERSION
определение препроцессора перед включением файла заголовка. Это указывает версию структуры, используемую приложением.
Замените path-to-your-target-hardware.h путем к файлу заголовка для оборудования.
Параметры манифеста приложения
В параметрах UART в манифесте приложения перечислены UART, к которым обращается приложение. Только одно приложение может использовать UART одновременно. Чтобы настроить эти параметры, добавьте Uart
возможность в манифест приложения, а затем добавьте каждый UART в возможность.
Манифест приложения Azure Sphere содержит дополнительные сведения о манифесте приложения.
В коде используйте константы, определенные для оборудования, для идентификации UART. Компилятор преобразует эти значения в необработанные значения при сборке приложения.
Например, ниже приведен фрагмент манифеста приложения, который предназначен для эталонной платформы разработки (RDB) MT3620 и настраивает два UART на MT3620.
"Uart": [ "$MT3620_RDB_HEADER2_ISU0_UART", "$MT3620_RDB_HEADER4_ISU1_UART" ],
В следующем фрагменте показано, как указать те же UART в приложении, которое предназначено для начального комплекта Avnet MT3620:
"Uart": [ "$AVNET_MT3620_SK_ISU0_UART", "$AVNET_MT3620_SK_ISU1_UART" ],
Настройка и открытие UART
Перед выполнением операций с UART необходимо настроить параметры и открыть UART. При открытии UART возвращается дескриптор файла, который можно передать в функции, выполняющие операции с UART.
Чтобы настроить параметры, вызовите функцию UART_InitConfig Function для инициализации структуры структуры UART_Config Struct . После инициализации структуры UART_Config можно изменить параметры UART в структуре.
Чтобы открыть UART и применить параметры, вызовите функцию UART_Open и передайте структуру UART_Config.
Выполнение операций чтения и записи в UART
Функции POSIX можно использовать для выполнения операций чтения и записи в UART. Чтобы выполнить операцию чтения в UART, вызовите функцию read(). Чтобы выполнить операцию записи в UART, вызовите функцию write().
Закрытие UART
Чтобы закрыть UART, вызовите функцию POSIX close().
Поддержка MT3620
В этом разделе описываются параметры UART, которые применяются только при запуске Azure Sphere в MT3620.
Спецификации UART для MT3620 перечислены в разделе Состояние поддержки MT3620. В руководстве пользователя на плате разработки MT3620 описаны макет и функции контактов для подключения.
Папка HardwareDefinitions в каталоге установки пакета SDK microsoft Azure Sphere содержит определения для общих плат разработки, модулей и микросхем Azure Sphere. Он содержит файлы заголовков и JSON, определяющие интерфейсы master для MT3620, MT3620 RDB, а также другого оборудования MT3620. Папка HardwareDefinitions по умолчанию находится C:\Program Files (x86)\Microsoft Azure Sphere SDK\Hardware Definitions
в Windows и /opt/azurespheresdk/HardwareDefinitions
Linux.
Поддерживаются следующие параметры UART. 8N1 (8 битов данных, 1 стоп-бит и без четности) — это параметр по умолчанию:
- При настройке платы разработки MT3620 в качестве интерфейса UART можно использовать любой порт ISU . При использовании порта ISU в качестве интерфейса UART нельзя использовать тот же порт, что и интерфейс I2C или SPI.
- скорость baud: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000 и 2000000.
- Бит данных: 5, 6, 7 и 8.
- Стоп-бит: 1 и 2.
- Четность: нечетные, четные и нет.
- Режим управления потоком: RTS/CTS, XON/XOFF и без управления потоком.
- Аппаратный буфер получения: 32-байтовый.
При использовании UART в высокоуровневом приложении используются только 4 из 5 доступных периферийных блок-контактов ISU. Неиспользуемый контакт можно использовать в качестве контакта GPIO в том же высокоуровневом приложении. Список неиспользуемых контактов ISU, которые можно повторно использовать для GPIO, см. в разделе Периферийные устройства ввода-вывода .