Ethernet haberlesmesi yapan yok mu

Başlatan KABO, 20 Mart 2012, 21:45:57

KABO

    Arkadaslar LPC1769 serisi arm işlemci kullanıyorum.bilgisayar ile ethernetten haberlesmek için Ethernet kaynak koduna ihtiyacım var. etehernet haberlesmesi yapan arkasaların yardımına ihtiyacım var. arastırdım ama cok fazla bir dokumantasyon bulamadım
BILGI PAYLASTIKCA COGALIR...

Erol YILMAZ

Keil de MCB1700 ün içinde örnek kodlara bakabilirsin.


haydarpasamikro

mcb1700 kartımda UDP paket alıp gönderme, ARP ve ICMP işlemlerini yaptırıyorum. Kendi kütüphanesi TCP için yazılmış. DP83848C harici PHY ye uygun. NXP Code bunddles ve Keil in örnekleri oldukça yeterli.
Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi

KABO

arkadaslar cevaplarınız için tesekkur ediyorum.onerilerinizi inceliyorum
BILGI PAYLASTIKCA COGALIR...

KABO

Arkadaslar ethernet haberlesmesinde, ethernet arabirimi chip için(benimkisi ENC28J60) kod satırlarında bir degişiklik yapmak gerekiyor mu? chipler degişse bile kodlar hep aynı mı?
BILGI PAYLASTIKCA COGALIR...

haydarpasamikro

enc28j60, PHY de içermektedir. Dahili 8k buffer ını almak ve göndermek üzere ayarladıktan sonra kendi oluşturacağınız ethernet paketlerini gönderip alırsınız. Mikro ile Spi arabiriminden haberleşirsiniz. 10mbit. Ancak Arm için dahili phy yok. Sadece MII ve RMII 100mbit. Bu sebeple farklı şeyler. Yine de ethernet paketleri oluşturmak bize kalıyor. MAC, IP, ARP, ICMP, CRC vs. katmanlara ait paket içeriğini biz oluşturduğumuza göre işin bu tarafında bir farklılık pek olmayacaktır.
Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi

alper06


cseb

Alıntı yapılan: haydarpasamikro - 22 Mart 2012, 15:10:55
mcb1700 kartımda UDP paket alıp gönderme, ARP ve ICMP işlemlerini yaptırıyorum. Kendi kütüphanesi TCP için yazılmış. DP83848C harici PHY ye uygun. NXP Code bunddles ve Keil in örnekleri oldukça yeterli.

mcb1700 deki easyweb kodlarında ethernet portuna data gönderme işlemi gösterilmiş, ancak ethernetten gelen datayı okumak hangi fonksiyonlar ile sağlanabiliyor? Mesela bir arayüzden led toggle yaptırmak istediğinizde hangi fonksiyonları kullanmamız gerekecek? Ben kodları inceledim ancak biraz kafam karıştı.

haydarpasamikro

 tcp.c dosyası içerisinde gelen tcp paketi işleme tabi tutmak için:

void ProcessTCPFrame(void)
{


...
...
CopyFromFrame_EMAC(RxTCPBuffer, NrOfDataBytes);// fetch data and
...
..

}

Gelen tcp paketin içerisindeki data bytelerını ve kaç byte geldi ise öğrenebilirsiniz.

main fonksiyonda ise aşağıdaki fonksiyonu sıklıkla çağırmalıyız.

DoNetworkStuff();     
Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi

cseb

while (1)                                      
  {
    if (!(SocketStatus & SOCK_ACTIVE)) TCPPassiveOpen();   
    DoNetworkStuff(); 
    ProcessTCPFrame();
   
}


Burada RxTCPBuffer değişkini gelen data mı oluyor?

haydarpasamikro

Artık ne gönderilmiş ise: data, protokol vs..
Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi

cseb

#12
üstteki kodda yazdığım şekilde yeterli olurmu okumam için? diyelimki board üzerinde led toggle yaptırmam gerekiyor, nasıl yorumlatacam? lcd ye gelen datanın ne olduğunu yazdırmaya çalıştım, ama değerler farklı farklı şekillerde görünüyor. yani benim arayüzden göndermeye çalıştığım şekliyle görünmüyor. ben yapamıyorum galiba  :( örneğin aşağıdaki kod barışsamancı hocanın yazdığı programın bir parçası. mesela ben bunu nasıl işlemciye yorumlatacam? checkbox işaretlenince led yanacak işareti kaldırıncada sönecek şekilde.

private void checkBoxLED2_CheckedChanged(object sender, EventArgs e)
        {
            if (!b.VeriGonder("~LD2" + (checkBoxLED2.Checked ? "1" : "0")))
                BaglantiYok();
        }