netpp

Remote control – the easy way

netpp (network property protocol) simplifies the development of remote control or measurement applications significantly. Originally, it was introduced as slim abstraction layer for register based protocols (which are still fully supported). It has grown into a softwarel library which allows rapid and robust development of device control applications. Devices are described using an XML dialect using a graphical editor. You, as the user start top-bottom: You define first what the device should do – the functional way. Then you connect it to the hardware.

This description is then compiled into software, hardware and documentation.

For example, parameters such as register bits or commands are specified as ‘Properties’ and are mapped to the corresponding hardware entity. So you can for instance map an i2c register into an abstract property called ‘Temperature’.

Functionally, you then address an outdoor IoT thermometer like:

t = outdoor.Temperature.get()

 

XML editing

XML Mind editor snapshot

The XML editing can happen according to a graphical scheme, as shown above. We recommend to use the XML Mind XML Editor (XXE) with integrated XSD schema validation.

Work flow

  1. Define funktionality (“Properties”)
  2. Write handler code in C (getter/setter)
  3. Run “make”
  4. Test and iterate through (1)
  5. Generate documentation and reference manual sections

Using simple intrinsic mechanisms for revision control, software, hardware and documentation are kept in sync. No more mistakes in developer team communication!

Reference applications

  • Supply of various device classes with one single uniform firmware and remote control client
  • Hardware definition of ASIC/FPGA registers and C driver source (see also IP cores)
  • Hardware-Co-Simulation (model in the loop)
  • Smart Sensors (IoT), netpp on FPGA
  • New: Eval-Kit netpp node with various analog backend option for scaleable network based real time measurement

Industrial reference projects

  • Medical diagnostics: image acquisition
  • Multi channel audio control and processing
  • Bulk firmware programming for mass production
  • Smart sensors for safety relevant power grid optimizations
  • Highly scaleable process control / test & measurement (>100 slaves)

Details

The netpp slave library code is very compact. Besides startup code (crt0.o) and hardware drivers no excessive program logic is required for a bare metal remote control OS.

Examples for ‘-Os’ optimized code:

Architecture Size
avr8 24kB
ARM v5 thumb 22kB
ZPU (FPGA SoC) 19kB
msp430 17kB

 

Resources