AG Technische Informatik

Programmierung Drahtloser Sensornetze

In this course, students will get an introduction into the programming of distributed embedded systems, using the MSB-A2 Wireless Sensor Node as experimentation platform. Participants will learn how to use embedded software development environments and how to take advantage of the hardware's capabilities including wireless data communication, while always keeping an eye on energy consumption and resource usage.

(19579)

Typ

Praktikum

Dozent/in

Prof. Dr. Mesut Günes, Oliver Hahm, Kaspar Schleiser

Institution

Institute of Computer Science

Freie Universität Berlin

Semester

WS 10/11

Veranstaltungsumfang

Leistungspunkte

6

Raum

Takustraße 9

K 60

Zeit

Time: Wednesday, 14:00 c.t.- 17:00

KVV page

Motivation

Eingebettete Systeme unterschiedlichster Prägung haben in den letzten Jahrzehnten Einzug in völlig verschiedene Gebiete des Alltags und der Industrie gehalten. Von der Verwendung in Haushaltsgeräten und Kraftfahrzeugen über Aufgaben der Haustechnik bis hin zum Einsatz bei komplexen Fertigungsanlagen, überall sind solche Geräte zu finden.

Genauso verschieden wie ihre Anwendungsgebiete sind auch die Systeme selbst. Eine besondere Gattung, die in jüngster Zeit immer mehr an Bedeutung gewinnt, stellen die drahtlosen Sensorknoten dar: Meist batteriebetriebene Geräte, die neben einem Mikrocontroller zusätzlich über einen oder mehrere Sensoren sowie einen Funk-Chip verfügen.

MSB-A2

Die einzelnen Sensorknoten bilden mittels drahtloser Kommunikation ein drahtloses Sensornetz. Dabei ist die Vielfalt der Sensoren, die beispiels­weise zur Temperatur-, Luftfeuchte-, Licht- oder Vibrationsmessung dienen, nahezu unüberschaubar.

Das Praktikum bietet einen Einstieg in die Programmierung solcher Systeme und ermöglicht den Teilnehmern mit den verbreitetsten Technologien sowie den Besonderheiten einer Softwarearchitektur für drahtlose Sensornetze vertraut zu werden.

Beim Entwurf und der Implementierung für diese Systeme stellen sich dem Entwickler einige ganz spezielle Herausforderungen. Zum einen muss Rücksicht auf die begrenzten Ressourcen hinsichtlich der Rechenleistung und des Speichers, aber auch bezüglich der Energie genommen werden, zum anderen stellt der Aufbau ein drahtlosen Ad-hoc-Netzes besondere Anforderungen.

Die Programmierübungen erfolgen auf dem MSB-A2-Sensorknoten. Das Board verfügt neben dem Mikrocontroller über einen leistungsfähigen 868MHz Transceiver und mehrere Sensoren. Es stellt damit auch eine ideale Plattform für drahtlose Sensornetzwerke dar. Als 32 Bit-Mikrocontroller wird ein ARM7TDMI-S (der LPC2387 von NXP) verwendet und als Transceiver kommt der weit verbreitete CC1100 von Texas Instruments zum Einsatz.

Im Laufe der Veranstaltung werden die Teilnehmer schrittweise eine verteile Anwendung implementieren. Als Grundlage für diese Programmierübungen dienen der selbst entwickelte Kernel µkleos und die GNU ARM Toolchain.

Folien

 

Subversion-Repository: https://svn.imp.fu-berlin.de/cst-teaching/Programming%20Wireless%20Sensor%20Networks/WS1011/Students/gruppe<NUMMER>/

 

Termine

1. Übungszettel vom 20.10.2010

Den Übungszettel gibt es him Downlaod.

Die Hex-Datei für die erste Aufgabe.

Die µkleos-Projektseite und das Archiv von Version 1.0.

Abgabe: 27.10.2010 

 

2. Übungszettel vom 27.10.2010

Den Übungszettel gibt es hier zum Downlaod.
Die µkleos-Projektseite und das Archiv von Version 0.01a.

Abgabe: 03.11.2010

 

3. Übungszettel vom 03.11.2010

Den Übungszettel gibt es hier zum Downlaod.
Die µkleos-Projektseite und das Archiv von Version 0.01a.

Abgabe: 03.11.2010

 

4. Übungszettel vom 10.11.2010

Den Übungszettel gibt es hier zum Downlaod.
Die µkleos-Projektseite und das Git-Repository.

Zum erstmaligen Herunterladen der µkleos-Sourcen:

git clone -b stable http://ukleos.org/git/ukleos

Zum Aktualisieren der Sourcen:

git pull

Nach dem erstmaligen Herunterladen:

cd board/msba2/tools/

mkdir bin

make

Abgabe: 17.11.2010

 

5. Übungszettel vom 17.11.2010

Den Übungszettel gibt es hier zum Downlaod. Ein Skelett für die Anwendung liegt hier.

Download der Protokollbeschreibung in der aktuellen Version.

Die µkleos-Projektseite und das Git-Repository.

Zum Aktualisieren der Sourcen:

git pull

Abgabe: 01.12.2010

 

6. Übungszettel vom 24.11.2010

Den Übungszettel gibt es hier zum Downlaod.

Die µkleos-Projektseite und das Git-Repository.

Zum Aktualisieren der Sourcen:

git pull

Abgabe: 08.12.2010

 

7. Übungszettel vom 08.12.2010

Den Übungszettel gibt es hier zum Downlaod.

Download der Protokollbeschreibung in der aktuellen Version. Die dazu passende Header-Datei.

Die µkleos-Projektseite und das Git-Repository.

Zum Aktualisieren der Sourcen:

git pull

Abgabe: 15.12.2010

 

8. Übungszettel vom 15.12.2010

Den Übungszettel gibt es hier zum Downlaod.

Download der Protokollbeschreibung in der aktuellen Version. Die dazu passende Header-Datei.

Die µkleos-Projektseite und das Git-Repository.

Zum Aktualisieren der Sourcen:

git pull

Abgabe: 05.01.2011

 

9. Übungszettel vom 05.01.2011

Den Übungszettel gibt es hier zum Downlaod.

Download der Protokollbeschreibung in der aktuellen Version. Die dazu passende Header-Datei.

Die µkleos-Projektseite und das Git-Repository.

Zum Aktualisieren der Sourcen:

git pull

Abgabe: 19.01.2011

 

10. Übungszettel vom 19.01.2011

Den Übungszettel gibt es hier zum Downlaod.

Download der Protokollbeschreibung in der aktuellen Version. Die dazu passende Header-Datei.

Die µkleos-Projektseite und das Git-Repository.

Zum Aktualisieren der Sourcen:

git pull

Abgabe: 26.01.2011

 

11. Übungszettel vom 26.01.2011

Den Übungszettel gibt es hier zum Downlaod.
Download der Protokollbeschreibung in der aktuellen Version. Die dazu passende Header-Datei und eine neue Version des Protokoll-Gateways.

Die µkleos-Projektseite und das Git-Repository.

Zum Aktualisieren der Sourcen:

git pull

Abgabe: 02.02.2011

 

12. Übungszettel vom 02.02.2011

Den Übungszettel gibt es hier zum Downlaod.
Download der Protokollbeschreibung in der aktuellen Version. Die dazu passende Header-Datei.

Die µkleos-Projektseite und das Git-Repository.

Zum Aktualisieren der Sourcen:

git pull

Abgabe: 09.02.2011

 

20.10.2010 Erster Termin: Organisatorisches, Einführung und erstes Arbeiten mit dem MSB-A2
28.10.2010 Zweiter Termin: Die Kernel-Architektur und der Aufbau von Anwendungen unter µkleos
03.11.2010 Dritter Termin: Ein- und Ausgabe
10.11.2010 Vierter Termin: Senden und empfangen von Paketen
17.11.2010 Fünfter Termin: Implementierung einer einfachen, verteilten Anwendung
24.11.2010 Sechster Termin: Paketsniffer
01.12.2010 Siebter Termin: Paketsnifer II
08.12.2010 Achter Termin: Service Discovery
15.12.2010 Neunter Termin: Routing
05.01.2011 Zehnter Termin: Multi-Hop Routing
12.01.2011 entfällt
19.01.2011 Elfter Termin: Dynamische Adressvergabe
26.01.2011 Zwölfter Termin: Netzweite Adressvergabe
02.02.2011 Dreizehnter Termin: Suffix-basiertes Routing
09.02.2011 Vierzehnter Termin: Plugfest

Mailing List