Şu sıralar network ve TCP/IP sistemleri üzerinde fazlaca çalışıyorum. PIC ile yapmış olduğum TCP/IP uygulamasından sonra bir uygulamada ARM mikrodenetleyicileri ile yapmaya karar verdim :) Ayrıca bundan sonra yapacağım çalışmaları kitap formatında değilde uygulama notu formatında yayınlamaya karar verdim böylece daha az zamanda daha çok çalışma yapmış olacağız.001 den başlayarak zamanla gidebildiğimiz yere kadar gideceğiz :) Yapmış olduğum bu çalışmayıda linkten indirebilirsiniz. LPC2368_ve_uIP_TCP/IP_Stack.zip (740Kb)
Sözü uzatmadan uygulamaya dönelim. LPC23XX ve LPC24XX ailelerinin hemen hemen hepsinde ethernet donanımı bulunmaktadır. Bende bu uygulamamda LPC2368 boardumu kullandım. Uygulamada Keil firmasının uVision IDE sini kullandım. TCP/IP arayüzü içinse uIP stack'ini kullandım. uIP stack Adam Dunkels tarafından geliştirilmiştir. Hedeflediği işlemcilerin genelde düşük hafızalı 8 ve 16 bitlik işlemciler olduğunu söylesede bazı koşul ve fonksiyonları sağladıktan sonra hemen hemen tüm sistemlerde çalışabilmektedir. Yaptığım uygulamalarda da kod boyutunu kontrol ettiğimde 32 bitlik 512k hafızanın %2 ila %4 ünü kullandığını gördüm. Benim yaptığım uygulamalar gayet iyi çalıştı fakat Dunkels sistemi yeteri kadar iyi test etmediğini yazmış. Dolayısıyla profesyonel ve güvenli uygulamalar yapmak istiyorsanız arkasında firma olan daha profesyonel stack leri kullanmanızı tavsiye ederim.
Yukarıda bahsettiğim bazı koşul ve şartlar kullanıcıların sisteme sağlaması gereken fonksiyon ve bildirimlerdir. Bu fonksiyonlar uIP ile LPC2368 in donanımını haberleştiren arayüz fonksiyonlarıdır. Bunlar içinse nxp nin hazırladığı kütüphane fonksiyonlarını kullandım. Bunların hepsi yazdığım uygulama notunda anlattım. Lisans haklarından dolayı bu yazılımları ben dağıtmıyorum fakat yazdığım dökümanda kaynaklar kısmında linklerini bulup kendiniz indirebilirsiniz. Bu yüzden benim yayınlamış olduğum paket içerisinde sadece kendi yazmış olduğum uygulama notu ve kendi yazmış olduğum kodlar bulunmaktadır.
Uygulama notunda ise uIP ile birlikte gelen webserver, webclient ve telnet uygulamalarını anlattım. Ayrıca uIP API lerini kullanarak kendi kişisel TCP uygulamalarınızı nasıl gerçekleştirebileceğinizi anlattım.Böylece ARM üzerinde kendi basit web sunucunuzu çalıştırabilir veya herhangi bir adresten bir sayfayı veya dosyayı, haberleşme arayüzünü sağladığınızda SD kart gibi hafıza birimlerine indirebilirsiniz. Kendi yazmış olduğum kodları ve uygulama notunu konunun başında vermiş olduğum linkten indirebilirsiniz. Aşağıda ise proje kapsamına yapmış olduğum uygulamaların ekran görüntülerini görebilirsiniz. Çalışmanın ihtiyacı olanlara veya öğrenmek isteyenlere faydalı olacağını düşünüyorum. İyi çalışmalar..
Uygulamaları üzerinde çalıştırdığım board.
Web server uygulamasından bir ekran görüntüsü. Web sayfaları LPC2368 in flash hafızasında çalışmaktadır.
Kişisel TCP/IP uygulamam. Yazdığım program yukarıdaki boardla haberleşmektedir.Bu uygulamada board sunucu, program istemci durumundadır. Sunucu menu gönderir istemciden gelen seçime göre çıktı üretir.
Yukarıdaki TCP/IP uygulamam sırasında LPC2368 üzerinde gerçekleşen olayların terminal çıktısı