Seri , pahalı bir terim kullanmak için "Zaman Bölmeli Çoğullamalı" olan herkes için bir şemsiye kelimedir. Bu, verilerin zaman içinde yayılması, çoğu zaman birbiri ardına bir bit gönderildiği anlamına gelir. Adlandırdığınız tüm protokoller seri protokollerdir.
UART, Evrensel Asenkron Alıcı Vericisi için, en çok kullanılan seri protokollerden biridir. Neredeyse benim kadar eski ve çok basit. Çoğu denetleyicide bir donanım UART bulunur. İletim için tek bir veri hattı, veri almak için bir veri hattı kullanır. Çoğu zaman 8 bit veri aşağıdaki gibi aktarılır: 1 başlangıç biti (düşük seviye), 8 veri biti ve 1 durdurma biti (yüksek seviye). Düşük seviye başlangıç biti ve yüksek seviye durdurma biti, iletişimi başlatmak için her zaman yüksek-düşük bir geçiş olduğu anlamına gelir. UART'ı tanımlayan şey budur. Gerilim seviyesi yok, bu nedenle mikrodenetleyicinizin kullandığı her hangi bir değerde 3.3 V veya 5 V olabilir. UART üzerinden iletişim kurmak isteyen mikro denetleyicilerin, senkronizasyon için yalnızca başlangıç bitlerine sahip oldukları için aktarım hızına, bit hızına karar vermeleri gerektiğini unutmayın. Buna senkronize olmayan iletişim denir.
Uzun mesafeli iletişim için (bu yüzlerce metre olmak zorunda değildir) 5 V UART çok güvenilir değildir, bu yüzden daha yüksek bir voltaja, genellikle "0" için +12 V ve "0" için -12 V'a dönüştürülür. 1" . Veri formatı aynı kalır. Öyleyse RS-232’ye sahipsiniz (ki aslında EIA-232 diye çağırmalısınız, fakat kimse bilmiyor.)
Zamanlama bağımlılığı, UART'ın en büyük dezavantajlarından biridir ve Evrensel Senkron / Asenkron Alıcı Vericisi için çözüm USART'dir . Bu UART yapabilir, aynı zamanda senkronize bir protokol. Eşzamanlı olarak sadece veri değil, aynı zamanda iletilen bir saat var. Her bir bit ile bir saat darbesi alıcıya bu bitin mandallanması gerektiğini söyler. Senkron protokoller ya Manchester kodlamada olduğu gibi daha yüksek bir bant genişliğine ya da SPI ve I2C gibi saat için ekstra bir kabloya ihtiyaç duyar.
SPI (Seri Periferik Arayüz) başka bir çok basit seri protokoldür. Bir master bir saat sinyali gönderir ve her saat darbesinde, bir bit köleye çıkar ve bir bit köle gelir. Bu nedenle sinyal isimleri saat için SCK, Master Out Slave In için MOSI ve Master In Slave Out için MISO'dur. SS (Slave Select) sinyalleri kullanarak, ana veri yolu üzerindeki birden fazla slave'i kontrol edebilir. Birden fazla slave cihazını bir master'a bağlamak için iki yol vardır, biri yukarıda belirtildiği, yani slave select'i ve diğeri de papatya zinciridir, daha az donanım pimi kullanır (çizgiler seçer), ancak yazılım karmaşıklaşır.
I2C("C karesini çizdim" diye anılan Inter-Integrated Circuit) aynı zamanda senkronize bir protokoldür ve içinde "istihbarat" bulunan ilk kişidir; Diğeri aptalca bitleri içeri ve dışarı kaydırdı ve bu da buydu. I2C, biri saat, biri veri (SDA) için biri olmak üzere yalnızca 2 kablo kullanır. Bu, master ve slave'in aynı tel üzerinden veri göndermesi, yine saat sinyalini oluşturan master tarafından kontrol edilmesi anlamına gelir. I2C, belirli bir cihazı seçmek için ayrı Slave Select kullanmıyor, ancak adresleme özelliği var. Master tarafından gönderilen ilk bayt 7 bit bir adres tutar (böylece otobüste 127 cihazı kullanabilirsiniz) ve bir sonraki baytların da master'den gelip gelmeyeceğini belirten bir okuma / yazma biti bulunur. köle. Her bayttan sonra, alıcı bayt alımını onaylamak için "0" göndermelidir, ki bu ana saatin 9 saati darbesiyle kilitlenir. Master bir bayt yazmak istiyorsa, aynı işlem tekrar eder: master veri yoluna bitin ardından bit koyar ve her seferinde verilerin okunmaya hazır olduğunu işaret etmek için bir saat atımı verir. Master veri almak istiyorsa sadece saat darbeleri oluşturur. Köle, saat darbesi verildiğinde bir sonraki bitin hazır olmasına dikkat etmek zorundadır. Bu protokol, NXP (eski adıyla Phillips) tarafından, lisans maliyetinden tasarruf etmek için, I2C ile tamamen aynı olan TWI (2-telli arayüz) kelimesini kullanarak Atmel patenti almıştır, bu nedenle herhangi bir AVR cihazı I2C'ye sahip olmayacak, ancak TWI'ye sahip olacaktır. Master veri almak istiyorsa sadece saat darbeleri oluşturur. Köle, saat darbesi verildiğinde bir sonraki bitin hazır olmasına dikkat etmek zorundadır. Bu protokol, NXP (eski adıyla Phillips) tarafından, lisans maliyetinden tasarruf etmek için, I2C ile tamamen aynı olan TWI (2-telli arayüz) kelimesini kullanarak Atmel patenti almıştır, bu yüzden herhangi bir AVR cihazı, I2C'ye sahip olmayacak, ancak TWI'ya sahip olacaktır. Master veri almak istiyorsa sadece saat darbeleri oluşturur. Köle, saat darbesi verildiğinde bir sonraki bitin hazır olmasına dikkat etmek zorundadır. Bu protokol, NXP (eski adıyla Phillips) tarafından, lisans maliyetinden tasarruf etmek için, I2C ile tamamen aynı olan TWI (2-telli arayüz) kelimesini kullanarak Atmel patenti almıştır, bu yüzden herhangi bir AVR cihazı, I2C'ye sahip olmayacak, ancak TWI'ya sahip olacaktır.
Aynı kabloda iki veya daha fazla sinyal çakışmaya neden olabilir ve bir cihaz "1" gönderirken diğerinde "0" gönderirse sorun yaşarsınız. Bu nedenle veri yolu kablolu - VEYA: iki direnç veri yolunu yüksek bir seviyeye çeker ve cihazlar sadece düşük seviye gönderir. Yüksek bir seviyeye göndermek istiyorlarsa, otobüsü serbest bırakın.
TTL (Transistör Transistörü Mantığı) bir protokol değildir. Dijital mantık için daha eski bir teknolojidir, ancak isim genellikle 5 V besleme voltajını belirtmek için kullanılır, çoğunlukla yanlış UART olarak adlandırılan şeye atıfta bulunur.
Bunların her biri hakkında bir kitap yazabilirsiniz ve görünüşe göre yoldayım. Bu sadece çok kısa bir genel bakış, bazı şeylerin açıklığa ihtiyaç duyması durumunda bize bildirin.