|
As part of a larger project we need to stream data from 24 NetBurners
over TCP/IP. We built custom boards that could host 6 NetBurners each.
Each NetBurner had two serial port connections and a dip switch that
could be read to auto-assign an IP address. Each board supported an SMC
connection for receiving an interrupt and sending the interrupt out to
another board.
We were interested
in finding out how fast each NetBurner could transmit data and the total
bandwidth we could stream over a 1 Gigabit connection. Even though the
5272 has a 10/100 Ethernet connection, the CPU and memory access speeds
aren't fast enough to support the full 100 Mbits. Using standard
techniques we couldn't sustain better than 12-14 MBits/sec. Using
optimized code that copies directly from a memory-mapped FPGA into the a
pre-allocated TCP Buffer we were able to sustain between 14-18
Mbits/sec. The 24 NetBurners were connected to the 10/100 ports of the
Gigabit switch. A Gigabit enabled PC was connected to the Gigabit port
on the switch. The PC had not trouble keeping up with the maximum rates
the Netburners could sustain.
A browser accessible
interface exists in each Netburner but the test firmware also supports
programming via Ethernet commands. A client GUI was written for Windows
using Borland's C++ Builder and was capable of testing either an
individual NetBurner or all 24 simultaneously. A Pulse generator was
used to trigger an interrupt that would cause all 24 NetBurners to send
between 10,000-50,000 1460 byte packets. Rates of approximately
450Mbits/sec. were sustained for the length of the experiment. |