Embedded Systems 1
06.12.2016
Embedded Systems I Themen am 06.12.16 (ES1_16_V9): Software-Interrupts, Serielle Schnittstellen, C-Programme, Betriebssysteme für die „kleinen“ Atmels Beachten Sie bitte die zusätzlichen Infos auf Proki und Tafel!
© Ulrich Schaarschmidt FH Düsseldorf, WS 2016/17
Literaturhinweise
(unbewertete Reihenfolge!)
Conrads, Dieter: Datenkommunikation (Verfahren, Netze, Dienste) 3. Aufl., 1996, Friedr. Vieweg & Sohn Verlagsgesellschaft mbH Bermbach, Rainer: Embedded Controller 2001, Carl Hanser Verlag München Wien Schmitt, FJ; von Wendorff, WC; Westerholz, K: Embedded-Control-Architekturen 1999, Carl Hanser Verlag München Wien Beierlein, Thomas; Hagenbruch, Olaf: Taschenbuch Mikroprozessortechnik 2001, Fachbuchverlag Leipzig im Carl Hanser Verlag München Wien 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
2
1
Embedded Systems 1
06.12.2016
Literaturhinweise
(unbewertete Reihenfolge!)
Stein, Erich: Taschenbuch Rechnernetze und Internet 2. Aufl., 2004, Fachbuchverlag Leipzig im Carl Hanser Verlag München Schneider, Uwe; Werner, Dieter: Taschenbuch der Informatik 4. Aufl., 2001, Fachbuchverlag Leipzig im Carl Hanser Verlag München Floyd, Thomas L.: Digital Fundamentals 9.ed., 2006, Pearson/Prentice Hall 06.12.2016
HS-D U.G. Schaarschmidt
Literaturhinweise
3
(unbewertete Reihenfolge!)
Reinhold Orglmeister: http://www.emsp.tu-berlin.de/lehre/ProjektElektronik/tools/AVR_JTAG : http://www.saleae.com/logic/features/?q=i5&gclid=CM2Xx5Hs_6ECFc KT3wodXCOKFQ gadgetpool: http://www.gadgetpool.de/nuke/modules.php?name=News&file=ar ticle&sid=30 JTAG –Emulator: Zur Bewältigung immer aufwendigerer Softwareprojekte bestand der Wunsch nach einem JTAGEmulator für die Fehlersuche. Auf der Webseite von Frank Erdrich (www.uc-projects.com) ist ein DIY JTAG für Atmel Contoller vorgestellt, der für den Einsatz im Labor angepasst wurde. 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
4
2
Embedded Systems 1
06.12.2016
Serielle Schnittstellen Verfahren: Asynchrone Verfahren Synchrone Verfahren
Betriebsarten: Vollduplexbetrieb Halbduplexbetrieb Simplexbetrieb
Datenübertragungsverfahren: Basisbandübertragung Breitbandübertragung 06.12.2016
HS-D U.G. Schaarschmidt
5
Asynchrone Verfahren Die Bezeichnung Asynchronverfahren bezieht sich auf die zeitlich willkürliche Übertragung von Zeichenfolgen. Gleichlauf von Sender und Empfänger gibt es nur für eine begrenzte Schrittzahl. Geringer Gerätetechnischer Aufwand (intelligente Kommunikationsmodule on Chip); Nachteil: Uneffektiv bei der Übertragung größerer Datenmengen (Zeitaufwand für Start-StoppSchritte); 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
6
3
Embedded Systems 1
06.12.2016
Asynchrone Byteübertragung
Gadre & Conrads] 06.12.2016
HS-D U.G. Schaarschmidt
7
Asynchrone Byteübertragung
Gadre & Conrads] 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
8
4
Embedded Systems 1
06.12.2016
Synchrone Verfahren Softwarebasis Bei Datenübertragung nach dem Synchronverfahren werden alle Zeichenschritte unmittelbar nacheinander übertragen. Es gibt keine Start- und Stopp-Schritte. Zeitrastergleichlauf von Sender und Empfänger wird während einer ganzen Zeichenfolge aufrechterhalten. Absenden eines speziellen Signals vom Sender zum Empfänger, das den Schritttaktgebergleichlauf herstellt; Synchronisierzeichen, die bei auftretenden Lücken in die Sendefolge eingeschoben werden (Bit-Stuffing); Hohe Datenübertragungsraten sind möglich; Stetiger Zeichenfluss; 06.12.2016
HS-D U.G. Schaarschmidt
9
Synchrone Verfahren Softwarebasis Es werden (größere) Rahmen mit Daten übertragen. Zu Beginn des Rahmens synchronisieren Synchronisationsbits den Empfänger auf den Sender. Die Synchronisation wird während der Übertragung aufrecht erhalten. Damit die Taktinformation nicht verloren geht (z.B. bei hohem Gleichspannungsanteil auf d. Leitung), muss die Codierung der Daten z.B. mittels NRZCode (Non-Return to Zero) sicher gestellt werden.
06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
10
5
Embedded Systems 1
06.12.2016
Synchrone Verfahren auf Softwarebasis - Takterhalt
[Stein, 2004] 06.12.2016
HS-D U.G. Schaarschmidt
11
Synchrone Verfahren Hardwarebasis Die Taktgeber von Sender und Empfänger müssen miteinander synchronisiert werden. Hierfür wird bei einigen Übertragungsverfahren eine „extra“ Taktleitung (zusätzlich) zu der/den Datenleitungen eingerichtet. Auf der Datenleitung werden die Daten mit dem (gleichmäßigen) Takt auf der Taktleitung synchronisiert übertragen.
06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
12
6
Embedded Systems 1
06.12.2016
Kommunikation Simplex, Halb-Duplex, Semi-Duplex, Voll-Duplex, Full-Duplex,
06.12.2016
HS-D U.G. Schaarschmidt
13
Synchrone Datenübertragung
[Floyd, 2006] 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
14
7
Embedded Systems 1
06.12.2016
Amplitudenmodulation ASK Amplitude Shift Keying
[Conrads] 06.12.2016
HS-D U.G. Schaarschmidt
15
Frequenzmodulation FSK Frequency Shift Keying
[Conrads] 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
16
8
Embedded Systems 1
06.12.2016
Phasenmodulation PSK Phase Shift Keying
[Conrads] 06.12.2016
HS-D U.G. Schaarschmidt
17
Anwendung serieller Verfahren RS – 232, V.24, RS – 422 / 423, RS – 485 SPI, Microwire, ISP, IIC – Bus, I2C-Bus, TWI – Bus, SM-Bus, USI (Atmel-spezifisch)
06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
18
9
Embedded Systems 1
06.12.2016
Standardisierte serielle Interfaces
06.12.2016
HS-D U.G. Schaarschmidt
19
RS – 232 Verbindung zweier AVR (bei SW-Handshake)
[Gadre] 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
20
10
Embedded Systems 1
06.12.2016
RS – 232 Verbindung zweier AVR (bei HW-Handshake
06.12.2016
HS-D U.G. Schaarschmidt
21
RS – 422A Verbindung zweier AVR
[Gadre] 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
22
11
Embedded Systems 1
06.12.2016
RS – 422 Verbindung zweier AVR - Oszillogramm
[Gadre] 06.12.2016
HS-D U.G. Schaarschmidt
23
RS – 422A Verbindung Symmetrische Schnittstelle (CCITT V.11); Datenraten bis 10 Mbit/s bei bis zu 13m; Datenraten von 100kBit/s bei Leitungslängen von max. 1300m möglich; Mit speziellen Treiberbausteinen bis zu 10 Empfänger an einem Sender möglich;
06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
24
12
Embedded Systems 1
06.12.2016
RS – 485A – Verbindung mehrerer Einheiten
[Gadre] 06.12.2016
HS-D U.G. Schaarschmidt
25
RS – 485A – Verbindung mehrerer Einheiten Wird multplex (mehrere Sender und Empfänger an einem gemeinsamen Leitungspaar) betrieben (Erweiterung der RS 422A); Je nach verwendeter Bausteinfamilie können 32, 128 oder 256 Teilnehmer verbunden werden; Symmetrische Signale mit bis zu 10 Mbit/s; Bis zu 1200m Übertragungsentfernung; Differenzspannung > 200mV; -7 ...+12 V Gleichtaktspannung auf der Leitung zulässig; 120 Ohm Leitungsimpedanz (verdrillte 2-Draht-Leitung); 60 Ohm Lastwiderstand; Eingangsimpedanz der Empfänger > 12kOhm; Ausgangskurzschlußstrom max 150mA gegen Masse, max 250mA gegen -7 ... 12V; [TB Mikroprozessortechnik] 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
26
13
Embedded Systems 1
06.12.2016
SPI - Bus
[Gadre] 06.12.2016
HS-D U.G. Schaarschmidt
27
IIC – Bus, TWI – Bus, I²C-Bus
[Gadre] 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
28
14
Embedded Systems 1
06.12.2016
IIC – Bus, TWI – Bus, I²C-Bus
[Gadre] 06.12.2016
HS-D U.G. Schaarschmidt
29
JTAG (USB Anschluss auf Basis des FTDI FT2232) USB to JTAG Interface von Hubert Högl, Schaltplan USB JTAG Interface für usbprog und OpenOCD von Benedikt Sauter (Zurzeit gibt es Bausätze für 22 EUR. Der Adapter ist ein Universaladapter der mit verschiedenen Firmwares zu verschiedenen Geräte werden kann. Pläne, Quelltexte usw... Open Source!!!) Amontec JTAGkey, JTAGkey-Tiny EKK-LM3S811 von LMI. Auf dem Testboard ist ein "on-board" JTAGAdapter, der zu Ansteuerung des LM3S811 auf dem Board genutzt wird, aber auch an externe Controller angeschlossen werden kann. (Alle LMI Testboards verfügen über den JTAG Ein- und Ausgang.) ARM-USB-OCD von Olimex Xverve Signalyzer Tool 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
30
15
Embedded Systems 1
06.12.2016
JTAG-ICE MkII (Pinout des Steckers 20-pol)
Auf Evaluation-Boards verschiedener Hersteller (z. B. Atmel, IAR, Keil, Olimex) ist die JTAGSchnittstelle über einen 20-poligen Wannenstecker (2*10, Raster 2,54mm) herausgeführt. 1 Vcc 2 NC 3 nTRST 4 GND 5 TDI 6 GND 7 TMS 8 GND 9 TCK 10 GND 11 GND 12 GND 13 TDO 14 GND 15 NRESET/nSRST 16 GND 17 NC 18 GND 19 NC 20 GND Daneben existiert noch eine weniger gebräuchliche aber dokumentierte Variante mit 14 Polen (2*7). Bei fertigen Geräten, für die keine Schaltpläne vorliegen, muss man sich die herstellerspezifische Anschlussbelegung anhand des Datenblatts des verwendeten Controllers und mittels Messgerät selbst ermitteln.
06.12.2016
HS-D U.G. Schaarschmidt
31
Programmentwicklung und Debugging Übliche Verfahren: Simulation des Programmcodes auf einem Host-PC; „Crash and burn“ (Neuprogrammierung, Änderung, Fehlerbeseitigung, bis es funzt); Debugging mithilfe eines Target-Monitors; In-Circuit-Emulation; 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
32
16
Embedded Systems 1
06.12.2016
Warum ein BS auf einer MCU? Eigentlich z.T. aus den gleichen Gründen wie auf einer Workstation. Treiber für die On-Chip-Peripherie müssen nicht von jedem Programmierer neu entwickelt werden. Es gibt ein API (Application Programmer‘s Interface), das die Programmierung abstrahiert. Ein Realzeit-Kernel vereinfacht die Einhaltung der zeitlichen Restriktionen für die „Modulentwickler“. 06.12.2016
HS-D U.G. Schaarschmidt
33
Multitasking vs Multiuser Präemptives oder kooperatives (nichtpräemptives) Multitasking? Timer-Interruptsystem ; Unterschiedliche Prioritäten der Betriebssystem-Module (Systemkern – Kernel) und der Nutzer-Tasks (unterprivilegierte Prozesse); 06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
34
17
Embedded Systems 1
06.12.2016
COrnell Miniature ATmel Operating System (COMATOS) Realzeit Betriebssystem (RTOS – Real Time Operating System); 2 Versionen (Assembler, C) Atmel AT90S8515 (8k Flash, 512 Byte SRAM, 512 Byte EEPROM, 1*8Bit Timer, 1*16 Bit Timer, jeweils mit programmierbarem Vorteiler [Prescaler], Watchdog mit eigenem On-Chip-Oszillator) 06.12.2016
HS-D U.G. Schaarschmidt
35
9. Übungsaufgabe Comatos – what the hell is it? Welche Art von BS? Wieviele Tasks sind möglich? Welche grundlegenden Funktionen, die uns als Programmierer helfen, erkennen Sie?
06.12.2016
HS Düsseldorf
(c) U.Schaarschmidt
HS-D U.G. Schaarschmidt
36
18