Hello, I have problems with my cobra board. I want to send Data from the analog-in-port through ethernet to a PC.
I need to send the Data at a speed of 10-20 kS to the PC. I think the ethernet funktion of the board is to slow for this. It is fast if you want to Send one big byte-array. But I want to send a small array or only one single byte and that very often, then its to slow, isn`t it?
The only solution for my problem is to programm the whole Ethernet thing with RLP.
Is it possible to make it easier?
Or is it possible to only write the outputregister of the Ethernet through rlp and do the other stuff trough managed Code?
IIRC, we did some tests and Ethernet speed was about 100KBytes/sec. Maybe it is slow in your case because you are processing the data which makes it slow. Or you are sending small packets which cause a lot of overhead.
You said you are sending one byte or small array already so this is the problem. What you can do is buffer the data on your end and then send on network when you have large buffer.
Thanks for your fast reply.
The Thing is that I need to transmit the Data on the analog-in-port as fast as possible. So I don`t want to buffer the data.
Then there is no other (easier) solution than rlp!?
Because I think ethernet trough rlp is not very easy.
I meassured the throuput and I use UDP allready.
But the throughput is still much too slow.
I thougt that I can send with 10-20 kSample, every Sample in its own paket. But I can only send about 400 pakets per second.
Do you think that this has to be faster?
I`m not limited by the analog sampling rate. I checked it.
You both (Mike and Gus) told me that such high packet-rates as I need, are not possible. So I think I have to buffer the data and send bigger pakets or I have to use another technology like USB or something.
It was my fault to think that ethernet is that fast.
Ethernet is fast If you read online you will see how Ethernet packets have large overhead, about 35 bytes so if you are sending 1 byte of data, this becomes 36 bytes on the network! But if you send 1000 bytes then this is 1035 bytes on the network.
Be careful with USB. USB is not interrupt driven so there is a lot of polling in the background. This may have an effect on the analog sampling rate you could achieve. But, it should be easy to run a quick test.
Serial communications is a low overhead way of sending data, and you would not have to worry about the size of packets, althought you would need to deliniate each message. You would need to convert from the TTL levels to the RS-232 voltages.