STM32F103C8'e ethernet çipi bağlamak

Başlatan z, 17 Eylül 2016, 18:33:38

z

Haklısın. Ben yatayım kafam durmuş.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#182
Bana paket yollaması için iş yerinde ise crosslu kablo ile PC'yi kullanıyorum.

Evde crosslu kablom yok. Bu nedenle internete bağlandığım modemi kullanıyorum. Arada bir modemi resetlersem internete de bir kaç dakikalığına giremiyorum evde sorun oluyor.

Yıllar önce kullandığım Airties ADSL modem boşta. Ancak bunu ECP çipime bağlarsam modem sağlam olduğu halde hiç paket göndermiyor.

Sebebini biliyormusunuz? Modemin muhakkak  çalışır bir ADSL hatta mı bağlı olması lazım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#183
Wireshark programını kurdum fakat nasıl kullanılacağını anlamadım.

PC ile ECP kitim birbirine bağlı.

Aradaki trafiği nasıl izleyeceğim?

ECP kitine giden ve gelen verileri byte byte görmek istiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

"interface list" bölümünden; izleyeceğiniz ağ donanımı seçip "start capture" ile başlatacaksınız.

Ekranın üzt kısmında gelen giden paketleri ve ilgili ip adreslerini vs..  olan liste göreceksiniz.
Listeden bir paket seçtiğinizde , alttaki pencerede paketin verisini göreceksiniz.

en üstte filtre kutusu var. Oradan kaynak ip , hedef ip , protoko vs.. gibi filtrelemeler yapabilirsiniz.

z

#185
ARP cevabını hazırlayıp gönderdiğimde paket gitti flagı set oluyordu ancak karşı tarafın bu cevabı almadığını düşünüyordum.
Haklıymışımda. Wireshark sayesinde ARP ye cevap gitmediğini gördüm.

Çipin PHCON2 registerindeki TXDIS bitini yanlış yazdığım bir fonskiyon yüzünden set ediyormuşum ve çip verileri lojik anlamda gönderiyor olsa da kabloya basmıyormuş.
Bu sorunu çözünce artık ethernetten datalar gitmeye başladı ve Wireshark ARP sorgusunun hemen ardından ARP cevabını doğru şekilde alıp IP ve MAC değerlerimi çözdü.

Artık paket alıp gönderebildiğime göre umarım bundan sonrası çok hızlı gelişir.

Artık tüm olay al gülüm ver gülüme dönecek.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

#186
PC'den ping atınca Type=8  Code=0 olarak ping isteği geldi.

Link1: https://en.wikipedia.org/wiki/IPv4    0x800 nolu IP Sorgusu
Link2: https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers    IP protokol numaraları
Link3: https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP paket yapısı
Link4: https://tools.ietf.org/html/rfc1071 Paketlerde Check Sum hesaplama
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

@gerbay hocam

Başım dertte.

Check sum hesabı yaparken hangi verilerin hesabını yapacağım anlamadım.

Örneğin IP PAket içinde ICMP paket geldi.

Bu iki paketin de kendilerine ait Check Sum alanı var.

ICMP paket Check Sum değerini hesaplarken Nerden başlayacağım nereye kadar hesaplayacağım?

IP paket Check Sum değerini hesaplarken Nerden başlayacağım nereye kadar hesaplayacağım?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

MrDarK

Alıntı yapılan: z - 27 Eylül 2016, 15:44:30
@gerbay hocam

Başım dertte.

ICMP paket Check Sum değerini hesaplarken Nerden başlayacağım nereye kadar hesaplayacağım?

IP paket Check Sum değerini hesaplarken Nerden başlayacağım nereye kadar hesaplayacağım?


https://ask.wireshark.org/questions/11061/icmp-checksum
https://tools.ietf.org/html/rfc792
Picproje Eğitim Gönüllüleri ~ MrDarK

z

#189
@gerbay hocam

Şu anda çok sevindiriğim çünkü ping atıldığında cevap verebiliyorum.

Peki bundan sonraki aşamam ne olacak?

http://youtu.be/Y7DX8yEP0gg

Hep tek pakete muhatap olacağımı sanıyordum. 0x800 paketi yüzünden tüm kodlamayı yeni baştan yapmak zorunda kaldım. Paket içinde paket geleceği hiç aklıma gelmemişti.

Aşağıdaki resmi daha yeni anlayabildim.



Olay aynen böyleymiş.



Kırmızı hapın devamı olmayacak mı?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Bundan sonraki aşama da TCP Protokolmü kodlanacak bilen varmı?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Burak B

Aşağıdaki linkte verdiğim uygulamayı yükleyin ve öğrenmeye anlamaya çalışın size çok faydası olacaktır bu noktadan sonra.
http://ostinato.org/downloads
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

z

#192
Şu anda önümü göremiyorum ve şu soru kafamı kurcalıyor.

Birden fazla kişi web serverdaki sayfama girerse bana gelen TCP paketleri
tek tek işleyip cevap yazmam yetecek mi?

Her sayfaya girene ayrı bir array vs acmam gerekecekmi?


https://en.wikipedia.org/wiki/User_Datagram_Protocol            UDP protokolü için doküman
https://en.wikipedia.org/wiki/Transmission_Control_Protocol    TCP protokolü için doküman
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Burak B

1 - Aynı anda kaç kişi aynı porta bağlanabilir(mi)ki acaba ?
2 - Bağlansa bile ne kadar süre bu portu işgal edebilir ?
3 - Uzun süre işgal ederse diğer bağlantı nasıl bir muamele görür ?
4 - 65535 adet port bize tahsisli mi ? Hepsini kullanabilir miyiz ?

bunların bir hilesi olmalı değil mi @gerbay :)
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

z

#194
Alıntı yapılan: gerbay - 27 Eylül 2016, 22:32:48
TCP için erken, önce UDP yi yap hocam.. network de ayrı ayrı pc ler aynı anda sana ping atarsa ne yapıyorsun?

Pinglerde sorun yok gibi. İşin içine 1500 byte'dan fazla datalar girince  işler karışacak mı o yüzden  soruyorum.

Aynı andan kastım t=0 da 10 kişinin benden istekte bulunması değil tabiki.
Birisi 3000 byte html sayfası cekecek diğeri 3000 byte data çekecek. Tek pakette 1500 byte yollayabiliyorum. Bundan dolayı ne olacak kestiremiyorum.

@Burak B

Alıntı Yap
1 - Aynı anda kaç kişi aynı porta bağlanabilir(mi)ki acaba ?
2 - Bağlansa bile ne kadar süre bu portu işgal edebilir ?
3 - Uzun süre işgal ederse diğer bağlantı nasıl bir muamele görür ?
4 - 65535 adet port bize tahsisli mi ? Hepsini kullanabilir miyiz ?

Hiç bir şey anlamadım. Mevcut sorunu söyleyin ki programı nasıl yazacağız nasıl bir strateji uygulayacağız baştan bilelim.

@gerbay hocam

Ne olur bırak şu dil meselesini. Farz et ASM değil de C kullanıyorum.
Fakat Kütüphane yok, RTOS yok olmaz mı?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com