1-Wire Bus
Bu iletişim standardı dallas semiconductor tarafından geliştirilmiş olup halen bir çok cihazda kullanılmaktadır. Örnek olarak verecek olursak…
Bu iletişim standardı dallas semiconductor tarafından geliştirilmiş olup halen bir çok cihazda kullanılmaktadır. Örnek olarak verecek olursak İ-Button (İstanbulda belediye tarafından kullanılan AKBIL) ki bu kendi içerisinede bir çok çeşiti vardır. Sadece belirli bir ROM numarasına sahip olanından tutunda real time clok yada sıcaklık ölçer , eeprom gibi sadece kndi içinde bir çok ürün yelpazesine sahiptir. Sadece i-button la sınırlı kalmayıp her geçen gün genişleyen elektronik komponent zincirine sahiptir. Adreslenebilir röle sürücülerinden eeprom belleklere ve ADC lere kadar yüzlerce üründe kullanılır.
Peki 1-Wire ne demek. İsmindende anlaşılacağı üzere tüm veri alışverişi iki yönlü olarak sadece bir tel üzerinden sağlanır. Birde aynı tek bir tel üzerine farklı bir çok cihazı yerleştirebileceğinizi düşünürseniz mikroişlemci üzerinde sadece bir pin harcıyarak bir çok işin üzerinden gelebilirsiniz.
Sistemde şekilde görüldüğü üzere Bir Master olarak görev yapan Microcontroller ve aynı yol üzerinde birden fazla sıcaklık sensörü kullanılıyor.Tabiki birçok farklı cihazda aynı yol üzerinde kullanılabilir.
Şimdi diyeceksinizki sadece bir hat üzerinde veri gönderip almak mümkünmü? Evet ,zor görünsede. Şimdi bu iişi biraz irdeleyelim. Öncelikle yukarıda görülen direnci besleme ile bus arasına eklemeyi unutmayın(Pull up).Donanımımızı bu şekilde kurduktan sonra şimdi biraz derine inelim. Yalnız bu yazımızda fazla derine dalmayıp fikir edinmeniz açısından yüzeysel bir bilgi ve bir kaç örnekle açıklamaya çalışacağım. Lütfen şimdi aşağıdaki şekilleri ayrıntılı olarak inceleyin.
Yukarıdaki şekli ve data sheetlerdeki şekilleri dikkatlice incelediğinizde birazda ingilizceniz varsa işi zaten çözersiniz. Unutmayın bu protokol tamamen zamanlama üzerine kuruludur. Cihazı hatta bağladığımız zaman pull up direnci ile hat devamlı yukarı 5 volt seviyesine çekilmektedir. Biz işlemci ile veri kitaplarında belirtilen süreler ile hattı belirli süreler ile aşağı çekeriz ve iletişimi başlatırız. Cihazı adresleriz. Hatta bize cevap verecek bir cihaz varsa bu sefer cihaz hattı aşşağı belirli aralıklarla çekerek bize gerekli cevapları gönderir. Tabiki burada dikkat etmemiz gereken en önemli nokta işlem basamaklarını sırasına göre yapmak ve zaman kriterlerine mutlaka uymaktır. Mesela bütün iletişim saykılları mutlaka yukarıda gösterildiği şekilde bir reset pulse ile başlar ve hemen ardından cihazlardan gelen bir presence pulse i ile devam eder. Yani biz hattı resetleriz ve daha sonra eğer hazır olan bir cihaz varsa oda bize bir presence pulse gönderir. Eğer hatta birden fazla cihaz varsa bütün cihazlar simultone olarak bu sinyali gönderirler. Biraz daha tekniğe girersek yukarıdaki şekilde görüldüğü gibi reset pulse için minimum olarak hattımızı 480 mikrosaniye düşükte tutmalı hattı serbest bıraktıktan sonra ise 60 mikro saniye bekleyip bu sefer cihazdan 60 ia 240 mikrosaniye sürecek olan presence pulse beklemeliyiz. Bütün bunlar doğru olarak yapıldığında bir sonraki adıma geçebiliriz.
Bir sonraki adım ise iletişim için gereken verileri göndermektir. Bütün iletişim bitler halinde düşünülmelidir. Hatta 0 ve 1 yazma gibi. 0 göndermek için hatt düşüğe çekilmeli ve 60mikro saniye o halde tutulmalı daha sonra serbest bırakılmalıdır. Bir sonraki bir için en az 1 mikro saniye hat serbest bırakılmalıdır. 1 yazmak içinse hat düşüğe çekildikten sonra 15 mikro saniye den fazla olmadan beklenmeli dir.
Okuma içinde yukarıda gösterilen şekilde tamamen zamana dayalı rutinler tanımlanmalıdır. Dikkatlice bakarsak resimde siyah kalın hatlar master tarafından açık gri hatlar ise slave tarafından oluşturulur. Okuma yaparkende hat master tarafından düşüğe çekilir ve en az 1 mikro saniye bekleyip (15 mikro saniye içinde okunmalı) hattan veri okunur. Eğer bu anda hat 0 ise slave den yani cihazdan bize bir 0 verisi göderilmiş tir. Okunan veri 1 ise bu seferde bir 1 verisi gönderilmiş demektir.
Kısa ve elimden geldiği kadar ayrıntıya girmeden 1-wire ne demek size anlatmaya çalıştım. Şimdi şöyle bir toparlayacak olursak: Donanım bağlantımızı oluşturduktan sonra yazılımımızı hazırlayabiliriz. Yazılımda dikkat edilecek hususlar bütün bu iletişimin zaman tabanlı olduğudur. Zamanı ise biz mikro işelmcimiz ile kndimiz oluştururuz. Okuma işlemlerinde kesmelerin pasifize edilmesine dikkat edilmeli. Hangi cihaz kullanılacaksa ona ait veri kitapları gözden geçirilmelidi. Şöyleki bir hatta birden çok farklı yada aynı tipte cihaz bağlanabilir. Her cihazın ise kendine has özel bir 64-bit ROM kodu bulunur. Bu kodları kullanarak aynı yol değişik yada aynı cihazlar tarafından kullanılabilir. Şimdilik kafamızı karıştırmaya gerek yok yazımızın ikinci bölümünde ise bir 18×20 ile nasıl sıcaklık okunacağını gösteren bir örnek yapmaya çalışacağız.
Ali KARAKAŞ
Kaynak: www.maxim-ic.com