UART'lar genellikle 1, 1.5 ve 2 durdurma biti arasından seçim yapmanızı sağlar. 1 durdurma biti taşıma kapasitesi verimliliği% 80'dir (8/10), 2 durdurma biti% 72,7'ye (8/11) düşer. İkinci durdurma ucunun avantajı nedir?
UART'lar genellikle 1, 1.5 ve 2 durdurma biti arasından seçim yapmanızı sağlar. 1 durdurma biti taşıma kapasitesi verimliliği% 80'dir (8/10), 2 durdurma biti% 72,7'ye (8/11) düşer. İkinci durdurma ucunun avantajı nedir?
Yanıtlar:
Ekstra durdurma bitleri, özellikle yüksek baud hızlarında ve / veya alınan baytın işlenmesi için zamanın gerekli olduğu yumuşak UART kullanarak biraz ekstra alma işlem süresi eklemek için yararlı bir yol olabilir.
Hızın sıkı olduğu ve UART'ınızın sadece 2 güçte bölme oranları sunduğu durumlarda, ekstra bir dur biti eklemek hızda bir sonraki en düşük baud hızından daha az sert bir azalma sağlamak için bir seçenek olabilir.
Bunun DMX512 standardının 2 durdurma biti belirtmesinin bir nedeni olabileceğine inanıyorum.
Yararlı olabilecekleri başka bir durum, herhangi bir tamponlama veya paketleme olmadan bir veri akışını ileten cihazlarınız varsa - düğümler arasındaki saat hızlarında ve sonlu örnekleme tanecikliğinde küçük farklılıklar, veriler bir dizi düğüm tarafından alındığında ve yeniden iletildiğinde hataların oluşmasına neden olabilir. ancak veriler 2 durdurma biti ile gönderilirse ve alıcılar bir durma bitine ayarlanırsa, bu hataları barındırmak ve zincirin aşağısında düğümlerin güvenilir bir şekilde alması için en az bir geçerli durma süresi bırakacak kadar marj ekler.
Ayrıca, çok uzun bir kablo çalışmasının yükselme ve düşme zamanlarında bir miktar asimetriye neden olduğu, yetersiz durma uzunluğuna neden olan - 2 stop biti göndermek ve alıcının sadece bir tane sabitlemesini gerektiren bir durum ortaya koydum.
Günler süren yazıcılar (neredeyse) tüm mekanik yapılardır. Baudrates o zaman bile biraz standardize edildi, bu yüzden ekstra bir durdurma biti eklemek yazıcıya karakteri yazdırmak için biraz zaman kazandıracaktı. Zamanlama unsurları o zamanlar daha görünürdü. İlk yazıcım için, gürültülü bir http://en.wikipedia.org/wiki/Teletype_Model_33 , bir Satır Başı gönderdikten sonra iki karakterden oluşan bir duraklama eklemek zorunda kaldım.
İki durdurma bitinin, önemli oranda durma süresine sahip olan ve ekipmana dahili gibi düşük gürültülü (düşük BER) bir ortamda veya birkaç metrelik bir çevresel arayüzde çalışan bir sistemde birinden çok daha yararlı olması pek olası değildir. kablo ve / veya modem-modem aşaması olmadan.
2 durdurma biti size daha fazla senkronizasyon süresi, karakterler arasında işlem yapmak için daha fazla zaman ve muhtemelen donanım ve algoritmalara bağlı olarak, sürekli bir veri akışı sırasında senkronizasyon kazanma veya yeniden kazanma şansını artırır. Karakterler arası süre, modern sistemlerde saat hızlarının düşük ve işlemci veriminin daha düşük olduğu zamanlardan daha az değerlidir.
Temelde sürekli bir veri akışınız varsa, senkronize edilmemişse, yüksek bitler bir durdurma biti gibi görünür. Düşük tüm geçişler bayt sınırı gibi görünecektir. Alıcınız 10 sınırda başlıyorsa ve bu gerçek bir başlangıç sınırı değilse, bu zamanın yalnızca% 50'sinde keşfedilecektir) (yani son "durdurma biti" aslında düşük bir veri biti olarak bulunursa ve ayrıca Ortalama olarak bir bayt sınırının 1/0 olması ve hatalı olarak bir durdur / başlat çifti gibi görünmesi için 1/4 olasılık vardır. başlangıç çifti o zaman muhtemelen aşağıdaki girişimde başka birini seçmek için yaklaşık% 50 şansı vardır.
2 durdurma biti (11) kullanırsanız, rastgele bir veri trafiğinde 1/8. Şansı olan geçerli bir durdurma başlatma sırası 110'dur. Senkronize olmayan akışta orijinal durdurma ve başlatma bitlerinin karıştırılması, doygunlukları biraz değiştirir, ancak bir döngüde yanlış bir 110 durdurma / başlatma dizisi alırsanız, orijinal 110'un üzerinde tökezlemeden önce bir sonraki denemeyi vurmanız nispeten olası görünmemektedir. sıradaki sıra.
Dikkat ederseniz, 1 stop biti 8/10 =% 80 maksimum verim ve 2 stop biti 8/11 =% 72 verim sağlar. Tam sınırdaki verim farkı% 80 /% 72 = ~% 11 daha fazladır. bu, aşırı koşullarda yararlı bir kazançtır, ancak geniş değildir ve devre, zamanın yaklaşık% 10'undan daha fazla boşta kalırsa, minimum değerdedir. Devreniz gürültülü ve zaman zaman senkronizasyon kaybına eğilimliyse, ekstra durdurma biti çok yardımcı olabilir. AMA verimi çok önemsiyorsanız, baud hızını (her zaman değil) sık sık artırabilir veya tamamen senkronize çalışmaya geçebilirsiniz.
Mikeselectricstuff'ın "yumuşak UART'lar" ile alma süresi konusundaki noktasını yükseltmek için, veriyi ne zaman kabul edeceğini her zaman bilen ve bunu yoklama temelinde yapan bir alma uygulaması, genellikle kesintiye dayalı yumuşak UART ile pratik olandan daha hızlı baud hızlarını işleyebilir. Ancak bu tür uygulamalar, yalnızca bir baytın durma bitinin başlangıcı ile bir sonraki baytın başlatma biti arasındaki sürede gelen verileri işleyebilir; her bir baytı işlemek için gereken süre iletişim hızı için sınırlayıcı faktördür. 115.200-N-8-2'deki verileri işlemek, 57.600-N-8-1'deki verileri işlemekten çok daha fazla talep etmez, ancak% 80'den daha hızlıdır.
Bazen daha az verimli olan veri formatlarını kullanarak işleri daha da ileriye götürebiliriz. Örneğin, her baytı biri yedi bit ve biri bir bit olmak üzere iki parça halinde gönderebilirsiniz (bir bitlik kısmın MSB'lerinin hepsi ayarlanır). Biri bunu yaparsa, sadece bir durdurma biti ile bile, bir bayt çiftinin sonu ile bir sonrakinin başlangıcı arasında sekiz bit işaretleme olacaktır, böylece bit hızının ne kadar dört kat daha fazla itilmesine izin verilir sadece iki durdurma biti ile (ve bir tane ile yapabileceğinden sekiz kat daha yüksek) yapabilirdi. İki kat daha fazla bayt göndermek zorunda kalmasına rağmen, veri hızındaki dört kat artış büyük bir kazanç olacaktır. Ayrıca, iletilen her bayt çifti sekiz bit veri göndermek için kullanılabilse de, kodlama tarafından 256 olası bayt değerinden sadece 130'u kullanılabilir,
Bir zamanlar teletip adı verilen elektromekanik canavarlar vardı. Çoğu, güç hattı frekansı ile senkronize olan AC motorlarda çalışmıştır. Bu nedenle, iki iletişim makinesinin aynı güç şebekesine senkronize edilmemesi veya hatta bu konu için farklı frekanslar kullanarak alternatif akımla çalışmaması ihtimali her zaman olmuştur.
Böylece, daha yavaş bir makinenin yakalanmasını ve senkronizasyondan kaymamasını sağlamak için iki durdurma biti gönderilmiştir.
Baskı taşıyıcının yeni bir hattın başına dönmesine izin vermek gibi başka amaçlar için, bir CR, LF artı iki oluk gönderilmiştir (8 seviyeli bir bant üzerindeki tüm delikler).
110 Baud hızında ve sadece daha yavaş çalışan devreler için alışılmış bir durumdu.
Alıcı mekanik cihazların yavaşlığı, ekstra durdurma bitleri eklemenin arkasındaki nedendi, ancak bugünkü cihazlar yeterince hızlıdır ve ekstra durdurma bitine gerek kalmadan daha yüksek baud hızlarında çalışmaktadır.