Üst düzey uygulamalarda UART kullanma
Azure Sphere, seri iletişim için evrensel zaman uyumsuz alıcı vericileri (UART) destekler. UART, bir bilgisayarda veya çevre birimi cihazında seri bağlantı noktası üzerinden veri göndermek ve almak için kullanılan tümleşik bağlantı hattı türüdür. UART'ler yaygın olarak kullanılır ve basitliği ile bilinir. Ancak , SPI ve I2C'nin aksine UART'ler birden çok alt cihazı desteklemez.
Not
Bu konuda, üst düzey bir uygulamada UART'lerin nasıl kullanılacağı açıklanmaktadır. RTApps'te UART kullanımı hakkında bilgi için bkz. Gerçek zamanlı özellikli bir uygulamada çevre birimleri kullanma.
Azure Sphere üst düzey uygulamaları, Applibs UART API'lerini çağırarak UART'lerle iletişim kurabilir. UART_HighLevelApp örneği, BIR MT3620 cihazında UART'lerle nasıl iletişim kurduğunu gösterir.
UART gereksinimleri
UART'lerle iletişim kuran uygulamaların uygun üst bilgi dosyalarını içermesi ve uygulama bildirimine UART ayarları eklemesi gerekir.
Tüm uygulamaların hedef donanımlarını ayarlaması ve karşılık gelen donanım tanımı üst bilgi dosyasını içermesi gerekir.
Üst Bilgi Dosyaları
#define UART_STRUCTS_VERSION 1
#include <applibs/uart.h>
#include "path-to-your-target-hardware.h"
UART_STRUCTS_VERSION
Üst bilgi dosyasını dahil etmeden önce önişlemci tanımını bildirin. Bu, uygulama tarafından kullanılan yapı sürümünü belirtir.
"path-to-your-target-hardware.h" yerine donanımınızın üst bilgi dosyasının yolunu yazın.
Uygulama bildirimi ayarları
Uygulama bildirimindeki UART ayarları, uygulama tarafından erişilen UART'leri listeler. Aynı anda yalnızca bir uygulama UART kullanabilir. Bu ayarları yapılandırmak için, özelliği uygulama bildirimine ekleyin Uart
ve ardından her UART'ı özelliğe ekleyin.
Azure Sphere uygulama bildirimi, uygulama bildirimi hakkında daha fazla ayrıntıya sahiptir.
Kodunuzda, UART'leri tanımlamak için donanımınız için tanımlanan sabitleri kullanın. Derleyici, uygulamayı oluştururken bu değerleri ham değerlere çevirir.
Örneğin, bir MT3620 başvuru geliştirme panosu (RDB) hedefleyen ve mt3620 üzerinde iki UART yapılandıran bir uygulama bildiriminden bir alıntı aşağıda verilmiştir.
"Uart": [ "$MT3620_RDB_HEADER2_ISU0_UART", "$MT3620_RDB_HEADER4_ISU1_UART" ],
Aşağıdaki alıntı, Avnet MT3620 Starter Kit'i hedefleyen bir uygulamada aynı UART'lerin nasıl belirtileceğini gösterir:
"Uart": [ "$AVNET_MT3620_SK_ISU0_UART", "$AVNET_MT3620_SK_ISU1_UART" ],
UART yapılandırma ve açma
UART üzerinde işlem yapmadan önce ayarları yapılandırmanız ve UART'yi açmanız gerekir. Bir UART açtığınızda, UART üzerinde işlem gerçekleştiren işlevlere geçirebileceğiniz bir dosya tanımlayıcısı döndürülür.
Ayarları yapılandırmak için UART_InitConfig İşlevi işlevini çağırarak UART_Config Yapısı'nı başlatın. UART_Config yapısı başlatıldıktan sonra, yapıdaki UART ayarlarını değiştirebilirsiniz.
UART'yi açmak ve ayarları uygulamak için UART_Open işlevini çağırın ve UART_Config yapıyı geçirin.
UART üzerinde okuma ve yazma işlemleri gerçekleştirme
UART üzerinde okuma ve yazma işlemleri gerçekleştirmek için POSIX işlevlerini kullanabilirsiniz. UART üzerinde okuma işlemi gerçekleştirmek için read() işlevini çağırın. UART üzerinde yazma işlemi gerçekleştirmek için write() işlevini çağırın.
UART'ı kapatma
UART'yi kapatmak için POSIX işlevini close() çağırın.
MT3620 desteği
Bu bölümde, yalnızca MT3620 üzerinde Azure Sphere çalıştırılırken uygulanan UART seçenekleri açıklanmaktadır.
MT3620 için UART belirtimleri MT3620 Destek Durumu'nda listelenir. MT3620 geliştirme panosu kullanım kılavuzu, pin düzenini ve kablolama işlevlerini açıklar.
Microsoft Azure Sphere SDK yükleme dizinindeki HardwareDefinitions klasörü, yaygın Azure Sphere geliştirme panoları, modülleri ve yongaları için tanımlar içerir. DIĞER MT3620 donanımlarıyla birlikte MT3620, MT3620 RDB için ana arabirimleri tanımlayan üst bilgi ve JSON dosyalarını içerir. HardwareDefinitions klasörünün varsayılan konumu Windows ve /opt/azurespheresdk/HardwareDefinitions
Linux'tadırC:\Program Files (x86)\Microsoft Azure Sphere SDK\Hardware Definitions
.
Aşağıdaki UART ayarları desteklenir. 8N1 (8 veri biti, 1 durdurma biti ve eşlik yok) varsayılan ayardır:
- MT3620 geliştirme panosu yapılandırırken, herhangi bir ISU bağlantı noktasını UART arabirimi olarak kullanabilirsiniz. UART arabirimi olarak BIR ISU bağlantı noktası kullandığınızda, I2C veya SPI arabirimiyle aynı bağlantı noktasını kullanamazsınız.
- baud hızı: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000 ve 2000000.
- Veri biti: 5, 6, 7 ve 8.
- Durdurma biti: 1 ve 2.
- Eşlik: tek, çift ve hiçbiri.
- Akış denetim modu: RTS/CTS, XON/XOFF ve akış denetimi yok.
- Donanım alma arabelleği: 32 bayt.
Üst düzey bir uygulamada UART kullanılırken, kullanılabilir 5 ISU çevre birimi blok pininin yalnızca 4'ü kullanılır. Kullanılmayan pin, aynı üst düzey uygulama tarafından GPIO pini olarak kullanılabilir. GPIO için yeniden kullanılabilecek kullanılmayan ISU pinlerinin listesi için G /Ç çevre birimlerine bakın.