Reply by November 3, 20052005-11-03
Larry Martell wrote:

> Does anyone know of any PCI cards that can support these speeds? >
brainbox.com have some running 15M and 18M -- Med venlig hilsen/mojn/regards Martin Hansen Center for Software Innovation Stenager 2, DK-6400 S�nderborg, Web: www.cfsi.dk
Reply by Rene Tschaggelar November 3, 20052005-11-03
Larry Martell wrote:
> I am developing an embedded app that must receive a 128 byte > message every 100 microseconds. It must reply with a 128 byte > message within 100 us of receiving it's message (i.e. before > the next message comes in). So I need bandwidth of 10,240,000 > bits/second. > > Does anyone know of any PCI cards that can support these speeds? > > I have tried to do this with TCP/IP over ethernet, but was > unable to maintain the needed speeds. I've also tried UDP, also > without success. I've looked at some USB host-host devices, but > I haven't found any that support these speeds and allow me to > programmatically control them. Firewire isn't supported by my > RTOS, so that's out. So now I'm thinking LVDS or some other > high speed serial device, but I'm not having any luck finding > applicable products. Anyone??
The response time is a bit on the short side for a PC. A modern standard OS won't be able to cope with that. An embedded systems however can. Rene -- Ing.Buero R.Tschaggelar - http://www.ibrtses.com & commercial newsgroups - http://www.talkto.net
Reply by Larry Martell November 2, 20052005-11-02
Thanks much to Paul and Jim for your replies. We have found a
high-speed serial PCI card from a company called EDT and we will
most likely go with that.

-larry

Reply by Paul Keinanen November 2, 20052005-11-02
On 1 Nov 2005 15:12:42 -0800, "Larry Martell" <natkelcri@yahoo.com>
wrote:

>I am developing an embedded app that must receive a 128 byte >message every 100 microseconds. It must reply with a 128 byte >message within 100 us of receiving it's message (i.e. before >the next message comes in). So I need bandwidth of 10,240,000 >bits/second.
That 10.24 Mbit/s bandwidth requirement only applies in a completely full duplex environment, in which you can transmit the response while receiving the next request. However, on a half-duplex network (such as RS-485 or 10base2/5 or 100baseT hubs) the raw data rate would have to be at least twice that. In addition this would assume that the response frame would be sent immediately after receiving the request. Thus 50 us time for the Rx frame and 50 us for the Tx frame. If some processing (or other latencies) occur after the reception and before the transmission can begin, the actual data transfer time would be reduced from the 50 us and thus, some higher raw data rate is required.
>Does anyone know of any PCI cards that can support these speeds? > >I have tried to do this with TCP/IP over ethernet, but was >unable to maintain the needed speeds.
TCP/IP is useless for this kind of realtime applications.
>I've also tried UDP, also without success.
Why didn't you use raw ethernet frames with 100BaseT and a full duplex connection ? With any decent hardware receiving and transmitting one frame every 100 us should not be too hard. As such also UDP could be used (which would simplify monitoring e.g. on a PC), since only a fixed IP header would be added to the beginning of the frame, but the RTOS TCP/UDP/IP stack might cause some extra delays. When using raw ethernet frames, it might be possible to handle all the processing in the Rx interrupt routine and fire up the transmission of the response frame from that Rx ISR. Paul
Reply by Jim Stewart November 1, 20052005-11-01
Larry Martell wrote:
> I am developing an embedded app that must receive a 128 byte > message every 100 microseconds. It must reply with a 128 byte > message within 100 us of receiving it's message (i.e. before > the next message comes in). So I need bandwidth of 10,240,000 > bits/second.
It's actually worse than that. Given 10BaseT there's a 9.6us preamble. Add 20 bytes for overhead with a type 0600 ethernet packet, and you're up to 128us. Unless there's some terrible overhead I'm not aware of, 100BaseT should work. Of course, it's game over if there's collisions, routers or switches....
> Does anyone know of any PCI cards that can support these speeds? > > I have tried to do this with TCP/IP over ethernet, but was > unable to maintain the needed speeds. I've also tried UDP, also > without success. I've looked at some USB host-host devices, but > I haven't found any that support these speeds and allow me to > programmatically control them. Firewire isn't supported by my > RTOS, so that's out. So now I'm thinking LVDS or some other > high speed serial device, but I'm not having any luck finding > applicable products. Anyone??
Reply by Larry Martell November 1, 20052005-11-01
I am developing an embedded app that must receive a 128 byte
message every 100 microseconds. It must reply with a 128 byte
message within 100 us of receiving it's message (i.e. before
the next message comes in). So I need bandwidth of 10,240,000
bits/second.

Does anyone know of any PCI cards that can support these speeds?

I have tried to do this with TCP/IP over ethernet, but was
unable to maintain the needed speeds. I've also tried UDP, also
without success. I've looked at some USB host-host devices, but
I haven't found any that support these speeds and allow me to
programmatically control them. Firewire isn't supported by my
RTOS, so that's out. So now I'm thinking LVDS or some other
high speed serial device, but I'm not having any luck finding
applicable products. Anyone??

TIA!
-larry