IMBS Institut für Mikrotechnische Bauelemente und...

24
IMBS Institut für Mikrotechnische Bauelemente und Systeme Praktikum Sensorik – SR1 Vorbereitungsunterlagen zum Beschleunigungssensor-Versuch

Transcript of IMBS Institut für Mikrotechnische Bauelemente und...

IMBSInstitut für Mikrotechnische Bauelemente und Systeme

Praktikum Sensorik – SR1

Vorbereitungsunterlagen zum Beschleunigungssensor-Versuch

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) III

Hinweis zu den Versuchsunterlagen

Es wird erwartet, dass Sie diese Versuchsunterlagen bis zum Praktikumstermin gelesen haben. Die mit einem (I) gekenn-zeichneten Kapitel dienen der Information und dem Verständnis. Alle Kapitel mit der Kennzeichnung (PR) sind praktikumsrelevant und müssen entsprechend sorgfältig durchgearbeitet werden. Sie sind Voraussetzung für eine reibungslose Durchführung des Versuchs. Es wird empfohlen, alle relevanten Informationen als Arbeitsunterlage am Praktikumstag mitzubringen.

Inhaltsverzeichnis

1 Aufgabenstellung (PR) ............................................................................................................. 1

2 Beschleunigungssensor (PR) ................................................................................................... 1

3 Mikrocontroller und -board ..................................................................................................... 2 3.1 Mikrocontroller (I) ................................................................................................... 2 3.2 Mikrocontrollerboard (I) .......................................................................................... 3

4 Software-Entwicklung ............................................................................................................... 3 4.1 GCC - GNU Compiler Collection (I) ......................................................................... 3 4.2 Arbeitsweise eines Compiler (I) ................................................................................ 3 4.3 Grundstruktur eines C-Programms (PR) ................................................................... 4 4.4 IDE - Embedded GNU ............................................................................................. 5

4.4.1 Einbinden des C-Compilers (I) ......................................................................... 5 4.4.2 Spezifische Daten des Zielsystems (I) ............................................................... 6 4.4.3 Oberfläche der Entwicklungsumgebung (PR) .................................................... 9 4.4.4 Benutzung der Projektverwaltung (PR) ........................................................... 10

4.5 Terminal- und Monitorprogramm – OC Console, TwinPeeks .................................. 11 4.5.1 Einstellungen (I) ............................................................................................ 11 4.5.2 Befehle des Monitorprogramms (PR) .............................................................. 12 4.5.3 Löschen, Übertragen und Starten des Programms (PR) ................................... 13

5 Weiterführende Informationen (PR) .................................................................................... 13

6 Protokoll-Vorgaben (PR) ........................................................................................................ 14

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

!!

IV Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

AbbildungsverzeichnisAbbildung 1: Blockschaltbild des ADXL202 ........................................................................ 1Abbildung 2: Flussdiagramm einer C-Übersetzung .............................................................. 3Abbildung 3: Eingabe der Compiler-Verzeichnisse ............................................................... 5Abbildung 4: Eingabe eines Arbeits-Verzeichnisses .............................................................. 5Abbildung 5: Auswahl der Projekt-Hardware ........................................................................ 6Abbildung 6: Anlegen eines neuen Hardware-Profils ............................................................ 6Abbildung 8: Memory Map des 68HC912D60A ................................................................... 7Abbildung 9: Auszug aus der Header-Datei des 68HC912D60A ........................................... 8Abbildung 10: Auszug aus der technischen Referenz des 68HC912D60A (Register Map) .... 8Abbildung 11: Oberfläche von EmbeddedGNU .................................................................... 9Abbildung 12: Terminalfenster der OC Console .................................................................. 11Abbildung 13: Schnittstelleneinrichtung der OC-Console .................................................... 11Abbildung 14: Terminaleinstellung der OC Console ........................................................... 12Abbildung 15: Dateitransfereinstellung der OC-Console ..................................................... 12Abbildung 16: Kommunikation mit der Zielhardware ......................................................... 13

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 1

1 Aufgabenstellung (PR) Ziel des Versuchs ist die Erfassung der Ausgangssignale eines 2-achsigen Beschleunigungs-sensors. Da die Ausgangssignale auch in digitaler Form bereitgestellt werden, wird zur Datenerfassung ein Mikrocontroller verwendet. Zur Erzeugung reproduzierbarer Ergebnisse besteht der Versuchsaufbau aus einer Drehscheibe, die Grad genau einstellbar ist. Aus den Messwerten der beiden senkrecht aufeinander stehenden Achsen des auf der Scheibe angebrachten Sensors soll der eingestellte Winkel ermittelt und auf einem 2-zeiligen Display ausgegeben werden.

2 Beschleunigungssensor (PR) In diesem Versuch kommt der Sensor ADXL202E von Analog Devices zum Einsatz. Dieser 2-achsige Sensor erfasst Beschleuni-gungen im Bereich von ±2 g. Der ADXL202E kann sowohl dyna-mische (z. B. Vibration) als auch statische Beschleunigungen (z. B. Gravitation) messen. Die digi-talen Ausgangssignale der beiden sensitiven Achsen sind puls-weitenmoduliert (DCM – Duty Cycle Modulated). Hierbei ist das Verhältnis der Pulsweite zur Periodendauer, der Duty Cycle, proportional zur Beschleunigung. Diese Signalform kann direkt mit einem Zähler eines Mikropro-zessors ausgewertet werden. Die Periodendauer ist durch die Be-schaltung mit einem Widerstand RSET im Bereich von 0,5 ms bis 10 ms einstellbar. Falls ein analoges Ausgangssignal benötigt wird, steht dieses an den Pins XFILT und YFILT zur Verfügung. Auch die Analogsignale sind proportional zur Beschleunigung. Die Bandweite des ADXL202E kann in einem Bereich von 0,01 Hz bis 6 kHz mittels der Kondensatoren CX und CY gewählt werden.Der ADXL202E ist in einem 5 mm x 5 mm x 2 mm LCC-Gehäuse mit 8 Anschlüssen erhältlich. Der ursprüngliche ADXL202 in einem 14-poligen Surface Mount Cerpak (SMD-Bauform) ist abgekündigt und sollte in neueren Designs nicht mehr verwendet werden.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 1: Blockschaltbild des ADXL202

2 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

3 Mikrocontroller und -board

3.1 Mikrocontroller (I)Mikrocontroller (auch µController, µC, MCU) sind Ein-Chip-Computersysteme, bei welchen nahezu sämtliche Komponenten wie z. B. CPU, Programmspeicher und Arbeitsspeicher auf einem einzigen Chip untergebracht sind. Auf modernen Mikrocontrollern finden sich häufig auch speziellere Peripherieblöcke wie EEPROM-Speicher, Timersysteme, Interfaces für verschiedene Schnittstellen (CAN, USB, I²C), Analog-Digital-Wandler sowie digitale Ports. Mikrocontroller werden für die unterschiedlichsten Anwendungen eingesetzt (KFZ-Technik, Computerperipherie, Haushaltsgeräte, uvm.). Die speziellen Geräteanforderungen werden dabei durch eine anwendungsspezifische Software realisiert, die mit den entsprechenden Sensoren und Aktoren agieren kann.Für Hobbyanwendungen, bei der Prototypenentwicklung sowie bei Serien mit geringen Stückzahlen werden Mikrocontroller mit Programmspeicher in Flash- oder EEPROM-Technologie eingesetzt. Für größere Stückzahlen, d.h. im Bereich von mehr als einigen tausend pro Jahr, werden dagegen zumeist maskenprogrammierte Mikrocontroller eingesetzt. Des weiteren gibt es Mikrocontroller, deren Programm in einem EPROM abgelegt wird. Typische Speichergrößen heutiger Mikrocontroller liegen zwischen 1 KB und 1 MB für das Programm und zwischen 32 Bytes und 48 KB für die Daten. Viele Modelle können aber auch wesentlich größeren externen Speicher ansprechen.Mikrocontroller werden meist in Assembler oder in C programmiert. Andere Programmier-sprachen wie BASIC, Pascal oder C++ werden ebenfalls eingesetzt. Assembler bietet hierbei unter bestimmten Umständen den Vorzug, dass die Programme schnell sind und wenig Programmspeicher benötigen. Dies ist deshalb von so großer Bedeutung, da einerseits der Speicherplatz auf einem Mikrocontroller meist sehr eingeschränkt ist und andererseits die CPU nicht so schnell ist wie beispielsweise die in einem PC. Ein Vorteil von C liegt hingegen in der Übersichtlichkeit und Wiederverwendbarkeit des Programmcodes. Funktionen, die immer wieder benutzt werden, wie z.B. die Übertragung von Daten über eine serielle Schnittstelle, müssen so nicht für jedes Projekt neu geschrieben werden sondern lassen sich einfach anpassen. Im Praktikum wird ein 16-Bit Controller aus der HC12-Familie von Freescale (früher: Motorola) mit der Bezeichnung 68HC912D60A verwendet.

Technische Daten des 68HC912D60A:

• 16 MHz Oszillatortakt, 8 MHz Bustakt• 60 KB Flash Speicher• 2 KB RAM• 1 KB EEPROM• 8-Kanal 16-Bit Timer mit Input Capture / Output Compare• 16-Kanal 8-Bit A/D-Wandler• 2-Kanal SCI-Schnittstelle mit RS232 Transceiver• 4-Kanal PWM• Synchrones serielles Interface SPI• COP Watchdog, Clock Monitor• CAN 2.0A/B Businterface mit CAN-Treiber• Resetcontroller zur Betriebsspannungsüberwachung• bis zu 80 freie Ein-/Ausgabeleitungen

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 3

3.2 Mikrocontrollerboard (I)Der Mikrocontroller befindet sich auf einem Controller Modul mit dem Namen Card12, welches u. a. vom Elektronikladen vertrieben wird. Dieses Board beinhaltet neben dem Controller folgende Komponenten:

• 16 MHz Quarzoszillator (ergibt 8 MHz Systemtakt) • Zwei RS232 Schnittstellen mit Transceiver MAX232A • PCA82C250 CAN-Treiber • Spezieller Resetcontroller • Reset Taster erleichtert Entwicklung • Betriebsart einstellbar über Jumper • BDM12 (Background Debug Mode) Anschluss • Alle Anschlüsse des Controllers sind auf zwei doppelreihige Stiftleisten herausgeführt, um

beliebige Erweiterbarkeit zu gewährleisten • 5V Betriebsspannung • Scheckkartenformat 86mm x 54mm

4 Software-Entwicklung Zur Entwicklung der anwendungsspezifischen Software benötigen Sie verschiedene Werkzeuge, die nachfolgend erläutert werden. Es wird das Zusammenspiel dieser Werkzeuge gezeigt und erklärt wie ein C-Programm geschrieben, übersetzt und dann in das Zielsystem übertragen wird.

4.1 GCC - GNU Compiler Collection (I)Bei dem Compiler handelt es sich um einen so genannten Cross-Compiler für die Motorola 68HC11- & 68HC12-Mikrocontroller. Ein Cross-Compiler bezeichnet einen Compiler, der auf einer Computerplattform (z. B. Windows) läuft und Programme für ein Embedded System (hier: 68HC12) erstellen kann. Wir verwenden die GNU Compiler Collection GCC. Diese Sammlung enthält u. a. Compiler für die Programmiersprachen C, C++, Java sowie Fortran und unterliegt den Bedingungen der GPL (GNU General Public License).

4.2 Arbeitsweise eines Compiler (I)Die Übersetzung von C-Programmen besteht aus mehreren Arbeitsschritten. Als Erstes werden die Quelltexte (C-, Assembler- und Header-Dateien) compiliert, d. h. aus ihnen wird ein maschinenlesbarer Binärcode - die Objekt-Dateien - erzeugt. Danach muss der Linker diese Objektdateien mit den Bibliotheken „zusammenbinden“, um einen von der Ziel-hardware ausführbaren Code zu erzeugen. Bei den Freescale-Mikrocontrollern handelt es sich u. a. um das Motorola HEX Format (*.s19).Um die Übersetzung von komplexen C-Programmen zu er-leichtern, werden die notwendigen Arbeitsschritte in einem so genannten makefile hinterlegt. Zur Verarbeitung dieser Makefiles wird das Programm make.exe verwendet. Dabei müssen die in einem makefile beschriebenen Anweisungen einem bestimmten Format genügen, damit es vom Programm make.exe interpretiert werden kann.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 2: Flussdiagramm einer C-Übersetzung

4 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

4.3 Grundstruktur eines C-Programms (PR)Ein C-Programm besteht aus Modulen, die als Funktionen bezeichnet werden. Das einfachste C-Programm besteht aus nur einer Funktion mit dem Namen main(). Diese ist das Haupt-programm, d. h. der Einstiegspunkt bei der Programmausführung und bei normalem Ablauf auch der Punkt, wo das Programm beendet wird.Bei der Übersetzung eines C-Programms wird stets zunächst ein Preprozessor aufgerufen, welcher Makros in Programmtext übersetzt und andere Quelldateien einfügt. Anweisungen für den Preprozessor werden durch ein Doppelkreuz # am Beginn der Zeile gekennzeichnet. Dies sind u. a.:

#include <Filename> : File aus Standard-include-Pfad einfügen

#include "Filename" : File einfügen (absoluter Pfadname oder relativ zum aktuellen Ver-zeichnis)

#define MAKRO Wert : Makros können für die Definition von Konstanten im Programm verwendet werden. Der Preprozessor ersetzt jedes Auftreten des Namens des Makros durch den definierten Wert.

Der dargestellte Programmcode zeigt den prinzipiellen Aufbau eines C-Programms mit Funktionsaufrufen.

1: #include<68HC912D60A.h>

2: int variable1;

3: void funktion1() 4: { hier steht der Programmcode von funktion1; 5: }

6: main() 7: { 8: int variable2; hier steht der Programmcode der main-funktion; 9: funktion1();10: }

Zeile1: Der include-Befehl fügt aus dem Include-Pfad die Beschreibung der Standard-

Bibliothek für Ein- und Ausgabe ein.2: Definition einer Variablen (global).3: Definition einer Funktion mit dem Namen funktion1, welche keine Übergabe-

parameter empfängt.6: Definition einer Funktion mit dem Namen main(), welche keine Übergabepara-

meter empfängt und als letzte Funktion am Programmende steht.Da kein Typ angegeben ist, hat die Funktion implizit den Wert int, liefert jedoch keinen Wert an das Betriebssystem zurück. Um einen Wert an das aufrufende Programm (in diesem Falle das Betriebssystem) zurückzugeben, müsste man den Befehl return Wert bzw. return(Wert) einfügen.

8: Definition einer Variablen (lokal).9: Aufruf einer Funktion mit dem Namen funktion1

4, 5, 7, 10: { } Klammerung von Anweisungsblöcken Befehlszeilen sind jeweils mit einem Semikolon zu beenden!

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 5

4.4 IDE - Embedded GNUAls integrierte Entwicklungsumgebung kommt das Programm „Embedded GNU“ von Eric Engler zum Einsatz, welches einen Editor mit Syntax highlighting, eine Projektverwaltung und weitere Zusatzfunktionen beinhaltet. In dieses Programm müssen der eigentliche C-Compiler sowie die spezifischen Daten des Zielsystems eingebunden werden.

4.4.1 Einbinden des C-Compilers (I)Der Compiler wird unter dem Menüpunkt Options>Environment options eingebunden. Auf der Registerkarte Directories wird in dem Feld gcc bin directory der Pfad eingetragen, den Sie während der grafischen Installation des Compilers als Speicherort angegeben haben (z.B. c:\usr). Die Felder für die Pfade der Programme make.exe, rm.exe, SrectCvt.exe und binload.exe wurden bei der Installation von Embedded GNU automatisch ausgefüllt. Zuletzt muss noch angegeben werden, wo nach den „include files“ (header files: *.h) und den „library files“ (*.a) des Compilers gesucht werden soll. Es besteht weiterhin die Möglichkeit auf der Registerkarte Preferences ein Standardverzeichnis anzugeben, in dem alle erzeugten Dateien abgelegt werden.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 3: Eingabe der Compiler-Verzeichnisse Abbildung 4: Eingabe eines Arbeits-Verzeichnisses

6 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

4.4.2 Spezifische Daten des Zielsystems (I)Danach werden die Daten des Zielprozessors eingestellt. Unter dem Menüpunkt Options>Project options wird im Bereich Hardware Profile aus dem Listenfeld der Prozessor 68HC912D60(A) ausgewählt. Ist ihre Zielhardware in dieser Liste nicht aufgeführt, müssen Sie über den Button Create New Profile ein Profil für Ihren Mikrocontroller anlegen.

Dieses Hardware-Profil beinhaltet die Speicherorganisation des Mikrocontrollers sowie im Feld Linker Search Directory die Pfadangabe des Linker-Verzeichnisses. Die Aufteilung des Mikrocontrollerspeichers sowie die Adresslagen der verschiedenen Speicherbereiche finden Sie in der technischen Referenz des 68HC912D60A unter dem Stichwort „Memory Map“. Zusätzlich zu der nachfolgend aufgelisteten Speicherorganisation muss noch die Adresslage der Interruptvektoren (am Ende des oberen Flash EEPROM) und des Stackpointers (am Ende des RAM) eingetragen werden.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 5: Auswahl der Projekt-Hardware

Abbildung 6: Anlegen eines neuen Hardware-Profils

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 7

Der 68HC912D60A verfügt über folgende Speicherbereiche:

● Spezielle Funktions Register (SFR) 512 Byte $0000 - $01FF Länge: $0200

● RAM (flüchtiger Speicher) 2 KB $0000 - $07FF Länge: $0800

● EEPROM (nicht flüchtiger Speicher) 1 KB $0C00 - $0FFF Länge: $0400

● (unteres) Flash EEPROM (nicht flüchtiger Speicher) 28 KB $1000 - $7FFF Länge: $7000

● (oberes) Flash EEPROM (nicht flüchtiger Speicher) 32 KB $8000 - $FFFF Länge: $8000

Zur Erinnerung: 1 KB (EEPROM) = 1024(10) = 0000 0100 0000 0000(2) = 0400(16)

215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20

32768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1

0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0

0 4 0 0

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 8: Memory Map des 68HC912D60A

8 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

Die Speziellen Funktions Register (SFR) sind 8 Bit-Register, die der Steuerung des Mikro-controllers sowie seiner internen Peripherie wie Timer, A/D-Wandler, Schnittstellen und Ports dienen. Diese Register belegen beim 68HC912D60A die ersten 512 Byte des Speichers. Die Adressen der Steuerregister können der Technischen Referenz des Mikrocontrollers (S.62 ff) entnommen werden. Die Steuerung einer Komponente erfolgt u. a. durch das Beschreiben oder Auslesen der entsprechenden Steuerregister. Hierbei ist der Wert als Hexadezimal-Zahl anzugeben (z. B. PORTH = 0x40). Um die Programmierung zu vereinfachen, gibt es für jeden Mikrocontroller eine Header-Datei (68HC912D60A.h), in der durch Makros eine Zuordnung der Adresse eines Registers zu einem Namen vorgenommen wird (vgl. Grundstruktur eines C-Programms (PR), Seite 4).

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

#ifndef __912D60_H#define __912D60_H 1

#define _IO_BASE 0#define _BYTE(addr) *(unsigned char volatile *)(_IO_BASE + addr)#define _WORD(addr) *(unsigned int volatile *)(_IO_BASE + addr)

#define PORTA _BYTE(0x00) /* port A */#define PORTB _BYTE(0x01) /* port B */#define DDRA _BYTE(0x02) /* data direction port A */#define DDRB _BYTE(0x03) /* data direction port B */#define PORTE _BYTE(0x08) /* port E */#define DDRE _BYTE(0x09) /* data direction port E */#define PEAR _BYTE(0x0a) /* port E assignment register */#define MODE _BYTE(0x0b) /* mode register */#define PUCR _BYTE(0x0c) /* pull-up control register */#define RDRIV _BYTE(0x0d) /* reduced drive of I/O lines */#define INITRM _BYTE(0x10) /* RAM mapping register */#define INITRG _BYTE(0x11) /* IO mapping register */#define INITEE _BYTE(0x12) /* EEPROM mapping register */#define MISC _BYTE(0x13) /* mapping control register */#define RTICTL _BYTE(0x14) /* real time interrupt control */#define RTIFLG _BYTE(0x15) /* real time interrupt flag */#define COPCTL _BYTE(0x16) /* COP control register */#define COPRST _BYTE(0x17) /* COP arm/reset */#define ITST0 _BYTE(0x18) /* interrupt test 0 */#define ITST1 _BYTE(0x19) /* interrupt test 1 */#define ITST2 _BYTE(0x1a) /* interrupt test 2 */#define ITST3 _BYTE(0x1b) /* interrupt test 3 */#define INTCR _BYTE(0x1e) /* interrupt control */#define HPRIO _BYTE(0x1f) /* highest priority */#define BRKCT0 _BYTE(0x20) /* Breakpoint Control 0 */

Abbildung 9: Auszug aus der Header-Datei des 68HC912D60A

Abbildung 10: Auszug aus der technischen Referenz des 68HC912D60A (Register Map)

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 9

4.4.3 Oberfläche der Entwicklungsumgebung (PR)Die Entwicklungsumgebung ist in drei Bereiche aufgeteilt:

Der Bereich links oben ist das Fenster der Projektverwaltung. Hier wird eine Liste der zum Projekt gehörenden Quelltexte (C- und Assembler-Dateien) angezeigt. Auch das Hinzufügen und Entfernen von Dateien zu einem Projekt ist an dieser Stelle möglich.Das obere rechte Fenster ist der Editor, in dem die Quelltexte erstellt und bearbeitet werden können. Mit dem Editor ist es möglich, C-Sprachelemente farbig hervorzuheben und Lesezeichen im Quelltext zu setzen.Der untere Bereich hat mehrere Funktionen. Die erste Registerkarte Compiler gibt Auskunft über den Status der Kompilierung (z. B. Warnungen und Fehler). In dem Tab Make log wird jeder einzelne Schritt des Make-Prozesses dokumentiert. Der rechte Reiter Terminal beinhaltet einen Terminal-Emulator zur Kommunikation mit der Zielhardware (z. B. Übertragung und Start eines Programms). Allerdings ist dieser Emulator inkompatibel zu dem im Prozessor gespeicherten Monitorprogramm „Twin Peeks“ und kann deshalb im Praktikum nicht benutzt werden.Alle Bereiche sind in der Größe veränderbar. Um eine maximale Darstellung des Editors zu erhalten, kann das Projektfenster im Menü View geschlossen werden. Alle Anwendungs-operationen sind über die Menüs erreichbar. Die wichtigsten Operationen sind zusätzlich noch als Buttons verfügbar. Im Menü Options>Environment options kann die Entwicklungs-umgebung in weiten Bereichen den eigenen Vorstellungen entsprechend angepasst werden.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 11: Oberfläche von EmbeddedGNU

Projekt-verwaltung

Statusmeldungen

Editor

10 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

4.4.4 Benutzung der Projektverwaltung (PR)Neben dem Hinzufügen und/oder Entfernen von Dateien ermöglicht die Projektverwaltung die Auswahl der Zielhardware, die Definition der Kompilierungsoptionen sowie die Erstellung und Bearbeitung der entsprechenden Memory Map und des Makefiles. Durch die Projektverwaltung ist es möglich, das Programm in einzelne Quelltext-Module aufzuteilen. Alle Einstellungen werden in dem Projekt gespeichert. Dadurch besteht die Möglichkeit Projekte mit unter-schiedlicher Zielhardware zu erzeugen.Um ein neues Projekt anzulegen, wählen Sie File>New Project (Button ). Anschließend geben Sie in dem Fenster Open file einen Dateinamen für das Projekt ein (es ist der Pfad voreingestellt, der in den Preferences als Default Directory angegeben wurde) und speichern diesen. Nachdem sich dann das Fenster Project options geöffnet hat, wählen Sie im Bereich Hardware Profile den Prozessor ihrer Zielhardware aus dem Listenfeld aus und bestätigen mit OK. Der gewählte Dateiname erscheint daraufhin in dem Projektverwaltungsfenster. Über das Menü Project können jetzt Quelltext-Dateien hinzugefügt oder entfernt werden (Buttons ). Alternativ kann auch mit der Maus auf den Projektnamen gezeigt und die Dateien über das Kontextmenü (rechte Maustaste) verwaltet werden.Ist Ihr Projekt vollständig, können Sie mit dem Erzeugen des von der Zielhardware ausführbaren Codes (Motorola HEX Format: *.s19) beginnen. Führen Sie hierzu im Menü Build den Befehl Make (Button ) aus. Ihre Projekt-Dateien werden nun kompiliert, gelinkt und die s19-Datei erzeugt.Das Schließen eines Projektes ist mit File>Close project möglich.

Zur Durchführung des Versuchs ist das Projekt mit Namen Sensorik.prj zu verwenden. Dieses beinhaltet alle relevanten Einstellungen und Dateien wie Zielhardware, Kompilierungsoptionen, Memory Map und Makefile. Um ein bestehendes Projekt zu öffnen, wählen Sie File>Open project or file (Button ). In dem sich öffnenden Fenster Open file kann die Projektdatei Sensorik.prj geöffnet werden. Das Projekt besteht aus einer Quelltext-Datei mit der Bezeichnung Programmdatei.c, in der der zu programmierende Code der jeweiligen Aufgabe als separates Unterprogramm zu schreiben ist.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 11

4.5 Terminal- und Monitorprogramm – OC Console, TwinPeeksUm den erzeugten Programmcode in den Mikrocontroller zu übertragen (Download), wurde für das HC12-Controller-Modul ein spezielles Monitorprogramm entworfen - TwinPEEKs. Es ermöglicht das Programmieren und Löschen des D60-internen Flash-Speichers auf sehr einfache und komfortable Art. Das bedeutet: Ob RAM, EEPROM oder Flash-Speicher - Sie können alle Speicherarten programmieren und Ihre Anwenderprogramme ohne zusätzliche (Hardware-)

Tools laden! Das Monitorpro-gramm ist im schreibgeschützten Boot-Block-Bereich des Flash-Speichers untergebracht, es kann daher nicht versehentlich gelöscht werden. Der Monitor befindet bei jedem ausgelieferten Card12-Modul schon einsatzbereit im Controller. Zum Download des Programmcodes wird nur noch ein Terminalprogramm benötigt. Ein speziell für die Kommu-nikation zwischen der RS232-Schnittstelle und den Motorola Mikrocontrollern entwickeltes Terminalprogramm ist die OC-Console.

4.5.1 Einstellungen (I)Nach dem ersten Start des Programms müssen noch wesentliche Einstellungen für die Kommunikation zwischen Terminalprogramm und Mikrocontroller vorgenommen werden. Als erstes muss die Schnittstelle, über die die Kommunikation erfolgen soll, ausgewählt und parametrisiert werden. Dazu klicken Sie auf den Button Einstellungen und wählen die

Registerkarte Interface. Im Bereich Schnitt-stelle markieren Sie die entsprechende PC-Schnittstelle, an der das Controllerboard ange-schlossen ist, setzen die Baudrate auf 19200, stellen Parität keine ein und wählen 8 Daten-bits und 1 Stopbit aus. Im Reiter Terminal sollte als Emulation ASCII eingestellt sein. Zuletzt markieren Sie im Register Dateitransfer im Bereich Synchronisation den Punkt Quittungszeichen erwarten und geben #42 als Quittung an.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 12: Terminalfenster der OC Console

Abbildung 13: Schnittstelleneinrichtung der OC- Console

12 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

4.5.2 Befehle des Monitorprogramms (PR)

DUMP: D[adr1[adr2]] zeigt Speicherinhalte ab Adresse1 (adr1) bis Adresse2 (adr2)(Adresse2 muss nicht angegeben werden)

EDIT: E[adr[byte]] schreibt auf Speicherbereiche ab der angegebenen Adressewird „byte“ angegeben, so wird ein Byte ab der Adresse geschrieben

FILL: F adr1 adr2 byte füllt den Speicherbereich von Adresse1 bis Adresse2 mit einer Variablen

GOTO: G[adr] Sprungbefehl zu einer Programmstartadresse

HELP: H zeigt Befehlsübersicht ( Hilfedatei )

LOAD: L lädt ein Programm im S-Record Format in den Mikrocontroller

MOVE: M adr1 adr2 adr3 kopiert der Speicherinhalte zwischen Adresse1 und Adresse2 zu Adresse3

Bulk: X[array] Löscht den Flash Speicher (Jedoch nicht das Monitorprogramm)

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 14: Terminaleinstellung der OC Console Abbildung 15: Dateitransfereinstellung der OC-Console

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 13

4.5.3 Löschen, Übertragen und Starten des Programms (PR)Wenn ein neues Programm in den Prozessor geladen werden soll, muss zunächst der alte Code durch den Befehl X und Drücken der Enter-Taste gelöscht werden. Das endgültigen Löschen müssen Sie nochmal mit Y be-stätigen. Anschließend geben Sie den Befehl L ein und bestätigen die Eingabe mit Enter. Es erscheint die Meldung Loading. Um die s19-Datei, die übertragen werden soll auszuwählen, drücken Sie den Button Download (Alt+D). Wählen Sie im erschei-nenden Dialogfenster die ent-sprechende Datei aus und schicken Sie diese mit Senden ab. Die Übertragung des Code wird durch Sterne angezeigt. Nachdem der Downloadvorgang beendet ist, kann das Programm durch den Befehl g1000 gestartet werden.

5 Weiterführende Informationen (PR) • (PR) Wie bereits beim Beschleunigungssensor erwähnt wurde, soll das DCM-Signal mit

dem Timer-/Counter-Modul des Mikrocontrollers erfasst werden. Deshalb sollten Ihnen die grundlegenden Funktionen sowie die beteiligten Register bekannt sein. Um sich einen Überblick zu verschaffen, gibt es eine sehr gute Beschreibung.

Timerfunktionen des HC12: Das Dokument wird bei der Versuchsdurchführung zur Verfügung gestellt.

• (PR) Die Programmierung des Mikrocontrollers erfolgt in C. Die Hochsprache C ist der Ihnen bekannten Sprache Java sehr ähnlich. Sollten Sie in diesem Bereich (Variablen, Zuweisungen, Operatoren, Schleifen, etc.) Defizite haben, so sind die folgenden Dokumente des Lemps-Projektes, die alle wesentlichen Elemente erläutern, zu empfehlen:

Arbeitsunterlage für die Programmierung in C

http://cds.unibe.ch/teaching/ss03/ra/uebungen/lemps12/doc/L12_Programmierung_C.pdf

Programmierung in C:Das muss ich wissen...

http://cds.unibe.ch/teaching/ss03/ra/uebungen/lemps12/doc/l12_c_wissen.pdf

• (I) Datenblätter

ADXL 202E: http://www.analog.com/static/imported-files/data_sheets/ADXL202E.pdf

68HC912D60A: http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC68HC912D60A.pdf

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Abbildung 16: Kommunikation mit der Zielhardware

14 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

6 Protokoll-Vorgaben (PR) Diese Layout- und Inhaltsvorgaben für ein Protokoll im SR1-Praktikum wurden vom Laborleiter Prof. Dr. rer. nat. Dipl.-Phys. Johannes Zacheja als verbindlich einzuhalten vorgegeben.Die Betreuer des SR1-Praktikums.

Die Abgabe des Protokolls erfolgt innerhalb von 2 Wochen nach der Versuchsdurchführung!

Layoutvorlage (Empfehlung):

• Die Layoutvorlage (äußere Gestaltung) ist nur als Empfehlung gedacht.• Es kann jedes beliebige Textverarbeitungsprogramm verwendet werden.

Protokoll-Stil (Pflicht):

• Das Protokoll wird im Präsens als Ergebnisprotokoll verfasst.• Der Text ist in ganzen, kurzen und vollständigen Sätzen zu formulieren.• Das Protokoll ist auf Rechtschreibungs-, Grammatik- und Zeichensetzungsfehler zu

prüfen.• Grafiken, Zahlenwerte und Informationen aus Sekundärliteratur sind mit ent-

sprechenden Literaturverweisen zu versehen.

Protokoll-Textsatz (Pflicht):

• Zu verwendende Schriftgröße = 12 pt• Zeilenabstand = 1,5-zeilig• Linker/rechter Seitenrand: = 2,5 cm (Abheften und Korrigieren)• Vermeiden von einzelnen Zeilen am Seitenende und einzelne Zeilen am Seitenanfang!• Alle Grafiken und Tabellen sind mit einer nummerierten Bildunterschrift zu versehen

(Abbildung 1: ..... , Tabelle 1: ..... )• Die Gliederungspunkte 1, 4 und 5 sind Pflicht und sind optisch vom restlichen Text

abzuheben. Die weitere Gliederung bzw. Untergliederung kann je nach Modul geschehen.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 15

Protokoll-Ziele:

• Anhand des Protokolls und der angegebenen Literatur muss der durchgeführte Versuch vollständig rekonstruierbar sein.

• Das Protokoll soll die Informationen und Ergebnisse aus dem Praktikum in knapper und verständlicher Weise ordnen, strukturieren und zusammenfassen.

• Die Verwendung von Sekundärliteratur ist ausdrücklich erwünscht.

Literatur-Verzeichnis (Pflicht):

• Literatur wissenschaftliches Zitieren (Literatur)o M. R. Theisen, Wissenschaftliches Arbeiten, 10. ed. München: Verlag Vahlen, 2000.o viele Internetressourcen

• In den Naturwissenschaften werden Literaturverweise im Text üblicherweise in recht-eckige Klammern gesetzt. Die Zählung erfolgt dabei in arabischen Zahlen.

• Die verwendete Literatur wird hinten im Literaturverzeichnis angefügt.• Im Text sind die Literaturverweise in rechteckigen Klammern anzubringen.• Das Format der Einträge im Literaturverzeichnis kann verschieden durchgeführt werden,

muss aber für alle Einträge einheitlich sein (Beispiele siehe Hinten)• Es gibt eine Vielzahl an Programmen, die bei der korrekten Formatierung des

Literaturverzeichnisses helfen und unterschiedliche Formatierungsvorlagen zur Verfügung stellen.

o BiblioExpress (www.biblioscape.com) (Freeware, Win)o Papyrus (http://www.researchsoftwaredesign.com/) (Freeware, DOS)o Pybibliographer (im Netz suchen) (Freeware, Linux, TEX)o BibTexMng (http://www.imamod.ru/~vab/bibtexmng/) (Freeware, Win, TEX)

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

16 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

SR1-Praktikum(SS 20xx)

Gruppe _

Teilversuch: _ Betreuer: _Datum: tt.mm.jjjjAbgabedatum: tt.mm.jjjj

Name1, Vorname1; E-mail1Name2, Vorname2; E-mail2Name3, Vorname3; E-mail3(Den Ersteller des Protokolls bitte unterstreichen!)

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 17

Zielstellung mit Begründung (Pflicht)

• Welche Zielstellung wird verfolgt und wofür werden die erzielten Ergebnisse in späteren Modulen Teilversuchen gebraucht?

• Was ist bereits an Theorie bekannt (Vorlesungsmitschrift und Sekundärliteratur)?• Darstellung aller für die Experimentinterpretation nötigen Formeln und Informationen

(mit Literaturverweisen).

Experimentelle Durchführung

• Was wurde gemacht? • Ggf. Prinzip des Versuchsaufbaus (Skizze).• Verwendete Komponenten (z.B. Messgeräte) und Materialien mit

Namen/Nummerierung darstellen.

Ergebnisse und Diskussion

• Tabellen, graphische Auswertungen, Text zu den Versucheno Tabellen: (Einheiten, Beschriftung, etc.)o Diagramme: (Ursprungsdaten, Achsenbeschriftung, Legende)

• Genaue Beschreibung der Versuchsergebnisse in Worten mit Verweisen zu Tabellen und Grafiken.

• DER WICHTIGSTE PUNKT: Schriftliche Interpretation der Ergebnisse (Hinterfragen und Bewerten der Ergebnisse).

• Begründung von Abweichungen zwischen Theorie und Praxis, sowie Darstellung möglicher Fehlerquellen.

Fazit (Pflicht)

Verwendete Literatur (Pflicht)

Beispiele nach IEEE-Formatierung:

Bücher:[1] W. Menz, J. Mohr, and O. Paul, Microsystem Technology. Weinheim; New York: WILEY-

VCH, 2001.

[2] SZE, Semiconductor Sensors; John Wiley Verlag; ISBN 0-471-54609-7

Journal-Paper:[3] H. Cao, Z. N. Yu, J. Wang, J. O. Tegenfeldt, R. H. Austin, E. Chen, W. Wu, and S. Y.

Chou, "Fabrication of 10 nm enclosed nanofluidic channels," Applied Physics Letters, vol. 81, no. 1, pp. 174-176, July 2002.

[4] J. Han and H. G. Craighead, "Separation of long DNA molecules in a microfabricated entropic trap array," Science, vol. 288, no. 5468, pp. 1026-1029, May 2000.

[5] J. Zacheja, T. Bach, B. Clasbrummel; “Design and Characterisation of a new External Fixator System for Application of Micromovements in Fracture Repair Systems”Biomedical Engineering; B45 (E1) 2000

[6] J. Zacheja, T. Bach, “A Telemetric Measurement System for Flow Diagnostic after Bypass Surgery“, Biomedical Engineering, B47 (E1) 2002.

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

18 Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4)

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach

Vorbereitungsunterlagen zum a-Sensor-Versuch des SR1-Praktikums im SS 2015 (V3.4) 19

Hochschule Bochum

IMBSInstitut für mikrotechnische Bauelemente und Systeme

Dipl.-Ing.Thorsten Bach