Ethernet yolları nasıl olmalı
Konu: Ethernet yolları nasıl olmalı (2686 Kez okunmuş) önceki konu - sonraki konu
Şubat 24, 2017, 20:43:36
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ı ?
Ynt: Ethernet yolları nasıl olmalı
Yanıt #1 – Şubat 24, 2017, 22:31:24
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
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
Yanıt #2 – Şubat 25, 2017, 07:37:45
@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.
Yanıt #3 – Şubat 25, 2017, 08:42:02
@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.
Yanıt #4 – Şubat 25, 2017, 15:55:33
Alıntı yapılan: M_B öö Şubat 25, 2017, 08:42:02
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.
Yanıt #5 – Mart 13, 2017, 13:26:01
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.
-tcp_accept() icinde baglantıyi kabul ettigine dair yeni bir ( user tarafından tanımlı fonksiyon )
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
Yanıt #6 – Mart 13, 2017, 13:43:44
İçim gitti Ethernet'i tekrar görünce
lwip ya da uip'i birisi tam teşekküllü yazsa süper olacak
Yanıt #7 – Mart 13, 2017, 13:44:57
Alıntı yapılan: FxDev öö Mart 13, 2017, 13:43:44
İnşallah Hocam olayı bitirirsem yazmak istiyorum.
Kismet bakalım. ( ama çok detaylı anlatamam cünkü c ye hakim değilim)
Yanıt #8 – Mart 13, 2017, 14:19:28
@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.
Yanıt #9 – Mart 13, 2017, 14:21:51
Alıntı yapılan: M_B öö Mart 13, 2017, 13:26:01
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.