[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linrad] Re: Linrad via Ethernet
Richard Hosking wrote:
2 channels at 300,000 24-bit samples per second is 1.2 megabytes
per second. 16-bits is 1.8 megabytes per second. A good rule of
thumb for real-world network performance is:
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?
10baseT = 1 megabyte per second
100baseT = 10 megabytes per second
1000baseT = 30 megabytes per second
So it looks like a bog-standard 100baseT Ethernet link will handle
your data stream. and it dooesn't much matter what card you use.
Just make sure it is set up for full duplex and that nothing else
is on that network.
You will, of course, need a processor that can handle the load,
enough storage, etc.. but I don't see your network link as being
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
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
(http://www.edtp.com/ recommended for ASIX protos)
Has anyone made a card where the "ADC finished" signal feeds a counter
and a DMA circuit on memory that is shared with the CPU?
Some Xilinx part could compute the CRC values in parallel so that no CPU
overhead would be used for that. I suppose the same part would pre-fill
the address, protocol, and other packet headers as well as putting the
first user data address into the counter.
Richard Hosking wrote:
Have been thinking again on this topic
There seem to be a lot of embedded ethernet cards around nowadays -
with 100MB cards /webservers at <US$200
The Linrad software already supports network capability.
It would get past all the audio/noise issues and the SNR and strong
signal handling could be determined by the front end.
You could have the radio unit remote to the computer to reduce noise -
it could even be done over the net! USB seems too hard and there is no
fundamental reason why it should be used
The question is - what sort of data rate would you realize with these
ethernet cards if you put a raw data stream through from say a serial
ADC such as the AD9874?
This message is sent to you because you are subscribed to
the mailing list <linrad@xxxxxxxxxxxxxxxxxxxxx>.
To unsubscribe, E-mail to: <linrad-off@xxxxxxxxxxxxxxxxxxxxx>
To switch to the DIGEST mode, E-mail to <linrad-digest@xxxxxxxxxxxxxxxxxxxxx>
To switch to the INDEX mode, E-mail to <linrad-index@xxxxxxxxxxxxxxxxxxxxx>
Send administrative queries to <linrad-request@xxxxxxxxxxxxxxxxxxxxx>