Ethernet SDR Interfacing
mo at ccr.org
Mon Sep 13 22:24:25 CDT 2010
things you need to worry about picking ethernet interface goobers:
(1) can the part do GigE flat-out?
(2) how much stupid fiddling does it need to send a frame?
Most ethernet parts are designed to be stroked lovingly
by software. Doing that kind of foolishness in FPGA
logic is much harder than in C code. So look for a part
designed to be easy to drive. This frequently means
fewer features, not more. ideally, an Ethernet transmit
interface would look like a deep hardware FIFO with an
extra bit or two settable when stroking in a byte
indicating beginning and end of packet. just clock the
bytes into it, setting the first and last bits, and the
ethernet part should do the flags, checksum, and handle the
binary exponential backoff algorithm for retransmit.
the transmit FIFO would ideally hold multiple outgoing
frames, with bit coming back that says "at least one
full frame will fit in the FIFO, so man the pumps!"
now that i've explained it, there's not much difference between
a clean Ethernet interface and any other serial port with
a big transmit fifo. it needs to know about frames where an
async UART just knows about bytes, but that distinction is
not substantial from an interface point of view.
John Shoch, one of the inventors of Ethernet, wrote a great
paper on "How to build a good Ethernet interface". it's remarkable
for what it says to leave out, not what to put it. and for the
longest time, Ethernet interface parts seem to have been designed
by people trying to prove how much of John's advice they could
violate in one design. such a fifo-based design isn't hard to
strap onto a DMA engine to go fast without CPU help. again,
something was lost in translation. sigh.
On 9/13/10 3:43 PM, wb4jfi wrote:
> On 9/13/2010 4:57 AM, Patrick Strasser OE6PSE wrote:
>> wb4jfi wrote on 2010-09-11 22:16:
>>> I'm thinking of adding an Ethernet interface capability to the
>>> Charleston SDR receiver. This would also allow me to learn Ethernet
>>> interfacing with some of the newer designs. I'm looking at the Wiznet
>>> chips and modules, available from Sparkfun. They seem to offload all the
>>> Ethernet and PHY stuff into the chip, allowing the FPGA to concentrate
>>> on the SDR part.
>> Have you head a look at the Digilent Pmods, namely the PmodNIC? It is
>> a stand alone 10Mbit/sec transceiver with SPI interface and interrupt
>> line for receive for 30$.
>>> I'm concerned with USB interfacing, and how (at least with Windows)
>>> everything is getting more restrictive.
>> What do you mean with restrictive? Driver support, data rate,
>> flexibility, line length?
>> For datarate, USB has gross bandwith of 480MiBit/sec, which boils down
>> to a sustainable net datarate of 32MiByte/sec or even a bit more.
>>> Plus, Firewire is not as easy to
>>> use as it once was. Using E'net and UDP would move this into a more
>>> "stable" environment.
>> I guess you are looking at something similar to RFSpace netSDR or SDR-IP?
>> 73 de Patrick
> Sorry, I was being purposely obtuse about the "restrictive"....
> The Digilent NIC PMOD (I do own one) only does ethernet at 10Mb, and
> uses serial SPI for communicating. Not nearly fast enough to handle the
> high-speed IQ data from an SDR. For 192k sampling, the data samples
> alone will be at over 6Mb/s. At 384k, they are 12.3Mb/s, and 480k over
> 15.3Mb/s. This does not account for ANY overhead or separate
> command/status data. (192k samples per second of separate I and Q 16-bit
> data samples = 6,144,000 bits per second). So, I wasted a few dollars on
> the Digilent NIC PMOD (at least for SDR usage).
> You hit it right, my main concern with USB is the drivers for whatever
> hardware chip is used. I believe the Cypress FX2 drivers for Vista and
> Win7 are now finally OK, but that fiasco pointed out how susceptible we
> are to having Microsoft change something and having hardware
> manufacturers lag behind on getting "approved" or signed drivers for
> their older products. An even worse example is what any Flex user has
> had to put up with when using their 5000 or 3000 with Vista or Win7. Hit
> F8 at boot, and ignore the unsigned driver warning. Every time.
> I used to like Firewire (a LOT), but between the driver issues, and the
> cost of embedding those devices, no thanks. Plus, try to buy a laptop
> computer with Firewire for under $1,000...
> The most ubiquitous interface out there (next to USB) seems to be
> ethernet, so that's what I'm looking at. No more hardware-specific
> drivers AT ALL!! If it connects, it just runs. And, UDP seems reliable
> enough over a hard wire, so no fancy-schmancy protocol handshaking or
> different modes like USB. In addition, ethernet is made for distributed
> processing, so one computer can do some processing, then hand off the
> data to others. 100base-t is fast enough to handle present SDR data
> rates, and gig-e gives much higher speeds (with different hardware).
> Yes, ethernet wires can be much longer than USB as well. (I have a USB
> extender that uses ethernet wiring between the devices, but that costs
> another $30-$100).
> One major issue is that most computers have only one ethernet
> connection. So, if you want to use the e'net connection for both the SDR
> and Internet, a small switch must be used. Or, wireless can be used for
> the Internet (on a laptop).
> I'm not worried about USB speeds or interface issues right now. The
> existing Charleston board works fine, even at 480k, on a fast enough
> computer. So, I'm more looking into the future. I see James Ahlstrom's
> work, new openHPSDR designs, and SDR-IP all going to ethernet.
> I've looked at some of the other low-cost ethernet interfaces, and have
> tentatively chosen the Wiznet hardware. I'm looking for others that may
> have used these devices, and what their experiences were. They have 8
> and 16-bit data paths, and direct or indirect register addressing. These
> options dictate how many FPGA pins are required. I'm wondering about the
> various trade-offs with these options.
> Thanks for your response Patrick. I may be totally wrong in my thinking.
> I'm just getting worried about where Windows is going, and want to avoid
> any future problems, if possible. It seems like ethernet would do that.
> Terry, WB4JFI
> Tacos mailing list
> Tacos at amrad.org
"Of course it's hard!
If it was easy, we'd just buy it from somebody else!"
More information about the Tacos