Page 1 of 1
Help in choosing module
Posted: Sun Nov 01, 2009 1:27 pm
by Taris
Hello,
I'm new in netburner modules. I'm looking embeddet modules for my application. Could you help me with choosing a netburner module.
I need:
1) the TCP and UDP listener which shall be capable of at least 8 simultaneous connections for communication with other devices.
2) web server for configuration and set up some parameters of module.
3) possibility reliable firmware updates through webpage.
4) My program must parse a request and answer less than 10ms. (I am afraid a lack of speed through TCP/IP socket)
5) After power supply switch on device program boot time must be less than 4sec.
Is it possible to make this application with one of netburner modules? Please advice.
Re: Help in choosing module
Posted: Sun Nov 01, 2009 2:51 pm
by thomastaranowski
Do you have any specific I/O interface requirements? Like I2c or serial devices to communicate with?
The 10ms response time on received packet will be the most challenging. The default system tick rate for netburner modules is 20Hz (50ms period), so you would have to consider either increasing the tick rate to around 200Hz, or do some special handling in network ISR. Adding in support for a received packet callback in the network "rxenetisr" ISR is possible, to enable critical packet handling with minimum latency. If you did that, though, you would definitely want to make sure you filtered out the non-critical packets immediately to reduce overhead. You would also have to do some tweaking to the stack to ensure that any packets consumed by the callback didn't get filtered up the stack and buffered in a receive port. From what you say, it sounds like you are not going to be using alot of CPU, so incurring the added cost of increasing the tick rate sounds workable.CPU, so incurring the added cost of increasing the tick rate sounds workable.
Re: Help in choosing module
Posted: Sun Nov 01, 2009 7:54 pm
by rnixon
Even assuming 0 processing time on the embedded system, the 10ms requirement may not be doable if on anything other than an isolated network (or direct connection) with the two devices. The transmission time alone could take that long. What type of network are you running this on? Have you run any tests between two very fast PC's to get an idea of how fast those systems can run the identical network situation?
Re: Help in choosing module
Posted: Mon Nov 02, 2009 11:55 pm
by Taris
Hello,
I am going use SPI or I2C or serial. I don't know wich one exactly. How does it relate to an increase in tick rate? My serial interfaces wil not have any special time requirement.
thomastaranowski wrote:Do you have any specific I/O interface requirements? Like I2c or serial devices to communicate with?
The 10ms response time on received packet will be the most challenging. The default system tick rate for netburner modules is 20Hz (50ms period), so you would have to consider either increasing the tick rate to around 200Hz, or do some special handling in network ISR. Adding in support for a received packet callback in the network "rxenetisr" ISR is possible, to enable critical packet handling with minimum latency. If you did that, though, you would definitely want to make sure you filtered out the non-critical packets immediately to reduce overhead. You would also have to do some tweaking to the stack to ensure that any packets consumed by the callback didn't get filtered up the stack and buffered in a receive port. From what you say, it sounds like you are not going to be using alot of CPU, so incurring the added cost of increasing the tick rate sounds workable.CPU, so incurring the added cost of increasing the tick rate sounds workable.
Re: Help in choosing module
Posted: Tue Nov 03, 2009 12:05 am
by Taris
Hello,
This is my clients' requirements. Of course I can convince them to relax requirements for this application but I need strong arguments why I can't do that.
rnixon wrote:Even assuming 0 processing time on the embedded system, the 10ms requirement may not be doable if on anything other than an isolated network (or direct connection) with the two devices. The transmission time alone could take that long. What type of network are you running this on? Have you run any tests between two very fast PC's to get an idea of how fast those systems can run the identical network situation?
Re: Help in choosing module
Posted: Thu Nov 05, 2009 2:07 pm
by lgitlitz
The system tick time should have little effect on latency of a task switch. Actually an increased tick rate would most likely decrease performance. The OS does not require a time tick to switch tasks, it only requires a tick to detect a time out. If the tick rate is increased then the OS will need to run the scheduler much more often which consumes CPU time.
I would start with any 5270 and 5234 based product. They have the highest CPU and network performance of all the NetBurner products. Performance wise they are equivalent to each other, just different peripherals, memory sizes and pinouts.
Latency of 10ms is going to be a tough spec to guarantee. You may average close to this on a closed network but there is always a chance of a longer then expected delay. 10ms is not possible on a WAN using commonly available network connections. Try pinging some of the biggest website's you can think of, Google takes me 50ms Yahoo is about 25ms. When I ping my MOD5270 on my somewhat busy work network ( only one switch hop away ) my computer always reports <1ms. I even did this test with 1450 byte pings and the data still came back in <1ms. There is a lot more code that must run and memory that must be copied for an active TCP socket so the latency will be much higher. Still I think you can get close depending on what type of processing you require. You will probably want to look at the SRAM application note:
http://www.netburner.com/downloads/nndk ... rmance.pdf
You should start off by writing a simple example on your PC. Then you can test the performance between two PCs, run the test for a day or so to determine your worst and average performance. Expect the NetBurner to be slower but at least you will have an idea of the min latency possible on your network.
Re: Help in choosing module
Posted: Fri Nov 06, 2009 10:38 pm
by Kiwinet
lgitlitz wrote:
Latency of 10ms is going to be a tough spec to guarantee. You may average close to this on a closed network but there is always a chance of a longer then expected delay. 10ms is not possible on a WAN using commonly available network connections. Try pinging some of the biggest website's you can think of, Google takes me 50ms Yahoo is about 25ms. When I ping my MOD5270 on my somewhat busy work network ( only one switch hop away ) my computer always reports <1ms. I even did this test with 1450 byte pings and the data still came back in <1ms. There is a lot more code that must run and memory that must be copied for an active TCP socket so the latency will be much higher. Still I think you can get close depending on what type of processing you require. You will probably want to look at the SRAM application note:
http://www.netburner.com/downloads/nndk ... rmance.pdf
Interesting point about network latency time.
I went to the website
http://www.speedtest.net/ and found that with my 3 port hub Netcomm V300 VOIP router plugged into the back of the ADSL2 modem that my ping latency time was 28ms. However this was substantially improved to 10ms when I made a direct ethernet connection into the back of my ADSL2 modem.
This also improved my upload speed by a factor of 8.
My concern is that I unfortunately use the VOIP router for other computers around the house including the Netburner.
Has anyone else found problems with their brand of router significantly slowing down their network connections?