Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > Networks

Overcome challenges in embedding TCP/IP (Part 1)

Posted: 27 Mar 2013 ?? ?Print Version ?Bookmark and Share

Keywords:TCP/IP? CPU? Connectivity? throughput?

Before using a TCP/IP stack in an embedded product, it is vital to acknowledge and understand the reasons to do so. Obviously, the product is to be connected to an IP network. We can say the embedded system in this case requires connectivity. An embedded system might be called on to exchange large amounts of data over a reliable connection. In this case, we can say that the embedded system demands performance.

Most embedded system resources are extremely limited when compared to the resources available on a desktop or laptop PC. Product manufacturers must create products at the lowest cost possible to offer them at the best possible price to their customers, yet work within the constraints of RAM, CPU speed, and peripheral hardware performance inherent in hardware platforms used for embedded design. With limited hardware resources, how can an embedded designer meet system design requirements? They begin by asking and answering a fundamental question.

Do you need a TCP/IP stack. to connect to an IP network without any minimum performance requirement? Or to connect to an IP network and obtain high throughput?

The answer to this question has a major impact on hardware choices that ultimately drive product cost. These hardware choices include CPU performance, NIC interface type, and RAM availability.

Connectivity, throughput and bandwidth are concepts that shape the configuration system hardware and software parameters. Let's look at an overview of each.

As a best practice, the performance of an Ethernet connection should be measured in Megabits per second (Mbps). This allows us to easily compare system performance with respect to the Ethernet link's maximum bandwidth.

Currently, Ethernet over twisted pair is the preferred physical medium. The available bandwidth of the link is normally 10Mbit/s, 100Mbit/s or 1Gbit/s. These numbers are used as the reference for the efficiency of an Ethernet NIC. For example, if we have an Ethernet NIC with a 100Mbit/s link, we already know that our embedded system maximum bandwidth is 100Mbit/s. However, there are a number of limiting factors in embedded systems that do not allow them to reach what we call the Ethernet line speed, in this case 100Mbit/s. Such factors include duplex mismatch, TCP/IP stack performance based on CPU speed, RAM available for buffers, DMA vs. non-DMA Ethernet driver design, performance related to clock and peripheral power management, and the use of a true zero-copy architecture. These embedded system bandwidth-limiting factors are included in this and subsequent chapters.

Connectivity in this context is the exchange of information without any performance constraints. Many embedded systems requiring connectivity only may work optimally with hardware and software that provide a low-bandwidth TCP/IP connection.

For example, if an embedded system is sending or receiving a few hundreds bytes every second (let's say of sensor data), then the constraints on the system are fairly relaxed. It means that the CPU may be clocked at a lower speed. It may also mean that if the NIC is Ethernet, it can be a 10 Mpbs instead of a 100-Mbps interface and the RAM requirement is reduced since there is less data flowing in the system.

A system that needs throughput can be one that transmits or receives streamed video, for example. Streamed video transmission can be anything from a few megabits per second (Mbps) to many Mbps depending on the signal quality and the compression rate used.

This type of application requires an embedded system with sufficient resources to achieve higher bandwidth than a "connectivity-only" system. Constraints on the NIC, CPU and RAM availability are clearly higher. For the CPU and NIC, these issues are hardware dependent, but for RAM usage, the constraints are related to software and the requirements of the application.

1???2?Next Page?Last Page

Article Comments - Overcome challenges in embedding TCP...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top