Ana içeriğe git

Haberler

Konu: Ethernet yolları nasıl olmalı (2686 Kez okunmuş) önceki konu - sonraki konu

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.
  • ashes
  • [*][*][*][*][*]
Ethernet yolları nasıl olmalı
STM32f407vg ile ethernet içeren bir devre çizdim açıkçası empedans falan fazla umursamadım. Sonuç olarak gol oldu :). Pc den attığım seri 1000 paketin 3 te 2 si arızalı diye discard ediliyor. Sorunu kıstırmak için phy da loopback açtım rmii arayüzünde bir sıkıntı yok. karttan 4 ms de bir 10 paket basıp hatasız alabiliyorum kayıp yok. Sorun phy ile manyetik arasında kurtarılabilir mi emin değilim şu anki çözümüm kartta autonegi kapatıp 10 mbit full duplexe çaktım.

Özet: Ethernet phy ile manyetik arasındaki yol nasıl olmalı ?

  • M_B
  • [*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #1
@ashes Hocam;
Kutuphane olarak Hal mi std lib mi kullanıyorsunuz hocam.
Elimde forumda da yazmıs olduğum
modul ve ornekleri var.
Bi ara forumda sormustum.  Bu ethernet olayını ogrenmek ıcın nerden nasıl baslamalıyım diye.
Gene dun tekrar basladım bu modulle ilgilenmeye.  ama henuz stdlib li orneklerini incelemek dişinda bir şey yapamadım.
CubeMx le Ethernet pinlerini ayarlamaya calıstım ama lwip deki fonksiyonları kullanmayı bilmiyorum.
Birde CubeMx  ile ethernet pinlerini sectim ve include ettim ama nasıl test edebilirim. Acaba dogrumu yaptım.
Ethernet Entegrem LAN8720
Yapmak istediğim
http://www.barissamanci.net/Makale/3/microchip-stack-v520-yaptiginiz-donanimlari-dunyaya-acin/ linkteki Ethernet yönetim  programın daki gibi bir ornek uygulama.

Tum bunları hallettikten sonra stm32f407 ve LAN8720 li pcb cizecem ve hayata gecirmem gerekiyor. bu uygulamayı benden 3-5 ay icinde yapmam isteniyor.  Ethernet olayında hiç bilgim yok nasıl ne yapacam bilmiyorum. Şimdilik kodları incelemek ve anlamakla geciyor.

Bana bir yol harıtası oneriniz varmı ?
Elimde imkan var ama ortaya bir şey cıkaramıyorum.


  • Son Düzenleme: Şubat 24, 2017, 22:34:10 - M_B

  • ashes
  • [*][*][*][*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #2
@M_B ben projede lwip kullanmadım işin gerçeği tcp ve udp de kullanmadım. Benim kartta sadece layer 2 ham ethernet ve benim üzerine yazdığım ipv4 katmanı mevcut yani osi layerda 3 e kadar gidiyor. Size ancak bu noktaya kadar yardımcı olabilirim. Lwip için örneklerini devşirmeye çalışmanız yararlı olacaktır.
Ethernet için sonradan yayınlanan stdlib dosyasını kendi isteklerime göre yapılandırdım. Mesela ethernetin dma için hazırlanan descriptorları tamamen ben yönetiyorum. İlk init sırasında phy a erişip link bekliyordu onu da kapattım.
Özetle başlangıç noktanız layer 2 ham ethernet paketi atmak ve almak olmalı gerisini örneklerle halledebileceğinizi düşünüyorum.

  • M_B
  • [*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #3
@ashes  Hocam Gunaydın;
Haklısınız  Layer 2 'yle başlamak lazım ama nasıl   paket nasıl alınır atılır. Nasıl paket kontrol edilir.  Kafamda bir takım sorular
Hocam işin özü bu konuyla alakali hiç bilgiye sahip değilim nete dalıncada farklı yerlere goturuyor.
sonra bakmıssınız olaydan uzaklaşma kopmalar oluyor.  Zaman geciyor ortada elle tutulur bir şey olmuyor.

  • ashes
  • [*][*][*][*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #4
@ashes  Hocam Gunaydın;
Haklısınız  Layer 2 'yle başlamak lazım ama nasıl   paket nasıl alınır atılır. Nasıl paket kontrol edilir.  Kafamda bir takım sorular
Hocam işin özü bu konuyla alakali hiç bilgiye sahip değilim nete dalıncada farklı yerlere goturuyor.
sonra bakmıssınız olaydan uzaklaşma kopmalar oluyor.  Zaman geciyor ortada elle tutulur bir şey olmuyor.

STM32 açısından datasheetin dma kısmına odaklanmanız lazım nasıl paket atılır için. Ben LwIP örneklerinden paket alma atma kısımlarına bakarak anlamıştım nasıl atıldığını. Kendi driverımı hafta içi buraya koyabilirim.
Ethernet açısından alınan paketi incelemek için WireShark programı, karta paket atmak için Ostinato programı iyi birer program. Pakete içerik kontrolünü PC'de yaparsınız. PCB kısmı çok önemli yoksa sizde benim gibi paket kaybı yaşarsınız.

  • M_B
  • [*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #5
Merhaba @ashes  hocam;
Ethernet uygulamamdaki gelişmeleri buraya yazmak istedim.  Bilgilendirme amacıyla.  Hemde bilgiler burda kalıcı olur.
 
Öncelikle Ethenetle ilgili hiç bir şey bilmiyorken ne nasıl yapılır bilgi sahibi değildim.
Önce elimdeki modullerin örnek kodlarını inceleyerek işe başladım. 
Örnek kodlarla ilgili uygulamaları wireshark ve herkules program ve Telnet aracılığıyla veri aliş verişini yapabildim.
wireshark ile gonderilen ve gelen veriyi görebildim.
Kodları adım adım inceleyerek mantığını cözmeye başladım.
Oncelikle Ethernet driver kurulumu yapıyor.
-mem_init();
-memp_init();

-tcp_new();
-tcb_bind();
-tcp_bind();
-tcp_accept();

-tcp_accept() icinde baglantıyi kabul ettigine dair yeni bir ( user tarafından tanımlı fonksiyon )
fonksiyona yonlendiriliyor.
Ondan sonra tekrardan fonksiyon icinde paket almasına yararyan bir başka fonksiyona dallanılıyor.
Sistem paket geldiğinde ilgili fonksiyona gidip veriyi alıyor.
Aldıktan sonra verinin işlenmesine kalıyor.

Biraz daha toparlayıp ilerde kismetse yazı olarak yazacam.

@ashes  hocam bu aşamadan sonra şimdi aklıma takılan sorularım var. Hardware olarak

-PHY entegresi olarak ne kullanayım. Şu an elimdeki moduller deki chipler LAN8720 ve DM9161A
Bu chipleri Temin etmesi kolay mıdır.
Hocam sizin tasarladığınız kısmın Ozel ve ticari değilse Sematik ve Entegre ismini paylaşabilirmisiniz.
Birde hocam bunların sizde Diptrace te Library si var mı?
STM32F107 ve STM32F407

Teşekkürler.






  • FxDev
  • [*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #6
İçim gitti Ethernet'i tekrar görünce :)
lwip ya da uip'i birisi tam teşekküllü yazsa süper olacak :)

  • M_B
  • [*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #7
İçim gitti Ethernet'i tekrar görünce :)
lwip ya da uip'i birisi tam teşekküllü yazsa süper olacak :)
İnşallah Hocam olayı bitirirsem yazmak istiyorum.
Kismet bakalım. ( ama çok detaylı anlatamam cünkü c ye hakim değilim)

  • ashes
  • [*][*][*][*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #8
İçim gitti Ethernet'i tekrar görünce :)
lwip ya da uip'i birisi tam teşekküllü yazsa süper olacak :)
@FxDev eğer tcp ve udp tabanlı uygulamalar için soruyorsanız bunun en güzeli wiznet in çipleri. Bu çiplere açık söylemek gerekirse bayılıyorum :) . Eksileri ise düşük trafik, kapalı tcp/ip stack, sınırlı soket sayısı artıları; sıkıntısız çalışması, düşük güçlü MCU ile kullanılabilmesi.
Aslında UiP kısmen daha basit uyarlaması fakat onunda çok temel noktalarda eksiklikleri (küçük MCUlar için tasarlanmış olmasından dolayı) var diye hatırlıyorum.

  • ashes
  • [*][*][*][*][*]
Ynt: Ethernet yolları nasıl olmalı
Yanıt #9
Merhaba @ashes  hocam;
Ethernet uygulamamdaki gelişmeleri buraya yazmak istedim.  Bilgilendirme amacıyla.  Hemde bilgiler burda kalıcı olur.
 
Öncelikle Ethenetle ilgili hiç bir şey bilmiyorken ne nasıl yapılır bilgi sahibi değildim.
Önce elimdeki modullerin örnek kodlarını inceleyerek işe başladım. 
Örnek kodlarla ilgili uygulamaları wireshark ve herkules program ve Telnet aracılığıyla veri aliş verişini yapabildim.
wireshark ile gonderilen ve gelen veriyi görebildim.
Kodları adım adım inceleyerek mantığını cözmeye başladım.
Oncelikle Ethernet driver kurulumu yapıyor.
-mem_init();
-memp_init();

-tcp_new();
-tcb_bind();
-tcp_bind();
-tcp_accept();

-tcp_accept() icinde baglantıyi kabul ettigine dair yeni bir ( user tarafından tanımlı fonksiyon )
fonksiyona yonlendiriliyor.
Ondan sonra tekrardan fonksiyon icinde paket almasına yararyan bir başka fonksiyona dallanılıyor.
Sistem paket geldiğinde ilgili fonksiyona gidip veriyi alıyor.
Aldıktan sonra verinin işlenmesine kalıyor.

Biraz daha toparlayıp ilerde kismetse yazı olarak yazacam.

@ashes  hocam bu aşamadan sonra şimdi aklıma takılan sorularım var. Hardware olarak

-PHY entegresi olarak ne kullanayım. Şu an elimdeki moduller deki chipler LAN8720 ve DM9161A
Bu chipleri Temin etmesi kolay mıdır.
Hocam sizin tasarladığınız kısmın Ozel ve ticari değilse Sematik ve Entegre ismini paylaşabilirmisiniz.
Birde hocam bunların sizde Diptrace te Library si var mı?
STM32F107 ve STM32F407

Teşekkürler.
Bende STM32F407 için çizdiğim bir pattern mevcut bir şematiğe ve pcb ye kopyalayıp gönderebilirim (Diptrace Design Cache olayı).
PHY entegrem DP83848 en eski 10/100 phylardan biri fazla yeteneksiz o yüzden pek sevemiyorum. Ethernet şemasını koyabilirim akşama.