Steuerungsebene

Denis Hatebur, Friedrich Hülscher, Christoph Hüntemann, Thomas Rottke Die Bluetooth-Portierung Drahtgebundene Anschlüsse an lokalen Komponenten eines verteilten MSR-Systems sind nicht unproblematisch – oft sind diese Schnittstellen nur schwer zugänglich. Mobile Wartungseinheiten mit „Air-Interfaces“ können hier Abhilfe schaffen. Welcher Aufwand hinter einer solchen Lösung steckt, zeigt folgende Fallstudie einer Bluetooth-Anbindung.

ür Wartungs- und Konfigurations- stelligen lässt. Dies zeigen die Erfah- Konkret ging es dabei darum, einen Faufgaben in verteilten MSR-Systemen rungen im Zusammenhang mit einer Fall- Wartungs-PDA (Personal Digital Assis- (Messen, Steuern, Regeln) sind mobile studie bei Itesys. tant) mit Embedded-Linux zur Visuali- Wartungsgeräte zum Beispiel in Form eines Handheld-Computers ideal ge- eignet. Sie lassen sich gut transportieren und sind in der Lage, Informationen der Leitebene über den Zustand des Systems und der Systemkomponenten darzustel- len. Ein weiterer Reiz dieser Geräte liegt darin, mit ihnen zusätzlich Messdaten zu erfassen und diese online an das MSR- System zu übermitteln. Trotz der offensichtlichen Vorteile einer solchen Lösung gegenüber einer draht- gebundenen Schnittstelle sind ãAir-Inter- faces“ bislang nur unzureichend in Em- bedded-Systeme für MSR-Anwendungen integriert. Eigentlich unverständlich, da sich die Integration mittlerweile mittels kostengünstiger Standardtechnologien und ohne Programmieraufwand bewerk- Die Struktur des realisierten Bluetooth-Systems.

52 5/04 . Computer&AUTOMATION . www.elektroniknet.de Steuerungsebene

sierung von Messdaten, zur Konfiguration direkt in den Flash-Speicher des Hand- hat. Noch fehlende Komponenten wie des MSR-Systems und zur Messwert- helds geladen werden können. Familiar zum Beispiel ein Web-Browser, um mit erfassung einzusetzen. Der PDA ist über Linux enthält bereits eine Bluetooth- dem Unterstationsrechner kommunizieren Bluetooth mit einer Unterstation ver- Unterstützung in Form von BlueZ, dem zu können, lassen sich ebenso unter der bunden. Diese besteht aus einem Embed- Standard-Protokollstack von Linux. Beide genannten Web-Adresse herunterladen ded-PC, auf dem ein speziell angepasstes Varianten von Familiar bieten die ge- und installieren. Linux und der Bluetooth-Stack „BlueZ“ wohnten Programme wie bash, ssh- Die Installation der Familiar-Distribu- laufen. Über Ethernet und TCP/IP ist die und ssh-Client, sftp-Server und sftp- tion läuft wie folgt ab: Da das bestehende Unterstation mit der Leitstation ver- Client. Der Umgang mit diesem System System eventuell später wieder hergestellt bunden und über CAN mit der Feldebene. erfordert also wenig Einarbeitung, sofern werden soll, empfiehlt es sich, als ersten Alternativ lie§e sich auch ein PDA mit man bereits Desktop-Erfahrung mit Linux Schritt ein Backup davon zu machen. Windows-CE einsetzen, sofern die ent- sprechende Windows-Variante Bluetooth- Unterstützung bietet. Da der Untersta- tionsrechner aber mit Linux betrieben wird, bot es sich aus Gründen der Ho- mogenität, Quelloffenheit und Kompati- bilität an, Linux auch auf dem PDA ein- zusetzen. Aus dieser Architektur ergeben sich verschiedene Vorteile:

 Bluetooth hat sich als Standard für drahtlose Übertragung bei Distanzen bis zu 100 m bewährt und ist für mobile Wartungsaufgaben besonders geeignet.  Linux erfreut sich auch im Embed- ded-Bereich in der Variante ãEmbedded Linux“ zunehmender Beliebtheit. Gerade die Offenheit des Systems macht Linux besonders interessant, wenn in einem Ent- wicklungsprojekt bei der Integration mit Anpassungsarbeiten zu rechnen ist. Das Open-Source-Konzept garantiert, dass für Embedded-Linux und den Blue- tooth-Stack keine Lizenzkosten anfallen. Die Entwicklungsumgebungen für Linux Ð bestehend aus GCC mit Compiler und Debugger Ð sind gut dokumentiert und ebenfalls kostenfrei. Für Embedded-Linux ist kostengüns- tige Standardhardware verfügbar; ein Bluetooth-Dongle kostet weniger als 50 Euro.  Für Standardkonfigurationen lassen sich fertige Embedded-Linux- und Bluetooth-Installationspakete direkt und kostenlos aus dem Internet herunter laden. Für speziellere Konfigurationen ist die Installationsarbeit natürlich auf- wendiger.

Die Realisierung im Detail Für den verwendeten PDA, einen Compaq iPAQ 3660, gibt es als Linux-Distribution das „Familiar Linux“ mit den Oberflächen Opie (Qt-basiert) oder GPE (GTK-ba- siert). Beide Versionen werden auf der Entwickler-Homepage www.handhelds.

(Bild: Eurotherm) org als fertige Images angeboten, die

www.elektroniknet.de . Computer&AUTOMATION . 5/04 53 Steuerungsebene

Anschlie§end ist der Bootloader zu in- auf Grund ihrer Größe und Stabilität in Linux-Bluetooth-Protokollstack BlueZ stallieren, mit dem das Flash-Image zum sogenannten Mini- oder Eindisketten- portiert. Das BlueZ-System setzt sich aus Beispiel mit Hilfe eines Terminal-Pro- Linux-Versionen eingesetzt werden. Al- drei Komponenten zusammen: Module, gramms über die serielle Schnittstelle ge- lein der Kernel benötigt etwa 520 kByte, Applikationen und Libraries. laden werden kann. Der gesamte Zeit- und ein lauffähiges Bering – ohne wirk- aufwand hierfür beträgt etwa 20 Minuten liche Anwendungen und nur mit System- Module zuzüglich der Ladezeit für das Backup. tools Ð belegt rund 1,3 MByte. Da jedoch Bei BlueZ gibt es drei Arten von Ker- Das speziell angepasste Linux, das auf – was eine Bluetooth-Unterstützung nelmodulen. Die oberen Schichten sind der Unterstation läuft, wurde auf der Basis angeht Ð derzeit keine Alternative zur Bluetooth-Protokollmodule. Diese sind von LEAF realisiert. Der Begriff LEAF Bering-Variante besteht, sind diese Nach- Implementierungen der gleichnamigen steht für Linux Embedded Appliance teile in Kauf zu nehmen. Protokolle der Bluetooth-Spezifikation . Das Ziel dieses Projektes ist es, Für den vorliegenden Anwendungsfall beziehungsweise der Bluetooth-Profil- einen Linux- mit Firewall-Funktion mussten am Bering-System einige An- spezifikation. Darunter befindet sich zu erstellen, der möglichst wenige Res- passungen vorgenommen werden. Als „bluez.o“, das zentrale Modul des BlueZ- sourcen benötigt. Die Grundlage hierfür Ausgangspunkt diente ein LEAF-Bering- Stacks. Dieses Modul fungiert als HCI- ist die Distribution des Linux Router System in der Version 1.2, das jedoch Treibermodul (Host Controller Interface) Project (LRP). Dieses „minimalistische“ noch keine aktuelle, vollständige und und reicht die HCI-Pakete an die unteren Linux benötigt nur wenig Festspeicher funktionierende Bluetooth-Unterstützung Hardware-Treiber weiter. Die HW- (kleiner 2 MByte) und relativ wenig enthält. Auf Grund der schnellen Ent- Treibermodule dienen als Schnittstelle Hauptspeicher (kleiner 12 MByte). Die wicklung und sicherheitskritischer Fehler zwischen dem HCI-Treiber bluez.o und Hauptherausforderung hinsichtlich der in den letzen Kernel-Versionen war es anderen Hardware-Treibern, welche dann Anpassung bestand darin, Bluetooth in ratsam, einen aktuellen Kernel mit ak- direkt auf die Geräte zugreifen. das Embedded-System zu integrieren und tivierten Bluetooth-Optionen zu instal- so zu compilieren, dass der Speicher- lieren. Da der Speicherplatz bei einem Applikationen bedarf des Bluetooth-Stack und der er- Embedded-System begrenzt ist, musste Um den BlueZ-Stack nutzen zu können, forderlichen Tools den üblichen Rahmen der Kernel vor der Installation noch mit ist es nicht nur wichtig, die Kernelmodule für Embedded-Systeme (kleiner 2 MByte) einem Executable-Packer komprimiert des Stacks zu kennen. Auch die zugehö- nicht überschreitet. Die LRP-Distribution werden. Man erreicht so eine Verklei- rigen Anwendungen, Test- und Konfigu- benötigt nur eine Diskette und läuft nach nerung auf etwa 85 % der Originalgröße. rationstools sind von Bedeutung. Wichtig dem Start des Systems komplett im Die Erstellung eines eigenen Kernels sind in diesem Zusammenhang der HCI- Hauptspeicher. bietet den Vorteil, alle benötigten Module Daemon „hcid“, der SDP-Daemon „sdpd“ Mit der Distribution „Bering“ des schon statisch in den Kernel compilieren (Service Discovery Protocol), das Konfi- LEAF-Projektes, deren Code-Basis aus zu können. So entfällt die Notwendigkeit, gurationstool „hciconfig“ und der PAN- dem (LRP) stammt die Kernelmodule in das System zu in- Daemon „pand“ (Personal Area Network). und die im Gegensatz zu anderen Ab- tegrieren. Der Daemon hcid, der im Hintergrund leitungen aus dieser Code-Basis den läuft, erfüllt im Wesentlichen drei Auf- Kernel 2.4 verwendet, steht von Seiten BlueZ-Erweiterung für LEAF gaben. Bei seinem Start werden alle bis des Kernels her erstmals eine Bluetooth- Die größte Schwierigkeit beim Aufbau dahin vorhandenen HCI-Geräte initia- Unterstützung zur Verfügung. Allerdings des Systems bestand in der Integration des lisiert und mit Standardwerten konfi- ist der Kernel 2.4 um einiges größer als Bluetooth-Subsystems in LEAF-Bering. guriert. Die Konfiguration erfolgt dabei Linux 2.2 oder gar Linux 2.0, die beide Um dies zu erreichen wurde der offizielle auf der Grundlage einer Konfigurations-

Aufteilung des Festspeicherbedarfs von LEAF-Bering: Über 75 % des Platzes auf der Diskette (1,68-MByte-Image) Das Komponentendiagramm: Ein Wartungs-PDA und die Steuerungsrechner der benötigt allein das System. Leitebene werden über ein Web-Interface mit dem MSR-System verbunden.

54 5/04 . Computer&AUTOMATION . www.elektroniknet.de datei, in der alle grundsätzlichen Einstellungen für die jeweiligen Geräte getroffen werden können. Die zweite Aufgabe des Programms ist es, im Betrieb neu hinzu- gekommene Geräte entsprechend zu konfigurieren. Da- rüber hinaus erfüllt das Programm noch eine Protokol- lierungsfunktion. Das Service Discovery Protocol (sdpd) dient dazu, an- deren Geräten die Dienste, die das eigene Gerät anbietet, zu nennen. Der SDP-Daemon ist das dafür zuständige Pro- gramm. Mit dem Tool „hciconfig“ kann ein HCI-Gerät, also ein Bluetooth-Gerät, manuell konfiguriert werden. Au§erdem lassen sich damit der Name und die MAC-Adresse des Gerätes abfragen. Das Tool ist vergleichbar mit dem Tool „ifconfig“ für Netzwerkkarten. Das Personal Area Network ermöglicht es, ad hoc ein Netzwerk aufzubauen. Das dabei eingesetzte Protokoll hei§t „BNEP“ und steht für „Bluetooth Network Encapsulation Protocol“. Dieses Protokoll verpackt Ethernet-Frames in Bluetooth-Pakete. Die beteiligten Geräte erhalten bei Ver- wendung des „pand“ ein virtuelles Netzwerk-Interface mit Namen „bnep0“, dem eine IP-Adresse zugewiesen werden kann. Über diese IP-Adresse ist das Gerät dann ansprechbar.

Libraries Zusätzlich zu Modulen und Applikationen gehören auch noch Libraries zu BlueZ. Darin sind die wichtigsten und immer wieder benötigten Funktionen enthalten.

Die Anbindung an das Feldbus-System Die Steuerung der Feldebene erfolgt bei der beschriebenen Applikation über CAN. Die Steuerungssoftware läuft auf dem Embedded-PC und setzt sich aus den Komponenten Steuerung/Regelung, Feldabbild, Node-Überwachung und Node-Konfiguration zusammen. Die Konfiguration und Überwachung des Systems erfolgt über einen Web-Browser auf dem PDA oder dem Leitrechner. Dazu ist es notwendig, dass auf dem Unterstationsrechner ein Web-Server läuft. Dieser wird von LEAF-Bering in Form des Paketes „weblet.lrp“ bereitgestellt. Das Paket enthält einen Shell- skript-Web-Server, der normalerweise dazu dient, Status- informationen über das Bering-System abzufragen. Die Kommunikation zwischen Web-Browser und Web-Server erfolgt über TCP/IP, wobei der Leitrechner Ethernet und der PDA Bluetooth als Übertragungsweg nutzt. Die Anfragen des Browsers werden auf Seiten des Embedded-Systems von CGI-Skripten beantwortet, welche über Unix-Sockets mit der Steuerungskomponente Daten austauschen.

Portierung auf das Zielsystem Programme, die für ein „normales“ Linux-System compiliert wurden, können nicht ohne weiteres auf einer Mini-Distribution wie LEAF-Bering gestartet werden Ð der Grund dafür sind unterschiedliche glibc-Versionen. Die glibc ist die GNU-Variante der libc. Alle in C ge- schriebenen Programme werden dagegen gelinkt. LEAF- Bering verwendet aus Platzgründen eine ältere glibc-Ver- sion, da diese im Vergleich zu neueren Versionen deutlich kleiner ist. Programme, die gegen neuere glibc-Versionen www.elektroniknet.de . Computer&AUTOMATION . 5/04 Steuerungsebene

Übertragungsrate binden. Kommt eine Verbindung zu- stande, wird ein Netzwerk-Interface er- zeugt, welches nur für die Dauer der Verbindung existiert. Mit „ifconfig“ lässt sich eine IP-Adresse für dieses Interface einstellen, zum Beispiel mit

:root@linux#> ifconfig bnep0 10.0.0.1 kByte / s Der Datenaustausch zwischen PDA und Unterstation kann nun über übliche Internet-Techniken erfolgen.

Sinnvoll bis 10 Meter Entfernung / m Entfernung Das Ergebnis der empirischen Messung: Bis zu einem Abstand von 5 Metern kann mit Um Daten über die Leistungsfähigkeit einer relativ gleichmäßigen, hohen Datenrate gerechnet werden. Bei Abständen von und Zuverlässigkeit der Bluetooth-Über- 6 bis 10 Metern ist die Transferrate stärker vom Umfeld abhängig, und es kommt je tragungsstrecke zu ermitteln, wurden nach äußeren Bedingungen zu stärkeren Schwankungen. Abstände von über 10 Me- empirische Messungen durchgeführt. Bei tern führen zu einer extremen Verschlechterung der Übertragungsleistung; der Aufzeichnung der Datenübertragungs- bei diesen Entfernungen ist praktisch keine sinnvolle Anwendung mehr möglich. raten in Abhängigkeit von der Entfernung stellte sich heraus, dass in einem Abstand gelinkt worden sind, müssen daher por- mit einer Diskette, ist hierfür erst noch von knapp 10 Metern die Datenrate zur tiert werden. Platz auf der Diskette zu schaffen und Messwert-Erfassung noch ausreicht. Der Zur Portierung ist es erforderlich, auf nicht benötigte Pakete müssen gelöscht Bereich jenseits der 10 Meter wurde durch dem Entwicklungsrechner eine Entwick- werden. Für das Paket mit den An- eine Wand gemessen, was zwar durchaus lungsumgebung für das entsprechende wendungen und das um die Bluetooth- Praxisbedingungen entspricht, aber auch Zielsystem zu installieren. Mit diesem Treiber erweiterte Modul-Paket werden das Ergebnis entsprechend beeinflusst. „Cross-Compiler“ ist es möglich, auf rund 220 kByte benötigt. Diese Archive Die Messungen erfolgten unter Büro- dem Entwicklungssystem Programme für sind auf die Diskette zu kopieren, an- Bedingungen mit Class-3-Bluetooth- das Zielsystem zu übersetzen. Nach der schlie§end ist das (Applikations-)Paket Adaptern. Da Bluetooth extrem störun- Portierung sind die Applikationen und in die Konfigurationsdatei „syslinux.cfg“ anfällig ist, dürfte es auch im Industrie- Libraries in das Standard-Archivformat des Bootloaders „syslinux“ einzutragen. Umfeld zu keinen größeren Verschlech- der LEAF-Bering-Distribution zu brin- Die für eine solche Bluetooth-Applikation terungen kommen. gh gen. Diese Archive haben die Endung unbedingt notwendigen Hardware-Treiber „.lrp“ und sind im Wesentlichen ã.tar.gz“- und Protokollmodule bluez.o, l2cap.o, Nähere Informationen: Bluetooth-Pakete für LEAF-Projekt: www.itesys.de Archive mit spezifischen Datei-Erwei- bnep.o, hci_usb.o, usbcore.o, und Embedded Linux LEAF Project: http://leaf.sf.net terungen, die von Bering zur Konfigura- usb_ ohci.o beziehungsweise usb_uhci.o Embedded Linux für PDAs: http://www.handhelds.org Installationsanleitung von Familiar Linux: http:// tion des Systems benutzt werden. sind mit dem entsprechenden Kernel familiar.handhelds.org/familiar/releases/v0.7.1/install/ Damit die Applikationen automatisch zu compilieren und in das System zu in- starten, empfiehlt es sich, ein Startup- tegrieren. Denis Hatebur Skript in „/etc/init.d/“ zu erstellen und Nach dem Neustart des LEAF-Systems ist Geschäftsführer entsprechende Links anzulegen. Nutzt ist mittels „hciconfig“ überprüfbar, ob der der Firma Itesys Institut für Technische Systeme.

(Bilder: Itesys) man LEAF-Bering in der Standardversion eingesteckte Bluetooth-Dongle erkannt wird. Wenn nicht, sind wahrscheinlich nicht alle benötigten Module geladen oder Friedrich Hülscher die notwendigen Applikationen laufen ist Student der technischen Informatik nicht. an der FH-Dortmund. Der Verbindungs-Aufbau Nach einer vollständigen Konfiguration Christoph Hüntemann der Unterstation kann der PAN-Daemon ist Student der technischen Informatik „pand“ auf dem Embedded-PC mit dem an der FH-Dortmund. Parameter ã--listen“ gestartet werden. Der Daemon wartet dann im Hintergrund auf eine eingehende Verbindung. Vom PDA Thomas Rottke kann sich der Bediener anschlie§end ist IT-Manager bei DNV Det Norske Veritas und mittels ãpand --connect BLUETOOTH_ Dozent an der FH-Dortmund. ADRESSE“ mit der Unterstation ver-

56 5/04 . Computer&AUTOMATION . www.elektroniknet.de