PIC16F84 Eeprom Basit Web Server Assembly Ccs C

| Mayıs 24, 2023 Tarihinde güncellendi
PIC16F84 Eeprom Basit Web Server Assembly Ccs C

Merak ettiğim ve denemek istediğim bir proje web server 16f84 ile iki adet proje var devreler seri ve paralel port bağlantılı ve devrelerde 24c256 eeprom kullanılmış uygulamasanızda pic ve epprom haberleşmesi örnek olabilir.

PCBway Türkiye PCB Manufacturer PCB Assembly


PIC Web Sunucusu (PIC16F84 )

HTTP 1.0 web sunucusu
minyatür TCP/IP uygulaması
RS232 seviye SLIP arayüzü
99 dosyaya kadar 32kB dosya depolama

Devam eden ‘dünyanın en küçük web sunucusu’ iş parçacığından esinlenen, ancak kesinlikle bir rakip olmayan bu küçük HTTP sunucusu, bir RS-232 Seri Hat IP (SLIP) bağlantısı üzerinden bir seri EEPROM’da saklanan dosyalara hizmet vermek için bir PIC16F84 mikrodenetleyici kullanır.

Proje donanımı 3 ana bileşen içerir: gerçek bir RS232 seviyesinde seri arayüz sağlamak için bir Maxim MAX233 RS232 verici/alıcı, sunucunun operasyonel kalbini sağlayan bir 10 MHz 16F84 PIC mikrodenetleyici ve bir 256kb seri (I2C veriyolu) EEPROM sunucunun dosya sistemini içerir. LED’ler gelen ve giden verileri bildirir.

Mikrodenetleyiciyi ve EEPROM’u yeniden programlama için çıkarılmalarına izin vermek için soketledim, ancak özellikle yüzeye montaj yapısı kullanılıyorsa, bu parçaların devre içi programlaması için bazı hükümler eklemek isteyebilirsiniz.

web-server-pic16f84 www-server-in-a-pic16f84-24c256-eeprom

Yazılım

PIC kodu, Özel Bilgisayar Hizmetleri’nden PCM derleyicisi kullanılarak C dilinde yazılmıştır.

Sunucu kodu, temel işlevsellik sağlamak için yeterli olan ancak boşlukları doldurmak için SLIP sunucusuna ve istemci uygulamasına dayanan, TCP/IP standartlarının minimum bir alt kümesini uygular. Durum bilgisiz bir TCP/IP modeli kullanılır; istekler arasında tutulan tek bilgi, bir paket her sunulduğunda artan sunucu IP paketi kimlik numarası ve her yeni bağlantı istendiğinde 64000 artan ilk sunucu TCP sıra numarasıdır.

Sunucuya bir paket geldiğinde, gelen baytların kodu SLIP tarafından çözülür ve paketi yanıtlamak için gereken alanlar saklanır. 20 baytlık bir IP başlığı varsayılır ve tüm TCP seçenekleri göz ardı edilir – kullanılıyorsa standart bir 576 MTU. Tanımlanan HTTP bağlantı noktası (genellikle 80) dışındaki TCP bağlantı noktalarına bağlantı girişimleri bir TCP ReSeT yanıtı oluştururken, alınan TCP olmayan paketler sessizce atılır.

Sunucu dosyalarının 01 – 99 aralığında 2 haneli tanımlayıcıları vardır. Harici EEPROM’da kullanılan dosya sistemi aşağıda ayrıntılı olarak açıklanmaktadır. Varsayılan bir ‘/’ isteği dosya 01’e sunulurken, var olmayan dosyalara veya geçersiz dosya adlarına yönelik istekler doğru başlıklı bir ‘404 hatası’ sayfası alır. Birden çok MTU uzunluğundaki dosyalar sunulabilir, ancak durum bilgisi olmayan TCP/IP, daha fazla paketin yanıtlanabilmesi için istenen her dosyanın eksiksiz olarak sunulmasını gerektirir. Bu nedenle, sunucu yanıt vermiyor gibi görünmüyorsa daha büyük dosyalardan kaçınılmalıdır.

Sunucu kayıp paketleri yeniden iletmez ve istemci ACK’leri yok sayılır – bir yanıt alınmazsa istemcinin isteğini yeniden ileteceği varsayılır. İstemci FIN’leri işlenmez; normal çalışmada sunucu, istenen dosya sunulduktan sonra bağlantıyı kapattığından ve istemci bağlantıyı iptal ederse (örneğin, tarayıcı kapatıldığında) onay gerektirmeyen bir RST alındığından, bunlar beklenmez.

Ağ bağlantısı

İndirme paketindeki sunucu hex dosyası, HTTP bağlantı noktası 80 ve IP yerel adresi 192.168.2.3 olarak yapılandırılmıştır – bu değerler C listesinin en üstünde tanımlanmıştır.

PIC sunucusu, ağ bağlantısını sağlamak için bir ana bilgisayar SLIP sunucusuna (tipik olarak Linux veya bir tür BSD çalıştıran) güvenir. Ana makinede SLIP sunucusunu kurmaya yönelik kesin komutlar, kullandığınız işletim sistemine bağlı olacaktır. Bunlar FreeBSD 3.3 için çalışır:

çıta -h -l -n -s 19200 /dev/cuaa3
ifconfig sl0 192.168.2.2 192.168.2.3 yukarı

(İlk IP numarası, SLIP bağlantısının sunucu tarafının adresini tanımlar). PIC sunucusunu ağdaki diğer makineler tarafından erişilebilir kılmak için ayrıca yönlendirmenin ayarlanması ve SLIP sunucusunda bir ARP girişi eklenmesi gerekir.

tcpdump çıktısının kodunu çözen, ücretsiz olarak indirilebilen bir BSD / Linux yardımcı programı olan tcpshow, SLIP bağlantısı boyunca dolaşan paketleri gözlemlerken çok yardımcı olur – tcpshow kurulu FreeBSD’de bu komut, tcpdump arasında değiş tokuş edilen verilerin canlı, insan tarafından okunabilir bir görüntüsünü verir. PIC ve SLIP sunucusu:

tcpdump -s 1518 -lenx -i sl0 -S | tcpshow -pp -cooked -track

EEPROM Dosya Sistemi

EEPROM’un ilk 400 baytı Dosya Ayırma Tablosunu içerir. Her dosyanın 4 baytlık bir girişi vardır: ilk iki bayt dosyanın başlangıç baytını tutar ve ikinci iki bayt dosyanın uzunluğunu tutar.

İlk dört bayt (yani 0h-3h) ‘Dosya bulunamadı’ sayfasına işaret etmelidir.
İkinci dört bayt (yani 4h-7h) indeks sayfasını (01) işaret eder.
Bayt 8h-18Fh referans dosyaları 02 – 99
Kullanılmayan dosya girişleri, ‘Dosya bulunamadı’ sayfasına işaret etmelidir

Her dosya kendi HTTP başlığıyla başlar ve ardından iki CR/LF gelir.

border-bolme

pic16f84-eeprom-basit-web-server

pic-web-server-ccsc

ccs-c-pic16f84-web-server

PIC Web Server (CCS-C)

* HTTP 1.0 web server
* miniature TCP/IP implementation
* RS232 level SLIP interface
* 32kB file storage for up to 99 files

Features:

Soft UART baud rate : up to 38400
HTTP port : 1..255
Maximum TCP window size :128 (up to 255)
Program ROM use :about 400×14
RAM use : 32×8
Internal storage for www-pages :1K
External storage for www-pages : up to 8M

Description : Inspired by the ongoing ‘world’s smallest webserver’ thread, though definitely not a contender, this small HTTP server uses a PIC16F84 microcontroller to serve files stored in a serial EEPROM over an RS-232 Serial Line IP (SLIP) connection.

Hardware : The project hardware includes 3 main components: a Maxim MAX233 RS232 transmitter/receiver to provide a true RS232-level serial interface, a 10 MHz 16F84 PIC microcontroller which provides the operational heart of the server, and a 256kb serial (I2C bus) EEPROM which contains the server’s file system. LEDs signal incoming and outgoing data.

I socketed the microcontroller and EEPROM to allow them to be removed for reprogramming, but you might want to add some provision for in-circuit programming of these parts, especially if using surface mount construction.

Software : The PIC code was written in C using the PCM compiler from Custom Computer Services. The server code implements a minimum subset of the TCP/IP standards, sufficient to provide basic functionality but relying on the SLIP server and client application to fill in the gaps. A stateless TCP/IP model is used; the only information maintained across requests is the server IP packet identification number, which increments each time a packet is served and the initial server TCP sequence number, which is increased by 64000 each time a new connection is requested.

Kaynak: sxlist.com/techref/piclist/petrovwwwpic/index.htm

pic16f84-eeprom-basit-web-server-assembly-ccs-c

Şifre-Pass: 320volt.com

Yayım tarihi: 2009/01/26 Etiketler: , , , , , ,



3 Yorum “PIC16F84 Eeprom Basit Web Server Assembly Ccs C

  1. kankoskankos

    bu projeniz ilgimi çekti.:)
    bilgisayar açık olmadan da işlevine devam edebiliyor mu?
    ve bir flash bellek ile alanı büyültülebilir mi ?

    CEVAPLA
  2. eyüpeyüp

    bu devre hakkında acıklayıcı bir bilgi veririmisiniz. modemede bağlamak mümkünmüdür?

    CEVAPLA
  3. HasanHasan

    Bu devreyi nasıl yapacağımız anlamadım. Devre kaç parça ? 2şema var.. Neler programlanıyor ? Fazla zor bir devre değil ama çok karışık.

    CEVAPLA

eyüp için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir