Çok kafa karıştırıcı, ama endişelenmenize gerek yok. Öncelikle, kendisi genel bir terim olan bir UART'ı düşünün, ancak başlangıç biti, bir veya iki durdurma biti, 7 veya 8 genellikle veri bitleri ve bazen eşit veya tek olan parite üreten bir protokol düşünün; oradan farklılık gösterebilir, bu da onu daha da kötüleştirir.
UART ne olursa olsun TTL seviyesindedir. Eskiden 5 V ve şimdi 3.3 V, 1.8 V ya da her neyse; belki TTL yanlış terimdir. O zaman RS-232, RS-422 vb. Var / bunlar var. Bunlar, protokol standartları değil GERİLİM VE PIN standartlarıdır. Bir çeşit UART demek istediğinizde terimleri karıştırmak ve RS-232 demek yanlıştır.
O günlerde UART'ınız anakartlarınızdaydı ve o zaman mantıklı olan voltaj seviyeleri ve bir çeşit standart pinout / kablo ile dış dünyaya bir çeşit konektör istediniz. Bu nedenle, çeşitli çevre birimleri için popüler bir 25 ve 9 pin standardı bulundu ve Wintel PC dünyasında buna bir İletişim bağlantı noktası veya bazen seri bağlantı noktası deniyordu.
Tabii ki, seri veri taşıyan bir port seri port, SPI, I²C, MDIO, UART, HDLC, SDLC, vb. Ve hatta USB ve SCSI olarak adlandırılabilir; bununla delirebilirsin. Genellikle bir seri bağlantı noktası, bir UART'ta alabileceğiniz bazı pimler anlamına gelir.
Unix / Linux dünyası / / tty
yerine diyor , ama aynı şey.com
serial
uart
Şimdi UYGULAMA var. Üzerinde bazı arayüzler bulunan bazı UART çipleri satın alabilirsiniz (evet, her iki uçta seri olan bir SPI UART veya I²C UART veya bazı özel veri yolu veya USB vb.) O gün bile UART'ın bir tarafında CPU'nun iletişim kurduğu bir otobüs vardı. Bugün FTDI ve güzel USB UART çözümleri yapan diğer satıcılarımız var, yazılım ve UART arasında bazı farklı katman katmanları yapmıyor ve daha sonra UART'ın diğer tarafında TTL / çip seviyesi veya RS-232C veya RS-422 vb.
Erken Arduinos, genellikle Arduino'ya güç sağlayan bir FTDI USB-UART kartı kullandınız. Bazıları Arduino kartında USB gücüne ve seri / UART'a sahiptir ve daha sonra AVR çipindeki UART'a kart üzerinden bağlanır (aynı zamanda, yazılımın sahip olduğu bir UART ile iletişim kurmasına izin vermek için bazı otobüs katmanlarıyla bazı işlemcilerle ilgilenir diğer taraftaki bazı arayüzler, bu durumda AVR'nin kenarındaki çip voltaj seviyelerinde pimler, TTL).
UART işlevselliği onlarca yıldır değişmediğinden, yazılım terminolojisi ve hatta yazılım uygulamaları uygulama düzeyinde neden değişmelidir? 10-15 yıl önce anakartınızdaki bir UART çipine karşı bir Linux / Unix TTY uygulaması yazın ve bugün hala USB'den TTL seviyesine veya USB'den RS-232C seviyesine veya RS-422'ye veya herhangi bir pime / düzey tanımı. Aynı şey Windows için de geçerli ve ben hala her ikisinde de çalışan eski kod var. Windows dünyasında COM terimi kullanılmaktadır.
Bir süredir Arduino sanal alanını kullanmadım ve eğer Linux'ta olsaydı, ama Java olan bu program, doğru hatırlarsam, genelse ve ttyS2
Linux ve COM2'de sistem adını kullanırsa şaşırmam pencerelerde.
Sorunuzu yeniden okumak, bu API çağrılarını kullanan mevcut yazılım miktarından faydalanarak daha da ileri gidebilir. Yine onlarca yıldır, yazılımda bu çift yönlü verileri aklınıza gelebilecek her şeyi taşıyan sanal bir bağlantı noktası oluşturamamanızın bir nedeni yoktur. UART - Ethernet çok yaygın olanıdır ve sunucuların hala COM / TTY / RS-232 bağlantı noktalarını kullandığı sunucu odalarında, bir dizi sunucuya bağlanabileceğiniz bir dizi arabirime sahip bir terminal sunucunuz olabilir, sonra diğer tarafta Ethernet, daha sonra telnet girmemeyi seçerseniz, sanal bir COM bağlantı noktası sürücüsü yükleyebilirsiniz.
Daha sonra, bilgisayarınızdaki uygulamanız bir COM bağlantı noktasıyla konuştuğunu düşünüyor, ancak aslında bayt akışı Ethernet'e atlıyor ve daha sonra terminal sunucusunu, daha sonra RS-232C seviyesindeki bir UART'a (ancak mutlaka pinout değil) kablolara çarpıyor. sunucu ve geri aynı şekilde.
Bazen gerçek bir UART'a bunu yapmak için hiçbir neden yoktur, bu nedenle COM bağlantı noktasını sanallaştırmak için bu API çağrıları için yazılan yazılımın hala çalışabilmesi gerekir. Belki de hala bir UART arabirimine aptal bir terminali olan hala kullandığımız eski bankacılık yazılımını düşünebilirsin, belki de o zamanlar geriye dönük olarak bağlanmıştı veya sonunda bir sunucuya modeme girmiş olabilirsiniz. Yazılımın hala çalışabilmesi için, günümüzde Ethernet'i sunucuya seri akış olarak (örneğin TCP / IP) indiren sanal bir COM bağlantı noktası da dahil olmak üzere çeşitli miktarlarda öykünme yoluyla yapabilirsiniz.