Voltaj seviyelerini (RS-232 varsayıyoruz) ve seri protokolü (herkesin bir şeyleri adlandırmaya takıntılı olmadan önceki bir zamandan geldiği için uart diyelim) karıştırıyorsunuz.
Örneğinizi kullanarak örneğin 001100'den 0110'a söyleyemezsiniz. Uart protokolü ile, alıcının ortasının nerede olduğunu bilmesi için ideal olarak bit hücresinin ortasını örneklemeniz gerekir, farklı zaman kaynaklarında olmak ve tam olarak aynı olmamak, boştan gelen ilk kenar size bir referans verir. sonraki N bitinin ortasına vurmak için, N'nin ne kadar büyük olduğu her bir tarafın doğruluğuna bağlıdır, 8 veya daha fazla veri biti oldukça özensiz olabilir ve isterseniz bulduğunuz herhangi bir kenarı yeniden senkronize edebilirsiniz (örneğinizde 00000000 veya 11111111'i nasıl alırsınız?)
Başlangıç biti bize boştan ayırmak için bir avantaj sağlar, mesajın ne zaman başladığını ve bitleri örneklemek için bir referans olduğunu söylemek gerekir. Durdurma biti, en az bir veya iki bitlik hücre için boşta kalmamızı sağlar. Veri ile doygun olduğunda, boşluk olmadığında, durdurma biti dışında boşta kalma olmadığında, ortada gelirseniz uart protokolünün mutlaka çözemeyeceği başka bir probleminiz olur (eşitlik yardımcı olur) (birisi fiş takar ve veri hareket ederken içeri girer) veya başka herhangi bir nedenle) başlangıç ve bitiş bitleri, verileri eşitlik olmadan çerçevelemeye yardımcı olur, yine de nerede olduğunuzu anlayabilirsiniz, eşitlikle daha da iyi bir şansınız olur ama mükemmel değilsiniz.
Şimdi başka protokoller var. Diğer birçok protokol. gidip irig-106'ya bakın, bir başlangıç biti yerine, başka bir modelden önce yüzlerce bit takip edilebilen bir senkronizasyon modeline sahipsiniz, ölü dönemler yok. İrig belgesinde, NRZ-L'nin basit bir uart (sıfır seviyesine dönülmez) ile alıştığımız şey olduğu çeşitli kodlamalardan oluşan güzel bir çizelge vardır, ilginç olanı ise iki fazlı-l Bir durum değişikliğinin olduğu orta bit hücresi 0110'unuz veri frekansının 2 katı ile iletilir ve 01101001 olur; en kötü durumda, aynı seviyede arka arkaya ikiden fazla yarım bit hücreye sahip olamazsınız, bit senkronizasyonu için birçok kenar.
Bir başka ilginç olanı, iki fazlı-L'yi kullandıkları mil-std-1553'tür (yalnızca iki fazlı veya manchester vb. birçok farklı adla popüler bir kodlamadır) ancak bu sürekli veri değildir, birden çok kelimeye. eşzamanlama modeli olarak üç yarım bit hücrenin ve üç yarım bit hücrenin kasıtlı bir biphase-1 hatasını kullanırlar ve sonra biphase-l'de kodlanmış mesaja giderler.
RS-232, RS-422, vb. voltaj seviyelerini uart protokolünden farklı bir şekilde kullanamamanız için hiçbir neden yok. Ancak, saatleri senkronize etmek için verilerde yine de sık sık kenarlara ihtiyaç duyarsınız (eğer saati de beraberinde getirirseniz, o zaman bu başka bir hikaye) ve bayt veya sözcük oluşturan bit gruplarının nerede olduğunu belirlemenin bir yolunu bulmanız gerekir. bu yüzden bir senkronizasyon modeline veya başlangıç bitine veya başka bir şeye sahip olmanız gerekir. veya spi veya i2c gibi bir şey yaparak başlangıcı işaretleyin. klasik ethernet, bunun sonunu ve paketin başlangıcını belirtmek için bazı bitlerle uzun bir kare dalga kullandı. MDIO'da benzer bir şey var.
Günün sonunda, kelime / mesaj sınırlarının bit akışında nerede olduğunu bilmenin bir yolu olmadan güvenilir bir tek sinyal seri protokolüne sahip olamazsınız, benzer şekilde, her bit için nerede / ne zaman örnekleneceğini bilmeden de bunu yapamazsınız.Sürekli bir bit akışı olsa ve belki de sıfır zamanının ne zaman olduğunu bildiğinizi sanıyorsanız ve 8'e kadar sayıp başka bir baytı işaretleyebiliyorsanız bile, şanslı olabilirsiniz ancak saatiniz farklı birgöndericinin saatine göre referans ve kayacaktır.Böylece, bulduğunuz kenarlara periyodik olarak baktığınız ve saatlerin doğruluğu ile ilgili matematiğe dayalı olarak her N bitte bir kenar olduğundan emin olduğunuz sürece bunu çıkarmaya çalışabilirsiniz.