Posts Tagged ‘Slave’

Spi ile PIC’ler Arası Haberleşme

Merhaba arkadaşlar;
Bu yazımda Spi Haberleşme Protokolü ile ilgili edindiğim tecrübeleri paylaşacağım.
Haberleşme protokollerinde amaç, bilginin bir birimden, mikro denetleyiciden veya cihazdan başka bir birime, mikro denetleyiciye veya cihaza iletilmesini sağlamaktır.
Haberleşme protokolleri ile ilgili daha detaylı bilgiye buradan ulaşabilirsiniz.

Öncelikle “Spi nedir ?” sorusundan başlamak gerektiğini düşünüyorum.
Spi ( Serial Peripheral Interface), dilimize  “Seri Çevresel Arayüz” olarak çevrilmektedir. İsminden de anlaşıldığı üzere Spi bir seri haberleşme protokolüdür. Spi haberleşme protokolünü, Motorola firması kendi mikro denetleyicileri için geliştirmiş, sonrasında ise bir standart olarak benimsenerek diğer mikro denetleyici üreten firmalar tarafından da kullanılmaya başlanmıştır.

Spi haberleşme protokolünde cihazlar arasında Master-Slave ilişkisi vardır. Master cihaz Slave cihazları yönetmek ve onlara işlemler yaptırmak ile yükümlüdür. Slave cihaz ise Master cihazdan gelen bilgilere göre işlem yapmak ile yükümlüdür. Bir master cihaza birden çok slave cihaz bağlanabilir. Ama aynı anda Slave cihazlardan sadece bir tanesi aktif olarak Master cihaz ile bilgi alışverişi gerçekleştirir.

Aynı anda veri alıp gönderebilen ( senkron haberleşme ) sistemlere full duplex sistemler denir. Spi protokolü de full duplex bir haberleşme protokolüdür.Yani Master mikro denetleyici spi haberleşmesini başlattığı anda hem bilgi gönderir, hem de bilgi alır. Aynı durum Slave mikro denetleyici için de geçerlidir.

Tek Slave Spi Haberleşmesi

Tek Slave Spi Haberleşmesi

Yukarıdaki resimde Tek Slave Spi Haberleşmesinin kullanıldığı bir sistem verilmiştir. Bu sistemin davranışını belirleyen pinlere ait lojik diyagram ise aşağıda verilmiştir.

Spi Haberleşmesinin Lojik Diyagramı

Spi Haberleşmesinin Lojik Yapısı

SS/CS: Slave Slect/Chip Slect
Spi’da Master cihazdan Slave cihaza bilgi aktarabilmek için Slave cihazın yetkilendirilmesi gerekmektedir. Slave cihazın yetkilendirilmesi için SS pininin lojik sıfır seviyesine çekilmesi gerekir. Master mikro denetleyicideki Slave Slect pinin sayısı Slave cihaz sayısına eşittir. Birden fazla Slave cihaz varsa, bilgi gönderilmek istenen Slave cihaz kendine bağlı olan SS pini ile seçilir ve haberleşme yapılır. Böylelikle gönderilen bilgiler sadece haberleşmek istenen cihaza iletilir.

SCLK: Serial Clock
Saat darbesi verilerin lojik olarak iletilmesini sağlar.
Slave cihaz yektilendirildikten sonra haberleşmenin başlayabilmesi için saat darbesine ihtiyaç vardır. Saat darbesi Master mikro denetleyici tarafından sağlanır ve SCLK üzerinden Slave mikro denetleyiciye aktarılır.

MOSI: Master Output Slave Input
Master cihazdan Slave cihaza MOSI pini üzerinden bilgiler aktarılır. Bu bilgilerin aktarılması için Master mikro dentleyici SS pinini lojik sıfır seviyesine çekmeli ve SCLK üzerinden saat darbesi üretmelidir.

MISO: Master Input Slave Output
Slave cihazdan Master cihaza MISO pini üzerinden bilgiler gönderilir. Bu bilgilerin aktarılması için Master mikro dentleyici SS pinini lojik sıfır seviyesine çekmeli ve SCLK üzerinden saat darbesi üretmelidir.

Çoklu Slave Spi Haberleşmesi

Çoklu Slave Spi Haberleşmesi

Yukarıdaki resimde ise Çoklu Slave Spi Haberleşmesi gösterilmektedir. Daha önce söylendiği üzere hangi mikro denetleyici ile haberleşileceği master cihaz tarafından belirlenir.

Şimdi ise Spi Protokolünün mantığını anlamak için yaptığım basit bir uygulamayı paylaşacağım. Burada iki mikro denetleyici üzerinde haberleşme yapılacağı için Slave Select pinine ihtiyaç yoktur. Yalnız uygulamanın simülasyon ortamında çalışması için bir SS pini tanımlanıp, Spi Debugger’a bağlanmıştır.
Şekilde görüldüğü gibi Master mikro denetleyiciye bağlı 7 tane butonun Spi haberleşme protokolü ile Slave mikro denetleyicide ki 7 ledi yakması sağlanmıştır.

Master Mikro Denetleyici

Master Mikro Denetleyici

Master Mİkro Denetleyici Butonları

Master Mİkro Denetleyici Butonları

Slave Mikro Denetleyici

Slave Mikro Denetleyici


Kodlar ve Benzetim Dosyası

Selametle …

Kaynaklar:
1-Wikipedia
2-Pic Proje
3-Ramazan Sural
4-İstanbul Teknik Üniversitesi

Reklamlar