Yaptığım başka bir çalışma.Bu çalışmada PIC işlemcileri nasıl internete bağlayıp uygulama geliştirebileceğinizi gösteren bir e-kitap yazdım.Çalışmayı, örnek uygulamaları, devre çizimlerini paket halinde burdan indirebilirsiniz. Microchip Stack v5.20 (5.99MB) Kitap 74 sayfadır, hepsini burda anlatmak mümkün değildir fakat genel olarak içeriğine değineceğiz.Çalışmanın özetini okumak için devam ediniz :)
Microchip TCP/IP Stack’ i geliştirdiğiniz uygulamaları çeşitli ethernet modülleri ile kablosuz veya kablolu olarak alt ağlara veya internete bağlamanıza yarayan kodlar topluluğudur.Bunları bir nevi framework kütüphanesi olarakta düşünebiliriz.Yaptığınız uygulamaları uzaktan kontrol edebilir, veri toplama amacıyla kullanabilir veya web sunucusu olarak kullanabilirsiniz.Yapılabilecekler size bağlıdır.
Geliştirilmeye 2000 yılının başından itibaren başlanmıştır ve şuanki en yeni sürümü 5.20b dir. Bu kütüphane ile ethernet arayüzü olarak ENC28J60, ENCX24J600 serisi çipleri,dahili ethernet çipleri barındıran PIC işlemcileri veya ZeroG serisi kablosuz modülleri kullanabilirsiniz. Bu kodları 18F, 24F, 24H, dsPIC ve PIC32 ailelerinde kullanabilirsiniz.Fakat benim size tavsiyem kullanacağınız işlemcinin hafızası mümkün olduğunca yüksek olsun.Yoksa kapsamlı bir uygulama yapacak olursanız işleminin hafızası yetersiz gelebilir. Ben uygulamaları 18F serisi işlemciler ile yaptım.8 bitlik 18F ailesinden bir işlemci kullanacaksanız minimum 64K hafızaya sahip bir işlemci seçmenizi tavsiye ederim.
Geliştireceğiniz donanımlar bu kütüphane ile internetin tüm nimetlerinden faydalanabilmektedir.Çok profesyonel uygulamalar geliştirilebilir.FTP veya HTTP üzerinden donanımınıza dosya yükleyebilirsiniz,indirebilirsiniz, tüm özellikleri ile HTML bir web sitesi yayınlayabilirsiniz, yaptığınız donanımlardan mail attırabilirsiniz, TCP veya UDP üzerinden kendi uygulamanızı geliştirip yerel ağ üzerinden veya internet üzerinden donanımlarınızı kontrol edebilirsiniz.Bunların hepsini deneyip örnek kodları ile kitaba yazdım.Teknik bilgi için indirip okuyabilirsiniz.
Adından da anlaşılacağı üzere Stack, TCP/IP referans modelini kulanmaktadır.Bu dört katmanlı bir referans modelidir ve internet trafiğinde uyulması gereken bazı kuralları standartlaştırmaktadır. Stack yapısının TCP/IP modeline göre nasıl şekillendirildiğini aşağıdaki şekilde görebilirsiniz.Aşağıda adı geçenler ve çok daha fazlası kitapta anlatılmıştır.
Stack kodları Co-operative Multitasking olarak çalışmaktadır.Yani belli bir modül işini olabildiğince çabuk bitirip programın akışını diğer modüle vermektedir.Bu modüller bir çevrim içerisinde sırasıyla çalışarak sistemin görevlerini yerine getirirler.Program ilk açılıp ilk ayarlamalar yapıldıktan sonra main fonksiyonu içerisindeki sonsuz while döngüsünde bu modülleri devamlı devamlı çağırmaktadır.Bu sistemin sonucunda kullanıcılarda kendi yazmış olduğu fonksiyonları while döngüsü içerisine ekleyerek sisteme dahil etmiş olurlar.Fakat kullanıcıların dikkat etmesi gereken, yazdıkları kodların uzun gecikmelere yada sonsuz döngülere girmemesi gerektiğidir.Aksi halde multitasking yapısı bozulacak ve sistemin işleyişi duracaktır.Bu durumda donanım ağ üzerinden gelen isteklere cevap veremez hale gelir.Bunları dökümandan okuyabilirsiniz.
Yaptığım uygulamalardan bahsetmeden önce donanımı bir inceleyelim. Temel olarak donanımda işlemci olarak 18F4620 ve 18F4685 kullandım (18F4685 kullanmamın nedeni email uygulamasında 18F4620 nin 64K lık hafızasının yetersiz kalmasıdır. 18F4685 DIP kılıfta 96K hafızaya sahiptir) Bacakları aynıdır fakat donanımsal olarak bazı farkları vardır.Mesela 18F4685te 1 adet PWM pini vardır.Farkları için datasheetlerine bakabilirsiniz. Ethernet arayüzü olarak ENC28J60 kullandım.Web sunucusu uygulaması için 256K lık 25AA256 EEPROM, olan bitenden haberdar olmak için LCD ve senaryo oluşturması bakımından motor sürücü ekledim.Modüler bir yapı oluşturması ve gerektiğinde işlemci nin veya ethernet arayüzünün değiştirilebilmesi için işlemci ve ethernet olmak üzere projeyi 2 ye böldüm.Aşağıdaki şekillerde devre şemalarını ve fotoğrafları görebilirsiniz.
İşlemci Donanımı (Büyütmek için üzerine tıklayınız)
Ethernet Donanımı (Büyütmek için üzerine tıklayın)
Proje Donanımı
Breadboard dan PCB ye
Yaptığım uygulamanın çizimleri ve fotoğrafları yukarıda gözükmektedir.Bu donanım ile yaptıgım uygulamalar aşağıda listede gözükmektedir.Bazıları için proje dosyalarını pakette bulabilirsiniz.Bunlar sadece kitabın sonunda yer verdiim uygulamalardır. Kitap içerisinde kısa kısa değinip kodlarını verdiğim başka örneklerde vardır.
- HTML Web Server
- TCP Sunucu Uygulaması
- TCP İstemci Uygulaması – Bilgisayar
- TCP İstemci Uygulaması – SQL İnternet Veritabanı
- TCP İstemci Uygulaması – Google’da Arama Yaptırtmak
- UDP İstemci Uygulaması
Uygulamalardan TCP üzerinden kontrol ve veritabanı uygulamasının ekran görüntüleri aşağıdaki gibidir.
Mesajın başında belirttiğim gibi kitap 74 sayfadır ve hepsini burada anlatmak mümkün değildir :) Microchip Stack v5.20 (5.99MB) linkinden dosyayı indirebilirsiniz.