Richard said:
Dear all
There are a lot of embedded ethernet cards out there now. I was
considering the use of one of these to stream data from a fast serial
ADC to PC for analysis - digital radio app.
What sort of data rate could be achieved for 2 16-24 bit I/Q words and
what card would you use?
The max baseband bandwidth of the ADC is up to about 300KHz (ie 2 X
600KSamples/sec
What would be the limiting factor in this scenario?
Thanks
Richard
300KHz * 2 ADCs * 24-bit = 14.5Mbps, including IP overhead, assuming
large packets.
Clearly 100Mb is needed; full-duplex always preferred. This is also
about 10k packets/sec. I've pushed the ASIX over 20k/sec, so you're in
the right range.
Your limiting factor will be the protocol used for the transfer. Behind
that, the MCU and the rate it can get packets into the buffer.
UDP is highly recommended, especially if you can tolerate packet loss
(which should be 0 anyway for local applications). TCP will cause you
nothing but headaches unless you absolutely need to guarantee 100% data
delivery. (It'll require a lot of buffer RAM for retransmissions, and a
lot more overhead in the MCU, and it may take a chunk of tuning to get
it up to the rates you need, even locally.) UDP can also run with
payload checksums turned off, further reducing the MCU load.
Then, finding a creative way to load the data directly from the ADC into
the Ethernet NIC will be key to how many cycles will be needed on the
MCU. (E.g., setting the NIC in bulk write mode, toggling the ADC data
onto the bus, and toggling the NIC to latch the bits; a la DMA
controller style.)
If the MCU doesn't need to manipulate the data (e.g., even for
checksums), you can avoid the overhead of copying it into the MCU and
then right back out; this is the most frequent and biggest operation, so
it's a big factor. Part of this will be driven by whether the ADC is
being read serially or 8/16/24 bits wide, and the size of its buffer (if
any). (I.e., if it can sustain pauses in the stream, and whether the
MCU needs to handle all the data.)
There are 3 ISA-style 100Mb chips out there; the rest are integrated or PCI.
http://www.asix.com.tw/emb-non_ax88796.htm
http://www.davicom.com.tw/eng/products/dm9000.htm
http://www.smsc.com/main/catalog/lan91c111.html
(
http://www.edtp.com/ recommended for ASIX protos)
Cheers,
Richard