Networking
This content relates to a deprecated version of Mbed
Mbed 2 is now deprecated. For the latest version please see the Mbed OS documentation.
For the latest information about networking, please see Arm Mbed Networking Stack.
Networking
Introduction¶
The mbed microcontroller is capable of connecting to the internet, and functioning as client or server for a variety of protocols. To achieve this, the LwIP TCP/IP stack has been ported to mbed.
Getting started¶
Step one, physical connection¶
On the RJ45 page you will find wiring diagrams for popular RJ45 sockets. You can skip this step if you have a baseboard with RJ45 socket (see list of baseboards on the cookbook homepage).
Step two, set up the networking stack¶
On the Ethernet Interface page you will find everything you need to set an IP address, and bring up the stack.
Next steps¶
Afterwards, you should hopefully have TCP/IP up and running over Ethernet.
Where to look next:
- Details of support for protocols such as HTTP can be found at: TCP IP protocols and APIs
- The raw socket API is at Socket.
About this networking stack¶
The introduction of an mbed RTOS among the officially supported mbed libraries allowed us to finally add an officially supported networking stack providing the familiar Berkeley sockets programming interface. The previously community supported networking stacks, because of the lack of an operating system, could only support a "polling" paradigm. Besides, providing a more familiar programming interface, this new networking stack provides an impressive performance improvement: benchmark.
System overview¶
Let's analyse the above layers from top down:
- Your networking applications will very likely rely on a specific protocol (HTTP, NTP, FTP, etc), or API (Twitter, Cosm, Evrythng, etc). You can see a list of the protocol and API libraries developed by the mbed community on this page: TCP/IP Protocols and APIs
- The EthernetInterface library is wrapping all the other libraries with a specific configuration for the Ethernet transport. In particular, its subcomponents are:
- Socket: the high level socket API wrapping the Berkeley socket API.
- lwIP: the lwIP TCP/IP stack v1.4.
- lwip-eth: the Ethernet driver provided by NXP.
- lwip-sys: our implementation of the lwIP OS Abstraction Layer based on the mbed RTOS.
- The mbed RTOS is actually providing the implementation abstracted by lwip-sys
- The mbed library is mainly used for providing the CMSIS layer, timer, and reading unique MAC address.
Interface drivers¶
The networking stack is currently supporting two different transports:
Where to get help¶
If you have questions on the usage of this stack, the best place to ask is in the Forum.