Port Çoğullama
Günümüzde çok çeşitli uygulamaların yapılması ile birlikte kullanılan komponent sayısı artmaktadır. Buna bağlı olarak birkaç çevre birimin aynı uygulamada olması projenin maliyetinin artmasının yanında, kullanılan malzemenin de kompleksliğini o derece artırmaktadır. Çoğu tasarımcı, problemde olması istenen çevre birimlerin (LCD, i/o, RTC v.s.) sayısı arttıkça, kullanılan mikrokontroller sayısını artırmaktadır. Buda maliyetin artmasına, baskı devrede daha fazla yol bulunmasına ve devrenin daha fazla güç harcamasına neden olmaktadır. Buna alternatif bir çözüm olarak mikrokontrollerda bulunan bir portun çoğullanması sağlanabilir.
Burada herhangi 8 bittlik bir port 4 adet 8 bitlik port olarak çağaltılmıştır. Yani mikrokontroller’daki PortX, sanal olarak PortX1, PortX2, PortX3 ve PortX4 olarak çoğaltılmıştır.
Şekil 1 : Blok Diyagram
Pic16F877A ile PortB analog multiplexor’lar ile çoğaltılıp, 4 farklı iş için kullanılmıştır. Bunlar; LCD, RTC (real time clock), 8 bit input, 8 bit output…
Burada kullanılan 2*(4×1)mux lar ile PortB nin her bir biti, PortE deki 3 bitlik uçlar ile kontrol edilerek 4 farklı porta aktarılmıştır. Burada analog mux ların kullanılması devreyi her iki yönde elektriksel olarak açık tutmaya yaramaktadır. Yani portlardaki işleyiş iki yönlü olup bilgi transferi hem giriş hem de çıkış olarak yapılabilmektedir.
Şekil 2 : Şema
Bu bağlantı şekli ile portlarda çoğullanan her bir eleman (örneğin RTC) tıpkı PortB ye direkt bağlı gibi davranıp, Pic16F877A’nın sorgusuna cevap verip tarih ve zamanı mikrokontroller’a iletmektedir. Bir diğer adımda aynı PortB den Lcd ye yazı yazdırılabilmektedir. Diğer adımda okunması gereken bir bilgi input bilgisi olarak PortB den okunur. Belkide input bilgisine bağlı olarak diğer bir adımda aynı PortB ye bağlı olan output ucu, istenilen değere değiştirilecektir.
Buradaki işleyiş adım adım gitmektedir. Zaten mikrokontroller’lar işlemlerini adım adım gerçekleştirmektedirler. İçindeki program bir seferde bir işlem yapacak şekilde çalışmaktadır. Mikrokontrollerlar ve işlemciler bir program işletiminde bir komut çalıştırırlar. Mesela bir registerdaki değere toplamak veya registerdaki değeri başka bir registera veya porta aktarmak gibi işlemleri bir seferde yaparlar. Yani PortB:= a + PortB işleminde önce port değeri okunur, sonra bu değere a değeri eklenir ve bu son değer PortB ye aktarılır. Burada tek adımda yazılan işlem belirli bir sırada 3 adımda yapılır.
Port çoğullaması ile tekbir portla istenilen sayıda ek eleman kullanılabilir. Bu şekide port kullanımı artırılarak ve pic16F877A kullanarak, 2×16 LCD, RTC, 8 i/o, 512 KB Flash Ram (max 24 bit adresli), 3 adet com port kontrolu yapılmıştır…
Emrah ÖZMEN
emrahozmen@yahoo.com