Türkçe

İki temel seri iletişim protokolü olan UART ve SPI'yi keşfedin. Gömülü sistemler ve ötesi için ilkelerini, farklılıklarını, uygulamalarını, avantajlarını ve dezavantajlarını anlayın.

Seri İletişim Çözüldü: UART ve SPI'ye Derinlemesine Bir Bakış

Elektronik ve gömülü sistemler dünyasında, cihazların birbirleriyle iletişim kurabilme yeteneği çok önemlidir. Seri iletişim, mikrodenetleyiciler, sensörler, çevre birimleri ve hatta bilgisayarlar arasında veri aktarmak için güvenilir ve verimli bir yöntem sağlar. En yaygın seri iletişim protokollerinden ikisi UART (Evrensel Asenkron Alıcı/Verici) ve SPI'dir (Seri Çevre Birimi Arayüzü). Bu kapsamlı kılavuz, UART ve SPI'nin her ikisinin de inceliklerine inecek, ilkelerini, farklılıklarını, uygulamalarını, avantajlarını ve dezavantajlarını keşfedecektir.

Seri İletişimi Anlamak

Seri iletişim, çoklu kablolar üzerinden aynı anda birden çok bit gönderen paralel iletişimin aksine, verileri tek bir tel (veya kontrol sinyalleri için birkaç tel) üzerinden bir seferde bir bit iletme yöntemidir. Paralel iletişim kısa mesafelerde daha hızlı olsa da, seri iletişim genellikle daha uzun mesafeler ve kablo sayısını en aza indirmenin önemli olduğu durumlar için tercih edilir. Bu, onu alan ve maliyetin genellikle önemli kısıtlamalar olduğu gömülü sistemler için ideal hale getirir.

Asenkron ve Senkron İletişim

Seri iletişim geniş anlamda iki kategoriye ayrılabilir: asenkron ve senkron. UART gibi asenkron iletişim, gönderici ve alıcı arasında ortak bir saat sinyali gerektirmez. Bunun yerine, her veri baytını çerçevelemek için başlangıç ve bitiş bitlerine güvenir. SPI ve I2C gibi senkron iletişim, cihazlar arasında veri iletimini senkronize etmek için paylaşılan bir saat sinyali kullanır.

UART: Evrensel Asenkron Alıcı/Verici

UART, basitliği ve esnekliği nedeniyle yaygın olarak kullanılan bir seri iletişim protokolüdür. Gönderici ve alıcının ortak bir saat sinyalini paylaşmadığı anlamına gelen asenkron bir protokoldür. Bu, donanım gereksinimlerini basitleştirir, ancak hassas zamanlama ve önceden kararlaştırılmış bir veri hızı (baud hızı) gerektirir.

UART İlkeleri

UART iletişimi, her biri aşağıdakilerden oluşan çerçevelerde veri iletmeyi içerir:

Gönderici ve alıcı, başarılı iletişim için baud hızı, veri bitleri, parite ve durdurma bitleri üzerinde anlaşmalıdır. Ortak baud hızları 9600, 115200 ve diğerlerini içerir. Daha yüksek bir baud hızı, daha hızlı veri iletimine izin verir, ancak aynı zamanda zamanlama hatalarına karşı duyarlılığı da artırır.

UART Uygulamaları

UART Avantajları

UART Dezavantajları

UART Örneği: Arduino ve Seri Monitör

UART'ın eyleme geçtiği yaygın bir örnek, Arduino IDE'sinde Seri Monitör'ü kullanmaktır. Arduino kartı, USB üzerinden bilgisayarla iletişim kurmasını sağlayan yerleşik bir UART arayüzüne sahiptir. Aşağıdaki Arduino kod parçacığı, Seri Monitör'e veri göndermeyi gösterir:

void setup() {
  Serial.begin(9600); // 9600 baud hızında seri iletişimi başlat
}

void loop() {
  Serial.println("Merhaba, dünya!"); // "Merhaba, dünya!" mesajını Seri Monitör'e gönder
  delay(1000); // 1 saniye bekle
}

Bu basit kod, her saniye Seri Monitör'e "Merhaba, dünya!" mesajını gönderir. Serial.begin(9600) işlevi, UART arayüzünü 9600 baud hızında başlatır ve bu da Seri Monitör'deki ayarla eşleşmelidir.

SPI: Seri Çevre Birimi Arayüzü

SPI (Seri Çevre Birimi Arayüzü), mikrodenetleyiciler ve çevre birimleri arasında kısa mesafeli iletişim için yaygın olarak kullanılan senkron bir seri iletişim protokolüdür. Yüksek hızı ve nispeten basit donanım gereksinimleriyle bilinir.

SPI İlkeleri

SPI, bir cihazın (ana) iletişimi kontrol ettiği ve bir veya daha fazla cihazın (köle) ana cihazın komutlarına yanıt verdiği bir ana-köle mimarisi kullanır. SPI veri yolu dört ana sinyalden oluşur:

Veriler, saat sinyali ile senkronize olarak iletilir. Ana cihaz, istenen kölenin SS/CS hattını aşağı çekerek iletişimi başlatır. Veriler daha sonra MOSI hattında ana cihazdan kaydırılır ve SCK sinyalinin yükselen veya düşen kenarında köleye kaydırılır. Aynı anda, veriler MISO hattında köleden kaydırılır ve ana cihaza kaydırılır. Bu, tam çift yönlü iletişime izin verir, yani veriler aynı anda her iki yönde de iletilebilir.

SPI Modları

SPI'nin, Saat Polaritesi (CPOL) ve Saat Fazı (CPHA) olmak üzere iki parametreyle belirlenen dört çalışma modu vardır. Bu parametreler, SCK sinyalinin boşta kaldığı durumu ve verilerin örneklenip kaydırıldığı SCK sinyalinin kenarını tanımlar.

Başarılı iletişim için ana ve köle cihazların aynı SPI modunu kullanacak şekilde yapılandırılması gerekir. Aksi takdirde, karmaşık veriler veya iletişim hatası meydana gelir.

SPI Uygulamaları

SPI Avantajları

SPI Dezavantajları

SPI Örneği: Bir İvmeölçerle Arayüz Oluşturma

Popüler ADXL345 gibi birçok ivmeölçer, iletişim için SPI kullanır. ADXL345'ten ivme verilerini okumak için, mikrodenetleyicinin (ana cihaz olarak hareket eden) uygun kayıtları okumak için ivmeölçere (köle olarak hareket eden) bir komut göndermesi gerekir. Aşağıdaki sözde kod süreci göstermektedir:

  1. SS/CS hattını aşağı çekerek ADXL345'i seçin.
  2. Okunacak kayıt adresini gönderin (örneğin, X ekseni ivme verilerinin adresi).
  3. MISO hattından verileri okuyun (X ekseni ivme değeri).
  4. Y ve Z eksenleri için 2. ve 3. adımları tekrarlayın.
  5. SS/CS hattını yukarı çekerek ADXL345'i seçimi kaldırın.

Belirli komutlar ve kayıt adresleri ivmeölçer modeline göre değişecektir. Kesin prosedürler için her zaman veri sayfasına bakılmalıdır.

UART ve SPI: Bir Karşılaştırma

İşte UART ve SPI arasındaki temel farklılıkları özetleyen bir tablo:

Özellik UART SPI
İletişim Türü Asenkron Senkron
Saat Sinyali Yok Paylaşılan Saat
Kablo Sayısı 2 (TX, RX) 4 (MOSI, MISO, SCK, SS/CS) + köle başına 1 SS/CS
Veri Hızı Daha Düşük Daha Yüksek
Tam Çift Yönlü Tipik olarak Yarım Çift Yönlü (ancak bazen karmaşık yazılımla tam çift yönlülüğü simüle edebilir) Tam Çift Yönlü
Hata Algılama Parite Biti (İsteğe Bağlı) Yok (yazılım uygulaması gerektirir)
Cihaz Sayısı 2 (Noktadan Noktaya) Çoklu (Ana-Köle)
Karmaşıklık Daha Basit Daha Karmaşık
Mesafe Daha Uzun Daha Kısa

Doğru Protokolü Seçme

UART ve SPI arasındaki seçim, belirli uygulama gereksinimlerine bağlıdır. Aşağıdaki faktörleri göz önünde bulundurun:

Örneğin, bir mikrodenetleyicinin kısa mesafede tek bir sensörden veri okuması gereken basit bir sensör uygulamasında, SPI daha yüksek hızı nedeniyle daha iyi bir seçenek olabilir. Ancak, mikrodenetleyicinin hata ayıklama amacıyla daha uzun bir mesafede bir bilgisayarla iletişim kurması gerekiyorsa, UART daha uygun olacaktır.

Gelişmiş Hususlar

I2C (Devreler Arası Entegre)

Bu makale UART ve SPI'ye odaklanırken, I2C'den (Devreler Arası Entegre) başka bir yaygın seri iletişim protokolü olarak bahsetmek önemlidir. I2C, aynı veri yolunda birden çok ana ve köle cihazı destekleyen iki kablolu bir protokoldür. Genellikle bir devre kartındaki entegre devreler arasındaki iletişim için kullanılır. I2C, SPI'den farklı olarak adresleme kullanır ve bu da büyük cihaz ağlarını basitleştirir.

TTL ve RS-232

UART ile çalışırken, TTL (Transistör-Transistör Mantığı) ve RS-232 voltaj seviyeleri arasındaki farkı anlamak önemlidir. TTL mantığı, mantıksal düşük ve yüksek değerleri temsil etmek için 0V ve 5V (veya 3.3V) kullanır. RS-232 ise ±12V gerilim kullanır. Bir TTL UART'ı doğrudan bir RS-232 UART'a bağlamak cihazlara zarar verebilir. TTL ve RS-232 voltaj seviyeleri arasında dönüştürme yapmak için bir seviye kaydırıcıya (MAX232 çipi gibi) ihtiyaç vardır.

Hataları İşleme

UART ve SPI'nin sınırlı hata algılama mekanizmaları olduğundan, yazılımda hata işlemeyi uygulamak önemlidir. Ortak teknikler arasında sağlama toplamları, döngüsel yedeklilik denetimleri (CRC'ler) ve zaman aşımı mekanizmaları bulunur.

Sonuç

UART ve SPI, gömülü sistemler ve ötesi için temel seri iletişim protokolleridir. UART, basitlik ve esneklik sunarak mikrodenetleyicileri bilgisayarlara ve diğer cihazlara daha uzun mesafelerde bağlamak için uygundur. SPI, sensörler, hafıza kartları ve ekranlarla arayüz oluşturma gibi kısa mesafeli uygulamalar için yüksek hızlı iletişim sağlar. Her protokolün ilkelerini, avantajlarını ve dezavantajlarını anlamak, bir sonraki gömülü sisteminizi veya elektronik projenizi tasarlarken bilinçli kararlar vermenizi sağlar. Teknoloji ilerledikçe, bu seri iletişim yöntemlerinin uygulaması da gelişecektir. Sürekli adaptasyon ve öğrenme, mühendislerin ve hobi sahiplerinin bu protokolleri tam potansiyelleriyle kullanabilmelerini sağlayacaktır.