PAWAR 2021 Archivage
PAWAR 2021 Archivage
PAWAR 2021 Archivage
N AHIT PAWAR
Composition du Jury :
Adlen KSENTINI
Professor, Eurecom, France Président
Laurent GEORGE
Professor, ESIEE Paris, France Rapporteur
Andreia CATHELIN
Docteure, STMicroelectronics, France Rapporteur
Adlen KSENTINI
Professor, Eurecom, France Examinateur
Anelise MUNARETTO
Associate Professor, Federal University of Paraná (UFPR), Brazil Examinateur
Hakima CHAOUCHI
Professeure, Institute Polytechnique de Paris - Télécom SudParis Directeur de thèse
Thomas BOURGEAU
Docteur, KBDigital AG, Switzerland Co-directeur de thèse
Marco DI FELICE
Associate Professor, University of Bologna, Italy Invité
Xavier CARCELLE
Engineer, Asahi Net, Japan Invité
626
1 Introduction
L’un des attributs largement connus de l’Internet des objets (IoT) est qu’il en-
globe un vaste réseau de ”Things” (objets) hétérogènes, allant des appareils
à ressources limitées utilisés dans les batteries à faible puissance Réseaux
d’actionneurs de capteurs sans fil vers des appareils plus puissants utilisés
dans les passerelles et autres applications gourmandes en calcul comme les
véhicules autonomes, les robots connectés, les drones, etc. De plus, la
présence de l’IoT dans divers domaines d’application énergie intelligente,
santé intelligente, bâtiments intelligents, intelligent transports, industrie in-
telligente et ville intelligente - en fait un domaine diversifié et multidisci-
plinaire, où chaque domaine d’application a ses propres caractéristiques et
exigences diverses.
L’hétérogénéité de l’IoT peut être observée dans de nombreuses disciplines de
l’IoT telles que l’application, l’architecture de l’appareil, le réseau et le proto-
cole de communication. Cette hétérogénéité pose de sérieux problèmes pour
le contrôle de l’interopérabilité et aussi pour l’uniformité dans le développement
de solutions logicielles et matérielles sur le large gamme d’appareils IoT
hétérogènes - unités de traitement, capteurs, actionneurs, émetteurs-récepteurs,
etc.
1
sur de nombreuses plates-formes matérielles composées d’un grand nombre
d’IoT hétérogènes dispositifs. Dans la phase de déploiement - le micro-
logiciel de l’appareil IoT qui remplit les le scénario d’application ciblé est
chargé sur un réseau de système final IoT et est vérifié et validé à nouveau
en environnement réel. En phase d’entretien, les périphériques hérités sont
remplacés en raison, par exemple, d’un changement dans les exigences des
applications imposant de nouvelles fonctionnalités matérielles ou une mise
à niveau du système. Le principal la préoccupation dans toutes ces trois
phases est l’hétérogénéité des appareils IoT qui fait de l’interopérabilité,
de l’évolutivité et de la flexibilité un défi en particulier pour les grands
déploiement à grande échelle de systèmes basés sur l’IoT. Les industries sont
obligées d’embaucher des développeurs de systèmes embarqués expérimentés
pour mettre en œuvre et maintenir base de code logiciel pour divers four-
nisseurs de matériel faisant du prototypage et Preuve de concept (PoC) tâches
difficiles et chronophages. Cela fait aussi la solution IoT déployée est difficile
à mettre à jour en cas de remplacement des appareils IoT d’un autre fabricant
de matériel. Le développement d’applications embarquées dépend du four-
nisseur de matériel, de sorte que tout changement de fabricant d’appareils
IoT déclenchera le redéveloppement de la même application déployée sur
les appareils IoT précédents. De plus, il n’y a toujours pas de commune
adoptée standards pour ces appareils hétérogènes et la plupart des différents
fournisseurs de matériel proposent leurs propres outils de développement.
Cela rend l’industrialisation des services IoT difficile car la phase PoC est
coûteuse en raison de cette l’hétérogénéité et l’absence de normes communes
partagées. Par conséquent, pour une adoption généralisée des systèmes et
services basés sur l’IoT, un une couche intermédiaire de logiciel/service est
nécessaire pour masquer les détails de divers technologies hétérogènes sous-
jacentes à l’écosystème des appareils IoT.
2
IoT exigences telles que le débit de données, la mémoire, le traitement, la
fiabilité, la puissance, la portée, coût, sécurité, évolutivité, etc.
Néanmoins, une architecture typique d’un objet IoT et est composé de divers
blocs fonctionnels matériels hétérogènes - l’unité de traitement qui représente
le ”cerveau” sous la forme d’un microcontrôleur ultra-basse consommation,
d’un microprocesseur, d’un système sur puce (SoC), etc. ressources de cal-
cul nécessaires (CPU, mémoire et accélérateurs algorithmiques, etc.) pour
exécuter des applications IoT. La connectivité sans fil telle que RFID, BLE,
WiFi, LTE, ZigBee et LoRa pour n’en nommer que quelques-uns, fournissent
le lien de communication nécessaire pour établir un réseau distribué d’objets
IoT.
L’unité de traitement (PU) intègre une grande variété de périphériques hétérogènes
(interfaces de communication). Cette large intégration périphérique hétérogène
est destinée à faciliter la communication avec différents blocs fonctionnels
extérieurs à l’unité de traitement. Les périphériques sont utiles car ils permet-
tent aux unités de traitement de se décharger des tâches de calcul (échange de
données entre Unité de traitement et ressources IoT) à eux, économisant ainsi
de précieux calculs ressources pour d’autres tâches importantes. Le nombre et
le type de périphériques pris en charge par le PU et leur mappage de broches
varient d’un PU à l’autre, donc cette hétérogénéité d’interface périphérique
peut conduire à différents et incompatibles conception matérielle. De plus,
le manque d’interface cohérente oblige souvent les intégrateurs de systèmes à
créer les connexions électriques requises qui dépendent du type de PU utilisé.
De plus, en raison de l’avancement des technologies matérielles IoT il faut
reconcevoir ou remplacer le système existant pendant le cycle de vie d’un
Objet IoT, même si seule une sous-partie doit être remplacée.
En conséquence, il existe un fort besoin et une forte demande pour une in-
terface périphérique standard homogène pour gérer la configuration système
avancée des blocs fonctionnels susmentionnés et la fonctionnalité plug-and-
play pour la conception de systèmes embarqués adaptés au prototypage
d’applications Internet des objets.
3
v
Declaration of Authorship
I, Nahit PAWAR, declare that this thesis titled, “On Interoperability and Net-
work Architecture Bottom-Up Heterogeneity Control in Internet of Things”
and the work presented in it are my own. I confirm that:
• This work was done wholly or mainly while in candidature for a re-
search degree at this University.
• Where any part of this thesis has previously been submitted for a de-
gree or any other qualification at this University or any other institu-
tion, this has been clearly stated.
• Where I have quoted from the work of others, the source is always
given. With the exception of such quotations, this thesis is entirely my
own work.
• Where the thesis is based on work done by myself jointly with others,
I have made clear exactly what was done by others and what I have
contributed myself.
Signed:
Date:
vi
Abstract
Nahit PAWAR
Acknowledgements
Contents
Declaration of Authorship v
Abstract vi
Acknowledgements viii
List of Figures 1
List of Tables 3
1 Introduction 5
1.1 Research Context and Problem Statement . . . . . . . . . . . . 5
1.2 Aims and objectives . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Research Methodology . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Thesis Scientific Contributions and Thesis Outline . . . . . . . 11
2 Literature Review 14
2.1 IoT Heterogeneity and Interoperability . . . . . . . . . . . . . 14
2.1.1 Understanding Heterogeneous IoT Ecosystem . . . . . 14
2.1.1.1 IoT Device Heterogeneity : Hardware and Power
Constraints . . . . . . . . . . . . . . . . . . . . 14
2.1.1.2 IoT Network Heterogeneity: Network Con-
straints . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1.3 IoT Protocol Heterogeneity . . . . . . . . . . 17
2.1.1.4 IoT System Architectures . . . . . . . . . . . . 19
2.1.1.5 IoT Platforms . . . . . . . . . . . . . . . . . . 21
2.1.2 Interoperability in the IoT . . . . . . . . . . . . . . . . . 23
2.1.2.1 Syntactic Interoperability . . . . . . . . . . . 23
2.1.2.2 Semantic Interoperability . . . . . . . . . . . 24
2.1.2.3 Network Interoperability . . . . . . . . . . . . 24
2.1.2.4 Platform Interoperability . . . . . . . . . . . . 25
2.1.2.5 Device Interoperability . . . . . . . . . . . . . 25
2.2 Interoperability and IoT Device Management Solutions . . . . 26
x
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.2 Framework Design Objectives . . . . . . . . . . . . . . . . . . 81
4.2.1 Rapid Prototyping . . . . . . . . . . . . . . . . . . . . . 81
4.2.2 Hardware Configuration . . . . . . . . . . . . . . . . . 81
4.2.3 Scenario Deployment . . . . . . . . . . . . . . . . . . . 82
4.3 PrIoT Framework Overview . . . . . . . . . . . . . . . . . . . 82
4.3.1 PrIoT Language and Application Programming Inter-
face : PrIoT-Lang & PrIoT-API . . . . . . . . . . . . . . 82
4.3.2 PrIoT Application Debugging : PrIoT-Test . . . . . . . 84
4.3.3 PrIoT Generic Interface : PrIoT-GI . . . . . . . . . . . . 84
4.3.4 PrIoT Hardware Abstraction Layer : PrIoT-HAL . . . 84
4.3.5 PrIoT Configuration : PrIoT-Config . . . . . . . . . . . 85
4.3.6 PrIoT Parser . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.3.7 PrIoT Database : PrIoT-DB . . . . . . . . . . . . . . . . 85
4.3.8 PrIoT User Interface : PrIoT-UI . . . . . . . . . . . . . . 86
4.3.9 PrIoT Firmware Builder and Uploader . . . . . . . . . 86
4.3.10 PrIoT Scenario . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.11 PrIoT Orchestrator . . . . . . . . . . . . . . . . . . . . . 87
4.4 Conventional Method for Implementing IoT Applications on
Embedded Hardware . . . . . . . . . . . . . . . . . . . . . . . 88
4.5 PrIoT Framework Implementation and Evaluation . . . . . . . 90
4.5.1 PrIoT Application and Configuration Entities . . . . . 92
4.5.2 IoT Resources Database . . . . . . . . . . . . . . . . . . 92
4.5.3 Resource Header Generator . . . . . . . . . . . . . . . 93
4.5.4 Scenario Header Generator . . . . . . . . . . . . . . . . 94
4.5.5 PrIoT IoT Resource Library . . . . . . . . . . . . . . . . 95
4.5.6 PrIoT Embedded Toolchain and Hardware Abstraction
Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.5.7 PrIoT Command Line Interface (PrIoT-CLI) . . . . . . 96
4.5.8 PrIoT Orchestrator . . . . . . . . . . . . . . . . . . . . . 96
4.6 IoT scenario implementation with PrIoT Framework . . . . . . 98
4.6.1 Use Case : Security Access System in Smart Building . 99
4.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Bibliography 145
List of Figures
List of Tables
Chapter 1
Introduction
In the development phase, the application logic is framed and separated into
a large number of distributed tasks for a network of heterogeneous IoT end-
devices, then the application logic is implemented, verified & validated on
many hardware platforms consisting of large number of heterogeneous IoT
devices. In the deployment phase - the IoT device firmware that fulfills the
targeted application scenario is loaded on a network of IoT end-system and
is verified & validated again in real environment. In the maintenance phase,
the legacy devices are replaced due to, for instance, change in application re-
quirements imposing new hardware features or system upgrade. The major
concern in all these three phases is IoT device heterogeneity which makes
Chapter 1. Introduction 7
• Chapter 4: We present our framework named PrIoT for easy and fast
IoT prototyping. We describe the main components of PrIoT that aims
to leverage IoT adoption and usage from design to deployment and bet-
ter handle the heterogeneity property of IoT devices, services and ap-
plications. This framework introduces the design philosophy of "code
once and port anywhere". In addition, we validate our framework by
implementing PrIoT using various open source software & tools. We
also showcase the advantage of PrIoT by implementing an example IoT
scenario use case. The results of this contribution is presented in [19].
Chapter 2
Literature Review
Hardware devices that are used in the Internet of Things (IoT) come with
certain requirements and constraints. It is well known as shown in Figure
1.2 that IoT encompasses a wide range of heterogeneous hardware devices
Chapter 2. Literature Review 15
[1] ranging from 8-bit microcontrollers used in low power wireless sensor
nodes to 64-bit processors used in gateways of other compute intensive ap-
plications. These devices are available from various vendors that differ in
CPU (Central Processing Unit) architecture, power consumption, memory
(RAM & ROM), peripherals, documentations, development tools and soft-
ware. Also there is a huge price difference between lower end 8-bit microcon-
trollers and higher end 64-bit processors with cheaper devices being inferior
to their more expensive counterparts in terms of processing speed, memory,
power, etc. Moreover, the devices that are used in wireless sensor networks
are expected to operate on a limited energy budget for a very long time with-
out human intervention. This requires devices to be powered by battery or
extract energy from the environment (energy harvesting). More details on
power requirements are presented in Section 2.3.1.2.
Bormann et al. [25] (IETF RFC7228) categorizes energy constrained devices
into various classes (Table 2.1) according to energy limitations. As shown
in Table 2.1, class E9 represents devices in the extreme end of the spectrum
where the device has no limitations with respect to available energy, whereas
E0 represents devices in the lower end of the spectrum where the device has
no storage element and relies on external events to extract energy for doing
useful work.
Based on these economical, physical and power constraints, the IoT devices
exhibit certain limitations in terms of slow processing speed, small mem-
ory and lack of constant energy source. Such devices are referred to as con-
strained IoT devices [25, 26].
Also, Bormann et al. [25] categorizes the constrained devices into different
hardware classes (Table 2.2) based on available resources in terms of maxi-
mum code complexity and processing capabilities. As shown in Table 2.2,
Chapter 2. Literature Review 16
Class 0 devices are very constrained sensor-like motes and do not have re-
sources to communicate directly with the Internet in a secure manner. Class
1 devices on the other hand do not have enough resources to support full
IETF Internet protocol suite [27] but can support constrained node proto-
cols for example CoAP (Constrained Application Protocol) over UDP (User
Datagram Protocol). Whereas Class 2 devices are less constrained and can
support most protocol stack that are otherwise not possible in Class 0 and
Class 1 devices. The boundaries of these classes (Table 2.1 and 2.2) are ex-
pected to shift over time based on the improvement in technology to reduce
cost, power and the development of new constrained protocol stack.
The presence of so many IoT devices1 with different capabilities in terms of
processing, memory and power requirements, creates a problem when devel-
oping IoT applications using various software components such as commu-
nication protocol libraries, embedded operating systems, etc. that requires
considerable resources making it difficult to cater full range of constrained
devices from class 0 to class 2 without optimizing existing software compo-
nents. In order to tackle this problem in Chapter 4 we propose our new devel-
opment framework named PrIoT that provides a lightweight and minimalis-
tic approach to IoT application development on heterogeneous IoT devices.
Moreover in Chapter 5 we propose a new hardware approach named P-Bus
(Power Bus) that helps in the development of power aware IoT applications
that better caters the power requirements of IoT devices.
According to Bormann et al. [25], the constrained network has the following
attributes - low bit rate and throughput with limits on both duty cycle and
transmission power, high packet loss with unpredictable packet loss rate,
asymmetrical up-link and down-link characteristics, limits on reachability
and lack of advanced services.
1 29.3 billion networked devices by 2023, Cisco Annual Internet Report (2018–2023) White
Paper, [Online]
Chapter 2. Literature Review 17
Physical and Link Layer : Physical and link layer of the network proto-
col stack defines the network interface between IoT objects. The physical
layer defines the way in which data is transmitted on the network medium
(wired or wireless) and the link layer determines how the streams of bits
are put into manageable frames of data [30]. There are a number of pro-
tocols and technologies defined by various organizations and standards for
both physical and link layer protocols. The reason for such a large variety
of protocols is due to different requirements (bandwidth, range, energy con-
sumption, coverage, reliability, spectrum availability, etc.) of the IoT mar-
ket [31]. For example, LPWAN (Low-Power Wide-Area Network) protocols
such as LoRa, Sigfox, NB-IoT, Ingenu, etc. are designed for wireless sen-
sor networks that require long range communication at a low bit rate. Blue-
tooth and BLE that are based on IEEE 802.15.1 standard are used in smart-
phones, wearable & medical devices, etc. LR-WPAN (Low-Rate Wireless
Chapter 2. Literature Review 18
Application Layer : The application layer is the final layer of the OSI model
of computer networks and it ensures effective communication between two
or more application programs in a network [30]. There are several appli-
cation protocols that can be used in IoT applications and each one of them
uses different technology and has its own benefits and drawbacks [36]. The
most popular application layer protocols in the IoT community are RESTful
HTTP (Hypertext Transfer Protocol ) [37], Constrained Application Protocol
(CoAP) [38], Message Queuing Telemetry Transport (MQTT) [39], Extensible
Chapter 2. Literature Review 19
oneM2M [48] standard for M2M & IoT defines a horizontal architecture that
provides common services (IoT service layer) that enables applications in
multiple domains. This IoT Service Layer is like a distributed operating sys-
tem for IoT providing uniform APIs to IoT applications that hides the under-
lying network technologies, transport protocols and data serialization.
The Open Connectivity Foundation (OCF) [49] is an industry organization
that develops standards, interoperability guidelines and provides certifica-
tion guidelines. It defines an architecture that is based on Resource Oriented
Architecture (RSO) design principles, where each entity (e.g. wired or wire-
less sensor actuator devices) is represented as Resources. Interactions with
an entity are achieved through its Resource representations using operations
that adhere to REST (Representational State Transfer) architectural style. The
OCF architecture defines the framework of the information system and the
interrelationship between entities. IoTivity [50] is an open source implemen-
tation of OCF specification developed by various members of OCF.
While each industrial alliance such as, Thread Group [51], LoRa [52], Zig-
bee [53], Z-Wave [54], Wi-SUN [55], NFC Forum [56], etc. - promotes their
own "in-alliance industrial standard" with their protocol (Section 2.1.1.3) &
architecture and there are no real successful attempts to cover a cross do-
main standard for the IoT ecosystem as a whole. Meanwhile, international
standardization bodies such as International Standardization Union (ITU),
European Telecommunications Standards Institute (ETSI), Internet Engineer-
ing Task Force (IETF), World Wide Web Consortium (W3C) are all providing
their specifications for standardized connected IoT architecture and proto-
cols. The architecture from IETF is based on their protocol suite [57] -
CoAP, RPL (Routing Protocol for Low Power and Lossy Networks), 6LoW-
PAN, IEEE 802.15.4 - to allow easy integration of resource constrained IoT
devices in IP networks.
Research community also actively participates in defining and comparing
the requirements for the future IoT architecture. Wu et al. [58] introduces
a 5-layer (business management layer, service management layer, network
management layer, element management layer and network element layer)
IoT architecture by improving the traditional 3-layer (application layer, net-
work layer and perception layer) IoT architecture that lacks network man-
agement and business models. The 5-layer architecture includes the qualities
of both the architectures - Internet and Telecommunication management net-
work.
The architecture of most publicly available IoT experimental testbeds follow
Chapter 2. Literature Review 21
either a two-tier (IoT device tier and Server tier) or three-tier (IoT device tier,
gateway device tier and server tier) structure [59], where the structure refers
to the organization of testbed hardware components. Although these archi-
tectural structures are suitable for experimentation and prototyping but do
not cover IoT system management features.
Peña et al. [60] defines an IoT architecture centered around Fog/Edge com-
puting and proposes an extension to IoT-A architectural reference model in
terms of computing location transparency & topology management and in-
tegration & automation of IoT visualization systems.
Misra et al. [61] proposes a 4-layer (things layer, sensor/network as a service
layer, data management layer, analytics layer) architecture by extracting the
requirements and characteristics from various IoT application domains that
are desired in practical architecture. Yelamarthi et al.
[62] proposes a simpler device oriented modular view of IoT where bound-
aries between various architectural layers are defined between sensor & actu-
ator, low power embedded processor, wireless transceivers, Internet gateway
and cloud.
Yashiro et al. [63] also proposes a device oriented architecture based on two
existing technologies - CoAP and uID (Ubiquitous ID) along with RESTful
IoT services to implement practical IoT applications.
In summary, the study and research for new and existing architecture and
reference models for IoT will continue to grow as we are still far away from
an ideal architecture. Our analysis of this state of the art showed a conver-
gence of the approaches to control the heterogeneity from the IoT gateways
to the IoT cloud servers using the standard Internet protocol based suite.
However the heterogeneity due to the IoT end device technologies is hidden
by the IoT gateways and there is no standard framework to control this part
which makes IoT end to end interoperability difficult to achieve. In our work,
we addressed exactly this IoT device related heterogeneity control, and we
propose to adopt a 4-layer architecture (Chapter 3) to study the various IoT
characteristics for extracting invariant functionalities and programming pat-
terns at each layer.
Mineraud et al. [64] defines the IoT platform as the middleware and the
infrastructure that enables the end-users to interact with smart objects. Pliat-
sios et al. [65] defines an IoT platform as a comprehensive suite of services
Chapter 2. Literature Review 22
the edge/gateway to the IoT service in the cloud, however there is no joint
standard on the IoT data management and processing used in each IoT cloud
platform, thus making it complex to move from one IoT service cloud plat-
form to another. This type of high level heterogeneity related to the IoT data
processing and management is not handled in this thesis. Later, in Section
2.2.2 we review in detail the various IoT development platforms and operat-
ing system platforms.
These specifications are defined in the form framework which provides in-
teroperability guidelines for the industries to develop platforms or tools that
complies with the specifications defined by the framework. In the context
of IoT heterogeneity control, different industrial alliances define different
frameworks. Additionally international standardization bodies are actively
working on the best standard framework for IoT communication protocols
and APIs. In this section we review a selection of most used frameworks de-
fined by standards organization and industrial alliances such as - oneM2M,
OCF, IETF, ETSI, Thread group and Zigbee Alliances.
Industrial alliances such as - oneM2M [87] and OCF [88], define an IoT archi-
tecture in the form of reference framework to overcome the interoperability
problem.
oneM2M [87] defines a horizontal architecture using a common framework
and uniform APIs that enables application across multiple domains. It de-
fines an IoT service layer in the form of software middleware between IoT
applications and sensor nodes. This IoT service layer is like a distributed op-
erating system that provides uniform APIs to IoT applications. The uniform
APIs help to cope with complex and heterogeneous connectivity choices and
abstracts the details of the underlying network technologies, transport pro-
tocols and data serialization. The list of common services defined by the IoT
service layer includes - secure end-to-end data/control exchange between
IoT devices, authentication, authorization, encryption, remote provisioning
Chapter 2. Literature Review 27
nodes that are IP enabled, which mainly includes IoT gateways like devices.
There are a number of IoT end devices that are not IP-capable and are widely
used in IoT related industrial and home automation applications.
There are number of implementations that exist for both oneM2M and OCF,
for example OpenMTC [89] is a backend and gateway side implementation
of oneM2M with limited number of supported protocol adapters, whereas
OS-IoT [90] is device-side library that implements oneM2M defined network
& protocol functions and therefore reduces the effort needed to hook IoT de-
vices into oneM2M ecosystem but requires considerable device resources to
run effectively. On the other hand IoTivity-Lite [91] is a light-weight imple-
mentation of OCF but still requires resources at least that of class 2 devices
(Table 2.2).
Furthermore, some industrial alliances are pushing dedicated frameworks
based on their protocol stack to respond to specific industrial vertical needs.
In this regard, the Thread Group alliance [51] promotes specific standards for
the home automation industry that uses 6LoWPAN over IEEE 802.15.4 wire-
less protocol with mesh network for communication. Zigbee Alliance [53]
on the other hand uses its own networking protocol over IEEE 802.15.4 and
supports star, tree and mesh networking that is not compatible with IP en-
abled devices. IP connectivity on the other hand is supported by Zigbee IP
that provides support for full IPv6-based mesh networking. Zigbee proto-
col is widely used in many verticals such as home automation, industrial
control and building automation to name a few. Wi-SUN (Wireless Smart
Ubiquitous Network) [55] alliance promote technology that are based on
UDP/TCP and IPv6/RPL/6LoWPAN over IEEE 802.15.4g/802.15.4e with
mesh network topology for wireless smart utility and smart city applications
such as advance metering, distributed automation, municipal lighting, smart
parking, environmental sensing, etc.
While each industrial alliance promotes their own protocol, there are no real
successful attempts to cover a cross domain standard for the IoT ecosystem.
Meanwhile, international standardization bodies such as ITU, ETSI, IETF are
all providing their specifications for standardized connected IoT architecture
and protocols. The IETF focuses mainly around IP compliant approach for in-
teroperability. For this, it has developed a protocol suite and open standards
for accessing applications and services for resources constrained devices and
networks. Sheng et al. [57] provides a detailed survey on IETF protocol suite
for the IoT. Despite the IETF IoT standards such as CoAP, 6LOWPAN, RPL,
Chapter 2. Literature Review 29
6Tisch, etc. the real IoT services deployment is following more industrial al-
liances as mentioned above than a universal standard. This is due mainly to
the lack of memory, processing and energy resources in most of the IoT elec-
tronic devices such as monitoring sensors that are lacking resources to run for
instance the IETF 6LoWPAN. On the other hand, ETSI-M2M [92] framework
by ETSI provides a RESTful horizontal functional architecture for applica-
tions to share common infrastructure, environments and network elements.
The ETSI-M2M architecture has three domains - device & gateway domain,
network domain and application domain - with a generic set of service ca-
pabilities for M2M on top of connectivity layers deployed in M2M networks,
gateways, and devices. The standards defined by ETSI-M2M are adopted by
oneM2M as discussed above.
a single URI. It specifies how to insert, update and delete these catalogues.
They used their own web centric IoT toolkit - WoTKit for managing real-time
data and external open source tool CKAN to support static data and meta-
data. They also build a proxy that provides an application with a unified
interface to access these tools, a third party search engine - Apache Solr - to
both store and search catalogues. To deal with heterogeneous data from a set
of disparate sources they developed a tool called Harvester which is based on
CKAN Harvester plug-in. Their approach is similar to the hub based projects
like - Xively and ThingsSpeak.
Chatzigiannakis et al. [100] introduces the term “true self-configuration” that
refers to the capability of a node to automatically identify nearby devices,
query information from the web, combine local and remote data to generate
meaningful new information. They extended the Semantic Web technology
to form a semantic IoT, such as for the machine-understandable and domain-
independent representation of data they used Resource Description Format
(RDF), the data are linked with Linked Open Data (LOD) and to query the
IoT and data sources from the internet, SPARQL and data from LOD cloud
are used. Their system is built around their two core contributions - "Se-
mantic Data" and "Smart Self-Annotation". For semantic data they used ex-
isting semantic web technologies such as RDF and Linked Data (LD). For
smart self-annotation instead of using existing work such as SensorML [101],
Transducer Electronic Data Sheets (TEDS) [102] and Semantic Sensor Net-
work (SSN) Ontology [83], they compared the output of new sensor to al-
ready deployed sensor with known metadata and with the assumption that
sensors with similar metadata will output similar stream of sensor data. They
used fuzzy-based methods to associate membership with already deployed
sensors. Another feature of their project is "Semantic Actuation" - which uses
"Semantic Web Rule Language" (SWRL) [103] from "W3C" to formulate com-
plex rules over RDF data. These rules are evaluated to trigger actuation and
is similar to IFTTT.
The existing approaches presented in this section still require considerable
resources to run effectively on constrained devices or at least require knowl-
edge of various underlying technologies such as communication protocols,
device architecture, etc. In Chapter 4, we propose our development frame-
work named PrIoT that provides a lightweight approach for implementing
IoT applications on heterogeneous IoT devices, including resource constrained
(Class 0) IoT devices. In addition, it also provides a high level application
interface (PrIoT-API) and programming language (PrIoT-Lang) that are IoT
Chapter 2. Literature Review 33
In IoT platforms, one can refer to the well known platforms - Arduino [68],
Energia [70] and mbed [69] that combine the embedded system boards and
components with their programmation language and design tools. Arduino
platform is based on an open-source wiring programming-framework [94]
and supports a variety of microcontroller architectures such as AVR, ARM,
ESP, etc. that can be programmed using a C-like programming language with
easy to use integrated development environment (IDE). In terms of hard-
ware, Arduino boards have an interface to connect "Shields" - add-on circuit
boards to enhance the capability of Arduino boards (See Section 2.3.1.1 for
more details). Arduino boards together with Shields are designed for easy to
use and include all the necessary circuitry for quick and rapid prototyping.
On the software side, Arduino provides an extensive set of libraries and a lot
of example codes for effortless learning. Furthermore, Arduino is backed by
a large community of hobbyists, engineers and professionals to create, share
and support libraries and examples online. Although Arduino is the most fa-
vorite platform for IoT proof-of-concept it has many disadvantages making it
not suitable for commercial and industrial use. In fact Arduino is restricted to
a small number of architecture and is not portable to other microcontrollers,
its libraries are very inefficient in terms of resource usage (RAM, ROM, CPU
cycles, etc) and therefore has low performance as compared to bare-metal
implementation. In addition, Arduino boards are expensive and are not suit-
able for large scale deployment. In addition, Arduino boards are expensive
and are not suitable for large scale deployment.
Inspired by Arduino, Energia platform is also based on the Wiring programming-
framework and provides an IDE similar to Arduino. Energia supports only
Texas Instruments (TI) development boards and device architecture. Since
Energia is based on the same wiring framework as Arduino, it has the same
limitations - programs written in Energia are not portable to other microcon-
trollers. On the other hand, The mbed platform [69] is an initiative from ARM
and provides an online IDE and operating systems (mbed OS) for the devel-
opment of embedded applications. The platform supports microcontrollers
based on ARM Cortex-M architecture. In ARM mbed the development and
contribution is supported at two levels. The first level - Core Platform, in-
cludes all the generic software components and the HAL which allows mbed
Chapter 2. Literature Review 34
Architecture Functionalities
Name MCU MPU IPv6 AES Gateway
ARM Cortex-Mx 3 7 3 7 7
Atmel AVR 3 7 7 3 7
TI-MSP430 3 7 7 7 7
Intel x86 7 3 3 3 3
ARC 7 3 3 7 3
NIOS II 7 3 3 7 3
Tensilica Xtensa 7 3 7 7 3
RISC-V 7 3 7 7 3
Nordic 3 7 7 3 7
In the context of tools for device programming, there are numerous semi-
conductor vendors that provide microcontrollers for IoT hardware develop-
ment and different vendors have different development tools as shown in
Chapter 2. Literature Review 35
Table 2.4. Embedded firmware developers are forced to procure, learn and
install new tools for every time they switch to different vendors. Also find-
ing proper libraries and sample code for sensor, actuator and communication
devices is time consuming which makes hardware testing and prototyping
more difficult. PlatformIO [104] is one such tool that overcomes this prob-
lem. It is an open source IDE with a collection of cross platform tools for IoT
device programming and provides a unified ecosystem for embedded code
development for various hardware platforms and is equipped with a code
editor, library manager, toolchain and debugger that supports more than 400
development boards.
On the other hand, Eclpise IoT [105] from Eclipse foundation provides a col-
lection of open source software that is divided into three independent IoT
software stack namely - IoT device stack, IoT gateway stack and IoT cloud
stack. IoT device stack includes projects like - Eclipse edje [106] (Hardware as-
btraction layer, JAVA APIs for MCUs - "Android for IoT"), Eclipse paho [107]
(C implementation of MQTT), Eclipse Wakaama [108] (C implementation of
OMA LWM2M). IoT gateway stack includes Eclipse Kura [109] project and
IoT cloud stack include Eclipse KAPUA [110] project.
Bröring et al. [86] presents the architecture of platform interoperability through
the H2020 project "BIG IoT". The aim of the project is to enable cross-platform,
cross-standard and cross-domain IoT service and application by building an
IoT ecosystem of interoperable IoT platforms. It provides key functionalities
like - advertising, dynamic discovery, automated orchestration and negotia-
tion of services. They explained their architecture of interoperability through
"BIG IoT" APIs that offer seven well defined functionalities - 1) Identity Man-
agement - for resource registration. 2) Discovery of resources. 3) Access to
(meta) data. 4) Tasking - to forward commands to things. 5) Vocabulary man-
agement - for semantic description of concept 6) Security management and 7)
Charging - to allow monetization of assets. They also suggest the five inter-
operability patterns that need to be supported by IoT platforms for interop-
erability among platforms.These patterns are based on a well defined syntax
and semantics of the interfaces and categorized as - 1) Cross-platform access.
2) Cross-application domain access. 3) Platform independence. 4) Platform
scale independence. 5) Higher-level service facades. The BIG IoT APIs are
designed to enable these patterns. Although the interoperability architecture
introduces the concept to enable platform interoperability but fails to explain
the implementation details and how it can be adapted to constrained IoT de-
vices.
Chapter 2. Literature Review 36
There are currently many embedded operating systems (OSes) such as Riot [71],
Zephyr [72], TinyOS [74] and Contiki [73]. They are designed to hide the
heterogeneity of underlying IoT hardware platforms and hence provide a
solution for device interoperability. They clearly need more hardware re-
sources than an application built using platforms such as Arduino, Energia
and mbed. OSes are designed to provide much higher level of hardware ab-
straction by dividing software components into two parts - hardware-dependent
(peripheral drivers, CPU & Board related codes, etc.) and hardware-independent
(kernel, libraries & network code, etc.). Each embedded OSes have their own
APIs, data structure, libraries and supported list of hardware platforms thus
creating many vertical silos of operating systems that are not compatible with
each other. We focus on three open source OSes - RIOT [111], Zephyr [72] and
contiki [73] - to show the advantages and disadvantages of using embedded
OSes for prototyping connected-devices.
RIOT [71] is a free and open source real-time microkernel-based OS devel-
oped to adapt to the network of constrained IoT devices. It leverages the ca-
pabilities of hardware with both constrained as well as abundant resources
and provides support for network protocols like the standard IETF 6LoW-
PAN and RPL for constrained devices and also full support for IPv6, UDP
and TCP. Because of the RIOT hardware abstraction layer (RIOT-HAL) be-
tween RIOT kernel and hardware, it is possible to build complete embedded
software which can be easily ported to any hardware supported by RIOT.
The RIOT-HAL avoids redundant code development and reduced applica-
tion maintenance cost. Although RIOT provides hardware independent ap-
proach for application development which is beneficial for rapid and flexible
prototyping, as of now it supports a certain number of hardware boards but
provides the necessary resources to add new boards.
Zephyr [72] is a linux foundation hosted collaboration project. Like RIOT,
Zephyr is a small, scalable and open source real-time operating system which
is driven by community to support new hardware, developer tools, sensor
and device drivers. It supports standards like IETF 6LoWPAN, CoAP, IPv4,
IPv6, NFC, bluetooth, bluetooth low energy (BLE), Wi-Fi and IEEE-802.15.4.
Like RIOT and Zephyr, Contiki is another tiny operating system for resource
Chapter 2. Literature Review 37
interface that send and receives data to and from devices of different IoT
islands) into two parts : behaviour (logic) and deployment (how communi-
cation is performed), as a result the behaviour of the program can take any
communication method described in the deployment part. As of now their
approach is limited to hardware (Class 2 devices - See Table 2.2) that can
support JVM (Java Virtual Machine). Eclipse mita [114] is another program-
ming based approach that allows easier programming of IoT applications for
developers without embedded development background. Mita syntax and
APIs provide hardware platform agnostic view to developers allowing easy
programming of connectivity modules, sensor, actuators, etc. The Eclipse
mita is new project and only support limited number of hardware platforms.
It is also important to mention the role of Domain Specific Language (DSL)
in projects like - IoTLink [115] and IoTSuit [116]. In IoTLink inherits the con-
cept of IoT-A. It allows developers to compose software representation of
physical objects through model-driven approach. The application is defined
in a platform-independent model through visual notations, which is then
transformed in a platform specific model based on Java programming lan-
guage. The implementation of IoTLink is based on various eclipse plugins
- Eclipse Modeling Framework (EMF), Eclipse Graphical Modeling Frame-
work (GMF), Extended Editing Framework (EEF) and Acceleo. But the tool
assumes that the IoT hardware (sensor node) is available off the shelf and
that it can be accessed through any one of the popular communication pro-
tocols.
On the other hand, the IoTSuit toolkit divides an application into different
concerns and integrates a set of high level languages to specify them. IoTSuit
still requires experts or at least expert knowledge at various stages of IoT ap-
plication development. The domain expert generates a domain vocabulary
which contains domain-specific concepts specific to target IoT application.
The domain vocabulary is then made available to experts at various stages
of IoT application development, like - network manager, software designer,
device developer and application developer. The tool generates a vocabulary
framework to aid device developers in developing embedded device drivers,
although they integrated an open-source sensing frameworks for android de-
vices leaving device developers to only implement interfaces. But this will
greatly restrict IoT scenario designers to limited number of sensors, actuators
and communication devices.
In our approach we also follow similar language based approach not only for
IoT application logic development but also for IoT scenario configuration as
Chapter 2. Literature Review 39
explained in Chapter 4.
end interoperability also requires another design approach in the IoT hard-
ware part. In Chapter 5 we propose our contribution based on a modular
approach for designing embedded systems that provides a uniform homo-
geneous standard interface to better meet IoT device requirements.
The section is organized as follows, in subsection 2.3.1, we briefly introduce
the concept of modular architecture and systems from engineering design
perspective and its importance. Then in subsection 2.3.1.1, various existing
modular systems are explained in details along with their limitations. Fi-
nally, in subsection 2.3.1.2 we review various power optimization techniques
in IoT and state the importance of energy aware IoT applications. In addi-
tion, we state the requirement of intelligent modular systems that can cater
to various energy limitations of IoT device and applications.
In the context of modular system design there are a number of design choices.
Each of them differs in form factor, number of supported peripherals along
simultaneously access to these peripherals, demo boards and the way the
main-board is connected with auxiliary-board(s).
idea behind M2.COM modular design is to allow sensor integrators and sen-
sor makers to select most efficient way to transmit data. The 75-pin connector
exposes various embedded peripherals listed in Table 2.5.
Micro Bit : Micro Bit [141] (main-board) is an open source ARM-based em-
bedded system designed by the BBC (British Broadcasting Corporation) for
its use in computer education. The size of the board is 43 × 52 mm and carries
an ARM Cortex-M0 based processor, sensors, buttons, LEDs, Bluetooth, USB
and external battery connector. Micro Bit uses 25 pin edge connector to inter-
face with external auxiliary-board that carries either a 90◦ or 180◦ compatible
female edge socket. The 25 pin edge connector exposes various peripherals
listed in Table 2.5. The main disadvantage of Micro Bit is that it is designed
for ARM based processor and is mainly used for computer education.
the physical layout of the mikroBUSTM pinout, the size & shape of auxiliary-
boards and the positioning of the mikroBUSTM socket on the main-board and
finally the silk screen marking conventions for both sockets and auxiliary-
boards. Figure 2.5 depicts mikroBUSTM system and along with example
board in Figure 2.6. The mikroBUSTM socket comprises a pair of 1x8 fe-
male header on the main-board with proprietary pin configuration that offers
various peripherals listed in Table 2.5. The auxiliary-boards are known as
mikroBUSTM add-on boards and each such boards provide additional func-
tionalities - wireless connectivity, sensing, actuation, HMI, etc. - to the sys-
tem. The size of the auxiliary-boards are limited to three sizes S (25.4 × 28.6
mm), M (25.4 × 42.9 mm) and L (25.4 × 57.15 mm) and because of this it is
difficult to provide multiple IoT resources on a single auxiliary-board and as
a result the main-board may require multiple mikroBUSTM auxiliary boards.
This creates variability in main-board size (form factor) from one IoT appli-
cation to another.
6-pin can provide SPI or UART or I2C on each 1 x 6-pin separately. Table 2.5
lists various peripherals supported by pmod along with size specification.
Figure 2.8 shows an example of Pmod board.
The drawback of both mikroBUSTM and Pmod system is that multiple auxiliary-
boards are needed if an IoT application requires multiple IoT resources, which
can effect the design of main-boards from one application to another.
supports four types of embedded peripherals and not all peripherals are si-
multaneously available on a single board. Figure 2.9 shows an example of
Grove auxiliary board.
Arduino Shields : Shields are one of the older and widely used pluggable
board architecture for Arduino based systems. Shields (auxiliary-board) mounted
on the Arduino board (main-board) gives extra capabilities in terms of IoT
resources. The nominal size of shield is 68.58 × 53.34 mm, which provides
standard male pin-header style connectors (known as “shield connectors”) for
mounting directly onto the main board that has an equivalent female socket.
The 32 pin connector exposes various standard peripherals like - SPI, UART,
I2C, upto 6 PWM & Analog each, 2 interrupts and upto 20 GPIOs. Due to
its popularity with Arduino based system these boards has been adopted for
other non-Arduino based boards, like STM Nucleo [147], NXP LPCXpresso
[148]. Figure 2.10 shows an example of Arduino Shield.
BeagleBoard Capes Similar to RPi HATs, BeagleBoard (BB) capes are daugh-
ter boards for single board computers based on BeagleBone and PocketBea-
gle family of boards. Capes also has an EEPROM which fulfills a similar
function to that of HAT-EEPROM (interface & driver setup), but the data for-
mat is not compatible, unlike RPi the BB has the ability to accept up to four
capes that can be stacked on top of the BB. The information about which pins
and features used by capes are stored in the EEPROM on each cape. The
Chapter 2. Literature Review 49
A lot of IoT applications are relying on IoT devices with limited resources of
processing, storage, communication but also energy. Certain IoT applications
are using other IoT devices with enough resources such as connected vehi-
cles, connected sensors in home automation with sensors energised from the
Chapter 2. Literature Review 50
mains electricity. In this work we are interested in the power constrained IoT
devices as it is for the moment widely used for different sensing and moni-
toring IoT applications. Moreover, the true power of IoT lies in the fact that
in the real world scenario the network (wired and wireless) of IoT devices are
expected to be operated in energy constrained environment with multi year
of lifetime. This requires IoT devices to better cope with various external
power and energy sources. Garg et al. [152] provide a comprehensive survey
on various energy sources available that are used in energy harvesting ap-
plications. In order to understand the energy limitations of IoT devices, Bor-
mann et al. [25] introduced the terminology for energy constrained devices
and partition the devices into various classes according to energy limitations
as shown in Table 2.1.
Arshad et al. [13] discusses and evaluates the best strategies for minimizing
the energy consumption for their vision of Green IoT 2020. To maximize the
wireless node’s lifetime the node has to exploit energy aware techniques in
circuits, architecture, algorithm and protocols [153]. One method to under-
stand energy consumption of protocols is to model the wireless power con-
sumption of IoT devices [154], although it is not an easy task as it requires
many technology dependent parameters, nevertheless the power models are
good for comparing various wireless technologies at an early stage of tech-
nology selection. For example, Casals et al. [155] presents analytical models
of LoRaWAN nodes’s current consumption that is derived from the mea-
surements performed on existing prevalent LoRaWAN hardware platform,
these models are useful to study the impact of various LoRaWAN physical
and Medium Access Control (MAC) parameters (data rates, acknowledge
transmission, payload size and bit error rate) on power consumption and ul-
timately to have a rough estimate of battery life.
There are also other techniques to reduce power at the protocol level, for
example Adame et al. [156] proposes an energy efficient protocol stack for
multi-hop communication for LPWANs technology.
Sinha et al. [153] has developed an energy aware embedded operating sys-
tem (OS) that uses dynamic power management techniques such as shutting
down sensor nodes if no event occurs and wake them up when necessary.
Raghunathan et al. [157] explains the various design considerations at circuit
level for designing energy harvesting sensor nodes. From a hardware design
perspective, an energy efficient ultra low power wake-up receivers (WURx)
[158, 159, 160] are gaining a lot of attentions for reducing power consump-
tion by relieving the main radio from continuously monitoring the channel
Chapter 2. Literature Review 51
for incoming messages. The WURx acts as an auxiliary receiver and wake-up
the wireless node from sleep using interrupt, only after detecting a potential
incoming message.
Finally, we have studied that in order to implement the above power man-
agement techniques ([153, 157, 158, 159, 160, 156]) a wireless node should
be capable of dynamically monitoring the available energy source (light in-
tensity, wind speed, vibration, temperature, etc.) & consumption (voltage,
current, charge, etc.) and also taking appropriate action to manage power
consumption both in software and hardware. In this context, Georgiou et al.
[161] discusses the role of software in controlling the energy consumption of
IoT devices that requires constant feedback from the hardware on the state
of energy consumption. This requires an intelligent modular power supply
unit that is usable across diverse classes of energy limitations and can pro-
vide the necessary features to the device software to better optimize power
utilization during runtime. The existing modular systems as discussed in
Subsection 2.3.1.1 does not take into account the energy requirements of IoT
application and hence does not provide any power management features.
In summary, our contribution work presented in Chapter 5 is built on the
previous research that are presented in this section to identify the various
power requirements & management techniques of IoT devices. As a result of
which we propose a modular system named Power-Bus (Chapter 5 - Section
5.3) that provides the necessary features required for better power optimiza-
tion and exposes an intelligent homogeneous interface that is usable across
various power requirements of IoT applications.
52
Chapter 3
3.1 Introduction
This chapter introduces our first contribution that describes the underlying
design philosophy of our proposed framework (Chapter 4). We propose 4-
layer IoT architecture and most importantly we identified the common in-
variant functionalities (IFs) and the corresponding programming patterns
(PPs) present in most IoT scenarios. These IFs and PPs are needed to re-
duce the complexity of managing IoT scenarios on heterogeneous IoT de-
vices. These high level abstractions are needed to systematically understand
the high level description of IoT scenarios and also for designing software
abstraction layer (SAL) that is agnostic to the underlying IoT device and pro-
tocol heterogeneity. For validating the IFs and PPs, we incorporated these
abstractions in our PrIoT framework (Chapter 4) to manage IoT life cycle on
heterogeneous IoT devices.
The chapter is organized as follows, we begin (Section 3.2) with our pro-
posed 4-layer IoT Architecture that will allow us to systematically structure
an IoT application scenario, its characteristics and identify the underlying
problems associated with each layer. Next, in Section 3.4 we introduce a
high level abstraction in the form of programming concepts that captures the
most common IoT applications invariant functionalities (IFs) and program-
ming patterns (PPs) that we identified and gathered in a limited and simple
list of commands. We identified these abstraction from our study (Chapter 2)
Chapter 3. IoT Application Characteristics and Its Common Invariant
53
Functionalities
These devices are available with varying degrees of capabilities and are pro-
vided by various OEMs (Original Equipment Manufacturers). Selecting a
particular device for a given application is not trivial, as the application re-
quirements are generally domain dependent [162] and application develop-
ers do not have much freedom in defining them. For example a monitoring
application in the smart-city domain has a firm requirement of high reliabil-
ity, low cost and scalability apart from others.
From a given application requirements selecting the right device/hardware
is a daunting task because of the following reasons listed below and is a
trade-off between interlinked "selection criteria" mentioned in Table 3.1 :
1. There are numerous devices available in the market from various hard-
ware vendors therefore selecting a particular hardware is a trade off
between many "hardware requirements" listed in Table 3.1.
Chapter 3. IoT Application Characteristics and Its Common Invariant
55
Functionalities
3. During maintenance phase the legacy devices are replaced due to, for
instance a change in application requirements may impose new hard-
ware features to be added or system upgrade. In this situation the de-
ployed hardware is difficult to upgrade in case the devices are replaced
from different hardware vendors, as this will enforce to hire experi-
enced embedded system developers to implement and maintain em-
bedded software codebase from various hardware vendors.
At the very least this layer acts as a bridge to exchange data between bottom-
layer and upper-layer. The hardware system used in this layer are known as
gateway and are made up of high performance processing unit with abun-
dant resources to support state of the art operating systems, for example the
famous Raspberry Pi with Raspbian OS (a linux based OS). The presence of
such operating systems at this layer hides the hardware heterogeneity for
gateway-like devices, thereby relieving application developers from know-
ing the underlying hardware details. The gateway exchanges data to and
from the top-layer using well know standard protocols (also known as Inter-
net backhaul) from the application layer of the Internet protocol suite - like
Chapter 3. IoT Application Characteristics and Its Common Invariant
57
Functionalities
Bulk data received from the previous layer are stored in the cloud for further
processing. This layer exposes the required tools to help in the development
of various cloud applications, such as visualization, analytics, cross-domain
data exchange, cognitive computing, big data, machine learning algorithm,
artificial intelligence (AI) and so on. Also this layer exposes close to no hard-
ware heterogeneity as IoT application developers take advantage of avail-
able cloud services like SaaS (Software as a Service), PaaS (Platform as a Ser-
vice) and IaaS (Infrastructure as a Service) from various cloud based service
providers (Amazon, Google, Microsoft, IBM, Oracle, etc.). In general the ser-
vices at this layer are accessed through secure publish/subscribe (pub/sub)
protocols such as MQTT, AMQP and RabbitMQ and request/response pro-
tocols like HTTP.
The IoT device management (DM) plays a very important role in the scala-
bility and sustainability of IoT systems by ensuring maximum uptime, pre-
emptive security vulnerabilities & greater customer experience and can be
Chapter 3. IoT Application Characteristics and Its Common Invariant
58
Functionalities
In general, due to resource (compute & memory) limitations at L1 & L2, IoT
system management functions listed above are implemented and executed
as cloud services by various "IoT platform" solution providers [165], notable
examples are Amazon AWS, Google IoT, Microsoft Azure, IBM Watson IoT,
Oracle IoT Cloud Enterprise, etc. In certain scenarios where the latency is of
prime importance the optimized version of cloud services are also exported
to edge devices (L2), also known as fog computing or edge computing.
Chapter 3. IoT Application Characteristics and Its Common Invariant
59
Functionalities
...
...
External
Connector
domain and its requirements an IoT End-System performs some basic high-
level invariant functions as explained hereafter and is also summarized in
Table 3.3.
execute/timer
These functions are programmed in the memory of the processing unit (PU)
and are responsible for controlling the behavior of other IoT Hardware-Resources.
One of the control functions issued from PU is to configure (configure) the
end-system into desired functional state depending on the type of Hardware-
Resources. For example the sampling rate of the sensor needs to be configured
before using it and also after transmission a transceiver can be configured in
low power mode.
Chapter 3. IoT Application Characteristics and Its Common Invariant
64
Functionalities
Other control functions perform operations that are based on the type of
Hardware-Resources they are associated with. For example, a read function
associated with a sensor is used for reading sensor data, while the similar
read function for memory is used for reading stored data. Similarly a write
function is used for controlling the action of actuators and also it can be used
to display information on HMI devices like display.
Also based on the underlying network protocol and configuration a PU can
issue send and receive control function for transmitting and receiving data
to and from layer above (layer-2 and layer-3) or directly to another IoT End-
System in layer-1.
A PU can also perform some auxiliary functions for example, an execute
command can call library functions or user defined custom functions (for
eg. an algorithm for local sensor data processing before transmitting).
Finally the timer command can execute three low level functionalities based
on the application requirements - first is the standard delay operation where
a PU waits for a defined time interval, second allows PU to wait for an exter-
nal event to occur and third is a sleep operation that allows PU to initiate a
safe system level power down sequence to save power in a battery operated
scenario.
In our work the collection of these invariant constructs forms the basis for an
PU to interact with other Hardware-Resources in a technology agnostic way.
We also observed [4, 169] that an application code for IoT End-System (device
element) follow some basic programming patterns listed in Table 3.4 along
with example applications. Although these patterns are limited in scope but
can be used to program highly practical IoT scenarios.
general stages of IoT applications that includes - data acquisition, data pro-
cessing, data storage and data transmission. They are designed specifically
according to real-time requirements of an application and whether the data
is processed locally or not.
Here we also argue that the device management functions are also covered by
these programming patterns which requires systematic exchange of invariant
commands between IoT end-system and cross-layer management controller,
which will be discussed in Section 3.4.4.
open source and proprietary home automation (but not restricted to) solu-
tions, for IoT edge-system to integrate and connect IoT end-systems to IoT cloud-
system or it can also be used as decentralized standalone controller for appli-
cations that require low latency and privacy. All these solutions provide al-
most equal capabilities but differ in terms of supported device, protocol and
visualization features.
The presence of so many solutions indicates the fact that one needs to adapt
and learn new solutions every time there is a decision to switch between var-
ious solutions. Here we argue that the high level invariant functions - send
& receive that are visible to application developers can be attached to any
device and communication protocols using a configuration file that hides
the underlying device details. More details about binding communication
protocols with invariant functions using configuration files are discussed in
Chapter 4.
In summary, the IFs and PPs presented in this section provides a high level
abstraction for IoT application development that are usable across a variety
of IoT application domains. These high level abstractions are designed to
hide the underlying IoT device heterogeneity in terms of device architecture
and communication protocol.
rapid and easy is to implement any IoT scenario (vertical scaling) in various
application domains (horizontal scaling) [168]. One factor that is important
to consider while comparing is the extent of high level abstraction exposed at
various layers of IoT Architecture. In our work we proposed two high level
abstractions in the form of IFs that are technology and IoT device agnostic
and PPs. For example some of the well known development platforms (Ar-
duino, Energia and mbed and embedded OSes) for embedded applications
does not provide application invariant functionalities to aid application de-
velopers, whereas PPs can be considered as a subset of any programming
language in this case C/C++.
Implementing these IFs using the aforementioned development platforms
can be time consuming as the IFs needs to be independent of underlying tech-
nology and IoT devices to hide extreme heterogeneity at layer-1 and layer-2,
whereas embedded OSes solves this issue by exposing a HAL (Hardware Ab-
straction Layer) for implementing IFs, but as far as we know till date there
are no OSes that exposes these functionalities. On the other hand commer-
cial IoT service providers take the advantage of minimum heterogeneity at
layer-3 and provide IFs in the form of cloud services.
In Chapter 4 we explain the implementation of IFs and PPs by separating
application logic from IoT scenario configuration. The application logic in an
application file that contains IFs and PPs is independent of underlying IoT
device hardware and technology, whereas the configuration contains details
pertaining to communication protocol, network devices, sensor, actuators,
MCU, etc. This separation is helpful in two cases, first when the same ap-
plication scenario requires for example the use of different communication
protocols then only the configuration file is changed and therefore maintain-
ing the integrity of the application logic and second is the reusability of the
application logic (IF and PP) for different IoT scenarios. Both these cases
help in rapid development of IoT application scenarios. Table 3.10 shows
various types of high level abstractions exposed by development platforms,
OSes and commercial IoT service providers.
Chapter 3. IoT Application Characteristics and Its Common Invariant
71
Functionalities
We validate the usefulness of IFs and PPs by mapping IoT scenarios submit-
ted in IEEE IoT - IoT Scenarios [169] onto IFs and PPs. Without loss of gener-
ality we selected two IoT scenarios to showcase the mapping from dissimilar
application categories. This allows us to show the similarity in IFs and PPs
across dissimilar IoT applications. We also extended the original scenarios
requirements to accommodate the device management features. The IoT sce-
narios are listed in Table 3.11, the detailed description of these scenarios can
be found in [169]. The first scenario is sense only IoT application describing
the one way IoT connectivity and second scenario is sense and actuate IoT
application describing two way IoT connectivity.
distributed across the city in such a way to have a city wide coverage. The
gateway relays data back to the cloud where an application server generates
the map of pollution levels. Figure 3.12 depicts the scenario diagram.
Layer-3
Layer-2
Layer-1
The sensor node also accepts device management (DM) commands from the
application server that includes - configuration parameters such as unique ID
of the vehicle (license plate number), driver’s name, sensor sampling time,
sending interval, etc. Moreover the sensor node accepts certain control com-
mands such as - remote reset, switch to factory default configuration, etc.
The application server can also issue over-the-air software updates during
maintenance. On the other hand, the process of authentication and provisioning
of sensor nodes are governed by LoRaWAN protocol specifications.
Figure 3.13d shows the mapping of DM functionalities (Layer-4) onto IFs and
PPs of layer-4. The configuration and control follows the PP of update (Section
3.4.4), whereas the software maintenance follows the PP of upgrade (Section
Chapter 3. IoT Application Characteristics and Its Common Invariant
74
Functionalities
3.4.4). The sensor node receives the configuration parameters, control com-
mands, software maintenance using receive IF, followed by processing of DM
commands using execute IF and then finally wiring the configuration param-
eters, control command and software updates in the memory using write IF.
There are three distinct devices - sensors, actuators and a mobile phone - at
layer-1. As shown in Figure 3.15a, the sensor executes the same IF and fol-
lows the same PP of that of the previous example scenario in Section 3.5.1.
Chapter 3. IoT Application Characteristics and Its Common Invariant
75
Functionalities
Chapter 4
4.1 Introduction
In this chapter, we introduce PrIoT [19], an open source1 framework for rapid
and easy IoT prototyping that helps to hide the IoT device manufacturers
heterogeneity from the application developers, thus solving the identified
research problem of complexity related to the IoT device heterogeneity ex-
plained in Chapter 3. This is our software oriented approach that will be
followed in Chapter 5 with the hardware oriented approach. Also PrIoT will
be useful in different phases of the IoT service definition and development.
The main design philosophy behind PrIoT framework is - "code once port
everywhere" allowing IoT application developers to develop hardware inde-
pendent embedded code which can be ported to any hardware supported by
PrIoT. After the design of PrIoT framework, we also validated its proposed
concept with an implementation using an open source approach. As shown
in Figure 4.1, PrIoT proposes to stitch together the different components that
makes an IoT system namely the hardware consisting of sensors, actuators,
transceiver and Human-Machine Interface, the embedded systems that are
used to program the IoT devices, the components that serves at providing the
higher level libraries for Network and Cloud functionalities. Finally, PrIoT
leverages IoT device programming by exposing a service element with a high
level language for heterogeneous device programming and an orchestrator
1 The PrIoT framework is under GPL-v3 license. For more information please visit - http:
//www.priot.org/
Chapter 4. PrIoT - A Framework for Prototyping IoT Applications on
80
Heterogeneous Hardware Devices
to synchronize all devices together and easily upgrading the entire system.
We propose in PrIoT to achieve this design goal by maintaining a separation
between application logic and scenario configuration. PrIoT exposes devel-
opers with a device independent application programming interface (API)
specially designed to cover most IoT scenarios and yet concise enough for
easy application development. In fact, PrIoT is tailored to better manage IoT
device heterogeneity and fasten the IoT prototyping phase by introducing
an intelligent intermediate software layer over the IoT physical device that
allows service developers to easily and quickly program IoT devices inde-
pendently of the hardware manufacturer. Also this PrIoT intelligence is able
to understand the commands of the IoT device firmware and uses a hard-
ware abstraction layer (HAL) that can translate the high level IoT service
functionalities into hardware specific commands. In addition, PrIoT aggre-
gates different acknowledged and accepted tools under a common umbrella
to foster and ease IoT prototyping. We also gather in the same framework the
best tools together to enhance and ease user action. As stated earlier, PrIoT
will mainly stitch together tools, frameworks and libraries to ease prototyp-
ing, our intelligence and own programs is more as a scheduler and translator
to other tools that are not functioning together.
The chapter comprises the following sections. Section 4.2 introduces PrIoT
design objectives, followed by overview of PrIoT framework building blocks
in Section 4.3, then in Section 4.4 we describe the conventional method for
implementing IoT application on embedded hardware. Next, in Section 4.5,
Chapter 4. PrIoT - A Framework for Prototyping IoT Applications on
81
Heterogeneous Hardware Devices
List of PrIoT-APIs
configure Configure hardware resources.
read Read data from sensor, memory, etc.
write Write data to actuator, memory, etc.
send Send data using transceiver.
receive Receive data from transceiver.
execute Execute user defined operations.
timer Delay, wait or sleep.
PrIoT also helps developers in the deployment and maintenance of IoT de-
vices.
IoT development Techniques PrIoT Block Existing Solution
PrIoT-Lang
High level language and API Arduino, Energia, mbed and Embedded OSes
PrIoT-API
PrIoT-GI
Hardware abstraction Embedded OSes
PrIoT-HAL
PrIoT-Config
Device Configuration PlatformIO
PrIoT-Parser
User Interface PrIoT-UI Node-Red, Blockly
IoT service and device management PrIoT-Orchestrator Kubernetes
• build - It builds and compiles the scenario project for the target board
specified in the configuration file using PlatformIO.
• upload - It uploads the project binary on the target board using Plat-
formIO.
1. Device meta-data - For each IoT scenario, this contains the database of all
the physical devices present at L-1 (device layer) and L-2 (edge layer).
For each device the meta-data consist of, for example - unique ID, firmware
version, last status, last updated, authentication policy, etc. The meta-
data can be created automatically during device provisioning or manu-
ally during the life cycle of IoT scenario. The repository is dynamic and
maintains the current status of all the devices at L1 and L2. Any queries
to the database are initiated via controller-core. The control-application
can use this information to monitor the status of devices.
3. Rule-Engine - The rule-engine monitors the message bus and can in-
struct controller-core to execute predefined actions based on the mes-
sage content. For example, monitoring sensor data for abnormality,
initiating provisioning and authentication sequence after detecting re-
quest message from new device. The rule-engine can also instruct controller-
core to execute control applications.
Chapter 4. PrIoT - A Framework for Prototyping IoT Applications on
98
Heterogeneous Hardware Devices
the cloud instead of the object’s local storage. The object also has a relay (ac-
tuator) to actuate Motor which controls the entrance door. To access cloud
services the object goes through a gateway. The object uses IEEE 802.11
and MQTT (Message Queuing Telemetry Transport) protocol to communi-
cate with the gateway. Such scenarios can be enhanced after deployment
for example in the context of smart building where spaces are scheduled at
a daily granularity by analyzing the personnel agenda (meetings, develop-
ment zone, team work, etc.) stored in the cloud and assisting them finding a
workstation that suits their daily needs.
Implementation using PrIoT : As Figure 4.8 shows, the first step before de-
signing the IoT application logic is to select the high level description of IoT
resources used in the target deployment using PrIoT-DB. This step doesn’t
require to know the specific hardware vendor components but rather define
Chapter 4. PrIoT - A Framework for Prototyping IoT Applications on
101
Heterogeneous Hardware Devices
what are the high level hardware components that are selected to be manip-
ulated by the application and configured using configuration file (*.cfig).
In our example scenario, the configuration file for the object and gateway is
shown in Listing 4.2 and 4.3 respectively. In configuration file, the Select key-
word allows the user to select hardware from the repository of IoT hardware
resources maintained by PrIoT-DB, this also includes any relevant device li-
braries used by the application. The Import keyword is used to inform PrIoT
which library to include in the project, in this example we included standard
communication library for IEEE 802.11 and PubSub.
At this stage, the selected elements are defined as default elements from the
PrIoT-DB and are not linked to a specific hardware vendor. Thus for the ob-
ject, a generic RFID reader, a relay, a WiFi transceiver, an LCD display and a
keyboard have been selected as electronic components and communication
protocols such as a Wifi Station mode and PubSub Client have been selected
as communication libraries.
For the gateway, we have exposed in the configuration file the usage of a
WiFi transceiver and a PubSub library used as a server. However, as we will
see in 4.7 and 4.6 we also have the ability to specify dedicated hardware and
configuration at this stage by using the Define keyword allowing users to
define precise hardware vendors for IoT devices. In case where no specific
hardware vendor is specify, a default component is provided and used in the
application logic.
After having defined the IoT components to be used, we can program the
targeted scenario through the application file that consist of application logic
written using device independent PrIoT-APIs and PrIoT-Lang. The applica-
tion logic file (*.app) for the object and gateway is shown in Listing 4.4 and
4.5 respectively. The high level language uses a procedural c-like structure
with conditional operators. To be coherent with the hardware components
selected, we have to use the Import keyword and specify the related config-
uration file to be imported. In Listing 4.4 we see that the object senses the
ID collected by the RFID reader and sends to the PubSub server channel the
information that is executed back by the object to allow the user to access
the premises if it has been identified. The application programmed for the
gateway is shown in Listing 4.5, where information sent from the objects are
collected through the PubSub channel and compared to the access database
located in the cloud service. If the user identity is detected then the access is
granted for the user.
Chapter 4. PrIoT - A Framework for Prototyping IoT Applications on
102
Heterogeneous Hardware Devices
9 # Embeded System
10 Select Hardware . MCU . Family as AVR -8 bit
11
12 # Communication Protocol
13 Import Communication .80211 as wc
14 Import Gateway . PubSub . client as pbs
L ISTING 4.2: Configuration file : Security Access - Object
6 # Communication Protocol
7 Import Communication .80211. Station as wc
8 Import Gateway . PubSub . server as pbs
9 Import Cloud . Registry . AccessID as aid
10 Define Cloud . Address . Name as dns1
L ISTING 4.3: Configuration file : Security Access - Gateway
3 void loop ()
4 {
5 payload = s_rfid . sense ( " ID " )
6 t_wifi . send ( wc , pbs , tcp , " channel " , payload )
7 t_wifi . receive ( wc , pbs , tcp , " channel " , payload )
8 if payload == OK
9 {
10 a_relay . execute ( actuate , " HIGH " )
11 h_display . execute ( display , " Access approved " )
12 }
13 else
Chapter 4. PrIoT - A Framework for Prototyping IoT Applications on
103
Heterogeneous Hardware Devices
3 void loop ()
4 {
5 t_wifi . receive ( wc , pbs , tcp , " channel " , payload )
6 NewPayload = aid . execute ( dns1 , compare , payload )
7 t_wifi . send ( wc , tcp , " cloud_address " , \\
8 " HTTP_REQUEST " , payload )
9 t_wifi . send ( wc , pbs , tcp , " channel " , NewPayload )
10 }
L ISTING 4.5: Application Logic : Security Access - Gateway
4.7 Summary
In this chapter we introduced a new approach to tackle IoT device hetero-
geneity issues associated with device architecture, device peripheral diver-
sity and protocol heterogeneity. and proposed a framework called PrIoT, for
IoT application lifecycle management (development, deployment and main-
tenance). PrIoT introduces an intermediate intelligence between the IoT de-
vice hardware and the IoT application that usually resides in a cloud infras-
tructure. We provided the three design objectives of the PrIoT framework i.e.
Rapid Prototyping, Hardware Configuration and Scenario Deployment. We
described the various PrIoT framework’s building blocks (PrIoT-Lang, PrIoT-
API, PrIoT-Test, PrIoT-GI, PrIoT-HAL, PrIoT-Config, PrIoT-Parser, PrIoT-DB,
PrIoT-UI, PrIoT firmware builder & uploader and PrIoT Orchestrator) along
with implementation details. In addition, we described the steps needed to
implement an IoT application scenario using PrIoT along with an example
use case.
Chapter 4. PrIoT - A Framework for Prototyping IoT Applications on
105
Heterogeneous Hardware Devices
Chapter 5
5.1 Introduction
In this chapter, we address the challenge of easy and rapid prototyping of
IoT hardware systems (IoT objects) by introducing a two new open hard-
ware1 specification named R-Bus (Resource Bus) and P-Bus (Power Bus) to
design modular systems that better meet IoT hardware requirements and are
usable across diverse IoT applications & also takes into account their dis-
parate power requirements. Note that this approach is complementary to
the software oriented approach (PrIoT) that we proposed in Chapter 4.
From an embedded system perspective, the difficulty in prototyping IoT ob-
ject arises from the fact that an IoT object incorporates various disparate en-
abling technologies (processing unit, sensors, actuators, transceivers, power
supply, human machine interfaces, etc.) [4, 2, 9], which requires systems
designers to constantly test and evaluate new technologies and upgrade the
final system appropriately. For our work, we adopted a simplified view of an
IoT Object architecture centered around processing unit (PU) and peripher-
als [2]. The PU represents the “brain” in the form of ultra-low power micro-
controller, microprocessor, system-on-chip (SoC), etc. and integrates a wide
variety of heterogeneous peripherals (communication interfaces). This wide
1 R-Bus and P-Bus are under creative commons share alike license, for more information
on the specification please visit http://www.rbus.io
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
107
and Energy Aware Embedded Systems
In order to accomplish this goal we propose to use for R-Bus the existing
PCI-e x1 connector & socket specifications [221] for homogeneous interface
and an on board memory to access the information related to IoT resource
peripheral usage and that can be used for implementing plug & play archi-
tecture.
The main-board contains at most one PU that communicates with IoT re-
sources via R-Bus interface and is categorized into three classes based on the
type of PU used. The different class borrows from the IETF RFC7228[25]
that classify constrained devices based on PU capabilities in terms of mem-
ory, such as code size (ROM/Flash) and data size (RAM). The three different
R-bus main-board classes and their characteristics are given below.
1. Class 0 - Bare Metal : The PUs with small memory capacity (RAM
10 KB & Flash 100 KB), limited functionalities through low level
programming languages and reduced communication features.
3. Class 2 - OSes : PUs with sufficient memory capacity (RAM < 1 MB &
Flash < 10 MB) to host a light embedded Operating System (LINUX,
BSD, etc) with access to advanced service packages (IP stack, Programs)
and high level programming language.
This class designation allows users to easily identify the board capabilities
and possible application use cases. Table 5.2 shows a non exhaustive list
of commercially available processing units and their corresponding R-Bus
class along with supported peripherals. Interestingly the number of PU’s
peripherals and cost increases with higher classes providing boundaries on
available resources and relative cost per classes. The main-board can also
contain additional peripherals that are not supported by R-Bus such as CAN
(Controller Area Network), Ethernet, USB, etc. It can also contain additional
one or more secondary processing unit for housekeeping purpose and com-
plementary circuitries like - power, debug, etc. R-Bus system does not en-
force any special design specification and specific component requirements
on the main-board thus allowing various manufacturers to create a variety
of application dependent main-board along with R-Bus interface to add IoT
resources.
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
111
and Energy Aware Embedded Systems
Device Peripherals
Processing Unit
Class Buses Channels
Name Architecture ? UART I2C SPI I2S SDIO ADC Interrupt PWM
ATtiny25 AVR 0 0 0 0 0 0 4 1 2
MSP430FR2000 MSP430 0 1 0 1 0 0 0 8 2
Atmega328P AVR 0 1 1 1 0 0 8 2 6
STM32L011x3 ARM Cortex-M0+ 0 2 1 1 0 0 10 16 7
STM32F042K6 ARM Cortex-M0 0 2 1 2 1 0 10 16 17
STM32L010RB ARM Cortex-M0+ 1 2 1 1 0 0 16 16 7
Atmega1284P AVR 1 2 1 1 0 0 8 3 6
STM32F722ZE ARM Cortex-M7 2 8 3 5 5 2 24 16 37
MSP430F6659 MSP430 2 3 3 6 0 1 12 32 18
AM3351 ARM Cortex-A8 2 6 3 2 2 3 8 8 3
? Class of constraint devices - RFC7228 [25]
The second part of the R-Bus system consists of one or more R-Bus auxiliary-
boards that carries various IoT resources such as transceivers, sensors, actu-
ators, HMI, various connectors for remote IoT resources, etc. The auxiliary-
board is designed separately from the main-board and has a PCI-e x1 con-
nector that plugs into the main-board which carries an equivalent PCI-e x1
socket.
R-Bus defines two types of auxiliary-boards based on the presence or ab-
sence of R-Bus memory on the board. This R-Bus memory holds additional
board information stored in an EEPROM and reachable from the main-board
through I2C with known addresses and attributes.
The pin mapping is carefully done in such a way that most widely used pe-
ripherals like UART, I2C, SPI, Interrupt and Analog, are on one side (Side-B)
which makes PCB layout an easy task. As Table 5.3 shows, there are 20 pins
and data are beyond the scope of this work, interested readers are invited to
follow the project website for detailed information [223].
• Header: Provides memory access validation for the master board with
a signature, a version number and information about the total number
of blocks and their size in memory.
• Device Tree Blob: The Device Tree provides a way to describe non-
discoverable hardware to the Linux kernel as a textual representation
of the tree data structure of the hardware. This feature allows flexi-
ble assignments of different peripherals per pin but is only available to
Class 2 devices that have an embedded Linux kernel and bootloader.
• Future Use: This block is a reserved memory space for future usage
such as new specification for additional hardware requirements, spec-
ification for plug & play capabilities such as the IEEE 1451.4 standard
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
114
and Energy Aware Embedded Systems
5.2.4 Evaluation
In this section we evaluate the R-Bus approach for modular system design,
first by analyzing various qualitative design features of R-Bus with existing
standards and finally by quantitative analysis using two metrics - coverage
and suitability (defined later) - to measure the extent of compatibility of vari-
ous modular systems for a given processing unit.
In contrast with existing standards (Section 2.3.1.1), the R-Bus offers follow-
ing advantages to system designers some of them are summarized in Table
5.4 :
• Cost : Since R-Bus borrows its connector and socket from PCI-e x1
standard, which is maintained by PCI-SIG (PCI Special Interest Group)
[225] and has a proven commercial success history in personal com-
puters, therefore there are many vendors with existing manufacturing
capabilities to provide inexpensive sockets and the abundance of avail-
able CAD (Computer Aided Design) references for both connector and
socket. This makes R-Bus an easy and inexpensive solution for modular
design and is comparable with other auxiliary-board standards.
Embedded Peripherals
Name Size (w × l mm)
SPI UART I2C I2S SDIO PWM Analog Interrupt GPIO
R-Bus• Flexible⊗ 2? 2 1 1 1 upto 2 upto 3 upto 3 upto 10
mikroBUSTM • 25.4 × 57.15 1 1 1 0 0 1 1 1 0
pmod† • 20.32 × l ‡ 1 1 1 1 0 upto 2 0 upto 1 upto 8
Grove No Standard 0 1 1 0 0 0 2 0 2
System† •
Arduino 68.58 × 53.34 1 1 1 0 0 upto 6 upto 6 2 upto 20
Shield•
RPi HAT• 65 × 56.5 2 1 1 1 1 upto 4 0 upto 28 upto 28
† Not all supported embedded peripherals are available on a single board, ? One SPI with two chip select signals
• auxiliary-board standard, ‡ no prescribed standard length, ∗ no explicit mention of dedicated interrupt lines
αn
Sn = × 100, n ∈ N (5.2)
n×γ
where n and αn is same as in Equation 5.1 and γ is the “total number of pe-
ripherals supported by auxiliary-board”.
The coverage is used to indicate how many peripherals can be covered if one
or more auxiliary-boards are used, whereas suitability is used to indicate if
the combined set of one or more auxiliary-boards are under utilized or not.
Both Cn & Sn are dependent on each other through αn and are used together
to assess various auxiliary-boards. An auxiliary-board has high compatibil-
ity with PU when it has high Cn and Sn relative to other auxiliary-boards.
In general, since β is constant for a given processing unit, one can increase
the coverage by adding more auxiliary-boards on the main-board but this also
decreases suitability by factor n.
In order to showcase the usefulness of coverage and suitability, we assume a
worst case scenario where an application requires the use of all the periph-
erals available on PU, this condition allows us to evaluate various auxiliary-
boards for worst case compatibility.
For this we selected one processing unit from each class of constraint devices
listed in Table 5.2 and plot Cn and Sn as we increase n (number of auxiliary-
boards). Without loss of generality of Equation 5.1 & 5.2 we decided to ac-
count for all the peripherals listed in Table 5.2 except interrupt. Figures 5.3,
5.4 and 5.5 shows Cn and Sn for AM3351 (class 2), STM32F042K6 (class 1) and
Atmega328P (class 0) devices respectively.
As Figures 5.3, 5.4 and 5.5 shows, R-Bus provides a suitable balance be-
tween coverage and suitability as compared to other auxiliary-boards when
used across three distinct class of processing units. Cn in R-Bus tends to
reaches 100% coverage more sharply for each subsequent addition of auxiliary-
board, for example it requires only 3 R-Bus auxiliary-boards to reach 100%
coverage, i.e. C3 = 100 in Figure 5.3 and 5.5. This sharp increase is due to the
fact that R-Bus supports more peripherals than any other auxiliary-boards.
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
117
and Energy Aware Embedded Systems
Cn Sn Cn Sn Cn Sn Cn Sn Cn Sn
n n n n n
F IGURE 5.3: Cn and Sn vs n for AM3351 class 2 device for vari-
ous auxiliary board based modular systems
Cn Sn Cn Sn Cn Sn Cn Sn Cn Sn
n n n n n
F IGURE 5.4: Cn and Sn vs n for STM32F042K6 class 1 device for
various auxiliary board based modular systems
Cn Sn Cn Sn Cn Sn Cn Sn Cn Sn
n n n n n
F IGURE 5.5: Cn and Sn vs n for Atmega328P class 0 device for
various auxiliary board based modular systems
peripherals (high S1 ), indicating that the addition of another shield does not
change Cn , and therefore Sn tends to decreases sharply towards 0. Similar
behaviour in Cn and Sn is observed in RPi HAT which uses similar stacking
approach for adding auxiliary boards.
Finally, for auxiliary-boards like pmod and grove that supports one periph-
eral per board, in order to reach 100% coverage it requires as many auxiliary-
boards as there are peripherals on the processing unit and hence the linear
rise of Cn for pmod and grove in Figure 5.3, 5.4 and 5.5. Moreover since
pmod does not support SDIO and grove does not support SPI, I2S and SDIO,
therefore Cn cannot reach 100% while Sn remains at 100% till all the periph-
erals supported by pmod and grove are exhausted from PU. In general, this
trend in Cn and Sn is expected from system that supports one peripheral per
board.
The extent to which a main-board can support multiple auxiliary-boards are
not only driven by the number of peripherals supported by the processing
unit used, but more importantly an application requirement can also limit
the requirement of multiple auxiliary-boards even though a processing unit
can accommodate more. Although having multiple auxiliary-boards is not
a requirement, but it can increase the usability of main-board across diverse
IoT applications that requires more peripherals than those provided by the
single auxiliary-board.
Both coverage and suitability provide the necessary tools to do a preliminary
analysis of modular systems for designing application specific IoT based em-
bedded systems.
4-MB flash) for data logging and sending measurements in batches to save
transmission power. An external I2C based battery backed RTC (Real Time
Clock) is used to timestamp measurements and to wake-up MCU from sleep.
Moreover an external I2C based secure element (ATECC608A) is used to run
AES encryption algorithm in hardware to save on chip MCU memory (ROM
+ RAM) and processing time associated with encryption algorithms. Finally,
for the sensor we decided to use an I2C based barometric pressure sensor
BMP280, that also has an inbuilt temperature sensor. Table 5.5 summarizes
the list of various components used along with respective standard interface.
The list of non-exhaustive features that are considered important for better
power optimization are listed in Table 5.6. The features mentioned in the
table are implemented directly on P-Bus module using existing integrated cir-
cuit solutions in order to consume less power or it can be implemented as
a firmware on a low power microcontroller. These design options will be
considered in more detail in Section 5.3.3.
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
122
and Energy Aware Embedded Systems
Normally, the main-board can stay in sleep to conserve power and use
PG signal as a wake-up source and perform the necessary power hun-
gry tasks like transmission, etc.
4. Disable Power - The main-board can use this signal to disable supply
voltage (VCC) to conserve leakage power in energy sensitive applica-
tions. This operation is also known as power gating and is one of the
power optimization techniques discussed in detail in Section 5.3.5.1 as
an application of the P-Bus module.
6. Alert & Status - This signal can indicate abnormal behavior such as, un-
der & over voltage and current protection for battery powered devices,
charging status, high temperature for battery protection, etc.
7. I2C - The I2C [15] can be used to access a programmable power man-
agement integrated circuits in the form of battery gauge, battery man-
agement unit, etc. The processing unit on the main-board can use this
interface to access power management features directly from the inte-
grated circuit available on the P-Bus module. The I2C can also be used
to access a low power slave microcontroller if available on the P-Bus
module to implement, access & configure customized power manage-
ment features that are not available directly from existing integrated so-
lutions. The importance of I2C interface is discussed in Section 5.3.5.2
using an example application.
1. Class P0 - The P0 is the most basic power-board with only VCC and
GND signals. The is useful in those applications that are wall powered
and the application does not utilize or need any power optimization
features. Example use case - Wall powered edge devices or gateways,
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
124
and Energy Aware Embedded Systems
it can also be battery powered devices that does not expose any power
optimization features back to the host MCU.
PAC0 3 7 7 7 P0
PAC1 3 7 7 3 P0
PAC2 3 7 7 3 P1
PAC3 7 7 3 7 P1
PAC4 7 3 7 3 P1
PAC5 3 3 7 3 P2
Non-Rechargeable - AA, AAA, etc.
• PAC0 : This is the most basic application class, the system is wall pow-
ered with no energy storage element and does not utilize any external
features for optimizing power consumption. Typical examples for this
application class are - gateways or edge devices that are based on pow-
erful hardware such as Raspberry Pi, BeagleBoard, etc. The devices
used in this application class have energy limitation class of type E9 as
shown in Table 2.1.
• PAC1 : In this class, the system is wall powered backed with recharge-
able storage in case of power outage and does not utilize any external
features for optimizing power consumption similar to PAC0.
• PAC2 : This application class is similar to PAC0 and PAC1, but can also
utilize external features for better power optimization.
• PAC5 : This is the most advanced application class, in this class the
application uses a low power microcontroller for implementing intelli-
gent power optimization algorithms. The features of the algorithm are
available to the main processing unit via I2C interface. The system can
have any type of power input source such as wall powered, wall pow-
ered with battery backup, non-rechargeable battery, energy harvesting
with rechargeable battery or super capacitor storage. The application
can also use other P-Bus signals for power optimization.
Tactive is the total time spent in active state (wake-up, read sensor, transmit,
etc.), where i active (t) and iinactive (t) are current consumption profile in active
and inactive state respectively. Also Tinactive can be obtained as :
Tactive
Z
1
Iavg = i active (t)dt + Iinactive . Tinactive
TNoti f 0
Z Tactive
! (5.5)
1 T
= i active (t)dt + Iinactive 1 − active
TNoti f 0 TNoti f
Further using Equation 5.5, we can calculate the theoretical lifetime, denoted
by Tli f etime , of a battery-operated end-device as shown in Equation (5.6), where
Cbat is battery capacity expressed in mAh (milliampere hour)
Cbat
Tli f etime = (5.6)
Iavg
One of the main goal of IoT embedded designers and application developers
is to increase Tli f etime by systematically modifying the factors that influence
Iavg . It is easy to visualize from Equation (5.5) the factors - TNoti f , Tactive , i active
and Iinactive - that determines Tli f etime for a given Cbat . We consider the impact
of TNoti f and Isleep on Tli f etime .
We can calculate the asymptotic theoretical upper bound of Tli f etime denoted
by T̂li f etime , using Equation (5.5) & (5.6) and taking the limit TNoti f → ∞,
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
129
and Energy Aware Embedded Systems
Cbat
T̂li f etime =
Iinactive
(5.7)
Iinactive = lim Iavg
TNoti f →∞
The implication of Equation (5.5) & (5.7) is that, the contribution of Iinactive
in Iavg starts to dominate as TNoti f becomes large as compared to Tactive i.e
Tactive
TNoti f 1. Furthermore, while designing an IoT end-device one can easily
gather sleep currents (Iinactive ) of various components from manufacturer’s
datasheet and can easily predict T̂li f etime early in design phase. Also it is rel-
atively easy to measure Iinactive accurately using inexpensive equipment.
Now we illustrate the effect of i active (t), Tactive and TNoti f on Tli f etime for a
given Iinactive . Without loss of generality and for realistic assumption of i active (t)
and Tactive , we decided to reuse the measurement data of LoRaWAN trans-
RT
mission from [155] and is summarized in Table 5.9, where Cactive = 0 active i active (t)dt.
We also assumed a battery capacity of 2400 mAh, which is equivalent to AA
battery capacity.
Parameters
Cactive Tactive Iinactive
SF Payload
7 242 bytes 95.93 mA.s 2.934 sec 40µA
12 51 bytes 304.15 mA.s 5.577 sec 40µA
Common Parameters - Class A protocol, Bandwidth
BW = 125 KHz, 8-symbol preamble length
As illustrated in Figure 5.10, for relatively lower values of i active (t) and Tactive
(i.e SF7) 50 percent of T̂li f etime (1000 days) is achieved earlier as we increase
TNoti f (TNoti f ≈ 27 min for SF7 and TNoti f ≈ 85 min for SF12).
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
130
and Energy Aware Embedded Systems
F IGURE 5.10: Tli f etime for LoRaWAN SF7 & SF12 transmission
as a function of TNoti f
Next, we illustrate the effect of Iinactive on Tli f etime as a function of TNoti f for a
given i active (t) and Tactive , again for realistic assumption and without loss of
generality we use the data of Table 5.9. Figure 5.11 illustrates Tli f etime for var-
ious Iinactive as a function of TNoti f for LoRaWAN SF7 & SF12 transmission.
Note that Iinactive = 50nA (Equation 5.9) corresponds to the situation, where
power gating is used to reduce inactive current and Iinactive = 40µA as used
in [155].
It is interesting to note that for lower values of TNoti f , ≤ 9 min for SF7
and ≤ 20 min for SF12 there is not much difference in Tli f etime because Cactive
dominates Iavg and hence Tli f etime . The implication of this result is that in
an application where there is a requirement of frequent transmission which
corresponds to short TNoti f , one should try to reduce i active (t) & Tactive rather
than inactive current in order to obtain the desired Tli f etime .
Furthermore, the effect of Iinactive starts to dominate early for lower values
of i active (t) & Tactive as we increase TNoti f ( ≥ 9 min for SF7 and ≥ 20 min
for SF12). Interestingly in an application with infrequent transmission which
corresponds to large TNoti f , where Iinactive dominates, one can try to incorpo-
rate techniques (for example - power gating) to reduce inactive current rather
than i active (t) & Tactive to obtain better end-device lifetime.
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
131
and Energy Aware Embedded Systems
Hardware Platform Details : The platform consists of two boards that to-
gether form a battery operated wireless node. As shown in Figure 5.12, the
first board (referred to as B1) combines on a single board an Arduino com-
patible MCU (Atmega328p) with LoRaWAN radio (RFM95W module). The
bootloader inside the MCU is the same as Arduino Pro Mini 3.3V-8MHz there-
fore it is possible to use the Arduino IDE to create applications and debug via
external FTDI serial adapter, similar to Arduino Pro Mini. The second board
(referred to as B2) is a power-supply and power-management board for B1. It
uses nanoPower boost converter (MAX17223 [230]) to convert voltage from
two 1.5V AAA batteries (3.0V in series) into regulated 3.3V output voltage
for B1. The value of the boost converter inductor is carefully selected to reli-
ably convert input voltage ranging from 2.0V to 3.0V into regulated 3.3V at
200 mA output current. For the power gating controller, a nano-power sys-
tem timer (TPL5111 [231]) is used to temporarily disable power from B1, the
timer’s time interval is programmable using an external resistor.
switch) and system timer (power gating controller). The boost converter gen-
erates the regulated 3.3V for the proper functioning of B1 and the system
timer. The system timer waits for the MCU (B1) to generate power disable
signal and after receiving the signal, the timer disables the boost converter,
thereby removing power from B1, this process is called “self destruction”.
Since the system timer is continuously powered, therefore it is still ticking
and after a predefined time interval it enables the boost converter and the
power is back again. Before disabling the power the MCU performs the nec-
essary IoT application task as programmed by the user.
Figure 5.14 shows the timing diagram of platform operation. This technique
is useful for star networks like LPWAN (LoRaWAN, Sigfox, etc.) and for
applications with infrequent transmission, for example - Smart Cities, Smart
Agriculture, etc.
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
134
and Energy Aware Embedded Systems
It is important to note that Equation (5.10) does not include current con-
sumed by external components attached to B2 such as sensors, actuators,
etc. as they are application dependent. One can imagine the addition of
more sleep currents if these external components are attached to the plat-
form, where as Equation (5.8) is independent of various sub-system sleep
and leakage currents. Also in general the total platform’s sleep current de-
pends on the type of components used and the overall circuit design, there-
fore Equation (5.10) varies from one platform to another. Table 5.10 lists sleep
currents for few popular hardware platforms. Note from Table 5.10 that sleep
current of [232] and [233] differs considerably even though they have same
MCU and Transceiver, this is because [232] is a module and requires addi-
tional hardware components (power supply, debug circuit, etc.) before it can
be used.
P-Bus Module - Power Gating : Figure 5.15 shows the proposed implemen-
tation of wireless node architecture using Class P1 module of the P-Bus. The
wireless node takes advantage of the power optimization technique (power
gating) using the available P-Bus interface signal (DIS_PWR). The same P-
Bus module can be easily used with other wireless nodes that have the similar
P-Bus connector and can take advantage of power gating technique provided
by this module.
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
136
and Energy Aware Embedded Systems
The timer waits for the processing unit on the R-Bus main board to generate
the power disable signal (DIS_PWR) and in response to this signal the timer
turns off the electronic switch (boost converter), thereby removing power
from the main radio (R-Bus Auxiliary-Board) and processing unit. After a
predefined time interval the timer enables the boost converter, thereby restor-
ing the power.
On the other hand, the WUR consists of in addition to wake-up receiver an
ultra low power microcontroller (ULPµC) for address matching, similar to
the one presented in [160]. On successful address matching the ULPµC is-
sues a power enable signal which also acts as level-interrupt (ALR) to the
main processing unit (PU) to distinguish WUR wake-up from timer wake-
up, this allows processing of incoming messages. The main PU can instruct
ULPµC to disable power through I2C interface. The OR gate allows elec-
tronic switch to receive power enable/disable signal from both timer and
WUR.
As shown in Figure 5.16, the proposed wireless node architecture can be im-
plemented using P-Bus system. The wireless node can take advantage of the
power optimization techniques (Power Gating and WUR) offered by the P-Bus
module using a homogeneous interface that is usable across various wireless
Chapter 5. R-Bus and P-Bus : Modular Systems for Designing Interoperable
138
and Energy Aware Embedded Systems
Chapter 6
• A key challenge for its wide adoption will be to design HAL (Hardware
Abstraction Layer) with a generalized API to accommodate a larger
number of heterogeneous IoT devices and also to support a developer
friendly environment for device driver development.
• In order to facilitate the widespread use and evolution of R-Bus & P-bus
in the educational, research & industrial community and also to ensure
compatibility of boards across our modular ecosystem we will create
a hardware design guidelines for implementing R-Bus & P-Bus based
systems. This will include but is not limited to - Form factor, connector
selection, reference PCB design files, supporting documents, example
boards, learning guide, etc. To strengthen our community around R-
Bus & P-bus proposals and promote our open hardware specification,
we will also maintain a website and repository (http://www.rbus.io).
The future work presented in this section requires considerable support from
the open community to support its continuous development and foster its us-
age in the education, research and industry. Therefore, for our PrIoT frame-
work we decided to use an open license based on GPL-v3 and our two mod-
ular systems R-Bus and P-Bus are under Creative Commons ShareAlike li-
cense.
145
Bibliography
[1] Luigi Atzori, Antonio Iera, and Giacomo Morabito. “The Internet of
Things: A survey”. In: Computer networks 54.15 (2010), pp. 2787–2805.
[2] Ala Al-Fuqaha et al. “Internet of Things: A Survey on Enabling Tech-
nologies, Protocols, and Applications”. In: IEEE Communications Sur-
veys & Tutorials 17.4 (2015), pp. 2347–2376.
[3] Jayavardhana Gubbi et al. “Internet of Things (IoT): A vision, architec-
tural elements, and future directions”. In: Future generation computer
systems 29.7 (2013), pp. 1645–1660.
[4] Farzad Samie, Lars Bauer, and Jörg Henkel. “IoT Technologies for Em-
bedded Computing: A Survey”. In: Proceedings of the Eleventh IEEE/ACM/I-
FIP International Conference on Hardware/Software Codesign and System
Synthesis. ACM. 2016, p. 8.
[5] PrIoT: Prototyping the Internet of Things. http://www.priot.org.
[6] Luis Sanchez et al. “SmartSantander: IoT experimentation over a smart
city testbed”. In: Computer Networks 61 (2014), pp. 217–238.
[7] Experiential Living Lab for the Internet Of Things. https : / / cordis .
europa.eu/project/rcn/95205_en.html. [Online; last accessed 25-
Oct-2018].
[8] TEstbed for Future Internet Services. https : / / cordis . europa . eu /
project/rcn/96812_en.html. [Online; last accessed 25-Oct-2018].
[9] In Lee and Kyoochun Lee. “The Internet of Things (IoT): Applica-
tions, investments, and challenges for enterprises”. In: Business Hori-
zons 58.4 (2015), pp. 431–440.
[10] Thiago Teixeira et al. “Service oriented middleware for the internet
of things: a perspective”. In: Towards a Service-Based Internet (2011),
pp. 220–229.
[11] Soma Bandyopadhyay et al. “Role of middleware for internet of things:
A study”. In: International Journal of Computer Science and Engineering
Survey 2.3 (2011), pp. 94–105.
Bibliography 146
[66] Johannes Thönes. “Microservices”. In: IEEE software 32.1 (2015), pp. 116–
116.
[67] Partha Pratim Ray. “A survey of IoT cloud platforms”. In: Future Com-
puting and Informatics Journal 1.1-2 (2016), pp. 35–46.
[68] Arduino. https://www.arduino.cc/. (last accessed : 01-01-2021).
[69] ARM Mbed. http://energia.nu. (last accessed : 01-01-2021).
[70] TI Launchpad Energia. http://energia.nu. (last accessed : 01-01-2021).
[71] Emmanuel Baccelli et al. “Survey of Operating Systems for the IoT En-
vironment”. In: Computer Communications Workshops (INFOCOM WK-
SHPS), 2013 IEEE Conference on (2013), pp. 79–80.
[72] Zephyr Project. www.zephyrproject.org.
[73] Adam Dunkels, Bjorn Gronvall, and Thiemo Voigt. “Contiki-a lightweight
and flexible operating system for tiny networked sensors”. In: Local
Computer Networks, 2004. 29th Annual IEEE International Conference on.
IEEE. 2004, pp. 455–462.
[74] Philip Levis et al. “TinyOS: An operating system for sensor networks”.
In: Ambient intelligence 35 (2005), pp. 115–148.
[75] “IEEE Standard Glossary of Software Engineering Terminology”. In:
IEEE Std 610.12-1990 (1990), pp. 1–84. DOI: 10.1109/IEEESTD.1990.
101064.
[76] ISO/IEC. ISO/IEC 2382:2015 Information Technology — Vocabulary. https:
//standards.iso.org/ittf/PubliclyAvailableStandards/index.
html. (last accessed : 01-01-2021). 2015.
[77] Mahmoud Elkhodr, Seyed Shahrestani, and Hon Cheung. “The Inter-
net of Things: New Interoperability, Management and Security Chal-
lenges”. In: arXiv preprint arXiv:1604.04824 (2016).
[78] Renzo Angles, Harsh Thakkar, and Dominik Tomaszuk. “RDF and
Property Graphs Interoperability: Status and Issues.” In: AMW. 2019.
[79] W3C - World Wide Web Consortium. Semantic Integration and Inter-
operability Using RDF and OWL. https : / / www . w3 . org / 2001 / sw /
BestPractices/OEP/SemInt/. (last accessed : 01-01-2021). 2005.
[80] Paul Murdock et al. Semantic interoperability for the Web of Things. Re-
search Report. Dépt. Réseaux et Service Multimédia Mobiles (Insti-
tut Mines-Télécom-Télécom SudParis) ; Services répartis, Architec-
tures, MOdélisation, Validation, Administration des Réseaux (Institut
Mines-Télécom-Télécom SudParis-CNRS) ; TNO [Netherlands] (.) ;
National Institute of Standards and Technology [Gaithersburg] (Agency
of the U.S. Department of Commerce) ; British Telecom Research &
Bibliography 151
[118] William Stallings. “SNMP and SNMPv2: the infrastructure for net-
work management”. In: IEEE Communications Magazine 36.3 (1998),
pp. 37–43.
[119] Houda Rachidi and Ahmed Karmouch. “A framework for self-configuring
devices using TR-069”. In: 2011 International Conference on Multimedia
Computing and Systems. IEEE. 2011, pp. 1–6.
[120] OMA. OMA LWM2M - A lightweight device management protocol for IoT
and M2M. https://omaspecworks.org/what- is- oma- specworks/
iot/lightweight-m2m-lwm2m/. (last accessed : 01-01-2021).
[121] Suhas Rao et al. “Implementing LWM2M in constrained IoT devices”.
In: 2015 IEEE Conference on Wireless Sensors (ICWiSe). IEEE. 2015, pp. 52–
57.
[122] Peter Neumann et al. “Field device integration”. In: ETFA 2001. 8th In-
ternational Conference on Emerging Technologies and Factory Automation.
Proceedings (Cat. No. 01TH8597). Vol. 2. IEEE. 2001, pp. 63–68.
[123] Ed. R. Enns. RFC4741 - NETCONF Configuration Protocol. https : / /
tools.ietf.org/html/rfc4919. 2006.
[124] Chun-Che Huang and Andrew Kusiak. “Modularity in Design of Prod-
ucts and Systems”. In: IEEE Transactions on Systems, Man, and Cybernetics-
Part A: Systems and Humans 28.1 (1998), pp. 66–77.
[125] Karl Ulrich. “Fundamentals of Product Modularity”. In: Management
of Design. Springer, 1994, pp. 219–231.
[126] Tarek AlGeddawy and Hoda ElMaraghy. “Optimum granularity level
of modular product design architecture”. In: CIRP Annals 62.1 (2013),
pp. 151–154.
[127] Karsten Schischke et al. “Modular products: Smartphone design from
a circular economy perspective”. In: 2016 Electronics Goes Green 2016+(EGG).
IEEE. 2016, pp. 1–8.
[128] PuzzlePhone : A Modular Smart Phone. http://www.puzzlephone.com/
(last accessed on 27/09/2019).
[129] CP Kruger, AM Abu-Mahfouz, and SJ Isaac. “Modulo: A modular
sensor network node optimised for research and product develop-
ment”. In: 2013 IST-Africa Conference & Exhibition. IEEE. 2013, pp. 1–
9.
[130] Nicholas Edmonds, Douglas Stark, and Jesse Davis. “Mass: modular
architecture for sensor systems”. In: IPSN 2005. Fourth International
Symposium on Information Processing in Sensor Networks, 2005. IEEE.
2005, pp. 393–397.
Bibliography 155
[131] Jorge Portilla et al. “A modular architecture for nodes in wireless sen-
sor networks.” In: J. UCS 12.3 (2006), pp. 328–339.
[132] Carsten Buschmann and Dennis Pfisterer. “iSense: A modular hard-
ware and software platform for wireless sensor networks”. In: 6. Fachge-
spräch Sensornetzwerke (2007), p. 15.
[133] EG Straser et al. “A modular, wireless network platform for monitor-
ing structures”. In: Proceedings-SPIE The International Society for Optical
Engineering. Vol. 1. Citeseer. 1998, pp. 450–456.
[134] Mohieddine Benammar et al. “A modular IoT platform for real-time
indoor air quality monitoring”. In: Sensors 18.2 (2018), p. 581.
[135] Pablo Merino et al. “A Modular IoT Hardware Platform for Distributed
and Secured Extreme Edge Computing”. In: Electronics 9.3 (2020), p. 538.
[136] Yao Li. “Teaching embedded systems using a modular-approach mi-
crocontroller training kit”. In: World Transactions on Engineering and
Technology Education 6.1 (2007), p. 135.
[137] Konstantin Mikhaylov et al. “Extensible modular wireless sensor and
actuator network and IoT platform with Plug&Play module connec-
tion”. In: Proceedings of the 14th International Conference on Information
Processing in Sensor Networks. 2015, pp. 386–387.
[138] Wei-Ying Yi, Kwong-Sak Leung, and Yee Leung. “A modular plug-
and-play sensor system for urban air pollution monitoring: design,
implementation and evaluation”. In: Sensors 18.1 (2018), p. 7.
[139] Zhaohua Wang, Bin Zhang, and Dabo Guan. “Take responsibility for
electronic-waste disposal”. In: Nature News 536.7614 (2016), p. 23.
[140] M2.COM Platform. http : / / www . m2com - standard . org / en - us (last
accessed on 17/09/2019).
[141] micro:bit. https://microbit.org (last accessed on 17/09/2019).
[142] Mikroe mikroBUS. https://www.mikroe.com/mikrobus (last accessed
on 17/09/2019).
[143] Mikroe. https://www.mikroe.com (last accessed on 17/09/2019).
[144] Pmod Standard. https://reference.digilentinc.com/reference/
pmod/specification?redirect=1 (last accessed on 17/09/2019).
[145] Digilent Inc. https : / / store . digilentinc . com (last accessed on
17/09/2019).
[146] Grove System. http : / / wiki . seeedstudio . com / Grove _ System (last
accessed on 17/09/2019).
[147] STM32 Nucleo Boards. https://www.st.com/en/evaluation-tools/
stm32-nucleo-boards.html (last accessed on 17/09/2019).
Bibliography 156
[224] Brice Morin, Nicolas Harrand, and Franck Fleurey. “Model-based Soft-
ware Engineering to Tame the IoT Jungle”. In: IEEE Software 34.1 (2017),
pp. 30–36.
[225] PCI Special Interest Group. https : / / pcisig . com (last accessed on
06/08/2019).
[226] Ferran Adelantado et al. “Understanding the Limits of LoRaWAN”.
In: IEEE Communications magazine 55.9 (2017), pp. 34–40.
[227] Preeti Ranjan Panda et al. Power-efficient System Design. Springer Sci-
ence & Business Media, 2010.
[228] Farzan Fallah and Massoud Pedram. “Standby and Active Leakage
Current Control and Minimization in CMOS VLSI Circuits”. In: IEICE
transactions on electronics 88.4 (2005), pp. 509–519.
[229] David Charles Harrison et al. “Busting myths of energy models for
wireless sensor networks”. In: Electronics Letters 52.16 (2016), pp. 1412–
1414.
[230] MAX17223 Nano-Power Boost Converter, Datasheet. https://datasheets.
maximintegrated.com/en/ds/MAX17220-MAX17225.pdf. Accessed on
22 October 2019.
[231] TPL5111 Nano-Power System Timer, Datasheet. http://www.ti.com/
lit/ds/symlink/tpl5111.pdf. Accessed on 22 October 2019.
[232] WiMOD iM880B Long Range Radio Module. https://www.wireless-
solutions.de/downloads/Radio-Modules/iM880B/General_Information/
iM880B_Datasheet_V1_6.pdf. Accessed on 22 October 2019.
[233] NetBlocks XRange SX1272 LoRaNode. https : / / www . netblocks . eu /
xrange-sx1272-lora-datasheet/. Accessed on 22 October 2019.
[234] MultiTech mDot Long Range LoRa Module. https://www.multitech.
com / documents / publications / data - sheets / 86002171 . pdf. Ac-
cessed on 22 October 2019.
[235] Semtech SX1272 Transceiver. https://www.semtech.com/products/
wireless- rf/lora- transceivers/sx1272. Accessed on 22 October
2019.
[236] WiMOD iM222A IEEE 802.15.4 Radio Module. https://www.wireless-
solutions.de/downloads/Radio-Modules/iM880B/General_Information/
iM880B_Datasheet_V1_6.pdf. Accessed on 22 October 2019.
[237] STMicroelectronics : STM32F411 MCU. https://www.st.com/resource/
en/datasheet/stm32f411ce.pdf. Accessed on 22 October 2019.
[238] STMicroelectronics : STM32L151 MCU. https://www.st.com/resource/
en/datasheet/stm32l151qc.pdf. Accessed on 22 October 2019.
Bibliography 162
Appendix A
List of Publications
[2] Nahit Pawar, Thomas Bourgeau and Hakima Chaouchi. Power Gating
and Its Application in Wake-Up Radio. International Conference on Embed-
ded Wireless Systems and Networks (EWSN), 17-19 February 2020, Lyon,
France.
[3] Nahit Pawar, Thomas Bourgeau and Hakima Chaouchi. PrIoT: Prototyp-
ing the Internet of Things. In 2018 IEEE 6th International Conference on Fu-
ture Internet of Things and Cloud (FiCloud), 6-8 August 2018, Barcelona,
Spain.
A.2 Posters
[1] Nahit Pawar, Thomas Bourgeau and Hakima Chaouchi. Study of IoT Ar-
chitecture and Application Invariant Functionalities IFIP/IEEE International
Symposium on Integrated Network Management (IM 2021), 17-21 May
2021, Bordeaux, France.
[2] Nahit Pawar, Thomas Bourgeau and Hakima Chaouchi. R-Bus - A Re-
source Bus for Modular System Design International Conference on Embed-
ded Wireless Systems and Networks (EWSN), 17-19 February 2020, Lyon,
France.
BIBLIOGRAPHY 164
A.3 Demos
[1] Nahit Pawar, Thomas Bourgeau and Hakima Chaouchi. PrIoT Demo: Ex-
ample of Invariant Functionalities. The IEEE/IFIP International Symposium
on Integrated Network Management 2021 (IM 2021), 17-21 May 2021,
Bordeaux, France.
[2] Nahit Pawar, Thomas Bourgeau and Hakima Chaouchi. Low-cost, Low-
power Testbed for Establishing Network of LoRaWAN Nodes. International
Conference on Embedded Wireless Systems and Networks (EWSN), 17-
19 February 2020, Lyon, France.
165
Appendix B
Code Listings
5 ? select_instruction : " select " cname " . " cname " . " cname " as "
cname -> select_resource
6 ? config_instruction : " config " cname " . " cname parameter
-> config_resource
7
8 ? parameter : dict
9 | list
10 | string
11 | INT -> integer
12 | NUMBER -> number
13 | " true " -> true
14 | " false " -> false
15 | " null " -> null
16
21 string : ESCAPED_STRING
22 cname : CNAME
23