-2
\$\begingroup\$

What's the minimal response time on cortex-m3(m4) based processor (like fujitsu MB9BD10S/T) to the raw ip or raw ethernet request?

The request is as simple as possible to meet this conditions:

  1. Microcontroller validates the address and CRC of the packet
  2. Add some simple prepared in advance data (like analog/digital IOs), about maximum 100 byte.
  3. Change source address, set new CRC and send to another destination.

The response time I suppose to be time between receiving last byte of packet in microcontroller and transmitting first byte from itself.

What additional conditions should be met to get mininal response time?

Is there another low-cost microcontroller alternatives to get minimal ethernet response time?

What free software ip stack would be better to use?

\$\endgroup\$
6
  • \$\begingroup\$ any additional information are welcomed \$\endgroup\$
    – shin
    Commented Apr 7, 2013 at 14:24
  • \$\begingroup\$ lpcware.com/content/forum/lpc4330-ethernet \$\endgroup\$
    – starblue
    Commented Apr 7, 2013 at 14:58
  • 2
    \$\begingroup\$ This depends entirely on your operating frequency, the code that you will execute, maybe memory access speed (Flash sometimes has wait times) and the speed of the communication port that you're using. \$\endgroup\$ Commented Jul 13, 2013 at 5:39
  • \$\begingroup\$ Agreed with @nonsensical This is completely subjective based on your code/library/driver/firmware. \$\endgroup\$
    – Passerby
    Commented Jul 13, 2013 at 6:17
  • \$\begingroup\$ @Passerby I couldn't find anything under c:/code/library/driver/firmware \$\endgroup\$ Commented Jul 13, 2013 at 7:59

2 Answers 2

2
\$\begingroup\$

This depends entirely on your operating frequency, the code that you will execute, maybe memory access speed (Flash sometimes has wait times) and the speed of the communication port that you're using.

Hypothetically, let's assume 144MHz (max in the datasheet), that you can do all of the required tasks in 100 instructions and that you're receiving bits at processor clock speed. If you receive an IP header of 480 bits, that takes 480/(144,000,000) seconds, to send it takes the same, and you need to process around 100 instructions so that's another 100/(144,000,000) seconds giving you an approximate total of 1100/(144,000,000) ~ 8 microseconds. This is a guess based on your totally subjective information.

However, this does not mean that your propagation delay is 8 microseconds. The propagation delay would be more like <receival time> + <processing time> = (100 + 480)/(144,000,000) which is 4 microseconds.

\$\endgroup\$
1
\$\begingroup\$

I can't answer for that particular micro. I personally have use a pic32 at 80mhz with external dp83848, and MC stack. I was very concerned about latency as well. My control loop does a ping, and 4 UDP packets with <20 byte payload, getting back 4 UDP packets with approximately a 600 byte payload. This loop takes somewhere around the 5-7 millisecond range, and includes response times of the 4 commands from external device.

Most devices I have tested ping around 0.3 milliseconds, perhaps a combination of switch delay, and internal task managing.

\$\endgroup\$
2
  • \$\begingroup\$ as a curiosity, can I ask how you were getting the packets? Were you using SPI to an ASIC, UART or bitbashing? \$\endgroup\$ Commented Jul 14, 2013 at 23:21
  • \$\begingroup\$ No, the pic32 stack handles this, uses dma, basically loads a byte array for you. The pic is capable of more data in and out the ethernet port than it is capable of handling. \$\endgroup\$ Commented Jul 14, 2013 at 23:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.