UPnP is designed to provide services throughout a network without interaction of the user. It is designed to use standardised protocols such as IP, TCP, UDP, Multicast, HTTP and XML for communication and to distribute services provided by a device. UPnP can be used to advertise services provided by a device across the network such as where to find the web interface for the device advertising. Newer operating systems support UPnP from scratch and will show UPnP devices available across a network and may provide easy access to a device by simply selecting the discovered UPnP device.
A typical usage would be to advertise media accessible on a media storage on the network and to open a file browser window to the resource upon opening the UPnP entry discovered.
- Low memory footprint
- Advertising your services on the network
- Easy to implement
The emNet UPnP implementation requires the emNet TCP/IP stack and is designed to be used with the emNet Web server Add-on.
The ROM usage depends on the compiler options, the compiler version and the used CPU. The memory requirements of the UPnP modules presented in the tables below have been measured on an ARM7 and a Cortex-M3 system. Details about the further configuration can be found in the sections of the specific example.
The pure size of the UPnP add-on has been measured as the size of the services provided may vary.
The following resource usage has been measured on an ARM7 system using IAR Embedded Workbench V6.30.6, Thumb mode, no interwork, size optimization.
|Approximately 2.2 KByte
The following resource usage has been measured on a Cortex-M3 system using IAR Embedded Workbench V6.30.6, size optimization.
|Approximately 2.0 KByte
|Approximately 170 Byte
The UPnP module implements the relevant parts of the UPnP documentation released by the UPnP Forum.
|UPnP Device Architecture 1.0
|Direct download: http://upnp.org/specs/arch/UPnP- arch-DeviceArchitecture-v1.0.pdf