pic16f877 mikrodenetleyici ile hazırlanan devrede eski bir ISA eternet (3com eherlink ) kullanılmış tahminimce PIC internet bağlantısı yapılan bir uygulama tam emin değilim 🙂 devrenin amacını anlayamadım pic programlama ile uğraşak kişiler çözebilir kaynak asebbely asm pcb (eagle) kontol programı vb. dosyalarının olması yayınlama sebebi büyük ihtimal ilgilenen kişilerin işine yarayacaktır.
PIC16F877 ve Ethernet (TCP/IP protokolü ile) işbirliği için bir temel oluşturma fikriyle Pic3Com yapımını (sürüm 0.1) yaptım. Bu proje için ISA NIC 3C509’u (en sevdiğim ethernet kartım) seçtim, çünkü ISA protokolünün mikroişlemcilerde uygulanması kolaydır.
Sürüm 0.1 şunları uygular:
ISA 3c509 (3c509B) NIC’nin başlatılması – NIC, iletişim G/Ç=0x300 ve Kesme 10 için yapılandırılmalıdır
adres çözümleme protokolü – ARP
internet protokolü – IP (İnternet iletişimi için varsayılan ağ geçidi desteği dahildir)
ping (ICMP Yankı İsteği / Yanıtı)
TCP protokolleri – TELNET (sunucu ve istemci) ve HTTP (sunucu, PIC’in RAM’inin 2KB’si html sayfaları için ayrılmıştır)
UDP protokolü gündüz – dahili DS1302 RTC’nin senkronizasyonu için
sıcaklık ölçümü (7 adede kadar) bağlı SMT 160-30 sensörleri (uygun Telnet protokolü tabanlı talebe yanıt olarak)
bağlı meteostasyondan izlenen verileri yetkilendirme ve gönderme olasılığı ile aprsd akışına bağlanın
iki değiştirilebilir aprsd veri çıkış formatı (TNC2 veya UIView günlüğü)
çok düzeyli program çalıştırma hata ayıklama olasılığı
RS-232 portu üzerinden kontrol
işlemcinin EEPROM’u aracılığıyla yapılandırma
– Diğer işlevlerin uygulanması için yaklaşık 2 KB boş program belleği (veya maksimum hata ayıklama seviyesi seçilirse 1,5 KB) için (0.1 sürümünde) kalır
Güç açıldıktan sonra LED iki kez kısa süre sonra yanıp sönmeli ve ardından bir daha uzun yanıp sönmelidir – bu, 3c509 NIC başlatmanın başarılı olduğunu gösterir. Bundan sonra program ana döngüye girer ve internetten (Telnet veya Http) veya RS-232 portuna bağlı meteostasyon, PC, …’den gelen verileri bekler. Yapılandırma tarafından gerekliyse, ağ geçidinden MAC adresi ister, RTC senkronizasyonu için Udp isteği gönderir veya kendisini yapılandırılmış aprsd sunucusuna bağlar, yetkilendirme, meteostasyondan veri gönderir,… tümü EEPROM yapılandırmasına dayalıdır
Pic3Com’un IP’si için ARP isteği alınırsa işlenir ve yanıt gönderilir
ICMP ping (Echo Request) alınırsa Echo Reply gönderilir. PIC tarafından Ethernet çerçevesinin yalnızca ilk 222 baytının okunduğuna dikkat edin. Bu, herhangi bir ağ iletişimi için geçerlidir, bu nedenle ping için, maksimum 180 veri baytlık ping paketinin okunup geri döndürüldüğü anlamına gelir!
TCP oturumları için program, TCP anlaşmasında maksimum segment boyutu (MSS) seçeneği gönderir – Telnet protokolü için MSS, tüm Ethernet çerçevesini 222 bayta sığdırmak için azaltılır. http protokolü için büyük MSS (yaklaşık 65000 bayt), http istemcisinin tüm HTTP GET isteğini parçalara ayırmaya gerek kalmadan göndermesini sağlamak için kullanılır. Çünkü PIC, yalnızca GET yan tümcesi ile başlayan ilk HTTP GET paketini yanıtlar.
aprsd sunucusuyla oturumun kesilmesi durumunda, program bağlantıyı kurtarmak için (zaman aşımından sonra) bağlantı istekleri göndermeye başlayacaktır.
Gündüz/udp protokolü aracılığıyla zaman senkronizasyonu yaklaşık olarak her bir tekrarlanır. Dahili RTC’nin doğru olduğundan emin olmak için 2 saat. Bu özelliği kullanmak istiyorsanız, bu hizmeti İnternet’teki bazı sunucularda etkinleştirmeniz gerekir. Gündüz için herhangi bir UDP bağlantı noktasını seçebilirsiniz çünkü gündüz için bağlantı noktası işlemcinin EEPROM yapılandırmasından alınır. Varsayılan udp bağlantı noktası 13’ü değil, 1024’ün üzerindeki bazı bağlantı noktalarını kullanmanızı öneririm.
Http isteği alınırsa (port 80’li TCP/IP paketidir) (veya aprs http için 14501) program istenen sayfanın ilk harfini kontrol eder ve program belleğinin html sayfası alanında bulunursa sayfayı döndürür. Karşılık gelen sayfa bulunamazsa, program varsayılan indeks sayfasını döndürür.
Telnet talebi alınırsa (port 23) program istemi döndürür ve komutları bekler. Her paket istem tarafından taahhüt edilir. Şu anda yalnızca 2 komut uygulanır: q = çık (telnet oturumunu sonlandırır) ve programın uzaktan sıfırlanması – bu özelliğin derleme zamanında etkinleştirilmesi gerekir.
SMT portu (18624) için Telnet talebi alınırsa, program SMT sensörlerinin bağlı olduğu konfigürasyondan kontrol eder ve sıcaklık değerlerini ölçer. Finaly, Zaman Damgasını (bağlıysa RTC’den) ve ardından SMT’lerden sıcaklık değerlerini (Santigrat cinsinden) döndürür. Ve telnet oturumu program tarafından kesilir.
Program RS-232 portundan da dinler ve bu porttan gönderilen tüm komutlar işlenir. (Bağlı meteostatinden gelen veriler de komuttur – anlamı: aşağıdaki verileri WX string int RAM kayıtları olarak kaydedin.)
İlk açılış için EEPROM’da DS1302 RTC’nin başlatılması etkinleştirilmelidir. RTC kapasitör tarafından yedekleniyorsa bunu devre dışı bırakabilirsiniz. Kapasitör boşalırsa, başlatmayı da yeniden etkinleştirmeniz gerekir. RTC başlatılmazsa düzgün çalışmayabilir.
3c509 program tarafından tanınmazsa, LED hızla yanıp sönecek ve program bu noktada duracaktır. NIC’nin yuvaya iyi yerleştirilip yerleştirilmediğini ve işlevsel olup olmadığını kontrol edin (bazı bilgisayarlarda…).
NIC bulunursa ancak G/Ç=0x300 için uygun şekilde yapılandırılmazsa, LED tekrar tekrar iki kez yanıp sönecektir
I have made Pic3Com construction (version 0.1) with idea to have a basement for PIC16F877 and Ethernet (with TCP/IP protocol) cooperation. I have choosen ISA NIC 3C509 (my favourite ethernet card) for this project, because ISA protocol is simple to implement in microprocessors.
inicialization of ISA 3c509 (3c509B) NIC NIC have to be configured for communication I/O=0x300 and Interrupt 10
address resolution protocol ARP
internet protocol IP (support for default gateway included for Internet communication)
ping (ICMP Echo Request / Reply)
TCP protocols TELNET (server and client) and HTTP (server, 2KB of PIC’s RAM are dedicated for html pages)
UDP protocol daytime for synchronization of internal DS1302 RTC
temperature measurement (up to 7) connected SMT 160-30 sensors (as a reply to appropriate Telnet protocol based request)
connect to aprsd stream with possibility to authorize and send data tracked from connected meteostation
two switchable aprsd data output formats (TNC2 or UIView log)
multilevel program run debug possibility
control via RS-232 port
configuration via processor’s EEPROM
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/08/02 Etiketler: eternet, microchip pic projeleri, PIC16F877P, rs232, web server circuit
sağol ama ben bundan hiç birşey anlayamadım ne işe yarıyor acaba iyi bir şey mi??????? 🙁
yeniyo mu ki bu 😀
Arkadaşlar karşınızda görmüş olduğunuz proje bir webserver kurmakta. çeşitli özellikleri var. başta anladığım kadarıyla meteoroloji istasyonu için planlanmış. Bir yere bu aleti koyuyorsun oradaki ölçümleri internetten takip ediyorsun. Bu alet sana internet yayını yapıyor.
Kolay gelsin arkadaşlar bu ISA portuyla yapmış PCI bulmak lazım
Merhaba arkadaşlar evet ibrahim bey doğru bir yorum yapmış. Ancak ISA yerine PCI aramak yerine bu iş için yapılmış, yukarıdaki devrenin yaptığı işi fazlasıyla yapan ve parmak büyüklüğündeki ürünler piyasade mevcut. Bu cihazların genel adı “Device Server” olarak geçer ve fiyatları 40-50 USD arasındadır. Yaptığı işe bakacak olursak bu fiyat amatör uğraşlar için bile makul bir fiyat.
http://www.lantronix.com/device-networking/embedded-device-servers/xport.html
Bakın burada daha önce kullandığım ürünün linkini veriyorum. Eğer hiçbir bilgisayara gerek kalmadan bir mikrodenetleyiciyi ethernet ağına dahil etmek ve bu cihaz ile TCP/IP protokoküyle minumum yazılım zahmetiyle haberleşmek isterseniz bu ürünü kullanın. Hatta 500kB civarında sayfaları cihaz üzerinden sunabilirsiniz. Bu sayfalar üzerinden aynı ADSL modeminizin ayar sayfasında olduğu gibi mikrodenetleyicinize (mesela PIC16F877) ayar yapıp veri yazabilirsiniz.
Hepinize kolay gelsin…
Güray bey’e teşekkürler
Güray Bey gerçekten çok teşekkürler süper bir öneri oldu.
Görüşmek dileğiyle
Teşekkürler Guray Bir çok kişinin işine yarayacak bilgi
Aynı işi gören yerli tasarım urunler de mevcut.
http://www.mitatek.com.tr/kategori_eth.htm
Fiyat olarak da muadilleri ile aynı mertebede.