Sie sind hier
E-Book

Linux Hardware Hacks

AutorJürgen Plate
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2007
Seitenanzahl467 Seiten
ISBN9783446413627
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis31,99 EUR

Jürgen Plate
Linux Hardware Hackz
Messen, Steuern und Sensorik mit Linux


LINUX GUT (EIN)GEBETTET

- Verschaffen Sie sich einen umfassenden Überblick über die Entwicklung von Embedded Systemen auf der Basis von Linux.
- Lassen Sie sich von den zahlreichen Praxisbeispielen inspirieren.
- Nutzen Sie die vielen Listings und Schaltungen für Ihre Projekte

Linux ist ein Multitalent. Es leistet nicht nur als Server-Betriebssystem hervorragende Dienste, sondern kann seine Stärken auch als Betriebssystem für eingebettete Systeme ausspielen. Zum Beispiel in einer Anwendung, mit der alle Getränkeautomaten auf dem Firmengelände selbstständig kontrollieren, wie gut sie gefüllt sind und dem Getränkelieferanten über eine Internetverbindung direkt mitteilen können, wann sie nachgefüllt werden müssen.

Wie Sie solche und ähnliche Mess-, Steuerungs- und Regelungsanwendungen konkret realisieren können, zeigt dieses Buch. Sie erfahren, wie Sie das Betriebssystem Linux für diese Zwecke verwenden, wie Betriebssystem-Kern und PC-Schnittstellen miteinander kommunizieren und wie man über digitale und analoge Aktoren und Sensoren die Brücke zur Außenwelt schlägt.

Die zahlreichen Praxisbeispiele, entweder mit industriellen Fertigkomponenten oder mit Schaltplänen (oft auch mit Platinenlayout) und dazugehörigen Programmen lassen sich unmittelbar in die Praxis umsetzen.

Über den Autor

Prof. Jürgen Plate unterrichtet am Fachbereich Elektrotechnik und Informationstechnik der FH München. Seine Fachgebiete umfassen neben anderem die Netzwerk-Technik und Internet-Technologie.

Er ist begeisterter Linux-User...



Die Inhalte der CD-ROM können nach Kauf und Download dieses eBooks auf Anfrage zur Verfügung gestellt werden.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

3 E/A-Programmierung

Wie schon im ersten Kapitel angedroht, geht es nun um das Ansprechen von Hardware per Programm. Dort wurde auch schon gesagt, dass es zwei Möglichkeiten gibt, E/E-Schnittstellen anzusprechen: Treiber oder direkter Portzugriff, der unter dem Begriff User-Mode-Programm läuft.

Kernel-Treiber sind, wie der Name schon sagt, Bestandteil des Kernels. Sobald sie eingebunden sind, können sie von allen Programmen gleichermaßen und ohne besondere Privilegien genutzt werden. Sie werden aus anderen Programmen angesprochen über

Einträge im /dev-Verzeichnis,
das /proc-Verzeichnis oder
ioctl()-Aufrufe.

Damit folgen die Treiber auch dem UNIX/Linux-Grundsatz " Alles ist Datei". Dieser Vorteil wird durch eine komplexere Programmierung erkauft. So ist z. B. der Zugriff auf Bibliotheksfunktionen eingeschränkt. Die Alternative besteht in User-Mode-Programmen, die direkt auf E/A-Ports zugreifen und damit auch immer nur mit Root-Privilegien starten müssen (nach erfolgreicher Missetat kann man auf normale User-Privilegien umschalten). Verwendet man dagegen ein User-Mode-Programm für Hardwarezugriffe, gilt:

die C Library kann benutzt werden,
Debugging ist einfacher und
Paging ist möglich.

Die Programmierung ist somit viel einfacher. Aber es gibt auch Nachteile gegen über einem Treiber:

Interrupts lassen sich nicht verwenden,
Performance ist nicht so gut wie bei Kernel-Treibern,
Verzögerungen entstehen durch den Scheduler und
Root-Rechte sind für den Zugriff erforderlich.

Bei Embedded Systems, wo nur wenige Prozesse laufen und ein User-Login meist gar nicht möglich ist,überwiegt oft der Vorteil der einfachen Programmierung. Der Abschnittüber Treiber und auch die entsprechenden Abschnitte in anderen Kapiteln müssen zwangsläufig rudimentär sein, sonst wäre dieses Buch mindestens 500 Seiten dicker geworden. Alle, die mehr wissen wollen, seien auf das Buch von Quade und Kunst bzw. dessenWebseite http://ezs.kr.hsnr.de/TreiberBuch/ verwiesen. Deshalb wird nach einem kurzen Ausflug zum Compiler zuerst die User-Mode- Programmierung behandelt, anschließend gibt es einen kleinen Ausflug in die Treiberentwicklung.

3.1 Compiler und Bibliotheken

Wenn Sie mit gängigen Distributionen arbeiten, installieren Sie zumeist nur fertig kompilierte Programme (sogenannte Binärpakete). Für unsere Anwendungen müssen Sie in der Regel den Quellcode herunterladen oder selbst verfassen und dann das Programm selbst kompilieren. Deshalb gebe ich Ihnen dazu einige einführende Tipps.

Praktisch alle Linux-Programme verwenden dieselben Standardfunktionen, beispielsweise zum Zugriff auf Dateien, zur Ausgabe am Bildschirm, zur Unterst ützung von X etc. Es wäre sinnlos, wenn jedes noch so kleine Programm all diese Funktionen unmittelbar imCode enthaltenwürde – riesige Programmdateien wären die Folge. Stattdessen bauen die meisten Linux-Programme auf sogenannten shared libraries auf: Bei der Ausführung eines Programms werden automatisch auch die erforderlichen Libraries (Bibliotheken) geladen. Der Vorteil:Wenn mehrere Programme Funktionen derselben Library nutzen, muss diese nur einmal geladen werden.

Bibliotheken spielen eine zentrale Rolle dabei, ob und welche Programme auf Ihrem Rechner ausgeführt werden können. Fehlt auch nur eine einzige Bibliothek (bzw. steht sie in einer zu alten Version zur Verfügung), kommt es beim Programmstart sofort zu einer Fehlermeldung.

Kompilierte Programme können nur dann ausgeführt werden, wenn die dazu passenden Bibliotheken installiert sind und auch gefunden werden. Mit dem Kommando ldd kann man feststellen, welche Bibliotheken von einem Programm benötigt werden. ldd wird als Parameter der vollständige Dateiname des Programms übergeben. Als Reaktion listet ldd alle Libraries auf, die das Programm benötigt. Außerdem wird angegeben, wo sich eine passende Library befindet und welche Libraries fehlen bzw. nur in einer veralteten Version zur Verfügung stehen. Wenn ldd das Ergebnis not a dynamic executable liefert, handelt es sich um ein Programm, das alle erforderlichen Bibliotheken bereits enthält (ein statisch gelinktes Programm).

Inhaltsverzeichnis
Inhaltsverzeichnis10
Vorwort18
Prolog22
Spannungsversorgung der Schaltungen24
Sicherheitshinweise26
Embedded Systems28
1.1 Einführung28
1.1.1 Design von Embedded Systems30
1.1.2 Hardware für Embedded Systems31
1.2 Embedded Linux33
1.3 Was man fur¨ Embedded Linux benötigt35
1.4 Linux booten40
1.4.1 Den Kernel booten41
1.4.2 System V-Init43
1.5 Entwicklungsumgebung45
1.6 Hardwarezugriffe47
1.7 Grafikausgabe48
1.8 Linux ganz klein52
Die eigene Linux-Distribution58
2.1 Einführung58
2.2 Das Root-Dateisystem bauen60
2.2.1 Konfiguration des Kernels61
2.2.2 Kompilation des Kernels62
2.2.3 Installation des Kernels62
2.2.4 Root-Dateibaum erstellen64
2.2.5 Aufbau des Verzeichnisbaums66
2.2.6 CD-ROM brennen73
2.2.7 Inhalt von ISO-Dateien ändern78
2.2.8 Live-CD auf die Schnelle79
2.3 Weitere Wege zur eigenen Distribution80
E/A-Programmierung82
3.1 Compiler und Bibliotheken83
3.2 Prozesse und Signale85
3.2.1 Prozesse86
3.2.2 Signale93
3.2.3 Prozesskommunikation mit Pipes101
3.2.4 Programme schlafen legen105
3.3 User-Mode-Programmierung106
3.3.1 Programme mit Root-Rechten ausstatten106
3.3.2 UID und GID107
3.3.3 Zugriff auf E/A-Ports im User-Space109
3.4 Device-Treiber112
3.4.1 Das Device-Konzept112
3.4.2 Konzept der Gerätetreiber115
3.4.3 Kernel-Module117
3.4.4 Portbereiche reservieren120
3.4.5 Dateifunktionen implementieren121
3.4.6 Daten von Treiberinstanzen130
3.4.7 IO-Control131
Standard-PC-Schnittstellen134
4.1 PC-Schnittstellen134
4.2 Die serielle Schnittstelle135
4.2.1 Die serielle PC-Schnittstelle136
4.2.2 Die RS232C-Schnittstelle (V.24)140
4.2.3 Die RS422-Schnittstelle142
4.2.4 Die RS485-Schnittstelle143
4.2.5 Die Stromschnittstelle(TTY)145
4.2.6 Programmierung mit C147
4.2.7 Programmierung mit Perl158
4.3 Die parallele Schnittstelle159
4.3.1 Hardware der parallelen Schnittstelle160
4.3.2 Port-Typen166
4.3.3 Programmierung der parallelen Schnittstelle168
4.3.4 Die Parapin-Bibliothek171
4.3.5 Ansprechen der Schnittstelle in Perl174
4.4 Der Joystick-Port175
4.5 Der interne Lautsprecher179
4.6 Die Tastaturschnittstelle182
4.7 Die USB-Schnittstelle184
4.7.1 USB-Hardware185
4.7.2 USB-Geräte für Linux188
Chip-Schnittstellen192
5.1 Die SPI-Schnittstelle192
5.2 Der I2C-Bus194
5.3 Der 1-Wire-Bus195
Digitale Ein- und Ausgabe198
6.1 TTL und CMOS koppeln198
6.2 Eingangs-Interface-Schaltungen199
6.3 Taster und Schalter200
6.3.1 Kontaktprellen200
6.3.2 Tastatur-Interfaces201
6.3.3 Reed-Kontakte und Hall-Schalter203
6.3.4 Optokoppler206
6.4 Ausgangs-Interface-Schaltungen207
6.4.1 Verstärker-ICs208
6.4.2 Feldeffekt-Transistoren210
6.4.3 IGBTs212
6.4.4 Optokoppler213
6.4.5 Ansteuerung von Wechselspannungsverbrauchern213
6.4.6 Halbleiter-Relais215
6.4.7 Relais217
6.4.8 Jogdial einmal anders228
Motorsteuerung230
7.1 Einführung230
7.2 Entstörung231
7.3 Motoren steuern mit einer H-Brücke232
7.3.1 H-Brücke (H-Bridge) mit diskreten Bauteilen232
7.3.2 H-Brücke mit integrierten Schaltungen235
7.4 Drehzahlsteuerung mittels PWM239
7.5 Servosteuerung242
7.5.1 Der FT 639244
7.5.2 Der MIC 800250
7.6 Schrittmotoren252
7.6.1 Arbeitsprinzip von Schrittmotoren253
7.6.2 Ansteuerung eines Schrittmotors254
7.6.3 Kenngrößen eines Schrittmotors257
7.6.4 Schrittmotor-Interface258
7.6.5 Beschleunigung und Verzögerung262
Anzeigen und Displays266
8.1 LED-Anzeigen266
8.2 Displays272
8.2.1 LCD- und OLED-Grundlagen273
8.2.2 Displaytypen275
8.2.3 Zeichenadressierung276
8.2.4 Anschluss des LC-Displays277
8.2.5 Ansteuerung von LCDs280
8.2.6 Eigene Zeichen definieren284
8.2.7 Initialisierung des Displays286
8.2.8 Display-Software287
8.3 LCD für Warmduscher290
8.4 Grafikdisplays291
Fernschalten296
9.1 Infrarot-Fernsteuerung296
9.2 Funk-Fernsteuerung300
9.3 Fernsteuerung per Mobiltelefon305
Digitale Fotosensoren310
10.1 Fotohalbleiter311
10.1.1 Fotoelemente und Fotodioden311
10.1.2 PIN-Dioden312
10.1.3 Fototransistoren312
10.1.4 Fotowiderstände313
10.2 Lichtschranken313
10.2.1 Exkurs: Timerbaustein NE555314
10.2.2 Lichtschranken mit Gleichlicht316
10.2.3 Lichtschranken mit Wechsellicht319
10.3 Optische Abstands-Sensoren323
10.3.1 Abstandssensor IS471F323
10.3.2 Abstände per Infrarot messen324
Die analoge Welt328
11.1 Analogschaltungen328
11.1.1 Kondensatoren329
11.1.2 Festwiderstände330
11.2 Operationsverstärker-Grundlagen330
11.2.1 Operationsverstärker-Grundschaltungen331
11.2.2 Operationsverstärker-Kenngrößen333
11.2.3 Differenzverstärker335
11.3 Die Digital-Analog-Wandlung338
11.3.1 Digital-Analog-Wandler338
11.3.2 Realisierung von D/A-Wandlern340
11.4 Die Analog-Digital-Wandlung344
11.4.1 Das Abtasttheorem344
11.4.2 Analog/Digital-Wandler346
11.4.3 Sample-and-Hold-Schaltung348
11.4.4 Konversionsfehler348
11.4.5 Realisierung von A/D-Wandlern349
Messung von Spannung, Strom und Widerstand356
12.1 Präzisions-Widerstands-Vorteiler357
12.2 Widerstandsmessung361
12.3 Messbrücke362
Sensoren366
13.1 Potentiometer als Weg- oder Winkelsensoren367
13.2 Temperatursensoren367
13.2.1 Heißleiter367
13.2.2 Kaltleiter368
13.2.3 Platin-Temperaturmesswiderstand370
13.2.4 Halbleiter-Temperatursensoren371
13.2.5 Temperaturmessung mit Thermoelementen377
13.2.6 Temperaturmessung mit Quarzen380
13.3 Druck- und Kraftsensoren380
13.3.1 Dehnungsmessstreifen381
13.3.2 Folien-Kraftsensoren383
13.3.3 Drucksensoren384
13.4 Beschleunigungs-Sensoren390
13.5 Kompass-Sensoren392
13.6 Kapazitive Sensoren (Feuchtesensoren)395
13.7 Schallsensoren400
13.8 Gassensoren410
13.9 Messung von Radioaktivität419
13.9.1 Der Geigerzähler420
13.9.2 Geigerzähler-Schaltungstechnik422
13.9.3 Software zum Zählen der Impulse425
13.10 Spezielle Fotosensoren426
13.10.1 Licht-Spannungs-Wandler426
13.10.2 Farbsensoren426
13.11 Bewegungsmelder429
13.11.1 Infrarot-Bewegungsmelder429
13.11.2 Radar-Bewegungsmelder430
13.12 Kameraüberwachung432
Datenauswertung434
14.1 Messfehler434
14.2 Filterung von Messwerten435
14.3 Statistische Verarbeitung von Messwerten437
14.3.1 Tabellarische und graphische Darstellung437
14.3.2 Mittelwert, Varianz, Standardabweichung, Standardfehler440
14.3.3 Minimum, Maximum, Median, Modalwert442
14.3.4 Aufrufbeispiel443
14.3.5 Lineare Regression443
14.4 Grafik-Tools für die Messwert-Darstellung446
14.4.1 Gnuplot448
14.4.2 LabPlot450
14.4.3 Datendarstellung mit MRTG451
Anhang454
A.1 Literatur454
A.2 Links456
A.3 Bezugsquellen458
Stichwortverzeichnis460

Weitere E-Books zum Thema: Betriebssysteme - Computersoftware

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Automotive Embedded Systeme

E-Book Automotive Embedded Systeme
Effizfientes Framework - Vom Design zur Implementierung Format: PDF

Die Entwicklung hochkomplexer automotiver Infotainmentsysteme bestehend aus einer Headunit und weiteren Komponenten wie Audio- und Videoelementen, Kommunikationseinheiten, Navigationssystemen und…

Sicheres Netzwerkmanagement

E-Book Sicheres Netzwerkmanagement
Konzepte, Protokolle, Tools Format: PDF

Die Administration komplexer Rechnernetzwerke verlangt durch die ständige Weiterentwicklung etablierter Standards und die Integration gänzlich neuer Technologien ein umfassendes technisches Know-how…

Sicheres Netzwerkmanagement

E-Book Sicheres Netzwerkmanagement
Konzepte, Protokolle, Tools Format: PDF

Die Administration komplexer Rechnernetzwerke verlangt durch die ständige Weiterentwicklung etablierter Standards und die Integration gänzlich neuer Technologien ein umfassendes technisches Know-how…

Weitere Zeitschriften

ARCH+.

ARCH+.

ARCH+ ist eine unabhängige, konzeptuelle Zeitschrift für Architektur und Urbanismus. Der Name ist zugleich Programm: mehr als Architektur. Jedes vierteljährlich erscheinende Heft beleuchtet ...

Ärzte Zeitung

Ärzte Zeitung

Zielgruppe:  Niedergelassene Allgemeinmediziner, Praktiker und Internisten. Charakteristik:  Die Ärzte Zeitung liefert 3 x pro Woche bundesweit an niedergelassene Mediziner ...

Berufsstart Bewerbung

Berufsstart Bewerbung

»Berufsstart Bewerbung« erscheint jährlich zum Wintersemester im November mit einer Auflage von 50.000 Exemplaren und ermöglicht Unternehmen sich bei Studenten und Absolventen mit einer ...

bank und markt

bank und markt

Zeitschrift für Banking - die führende Fachzeitschrift für den Markt und Wettbewerb der Finanzdienstleister, erscheint seit 1972 monatlich. Leitthemen Absatz und Akquise im Multichannel ...

Card-Forum

Card-Forum

Card-Forum ist das marktführende Magazin im Themenbereich der kartengestützten Systeme für Zahlung und Identifikation, Telekommunikation und Kundenbindung sowie der damit verwandten und ...

cards Karten cartes

cards Karten cartes

Die führende Zeitschrift für Zahlungsverkehr und Payments – international und branchenübergreifend, erscheint seit 1990 monatlich (viermal als Fachmagazin, achtmal als ...

Courier

Courier

The Bayer CropScience Magazine for Modern AgriculturePflanzenschutzmagazin für den Landwirt, landwirtschaftlichen Berater, Händler und generell am Thema Interessierten, mit umfassender ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...