Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12600 Discussions

Standard Protocol for ethernet to PC data transfer

Altera_Forum
Honored Contributor II
1,140 Views

I just started my internship and I haven't really worked with FPGA's before. I have a borad with Stratix chip on it and the board has the ability to communicate to a PC via ethernet. My question was whether if there is a standard protocol used for data transmission between the board and the PC using the ethernet.  

 

I read something about the 10 Gigabit Ethernet (XSBI) high speed protocol, but I don't know much about that either. 

 

Thank you very much.
0 Kudos
9 Replies
Altera_Forum
Honored Contributor II
371 Views

 

--- Quote Start ---  

originally posted by ajs52@Oct 18 2005, 03:39 PM 

i just started my internship and i haven't really worked with fpga's before.  i have a borad with stratix chip on it and the board has the ability to communicate to a pc via ethernet.  my question was whether if there is a standard protocol used for data transmission between the board and the pc using the ethernet.   

 

i read something about the 10 gigabit ethernet (xsbi) high speed protocol, but i don't know much about that either. 

 

thank you very much. 

<div align='right'><{post_snapback}> (index.php?act=findpost&pid=10432) 

--- quote end ---  

 

--- Quote End ---  

 

 

Well...there&#39;s TCP/IP, which is the protocol typically used to communicate over ethernet. You might check out the simple socket server example application. Or am I misunderstanding the question?
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

if you use the nios dev/eval kit then starting out with either the simple socket server or webserver example is a good idea, also i recommend using a good packet sniffer to monitor network traffic 

 

as for the protocolls normally used, UDP and TCP are most commonly used for data transfer between PC and the nios board
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

Hi, 

for that some rtos is needed to be running on the processor right? 

correct me if i am wrong. 

thanks and regards 

prasad
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

well, there is a stand alone LWIP stack implementation, but i have 0 experience with that, since i just use the micro/OS which comes with the nios Dev kit 

 

all things considered though, the LWIP stack could do with some good looking over, ive just been looking at the checksum routines in inet.c and ive taken out some rather stupid pieces of code basicly doing nothing or being totally inefficient 

 

didnt give me much more speed though, but clean logical code is a good thing anyway
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

so which protocol would be the best for continuously streaming data to a pc from the board. 

 

Thank you all again for your help.
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

 

--- Quote Start ---  

originally posted by ajs52@Oct 20 2005, 08:00 AM 

so lets say i have a lot of data coming in to the board and i want to stream it all to pc after it gets processed, via the ethernet...would that work? 

--- Quote End ---  

 

Define "a lot of data". 

 

Typically, people are seeing about 400-700 kbytes/second data transfer rates with Nios2 and the LAN91C111 chip. 

 

There are some options that could speed things up a little, but they cost a bunch.
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

well, for high throughput UDP is arguably the fastest, since it requires much less overhead then TCP, the main problem however is that UDP is prone to packet loss, so if every packete contains valuable data you will either need to use TCP or build in data controll on a higher level yourself 

 

im working with the webserver example using TCP for data transfer, best i had up to now is 10 mbit grose, so that includes all overhead from TCP, in terms of pure data transmitted its 9 mbit tops 

 

and that is with a nios2/f clocked at 125 mhz, to give you an idea, i would have clocked it faster, but at 150 mhz it no longer works... and anywhere over 140 mhz requires the SD-ram on my board to run asynchronous anyway 

 

so if you are using TCP with the standard Lwip stack, expect 10 mbit tops, you can squeeze out a lot more, but that will take work 

 

im working on the same thing right now, im doing an internship, and the assignment is to get this transfer rate as close to 100mbit as we can, but i seriously doubt being able to go over 50
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

 

--- Quote Start ---  

originally posted by thomsonbro@Oct 21 2005, 02:15 AM 

well, for high throughput udp is arguably the fastest, since it requires much less overhead then tcp, the main problem however is that udp is prone to packet loss, so if every packete contains valuable data you will either need to use tcp or build in data controll on a higher level yourself 

 

im working with the webserver example using tcp for data transfer, best i had up to now is 10 mbit grose, so that includes all overhead from tcp, in terms of pure data transmitted its 9 mbit tops 

 

and that is with a nios2/f clocked at 125 mhz, to give you an idea, i would have clocked it faster, but at 150 mhz it no longer works... and anywhere over 140 mhz requires the sd-ram on my board to run asynchronous anyway 

 

so if you are using tcp with the standard lwip stack, expect 10 mbit tops, you can squeeze out a lot more, but that will take work 

 

im working on the same thing right now, im doing an internship, and the assignment is to get this transfer rate as close to 100mbit as we can, but i seriously doubt being able to go over 50 

<div align='right'><{post_snapback}> (index.php?act=findpost&pid=10496) 

--- quote end ---  

 

--- Quote End ---  

 

 

According to Revolt it&#39;s possible to get over 60 Mbit/s and that&#39;s what we are looking for now..... We need to send 8 MB in less than 1 sec over our ethernetconnection. I think it&#39;s possible with udp, but when I am trying to listen on a port, my function socket( ) won&#39;t work. Does anyone know how it works? I see enough examples on Visual C/C++ but hardly any on the NIOS IDE. 

 

Cheers, 

 

Danny
0 Kudos
Altera_Forum
Honored Contributor II
371 Views

 

--- Quote Start ---  

originally posted by dannyjacobs@Nov 1 2005, 09:20 AM 

according to revolt it&#39;s possible to get over 60 mbit/s and that&#39;s what we are looking for now..... we need to send 8 mb in less than 1 sec over our ethernetconnection. 

--- Quote End ---  

 

Revolt is using a highly modified setup, though, with checksumming in hardware and custom drivers. I don&#39;t think he&#39;s posted the actual modifications he&#39;s used, though; I don&#39;t remember seeing them. It may not be IP he&#39;s willing or able to release.
0 Kudos
Reply