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
Keil de MCB1700 ün içinde örnek kodlara bakabilirsin.
Evet , oradaki örnek güzel.
https://www.picproje.org/index.php/topic,37557.0.html (https://www.picproje.org/index.php/topic,37557.0.html)
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.
arkadaslar cevaplarınız için tesekkur ediyorum.onerilerinizi inceliyorum
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ı?
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.
Ben varım. Sorununuzu alayım...
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ı.
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();
while (1)
{
if (!(SocketStatus & SOCK_ACTIVE)) TCPPassiveOpen();
DoNetworkStuff();
ProcessTCPFrame();
}
Burada RxTCPBuffer değişkini gelen data mı oluyor?
Artık ne gönderilmiş ise: data, protokol vs..
ü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();
}