157
04EI Embedded Systems SS2018 Prof. Dr. A. Irber Fakultät Elektrotechnik und Informationstechnik

Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Embedded Systems SS2018

Prof. Dr. A. Irber

Fakultät Elektrotechnik und Informationstechnik

Page 2: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Was ist ein Embedded System?

� Unter Embedded Systems (ES) versteht man applikationsspezifische

Mikrocomputersystemen (Hardware + Software), die in Geräten, Anlagen

und/oder Maschinen eingebettet sind, um diese zu steuern.

� Meist hohes Maß an Parallelverarbeitung und kurze Reaktionszeiten auf

externe Ereignisse notwendig ( Realzeit-Bedingungen )

� Oft werden Multitasking Realtime Betriebssysteme (RTOS) eingesetzt

25.02.16ES - Version 2.0 Seite 2

Page 3: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Embedded Systems

27.09.08ES - Version 2.0 Seite 3

� Embedded Systems enthalten Rechnereinheiten, die u.a. aus

• Mikrocontrollern

• Mikroprozessoren

• Digital Signal Prozessoren (DSP’s )

bestehen

Page 4: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

27.09.08ES - Version 2.0 Seite 4

Definitionen

� Microprocessor (µP)

Ein Mikroprozessor bildet die Zentraleinheit eines Computers. Direkt an diese CPU sind Speicher integriert und Schnittstellen zu weiteren Schaltungsmodulen. (Beispiele: Intel Core I7, Athlon (AMD), PowerPC (Apple, IBM, NXP(Freescale))

Ein digitaler Signalprozessor ist ein dezidiertes System zur Aus-führung von zeitkritischen, sich wiederholenden und rechenintensiven Aufgaben. (Beispiele: TMS320, Sharc, DSP56xx, Tricore, ...)

Mikrocontroller sind Prozessoren, die neben der CPU und Speicher über eine Vielfalt von Peripherie auf dem Chip verfügen (System on Chip), um Steuer- und Regelungsaufgaben in „embedded systems“ zu übernehmen. (Beispiele: Atmega 328, 68HC11, C164, PIC, Infineon XMC, Freescale MP55xx,, .).

� Digital Signal Processor (DSP)

� Microcontroller (µC)

Page 5: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Klassifizierung

27.09.08ES - Version 2.0 Seite 5

Page 6: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

27.09.08ES - Version 2.0 Seite 6

Embedded Systems - Inhaltsübersicht

Inhalt:

– Einführung

– Prinzipien der C166-Architektur

– Die CPU des C164

– Adreß- und Speicherorganisation

– Echtzeit-Betriebssystem

– Interrupts

– Ein-/Ausgabeeinheiten

• General Purpose Timer 1

• Ports

• Asynchrone Serielle Schnittstelle

• Capture Compare Unit 2

• A/D - Wandler

– Systemunterstützung

• Taktverteilung und -steuerung

• Leistungsaufnahme

• Realtime Clock

• Watchdog Timer

– CAN - Schnittstelle

– Entwicklungs-Tools:

• C für C164 - C166

• Code-Generator

• Integrierte

Entwicklungsumgebung

• Simulation

• Echtzeit-Betriebssystem

Page 7: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

27.09.08ES - Version 2.0 Seite 7

Embedded Systems - verwendete Produkte

� Mikrocontroller C164 der Firma Infineon

� Integrated Development Environment (IDE �Vision2) der Firma Keil

� Digital Application virtual Engineer (Dave) der Firma Infineon

http://www.infineon.com/

http://www.keil.com/

Page 8: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

27.09.08ES - Version 2.0 Seite 8

Low-Cost* Different RAM Size* 16 M Addr. Range* 3/5 16-bit Timers* Serial i/f SSP, SSC

C165

* 2KB RAM* 3V* P-MQFP-100* P-TQFP-100

* 1KB RAM* SSP* 3V* Red. Peripherals* P-TQFP-100

C163* Reduced Chip Selects* Wide Ext. Bus Support* 3 V Options* 25 MHz Option * 16MHz CPU

* 4 M Adreßraum* 1-2KB RAM* P-MQFP-80

C161RI

* 3KB RAM

� � � � � � � � � �

* I2C Schnittstelle* ADC

C161V/K/O

* Großes RAM* Großes Flash

� � � � � � � � � �

* I2C Interface* CAPCOM* 2 USARTs* CAN / J1850* ADC

C161xx

* CAPCOM* PWM* Serial Interfaces* Timer* 10-bit / 8bit ADC* Full Bus Support/

MUX Bus only

8xC166

* 1KB RAM* 32KB ROM* 32KB Flash* P-MQFP-100

* Ausgewogene Peripheriefür eine Großzahl vonApplikationen

* 1K / 2 KB RAM* ROM / Flash / OTP

General Purpose

C164CI

* 2KB RAM* 64KB OTP/ROM/Flash* Full-CAN 2.0B * Power Management / RTC* Motor Control Peripheral* P-MQFP-80

* 16 MByte Adreßraum* 2/4 KByte RAM* 32 CAPCOM* 4 PWM* 2 Serielle Schnittstellen* 5 Timer* Chip Selects

erleichtern die System-erweiterung

* Extensive I/O

C167CR/SR

* CAN (nur CR)* 4K RAM* PLL

C167CS

* 11KB RAM* 256K Flash* 2 CAN Module* 24 ADC* RTC & Power Managem.* PLL

* 2KB RAM

C167

High-Integration

C167S

* 32K ROM* 2KB RAM* PLL

Die unterschiedlichen Derivate der C166-Familie

Page 9: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Architektur des C164CI

Die C164 fußt auf der Basisarchitektur der C166 Familie ,die um 1990 von der Firma Siemens in München neu entwickelt wurde. Im Gegensatz zu anderen Mikrocontrollern und Mikroprozessoren wurde hierbei ein moderneres, neueres Konzept realisiert. Hauptaugenmerk wurde hierbei

auf eine effizientere Interrupt Behandlung, die optimierte Fähigkeit mit einzelnen Bits schnell und effizient zu arbeiten und auf einen erhöhten Datendurchsatz zwischen der On-Chip Peripherie, dem Speicher und der CPU zu erlangen, gelegt. Zudem spielte die Erweiterbarkeit mit anderen Peripherie -Modulen eine wichtige Rolle, um für verschiedene Anwendungen einen optimierten Mikrocontroller zu erhalten. Die folgende Abbildung zeigt die interne Blockstruktur des C164ers und gibt einen Überblick wie die einzelnen Module miteinander gekoppelt sind.

25.02.2016Embedded Systems Seite 1

Page 10: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 2

164CL

XTAL

C166-Core

Port 5 Port 3

CPU

Dua

l Por

t

RAM

2 KByte

Interrupt Controller

Watchdog

Peripheral Data

External Instr./Data

Instr./Data

USART

ASC

BRG

GPT1

16

16

16

1632

PEC

64 KROM

(C164 CI-8RM)

orOTP

(C164CI-8EM)

Interrupt Bus

Data

Data

Port 8

BRG

SSC

Sync. Channel(SPI)

PLL-Oscillatorprog. Multiplier:

0.5; 1; 1.5; 2;2.5; 3; 4; 5

XB

US

(16-

bit N

ON

MU

X D

ata

/ A

ddre

sses

)

T2

T4

T3

13 ext. IRFull-CANInterfaceV2.0Bactive

RTC

10-BitADC

Tim

er 7

Tim

er 8

Port 1

Tim

er 1

3

1 Comp.Channel

3/6 CAPCOMChannels

CAPCOM6 Unit forPWM Generation

8 9 4 16

6

16

Port 4

8-Channels

External Bus8/16 bit

MUX only&

XBUSControl

CAPCOM 2

8-Channel

C164CI Blockschaltbild

P4.6/ CAN TxD

P4.5/ CANRxD

Por

t 0

Page 11: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Strukturelemente

Die wichtigsten Strukturelemente sind der

CPU-Kern, der Interrupt Controller und die Peripherie-Einheit.

Diese drei Kernblöcke bestimmen die Performance und die Reaktions-fähigkeit des Controllers auf externe Ereignisse und werden in den folgenden Abschnitten etwas detaillierter betrachtet. Desweiteren

wurde ein Oszillator integriert, der über eine zusätzliche PLL verfügt, die

den externen Takt mit einem einstellbaren Faktor multipliziert bevor er an die CPU und die interne Peripherie weitergeleitet wird. Neben einem internen RAM Bereich verfügen einige Derivate auch über ein Masken-ROM, ein OTP-ROM bzw. ein FLASH Modul.

25.9.2009Embedded Systems Seite 3

Page 12: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Die Central Processing Unit des C164

Die Hauptaufgabe der CPU ist das Holen und Dekodieren von Befehlen, die Steuerung und Verarbeitung von Operanden in der Arithmetic Logic Unit (ALU) sowie das Retourspeichern der Ergebnisse. Weiters werden von der CPU die internen Busse zwischen den einzelnen Modulen gesteuert.

Die Kommunikation mit dem externen Bus wird jedoch nicht von der CPU gehandhabt, sondern erfolgt über einen eigenen Externen Bus Controller (EBC). Die folgende Abbildung gibt einen groben

Überblick über die Interna der CPU.

Die Bestandteile der CPU sind eine 16-Bit ALU, die vor allem Additionen und Subtraktionen durchführt. Für Rotate- und Shift-Operationen ist ein eigener Barrel Shifter implementiert. Ein BitMasken Generator erlaubt ein maskieren von einzelnen Bits und für Multiplikationen und Divisionen ist ebenfalls eine eigene Hardware vorhanden.

25.9.2009Embedded Systems Seite 4

Page 13: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 5

On-Chip(EP)ROM

SP

STK OV

STK UV

CPU - Blockschaltbild

CPU

MDL

MDH

Barrel-Shifter

ALU

16-bit

Mul./Div.-HW

Bit-Mask Gen.

Code Seg.Ptr

On-ChipStaticRAM

R15

R0

STK OV

STK UV

4-StagePipeline

32

16

16

Exec. Unit

Instr. Ptr.

Instr. Reg.

SYSCON

BUSCON 0

BUSCON 1

BUSCON 2

BUSCON 3

BUSCON 4

ADDRSEL 1

ADDRSEL 2

ADDRSEL 3

ADDRSEL 4

Context Ptr.Data Page

Pointer

SFR

PSW

General

R15

R0

Purpose

Registers

Page 14: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Die Central Processing Unit des C164 -2

Mit Hilfe dieser zahlreichen Funktionen ist es möglich, dass die meisten Befehle in einem einzigen Maschinenzyklus abgearbeitet werden können.

Einzige Ausnahmen sind Befehle zur Multiplikation und Division sowie die Verzweigungs (Branch-) Befehle.

Entsprechend dem Resultat werden auch zahlreiche Flags im Programm-Status-Wort gesetzt. Folgende Abbildung gibt dieses Register kurz wieder.

25.2.2016Embedded Systems Seite 6

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

ILVL IEN HLDEN

- - - USR0 MULIP

E Z V C N

r/w r/w r/w - - - r/w r/w r/w r/w r/w r/w r/w

Page 15: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Die Central Processing Unit des C164 -3

Das Negative Flag (N) wird gesetzt, wenn die ALU Operation ein negatives Ergebnis liefert. Negative Zahlen werden hierbei immer als Zweierkomplement einer positiven Zahl dargestellt.

Das Carry Flag (C) kennzeichnet ein Carry/Borrow bei einer Addition/Subtraktion. Bei Shift und Rotate Operationen nimmt dieses Bit den Wert des jeweils hinausgeschobenen bzw. rotierenden Bits an.

Wird bei einer arithmetischen Operation der Zahlenbereich überschritten so wird das Overflow Flag (V) gesetzt.

Ist das Ergebnis einer Operation Null, so wird das Zero Flag (Z) gesetzt.

Das End of Table-Flag (E) wird gesetzt, falls der Wert des Quellenoperanden einer Instruktion gleich 0x8000 oder 0x80 ist.

25.2.2016Embedded Systems Seite 7

Page 16: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Die Central Processing Unit des C164 - 4

Die Execution Unit besteht aus dem Instruction Pointer (IP), der auf den jeweils gültigen Befehl zeigt. Der Instruction Pointer ist vom User aus nicht direkt manipulierbar sondern nur indirekt über Beeinflussung des Programmflusses (Jump, Call, etc.). Zugeordnet zur Execution Unit sind weiters das Instruction Register und die CPU Befehlspipeline. Der C164 besitzt eine 4-stufige Befehlspipeline,

die es erlaubt, dass gleichzeitig mehrere Befehle “aktiv” sind. Die Pipeline des C164 ist in vier Phasen untergliedert.

In der FETCH Phase wird ein Befehl aus dem Programmspeicher geholt.

Dieser wird in der nächsten Phase, der DECODE Phase, dekodiert.

In der Execution Phase wird der Befehl dann ausgeführt und in der WRITE BACK Phase werden dann die daraus resultierenden

Werte retourgesichert. In der folgenden Abbildung ist dies illustriert.

25.2.2016Embedded Systems Seite 8

Page 17: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.2.2016Embedded Systems Seite 9

Fetch

Decode

Execute

Write Back

1. Instr. 2. Instr. 3. Instr. 4. Instr.

Time

1 Machine Cycle = 100 ns at 20 MHz CPU clock

Vierstufige Befehls-Pipeline

� 100ns effektive Befehlsausführungszeit (20 MHz fCPU)

� Drei Pre-Fetch-Schritte in Wortbreite (Bus Controller) zur Unterstützung der Pipeline

� Optimierte Sprungausführung

–Für Sprungbefehle (Jump, Cond. Jump, Call, Return,...) wird normaler Weise nur ein zusätzlicher Maschinenzyklus benötigt, um den Befehl an der Zieladresse zu holen

� Jump Cache

–Für die Ausführung von Schleifen ist kein zusätzlicher Maschinenzyklus erforderlich

Page 18: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Die Central Processing Unit des C164 -4

Im Weiteren sind in der CPU enthalten:

� Code Segment Pointer (CSP) und Instruction Pointer (IP) zur Programmcode Adressierung

� Data Page Pointer (DPP0-3) zur Adressierung der Daten

� Context Pointer (CP) zur Adressierung der General Purpose Register

� Stack Pointer (SP), Stack Underflow (STKUN) und Stack Overflow (STKOV) zur Stackverwaltung

� Die Register MDL, MDH und MDC werden für Multiplikation und Divisions Operationen benötigt.

� Das Programm Status Wort (PSW) enthält Informationen über den CPU Status.

� Die Register SYSCON, BUSCON0-4 und ADDRSEL 1-4 dienen zur

System- und Bussteuerung.

25.02.2016Embedded Systems Seite 10

Page 19: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 11

Arithmetic Logic Unit

ALU

A B

Z

Cin

op

Cout

flags

Arithmetic Operations:

Logic Operations:

Shift / Rotate:

add subinc decneg

and nandor norexor exnornot

sll srlsla srarol ror

s/ro : shift/rotatel/r : left/rightl/a : logic (unsigned)/arithmetic (signed)

Page 20: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 12

General Purpose Register (GPR)

� 16 GPRs bilden eine Registerbankbestehend aus maximal

– 8 Word-Registern und

– 8 Word-Registern mit Bytezugriff auf das niederwertige und höherwertige Byte

� Die GPRs sind bit-addressierbar

� Die Registerbänke können beliebig im internen RAM angeordnet werden

� Der Platz der aktiven Registerbank wird durch den Context Pointer (CP) festgelegt

� CP kann leicht verändert werden um eine andere Registerbank auszuwählen - “Switch Context”-Befehl.

Page 21: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 13

0F600

R8R9

R10R11

R12R13R14R15

RH0RH1

RH2

RH3

RH4RH5

RH6RH7

RL0

RL1

RL2

RL3

RL4RL5

RL6RL7

Context pointer

0FDFE

2KBytesinternal RAM

R6

R0

R1R2R3R4R5

R7

STKOV

STKUV

R15

R0

0FC00

Stackpointer UnderflowStackpointer

Stackpointer Overflow

STKUV

STKOV

2 kByte internes RAM - Plazierung der Registerbänke und des Stack

SP

Page 22: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Die Speicherorganisation des C164 -1

Wie bereits zuvor erwähnt besitzt der C164 einen nach der von Neumann

Architektur organisierten Speicher. Dies ist durch einen gemeinsamen linearen Programm- und Datenspeicher gekennzeichnet.

Der C164 kann bis zu maximal 4 MByte adressieren. Dieser Bereich ist unterteilt in 64 Code Segmente die jeweils 64 KByte groß sind.

Weiters ist dieser Bereich in 256 Data Pages zu

� je 16 KByte organisiert. Die Code Segmente werden über den Code Segment Pointer (CSP), und

� die Datenbereiche über 4 Data Page Pointer (DPP0-3) angesprochen.

Details hierzu später (Seite )

Diese Aufteilung ist auch aus der folgenden Abbildung ersichtlich.

25.9.2009Embedded Systems Seite 14

Page 23: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 15

Interner und externer Adressplan des C164CI

Bit-adressierbarer Bereich

X-Bus Peripheral

Segment 0 beinhaltet den internen Speicher

Internes RAM

512 BytesSFR’s

2k

Internes RAM

ExternerSpeicher

InternesROM /

Flash E²PROM

� � � � � � � � � � � � � � �

512 BytesESFR’s

0x000000

0x008000

0x00FE00

0x00FA00

0x00F600

0x00F200

0xFFFF7 0

32k

0.5k

Reserviert

Bis zu 4 MBytes

Code Segmente Daten Pages

0

1

2

3

3

2

1

0

7

6

5

4

11

10

9

8

15

14

13

12

InternalROM/FLAS

H2*32k

0x010000

0x020000

0x030000

0x040000

Full -CAN

0x00F000

0x00E800Reserviert

0.5k

0x000000

Page 24: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Die Speicherorganisation des C164 -2

Das Segment 0 stellt hierbei einen Spezialfall dar, da es sämtliche Register der Peripheriemodule, die General Purpose Register (GPR), den Stack, das interne ROM –sofern vorhanden– und das interne RAM enthält.

Ab Adresse 0x0000 im Segment 0 befindet sich das interne ROM, das auch in das Segment 1 eingeblendet werden kann. Dies wird während des Reset Vorganges über das CPU Register SYSCON festgelegt.

Ab Adresse 0xE000 befindet sich der Bereich des sogenannten XRAMs (On-chip extension RAM) bzw. die Register des CAN Moduls. Das XRAM verhält sich wie ein normaler externer Speicher, der keine Wait-States benötigt. Im Adressbereich zwischen 0xF000 und 0xFFFF befindet sich das interne RAM und die Special Function Register (SFR). Dieser Bereich enthält sämtliche Peripherieregister des C164.

Das interne RAM enthält zudem den System Stack, der in seiner Größe im Bereich von 32-1024 Worten programmierbar ist. Der Stack wächst hierbei von höheren Adressen zu niedrigeren Adressen hin.

25.9.2009Embedded Systems Seite 16

Page 25: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Die Speicherorganisation des C164 -2

Zusätzlich sind in diesem Bereich die General Purpose Register angelegt, die über den Context Pointer (CP) adressiert werden. Wird ein neuer Registersatz benötigt (z.B. bei einem Unterprogrammaufruf oder der Verzweigung in eine Interrupt-Service-Routine) so kann durch Umsetzen des CP einfach auf eine neue Registerbank umgeschaltet werden. Dies hat den Vorteil, dass bei einer Programmverzweigung anstelle sämtlicher verwendeter Register nur der CP auf den Stack gesichert werden muss. Zusätzlich befinden sich in diesem Adressbereich die Source und Destination Pointer für den Peripheral Event Controller (PEC), siehe Abschnitt . Das restliche interne RAM dient entweder als Speicher für Variablen und Daten oder für Programmcode.

Word Zugriffe müssen immer an geraden Adressen erfolgen, wobei das lower Byte an der geraden Adresse (z.B 0xF612) und das higher Byte an der darauffolgenden ungeraden Adresse zu liegen

25.9.2009Embedded Systems Seite 17

Page 26: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 18

� Gesamter Adressraum:

– 64 kByte nicht-segmentierter Adressraum (Segment 0)

– bis zu 4 MBytes segmentierter Adressraum:64 kBbyte Code-Segmente und 16 kByte Daten-Pages

– “von Neumann”-Architektur, die intern mit mehrfach-BUS-Strukturen zur Vermeidung des BUS-Bottlenecks ausgestattet ist

� Interner Adressraum

– 2 KByte RAM

– 64 KBytes Flash/OTP ROM (C164CI-8FM)

� Flexible externe BUS-Konfigurationen

– bis zu 22-Bit Adress-BUS / 8-Bit Daten-BUS (gemultiplexed)

– bis zu 22-Bit Adress -BUS / 16- Bit Daten-BUS (gemultiplexed)

– 5 völlig unabhängige Konfigurations-Register

– 4 programmierbare “Chip Selects” und programierbare BUS-Kontrollsignale helfen externe Logik zu vermeiden.

Adressraum - Zusammenfassung

Page 27: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 19

Die Programmiersprache C für den Mikrocontroller C164

C166 ist die Realisierung von ANSI-C für die Mikrocontroller-Familie C166.

Der C166-Compiler sieht eine Reihe von Erweiterungen des ANSI-C Standards vor. Speziell solche, die direkt der Unterstützung der 166-Architektur dienen:

C166-Bezeichnung Erläuterung

memory types Als Ergänzung zur "Speicherklasse" kann zu jeder Variablenvereinbarung ein "Speichertyp" mit angegeben werden. Dies erlaubt eine vom aktuellen "Speichermodell" unabhängige Adressierung von Variablen in verschiedenen Adressräumen des 166-Systems. Folgende Typen sind definiert:near, idata, bdata, sdata, far, huge, xhuge.

sfr Dient der Deklaration von "Special-Function-Register" (SFR) der 166-Familie

sbit Deklaration von Bits innerhalb von SFR's.

bit Datentyp bit. Rückgabewert, Übergabeparameter von Funktionen können vom Typ bit sein.

bit-addressable Variable im bitadressierbaren Bereich können mittels bdataals Speichertyp vereinbart werden.

Page 28: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 20

Die Programmiersprache C für den Mikrocontroller C164

C166-Bezeichnung Erläuterung

registerbank (using) Jede Funktion kann eine Vereinbarung enthalten, in der die zu benutzende Registerbank angegeben wird.

interrupt Funktionen können als Interrupt-Service-Routinen vereinbart werden durch Angabe des Interruptnamens bzw. –vektors.

register mask Der C166-Compiler erzeugt für jede C-Funktion eine Register-maske, in der die durch die Funktion verwendeten Register aufgeführt werden. Diese können für Funktionsprototypen verwendet werden, um die Registerausnutzung zu optimieren.

RTX166 tasks Durch das Schlüsselwort _task_ werden Funktionen als Tasks des Betriebssystems RTX166 spezifiziert.

Neue Schlüsselwörter (Keywords):Speicherarten: near, idata, bdata, sdata, far, huge, xhugeDatentypen: bit, sfr, sbitFunktionen: interrupt, _task_, using

Page 29: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 21

Speicherarten (Memory Types)

Auswahl Adressraum

near 16-Bit Adressen bis zu 64 kBytes

idata On-chip RAM (schnellster Zugriff)

bdata Bit-adressierbares On-chip-RAM

sdata System Page (0xC000-0xFFFF) inklusive SFR‘s

far 32-Bit Pointer mit 16-Bit Adressberechnung, die Objektgröße beträgt 16 kByte.

huge 32-Bit Pointer mit 16-Bit Adressberechnung, die Objektgröße beträgt 64 kByte.

xhuge 32-Bit Pointer mit 32-Bit Adressberechnung, die Objektgröße beträgt 16 MByte.

Die Programmiersprache C für den Mikrocontroller C164

Page 30: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 22

� Entsprechend den Speicherarten können Speichermodelle als Voreinstellungen vorgegeben werden, die immer dann Anwendung finden, wenn bei der Variablen- oder Funktionsdefinition keine Speicherart explizit angegeben wird.

� Dies erfolgt mittels der Preprozessordirektive:# pragma speichermodell

� C: Code

D: Daten

Die Programmiersprache C für den Mikrocontroller C164

Speichermodell Variable Funktionen Segmentierung Umfang

TINY near near nein < 64k (C + D)SMALL near near ja 64k COMPACT far near ja 64kHCOMPACT huge near ja 64kMEDIUM near far ja unbegrenztLARGE far far ja unbegrenztHLARGE huge far ja unbegrenzt

Page 31: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 23

Datentypen: Speicherumfang und Wertebereich

Datentyp Speicherumfang Wertebereich

bit # 1 Bit 0 oder 1

signed char 1 Byte -128 bis +127

unsigned char 1 Byte 0 bis 255

signed int 2 Bytes -32768 to + 32767

unsigned int 2 Bytes 0 bis 65535

signed long 4 Bytes -2147483648 bis +2147483642

unsigned long 4 Bytes 0 bis 4294967295

float 4 Bytes ±1.176E-38 bis ±3.40E+38

double 8 Bytes ±1.7E-308 bis ±1.7E+308

pointer 2/4 Bytes Adresse des Objects

Die Programmiersprache C für den Mikrocontroller C164

Datentypen für den Zugriff auf Special Function Registers (SFR)

sbit # 1 Bit 0 or 1

sfr # 2 Bytes 0 to 65535

# spezielle Datentypen in C166, die in ANSI-C nicht definiert sind.

Page 32: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 24

Integrierte Entwicklungsumgebung

C-

Library

ANSI C

Compiler

Macro-

Assembler

– Debugger– Simulator

Emulator &

PROM Programmer

RTX TinyReal Time

Operating

System

– µVision2

Editor / Project Management

Library

Manager

Linker / Locater

CPU &

Simulator

Monitor

Target DebuggingPeripheral

Ab ins Praktikum

Page 33: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 25

Code-Adressierung mittels Segmentierungim 4 MByte Adressraum

Code Segment Pointer (CSP) zur Code-Adressierung

22-Bit physikalische Code-Adresse (C164)

6-Bit Segment-nummer

16-Bit

� � �

16-Bit Instr. Pointer

� ��� � � �

Code Seg. Pointer

� � ��

Der Instruction Pointer (IP) wird nach jeder Befehlsholphase inkrementiert

Der Code Segment Pointer (CSP) wird nur durch absolute Sprünge, bzw. indirekt beim Rücksprung aus Unterprogrammen vom Stack verändert.

Page 34: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 26

Adressierung von Daten mittels Seitenauswahl (Paging) innerhalb des 4 MByte Adressraumes

Daten-Adressierung über Data Page Pointer (DPP)

14-bit � �

16-bit Adresse

� �

Auswahl einesData Page Pointer

10-bitSeiten-nummer

DPP3

DPP2

DPP1

DPP0

Physikalische 24-Bit Daten-Adresse

(bis zu 22 aussen verfügbar beim C164)

SFR

Page 35: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.2.2016Embedded Systems Seite 27

External Bus Controller

� Der External Bus Controller verfügt über bis zu 4 Chip-Select-Signale

� Auswahl von 4 Adressbereichen möglich

Special Function Register BUSCON0..4Programmierbare Zeiten.Festlegung von CS# - Signalen.Auswahl der Breite des Daten-BUS 8 / 16 Bit.

Special Function Register ADDRSEL1..4Programmierbare Ausschnitte aus dem Adressraum für den Zugriff auf externe Komponenten mit den Eigenschaften der zugeordneten BUSCONx- Register.

Der C164 bietet die Möglichkeit über den External Bus Contoler zusätzlich Programm- und/oder Datenspeicher anzuschließen. Die Buseigenschaften wie Multiplexed- oder Non-multiplexed Bus, 8- oder 16 Bit breiter Datenbus und das Bus Timing können nach einem Restart softwaremäßig für verschiedene Adressbereiche unterschiedlich eingestellt werden.

Page 36: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Interrupt System des C164-1

Als Mikrocontroller besitzt der C164 ein ausgeprägtes Interrupt System, das es ihm ermöglicht sehr effizient (5-12 CPU clocks <1µs) auf externe und interne Ereignisse zu reagieren.

Grundsätzlich ist hierbei zu unterscheiden zwischen:

� normalen Interrupts

� Peripheral Event Controller (PEC) Interrupts

� Trap Funktionen (Hardware und Software Traps)

� externen Interrupts

Die Vorgehensweise des Ablaufs bei Auftreten eines Interrupts soll nun näher erläutert werden.

Zunächst ist eine Interrupt Service Routine (ISR) zu erstellen (siehe auch Dave), die i.a. einem Unterprogramm entspricht, jedoch mit der Ausnahme, dass für die entsprechende Interrupt Quelle eine definierte Interrupt Trap Nummer, siehe Tabelle , angegeben werden muss.

25.2.2016Embedded Systems Seite 28

Page 37: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Auszug aus Vektortabelle

25.9.2009Embedded Systems Seite 29

Interrupt-Quelle RequestFlag

EnableFlag

InterruptVector

VectorLocation

TrapNumber

Fast External Interrupt 0 CC8IR CC8IE CC8INT 00’0060 H 18 H / 24 DFast External Interrupt 1 CC9IR CC9IE CC9INT 00’0064 H 19 H / 25 DFast External Interrupt 2 CC10IR CC10IE CC10INT 00’0068 H 1A H / 26 DFast External Interrupt 3 CC11IR CC11IE CC11INT 00’006C H 1B H / 27 DGPT1 Timer 2 T2IR T2IE T2INT 00’0088 H 22 H / 34 DGPT1 Timer 3 T3IR T3IE T3INT 00’008C H 23 H / 35 DGPT1 Timer 4 T4IR T4IE T4INT 00’0090 H 24 H / 36 DA/D Conversion Complete ADCIR ADCIE ADCINT 00’00A0 H 28 H / 40 DA/D Overrun Error ADEIR ADEIE ADEINT 00’00A4 H 29 H / 41 DASC0 Transmit S0TIR S0TIE S0TINT 00’00A8 H 2A H / 42 DASC0 Receive S0RIR S0RIE S0RINT 00’00AC H 2B H / 43 DASC0 Error S0EIR S0EIE S0EINT 00’00B0 H 2C H / 44 DSSC Transmit SCTIR SCTIE SCTINT 00’00B4 H 2D H / 45 DSSC Receive SCRIR SCRIE SCRINT 00’00B8 H 2E H / 46 DSSC Error SCEIR SCEIE SCEINT 00’00BC H 2F H / 47 DCAPCOM Register 16 CC16IR CC16IE CC16INT 00’00C0 H 30 H / 48 D

Page 38: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Interrupt System des C164-2

Bei Auftreten eines Interrupts wird dann über diese Trap Nummer in der Interrupt Vektor Tabelle, die sich ab der Adresse 0x0000 im Adressraum befindet, die Interrupt Service Routine aufgerufen.

Die entsprechende Interrupt Quelle ist mit einem geeigneten Interrupt Prioritäts Level (ILVL) und Group Prioritäts Level (GLVL) zu versehen. Der C164 besitzt 16 ILVL Level und jeweils vier Group Level.

Es können somit maximal 64 verschiedene Interrupt-Prioritäten vergeben werden.

Treten mehrere Interrupts gleichzeitig auf, so gewinnt jener mit höherem ILVL- und GLVL-Wert.

Tritt nur ein Interrupt auf, so wird nur der ILVL-Wert mit dem CPU-ILVL Wert im Programm Status Wort (PSW) verglichen. Nur wenn der Wert höher ist wird die CPU in ihrem aktuellen Programmfluss unterbrochen.

25.2.2016Embedded Systems Seite 30

Page 39: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Interrupt System des C164-3

Nach Festlegung der Signifikanz der einzelnen Interrupt Quelle durch den Programmierer wird dieser Prioritätslevel (ILVL+GLVL) in das zugehörige Interrupt Control Register geschrieben. (z.B. T2IC = 0x0027; Weist dem Timer 2 Interrupt Control Register einen ILVL Wert von 9 und einen Group Level von 3 zu.) Das allgemeine Layout eines Interrupt Control Registers ist in der nachfolgenden Abbildung dargestellt:

.

25.9.2009Embedded Systems Seite 31

Page 40: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Interrupt Control Register

GLVL: Group Level. Interruptgruppe

Interne Reihenfolge bei Interrupts gleicher Priorität

11: höchste Gruppenpriorität00: geringste Gruppenpriorität

ILVL: Interrupt priority level - InterruptprioritätFH: höchste Interruptpriorität0H: niedrigste Interruptpriorität

xxIE: Interrupt Enable Control Bit - Interruptfreigabe0: Interrupt ist gesperrt1: Interrupt ist freigegeben

xxIR: Interrupt Request Flag. Interruptanforderung0: keine Interruptanforderung vorhanden1: Interruptanforderung liegt an

25.9.2009Embedded Systems Seite 32

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

- - - - - - - - xxIR xxIE ILVL GLVL

- - - - - - - - r/w r/w r/w r/w

Page 41: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Interrupt System des C164-4

Es gilt hierbei, je größer der ILVL und GLVL Wert desto höher ist die entsprechende Priorität. Nach der Festlegung der Priorität, ist die entsprechende Interrupt Quelle zu enablen (durch Setzen des zugehörigen yyIE Bits). Soll ein PEC Transfer aktiviert werden, so ist an dieser Stelle das PECC-Register, sowie die Source und Destination Adresse einzustellen.

Nach der lokalen Interrupt Freigabe muss global ein Interrupt zugelassen werden. Dafür ist im CPU Programm Status Wort Register PSW das Bit ’Interrupt Enable’ (IEN) zu setzten.

Ab nun können auftretende Interrupts zugelassen und bearbeitet werden.

25.9.2009Embedded Systems Seite 33

Page 42: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Interrupt System des C164-5

Wird ein Interrupt aktiviert - das yyIR Bit wird gesetzt - so wird zunächst eine Prioritätsüberprüfung durchgeführt. Hierfür ist im höherwertigen Nibble des PSW (Prozessor Status Wort) Information über den jeweils momentan gültigen Interrupt Status des Controllers enthalten. Das Bit Interrupt Enable (IEN) - wenn gesetzt - gibt an, dass Interrupts des C164 global zugelassen sind. Durch Setzen bzw. Löschen dieses Bits können auf einfache Art und Weise Interrupts zugelassen bzw. gesperrt werden. Das Bit Feld ILVL im Program Status Word spiegelt den momentanen CPU Prioritätslevel wieder. Ist keine Interrupt Routine aktiv so entspricht dies einem ILVLWert von 0x0000.

Befindet sich die CPU jedoch in einer Interrupt Service Routine (ISR) so enthält dieses Feld den Prioritätswert der momentan gültigen Routine. Ist der ILVL Wert im yyIC Register größer als der ILVL Wert im PSW, so wird der Interrupt akzeptiert.

25.9.2009Embedded Systems Seite 34

Page 43: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Interrupt System des C164-6Ist der ILVL Wert >= 14, das zugehörige PECC Register programmiert und eine PEC Source und Destination Adresse aufgesetzt, so wird ein PEC Transfer durchgeführt. Wenn dies nicht der Fall ist wird eine normale Interrupt Service Routine durchgeführt. Hierzu wird zunächst das zugehörige Interrupt Request Flag (yyIR) gelöscht, die Werte des IP, CP, CSP und des PSW auf den Stack kopiert (push) und anschließend wird der ILVL Wert der auslösenden Interrupt Quelle aus dem Interrupt Control Register in das PSW kopiert. Danach wird in die Interrupt Vektor Tabelle verzweigt. Jede Interrupt Quelle hat hier einen festgelegten Eintrag mit einer zugehörigen Trap Nummer. Über diese Trap Nummer wird in die entsprechende Interrupt Service Routine verzweigt. Der Code der ISR wird nun abgearbeitet.Beim Verlassen der ISR werden die zuvor auf den Stack gesicherten Daten in umgekehrter Reihenfolge wieder retour kopiert.Das Aufsetzen und die Abarbeitung eines Interrupts ist in der folgenden Abbildung noch einmal zusammenfasst. Als Beispiel der Interrupt-Programmierung mit Dave, siehe v1_isr.

25.2.2016Embedded Systems Seite 35

Page 44: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 36

Interrupt Handling

INTR Flag ist gesetzt

Periph. Interrupt

Externer Interrupt*

External Interrupt*

Prioritäts-Check

Vergleich derInterruptpriorität mit der Laufzeit-Priorität

der CPU

16 Prioritäts-Stufen

fallshöhere

Priorität

Interrupt Control Register des auslösenden Peripherie-ElementesINTR Service:

Retten:PSW, CSP, IP

Neue CPU-Prio. im PSW.

CSP und IP ausPeripherie-Vector oder Trap-Nummer

PECService

* Externe Interrupts sind z.B. statt

des “Capture” Eingangs möglich

13 ext. Interrupts (+ NMI) einschließlich 4 “schnelle” Interrupts

32 Peripherie Interrupts

4 Gruppen

Gruppen Check

LöscheINTR Flag

Periph. Interrupt

Periph. Interrupt

Periph. Interrupt

SFR DaveVektoren

Page 45: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Peripheral Event Controller -1Wird hingegen ein Peripheral Event Controller (PEC) Service arbitriert, so wird ein einziger Byte/Word Transfer von der Source zur Destination Adresse innerhalb des Segments 0 in die Befehlspipeline eingefügt.

Der Vorteil dieser Variante liegt in der schnellen Reaktionszeit auf einen Interrupt Request. Es muss in diesem Fall kein Register auf den Stack gesichert werden. Die Konfiguration des PEC Transfers erfolgt über das zugehörige PECC Register. Dieses wird automatisch bei der Festlegung

von ILVL und GLVL Wert entsprechend Abbildung 11 zugeordnet. Für einen PEC Transfer müssen Prioritätslevel ILVL 14 programmiert werden. Dementsprechend können acht verschiedene PEC Transfers programmiert werden. Je nachdem ob konfiguriert wird im Anschluss an den PEC Transfer der COUNT-Wert im PECCx Register dekrementiert und die zugehörige Source oder Destinationadresse inkrementiert. Dadurch wird eine fixe Anzahl an PEC Transfers ermöglicht. Es kann aber auch ein kontinuierlicher PEC Transfer programmiert werden indem im PECCx Register der COUNT-Wert auf 0xFF programmiert wird.

25.9.2009Embedded Systems Seite 37

Page 46: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Peripheral Event Controller - 2

25.9.2009Embedded Systems Seite 38

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - - - - - INC BWT COUNT - - - - - r/w r/w r/w

COUNT: PEC Transfer Count. Zeichenzähler für PEC-Übertragung Zählt die Zahl der übertragenen Bytes/Words und beeinflußt Kanaleigenschaften BWT: Byte / Word Transfer Selection. Auswahl der Wortbreite

0: Wortweise Übertragung 1: Byteweise Übertragung

INC: Increment Control. Veränderung der Quell-/Zieladresse (beeinflußt die SFR's: SRCPx / DSTPx) 00: Die Adressen werden nicht verändert. 01: Der Inhalt von DSTPx wird um 1 bzw. 2 erhöht. 10: Der Inhalt von SRCPx wird um 1 bzw. 2 erhöht. 11: Reserviert.

Page 47: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Peripheral Event Controller - 3

War der COUNT Wert vor dem Dekrementieren bereits 1, so wird das Interrupt-Request-Flag nicht mehr gelöscht und im Anschluss an diesen letzten PEC Transfer wird somit automatisch eine normale ISR aktiviert. Wird also ein PEC Transfer mit einem COUNT Wert 0xFF aufgesetzt, so ist für diese Interrupt Quelle auch eine normale Interrupt Service Routine zu erstellen.

Das Aufsetzen und die Abarbeitung eines PECs sind in der nachfolgenden Abbildung nocheinmal zusammenfassend veranschaulicht.

25.9.2009Embedded Systems Seite 39

Page 48: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

25.9.2009Embedded Systems Seite 40

Interrupt hat den Prioritäs- und Gruppen-Check erfüllt

Interrupt Priorität < 14 Interrupt Priorität 14 oder 15und Data Counter > 0

Interrupt Service PEC Service

8 PECKanäle

Data Counter

SRC Pointer

DEST Pointer

Contr. Reg.

Memory Segment 0

0xFFFF

0x0000

Byte bzw.WordTransfer

INTR Service:

Retten:PSW, CSP, IP

Neue CPU-Prio. im PSW.

CSP und IP ausPeripherie-Vector oder Trap-Nummer

Interrupt falls Data Counter = 0

Prioritäts- & Gruppen-

Check

Peripheral Events Controller (PEC) - 4

Peripheral Events Contoller

SFR

Page 49: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Real Time Operating System -1

19.3.2010 Embedded Systems Seite 1

Die meisten Applikationen im Bereich der Embedded Systems erfordern ein hohes Maß an paralleler Verarbeitung und kurze Reaktionszeiten auf externe Ereignisse. Kleinere Real-Time-Applikationen können auch ohne RTOS durch den Aufruf einzelner oder mehrere Funktionen in einer Schleife und den Einsatz von Interrupts realisiert werden. Der Einsatz eines RTOS stellt jedoch die professionelle Lösung dar.Ein RTOS erlaubt z.B. ein flexibles Aufteilen von Systemresourcen(CPU, Speicher, etc.) auf einzelne Tasks (Prozesse) und bietet die Möglichkeit der Kommunikation zwischen den Tasks.

Page 50: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010 Embedded Systems Seite 2

Real Time Operating System

• Tasksvoneinander weitgehend unabhängige Aufgaben die möglichst gleichzeitig auszuführen sind.

• Operating Systemübernimmt die Verwaltung und Koordination der Tasks.

Task 1

Task 2

Task 3

• Real Timemöglichst rechtzeitige Reaktion auf eintreffende Ereignisse, möglichst exaktes Einhalten von Zeitanforderungen

Page 51: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010 Embedded Systems Seite 3

Task (Thread) - Konzept

Was ist eine Task (Thread) genau?

• Tasks sind die funktionalen und strukturierenden Einheiten von Betriebssystemen.

• Eine Task ist ein ausführbares Programm zusammen mit den dazugehörigen aktuellen Werten des Programm Counters, der Register, Variablen und Betriebsmittel (Speicher, I/O, Signale, Mailboxen, etc.).

Für die Implementierung einer Task unterhält das Betriebssystem eine eigene Tabelle, den

• Task Control Block– Informationen über Zustand und Priorität der Task

– CPU und System Context

• Task Zustände – ready, running, waiting, suspended.

Page 52: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010 Embedded Systems Seite 4

Taskzustände

waiting

busy

readysuspended

suspended: Die Task nimmt nicht am Geschehen teil.

ready: Die Task ist ablauf-fähig und wartet auf die Zuteilung des Prozessors.

busy: Der Code der Task wird ausgeführt

waiting: Die Task wartet auf das Eintreten eines Ereignisses.

Page 53: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010

Embedded Systems Seite 5

Task Management

busy

suspended

readyreadyreadyreadyreadyready

waiting

Wartebedingungist erfüllt

Tasks werden kreiert

Prozessor ist verfügbar

RTX166tiny:Beim Start wird Task 0 ausgeführt, sie aktiviert alle erforderlichen weiteren Tasks.

Dispatcher

Page 54: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010 Embedded Systems Seite 6

Task Management

• SchedulerScheduler entscheidet, welchem Prozess die CPU zugeordnet wird.

• Dispatcher

sorgt für die korrekte Umschaltung zur bereitgestellten Task

• Scheduling-Verfahren:

- Round-Robin-Scheduling:Beim Round-Robin Verfahren ist jede Task für eine vordefinierte Zeit aktiv bevor sie wieder suspendiert und die CPU einer anderen Task überlassen wird. (Standard bei RTX-Tiny)

- Kooperatives (non preemptive) Scheduling: Task muss selbst die Kontrolle an den Scheduler zurückgeben (Task versetzt sich selbst in den Wartezustand (suspendiert sich selbst) und wartet auf Eintreten eines Ereignisses (Timeout, Signal)

- Preemptive Scheduling: Wenn eine Task mit höher Priorität ansteht, wird der laufendenTask die CPU entzogen und der höher prioren Task zugeteilt

Page 55: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Task Interaction – Synchronization -1

• Tasks müssen während ihrer Arbeit auf Betriebsmittel (Speicher, Peripherie, etc.) zugreifen, die aber in der Regel nicht exklusiv benutzt werden können. Man spricht in diesem Fall von wechselseitigen Ausschluss (mutual exclusion) zwischen nebeneinander laufenden Prozessen. In diesem und anderen Fällen müssen Tasks synchronisiert werden. Interprozesskommunikation ist möglich mittels:

• Signals Einfache Form der Kommunikation mit Hilfe spezieller Funktionen (siehe RTX-Tiny Funktionen und Praktikum)

• Semaphore Ein Semaphor ist eine Datenstruktur, die aus einer Ganzzahl und den Nutzungsoperationen „Reservieren“ und „Freigeben“ besteht

• Mailboxes Tasks senden und empfangen Nachrichten asynchron (siehe folgende Folie)

• Messages Beim synchronen Message-Passing Verfahren werden Nachrichten direkt von einem Prozess zum anderen weitergesendet.

29.2.2016 Embedded Systems Seite 7

Page 56: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010 Embedded Systems Seite 8

Task Interaction – Synchronization -2

Sender Task

Receiver Task

Sender Task

Receiver Task

Asynchronous via Mailbox

Synchronous via Message Passing

Page 57: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

29.2.2016 Embedded Systems Seite 9

• Task Switching– Round Robin

– Cooperative

• 256 Tasks max.� 128 task priorities

Task Kommunikation:

• signal passing

• message passing with mailbox system

• semaphores

RTX166 Full bietet folgende Features:

RTX166-Full / RTX-Tiny

• Task Switching– Round Robin

– Cooperative

• 32 Tasks max. Keine Prioritäten

Task Kommunikation

• signal passing

RTX166 Tiny ist auf folgende Features beschränkt:

Page 58: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010 Embedded Systems Seite 10

int counter;void main (void) {

counter = 0;while (1) { /* repeat forever */

counter++; /* increment counter */}

}

Single Task Programm ohne RTOS

Real Time Operating System RTX166-Tiny

Page 59: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

RTX-Tiny-Beispiel-Programme

29.2.2016 Embedded Systems Seite 11

Das folgende Beispiel wurde aus der Beispielsammlung zur Entwicklungsumgebung der Fa. Keil entnommen. Das Beispiel demonstriert das Round-Robin-Verfahren. Es implementiert zwei Software Zählschleifen, die mit Hilfe von 3verschiedenen Tasks realisiert werden.Im ersten Task main_tsk() werden drei Tasks erzeugt.

In Task job1() wird in einer Endlosschleife für einen Time Slice (default 1ms) der Zähler counter0 erhöht.

Danach wechselt RTX-Tiny zur Task job2 und erhöht dessen Zähler counter1 ebenfalls für einen Time Slice. Danach wird wieder zu job1 gewechselt, usw.

Die Dauer der Time-Slices können in Config_Tiny.A66 eingestellt werden.

Page 60: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010 Embedded Systems Seite 12

#include <rtx166t.h>

int counter0, counter1;

void main_tsk(void) _task_ 0

{

os_create_task(1); // set task into READY-state

os_create_task(2); //

os_delete_task(0);

}

void job1 (void) _task_ 1 {

while (1) { /* Endless loop */

counter0++; /* Increment counter 0 */

}

}

void job2 (void) _task_ 2 {

while (1) { /* Endless loop */

counter1++; /* Increment counter 1 */

}

}

Bsp: Round-Robin Task Switching

Rtx_1

Page 61: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Bsp: Cooperative Task Switching

29.3.2016 Embedded Systems Seite 13

In diesem Beispiel wird das Cooperative Task-Swichting demonstriert.In RTX-Tiny wird dazu die Funktion os_wait(…) verwendet.int os_wait ( int event_sel, /* Ereignis, auf das gewartet wird */

unsigned int ticks, /* Anzahl Timerticks die zu warten sind */int dummy); /* bei TRX-Tiny nicht benutzter Parameter */

Die os_wait-Funktion hält die aktuelle Task für eine bestimmte Zeit oder bis zum Eintreten eines bestimmten Events an. (Genaueres siehe RTX-Tiny Funktionsbeschreibungen)In den Tasks job1 und job2 wird die Task nach der Erhöhung des Zählers jeweils für 5 bzw. 3 Ticks gestoppt (in den waiting status versetzt).Es ergeben sich somit Zähler mit einer festen Zähl-Frequenz bzw. Tasks mit einer festen Rate.Falls der CPU keine Task zugeteilt werden kann, wird eine immer vorhandene Idle-Task ausgeführt.

Page 62: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

29.2.2016 Embedded Systems Seite 14

#include <rtx166t.h>

int counter0, counter1;

void main_tsk(void) _task_ 0

{

os_create_task(1); // set task into READY-state

os_create_task(2); //

os_delete_task(0);

}

void job1 (void) _task_ 1 {

while (1) {

counter0++; /* Increment counter 0 */

os_wait (K_IVL, 3, 0); /* Wait 3 timer ticks */

}

}

void job2 (void) _task_ 2 {

while (1) {

counter1++; /* Increment counter 1 */

os_wait (K_IVL, 5, 0); /* Wait 5 timer ticks */

}

}

Cooperative Task Switching: Wait for Timeout

Rtx_1

Page 63: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Cooperative Task Switching: Wait for Signal

19.3.2010 Embedded Systems Seite 15

Im folgenden Bespiel sendet die Task job1 nach dem Überlauf des Zählers count1 ein Signal an die Task job2, die sich im Wartezustand „Wait for Signal“ befindet.Nach Erhalt des Signals erhöht diese ihren Zähler und geht erneut in den Wartezustand. Auf diese Weise kann in diesem Fall eine Synchronisation der beiden Zähler und allgemein eine Synchronisation verschiedener Tasks erreicht werden.

Page 64: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

19.3.2010 Embedded Systems Seite 16

#include <rtx166t.h>

int counter0, counter1;

void main_tsk(void) _task_ 0

{

os_create_task(1); // set task into READY-state

os_create_task(2); //

os_delete_task(0);

}

void job1 (void) _task_ 1 {

while (1) {

if (++counter0 == 0) { /* On counter 0 overflow*/

os_send_signal(2);/* Send signal to task 2*/

}

}

}

void job2 (void) _task_ 2 {

while (1) {

os_wait (K_SIG, 0, 0); /* Wait for signal; no timeout */

counter1++; /* Increment counter 1 */

}

}

Cooperative Task Switching: Wait for Signal

Page 65: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

os_running_task_id

19.3.2010 Embedded Systems Seite 17

Prototyp int os_running_task_id (void);Beschreibung Die Funktion os_running_task_id gibt die task_id

der aktuell aktiven Task zurück. Rückgabewert Nummer (task_id) der aktiven Task, der Werte-

bereich ist 0..31.

Beispiel:#include <rtx166t.h>void tst_os_running_task (void) _task_ 3{

int tid;...

tid = os_running_task_id (); /* tid = 3 */}

Page 66: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

RTX-166 Tiny: Beschreibung der Funktionen (s. µVision Help)

19.3.2010 Embedded Systems Seite 18

os_create_task

Prototyp int os_create_task (int task_id); /* ID der task */

Beschreibung Die Funktion os_create_task startet die Task mit der Nummer task_id. Die Task wird in den Zustand "READY" versetzt und kommt bei der nächsten möglichen Gelegenheit zur Ausführung.

Rückgabewert

0 falls die Task erfolgreich gestartet wurde -1 falls die Task nicht gestartet werden konnte,

falls die Task bereits aktiv ist, oder falls die Task task_id nicht existiert.

vergleiche os_delete_task

Beispiel

#include <rtx166t.h>

#include <stdio.h> /* fuer printf */

void new_task (void) _task_ 2

{

...

}

void tst_os_create_task (void) _task_ 0

{

...

if (os_create_task (2))

{

printf ("Task 2 konnte nicht gestartet werden\n");

}

...

}

Page 67: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

os_delete_task

19.3.2010 Embedded Systems Seite 19

os_delete_task

Prototyp int os_delete_task (int task_id);

Beschreibung Die Funktion os_delete_task unterbindet die weitere Ausführung der Task task_id und entfernt sie aus der Task-Liste.

Rückgabewert

0 falls die Task erfolgeich angehalten und entfernt werden konnte, -1 falls die Task nicht existiert oder noch nicht gestartet wurde.

Achtung: Ein Task-Switch wird sofort ausgeführt, wenn eine Task sich selbst suspendiert.

vergleiche os_create_task

Beispiel

#include <rtx166t.h>

#include <stdio.h> /* for printf */

void tst_os_delete_task (void) _task_ 0

{

...

if (os_delete_task (2))

{

printf ("Task 2 konnte nicht suspendiert werden\n");

}

...

}

Page 68: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

os_send_signal

19.3.2010 Embedded Systems Seite 20

os_send_signal

Prototyp int os_send_signal (int task_id); /* Signal an die Task */

Beschreibung

Die Funktion os_send_signal schickt ein Signal an die Task mit der Nummer task_id. Wartet die adressierte Task bereits auf ein Signal, so wird diese in den Zustand "READY" übergeführt, sie wird noch nicht gestartet. Ansonsten wird das Signal im Signal-Flag der Task gespeichert.

Rückgabewert 0 falls das Signal erfolgreich gesetzt wurde, 1 falls das Signal bereits gesetzt war, -1 falls die adressierte Task nicht existiert.

vergleiche isr_send_signal, os_clear_signal, os_wait, os_wait_signal

Beispiel

#include <rtx166t.h>

void signal_func (void) _task_ 2

{

...

os_send_signal (8); /* signal an task 8 */

...

}

void tst_os_send_signal (void) _task_ 8

{

...

os_send_signal (2); /* signal an task 2 */

...

}

Page 69: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

isr_send_signal

19.3.2010 Embedded Systems Seite 21

Prototyp int isr_send_signal (int task_id); Beschreibung Die Funktion isr_send_signal sendet ein Signal an die Task

task_id. Wartet die adressierte Task bereits auf ein Signal, so wird diese in den Zustand "READY" übergeführt, sie wird noch nicht gestartet. Ansonsten wird das Signal im Signal-Flag der Task gespeichert.

Achtung: Diese Funktion darf nur aus Interrupt-Service-Routinen aufgerufen werden!

Return Value Die Funktion isr_send_signal gibt folgenden Wert zurück:0 das Signal wurde erfolgreich gesetzt1 das Signal war bereits gesetzt -1 die adressierte Task existiert nicht.

See Also os_clear_signal, os_send_signal, os_wait, os_wait_signal,Example#include <rtx166t.h>void tst_isr_send_signal (void) interrupt MY_ISR{

isr_send_signal (8); /* Signal an Task 8 */}

Page 70: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

os_running_task_id

Prototyp int os_running_task_id (void);

Beschreibung Die Funktion os_running_task_id gibt die task_id der aktuell aktiven Task zurück.

Rückgabewert Nummer (task_id) der aktiven Task, der Wertebereich ist 0..31.

Beispiel

#include <rtx166t.h>

void tst_os_running_task (void) _task_ 3

{

int tid;

...

tid = os_running_task_id (); /* tid = 3 */

}

19.3.2010 Embedded Systems Seite 22

Page 71: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

os_wait

Prototyp int os_wait (

int event_sel, /* Ereignis, auf das gewartet wird */

unsigned int ticks, /* Anzahl Timerticks die zu warten sind */

int dummy); /* nicht benutzter Parameter */

Beschreibung:

Die Funktion os_wait hält die Ausführung der aktiven Task an und wartet auf ein oder mehrere Ereignisse. Diese können sein der Ablauf eines Intervalls, das Auftreten eines Time-Out oder das Signal aus einer anderen Task bzw. Interrupt-Service-Routine. Der Parameter event_sel legt das bzw. die Ereignisse fest, auf die zu warten ist. Eine beliebige Kombination der folgenden Konstanten ist dafür zulässig:

Ereignis Beschreibung

K_IVL Warten auf das Intervall, das durch ticks festgelegt wird.

K_SIG Warten auf ein Signal.

K_TMO Warten auf den Time-Out, der durch ticks festgelegt wird.

19.3.2010 Embedded Systems Seite 23

Page 72: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

os_wait -2

Ereignisse können durch ein logisches ODER ('|') verknüpft werden. Z.B. K_TMO | K_SIG bedeutet, dass die Task wartet bis entweder der Time-Out auftritt oder ein Signal eintrifft.

Der Parameter ticks legt die Anzahl Timer-Ticks fest, um ein Intervall zu definieren (K_IVL - Zeit seit letztem os_wait) oder den Time-Out (K_TMO - Zeit ab aktuellem Aufruf) zu fixieren.

Der Parameter dummy ist ein Platzhalter zur Kompatibilität von RTX166 Tiny mit der RTX166 Vollversion

Rückgabewert Tritt eines der spezifizierten Ereignisse auf, so wird die Task in den Zustand READY übergeführt. Sobald daraufhin die Task zur Ausführung kommt, liefert die Funktion einen der folgenden Werte zurück, der anzeigt welches Ereignis den Wartezustand beendet hat:

Ereignis Beschreibung

SIG_EVENT Ein Signal ist eingetroffen.

TMO_EVENT Der Time-Out oder das Intervall ist abgelaufen.

NOT_OK Der Aufrufparameter event_sel ist ungültig.

19.3.2010 Embedded Systems Seite 24

Page 73: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

os_wait_signal

Prototyp int os_wait_signal (void);

Beschreibung Die Funktion os_wait_signal stoppt die aktuelle Task und wartet auf das Signal aus einer anderen Task bzw. Interrupt-Service-Routine.

Rückgabewert Durch das Eintreffen eines Signals wird die Task in den Zustand READY übergeführt. Kommt daraufhin die Task zur Ausführung, liefert os_wait_signal den Wert SIG_EVENT zurück und zeigt damit an, dass ein Signal eingetroffen ist.

Beispiel:

#include <rtx166t.h>

void tst_os_wait_signal (void) _task_ 5

{

while (1) {

os_wait_signal (); /* Warte auf ein Signal */

}

}19.3.2010 Embedded Systems Seite 25

Page 74: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

os_delay_task

Prototyp int os_delay_task (unsigned int ticks);

Beschreibung Die Funktion os_delay_task hält die Ausführung der aktiven Task für die Dauer des angegebenen Zeitintervalles an. Der Parameter ticks gibt die Anzahl der Timer-Ticks an, die bis zum Time-Out Ereignis (K_TMO) vergehen sollen.

Rückgabewert Tritt der Time-Out auf, so tritt die Task in den Zustand "READY" ein. Sobald die Task wieder zur Ausführung kommt, gibt os_delay_task den Wert TMO_EVENT zurück und zeigt damit an, dass der Time_Out abgelaufen ist.

#include <rtx166t.h>

void tst_os_delay_task (void) _task_ 3 {

while (1) {

os_delay_task (100); /* Verzoegere um 100 Timerticks */

}

}

19.3.2010 Embedded Systems Seite 26

Page 75: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 1

164CL

XTAL

C166-Core

Port 5 Port 3

CPU

Dua

l Por

t

RAM

2 KByte

Interrupt Controller

Watchdog

Peripheral Data

External Instr./Data

Instr./Data

USART

ASC

BRG

GPT1

16

16

16

1632

PEC

64 KROM

(C164 CI-8RM)

orOTP

(C164CI-8EM)

Interrupt Bus

Data

Data

Port 8

BRG

SSC

Sync. Channel(SPI)

PLL-Oscillatorprog. Multiplier:

0.5; 1; 1.5; 2;2.5; 3; 4; 5

XB

US

(16-

bit N

ON

MU

X D

ata

/ A

ddre

sses

)

T2

T4

T3

13 ext. IRFull-CANInterfaceV2.0Bactive

RTC

10-BitADC

Tim

er 7

Tim

er 8

Port 1

Tim

er 1

3

1 Comp.Channel

3/6 CAPCOMChannels

CAPCOM6 Unit forPWM Generation

8 9 4 16

6

16

Port 4

8-Channels

External Bus8/16 bit

MUX only&

XBUSControl

CAPCOM 2

8-Channel

C164CI - Die Peripherie

P4.6/ CAN TxD

P4.5/ CANRxD

Por

t 0

Page 76: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 2

Überblick zu den I/O-Ports

• Die Port-Anschlüsse bilden die Verbindung zur Aussenwelt

– der C164CI besitzt 59 Pins für Port-Anschlüsse:• 4 8-Bit-Ports: PORT0 als P0H und P0L; PORT1 als P1H und P1L.• 1 9-Bit-Port: PORT3 als P3.• 1 6-Bit-Port: PORT4 als P4.• 1 4-Bit-Port: PORT8 als P8.• 1 8-Bit-Port. PORT5 als P5 nur als Eingang verwendbar.

• Alle Port-Anschlüsse können getrennt bitadressiert werden.

• Alle I/O-Leitungen sind unabhängig voneinander mittels eines Richtungsauswahlregisters als Ein- bzw. Ausgang programmierbar.

• Die Port-Anschlüsse sind mit einer oder mehreren alternativen Funktionen ausgestattet (Peripherie oder BUS).

• Jeder Port ist mittels schneller Dioden geschützt.• Einige Ports besitzen zusätzlich die Möglichkeit als gepufferter “Open-

Drain”-Ausgang konfiguriert zu werden (P3 und P8 beim C164CI).• Einige Ports ermöglichen neben der Qualifizierung der Eingangspegel

als TTL-Signal eine spezielle Schwellenbewertung als CMOS-Pegel (P3 und P8 beim C164CI).

Page 77: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 3

Überblick zur Portstruktur

DirectionRegister

AlternateOutput

AlternateEnable

Read

Clock

Alternate Input

Inte

rna

l B

us

Buffer

Mux

Mux

OutputLatch

Write

Buffer

InputLatch

Open DrainControl

VCC

Vss

Port Pin

� � � � � � � � � �

Ports Dave

Page 78: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 4

General Purpose Timer 1 (Kurzfassung)

• Drei 16-Bit Vor-/Rückwärts-Zähler:1 Core Timer(T3) und 2 Auxiliary Timers (T2,T4)

• Takteingangssignale:

– Timer Modus: Interner Takteingang mit Vorteiler bis zu 2.5 MHz / 400 ns; der Takt kann mit einem externen Signal verknüpft werden.

– Counter Modus:Externer Takt bis zu 1.25 MHz.

– Kaskadieren des Core-Timer mit jedem der Aux.-Timer (33-Bit timer).

– Zählrichtung kann mittels Eingangssignal gewechselt werden.

• Ausgangssignale

– Interrupt-Generierung und Signalwechsel durch den Core Timer T3.

– Interrupt-Generierung durch die Auxiliary Timer T2 und T4.

• Reload:Der Core Timer kann mit dem Inhalt eines beliebigen Auxiliary Timer geladen werden.

• Capture:Der Inhalt des Core Timer kann in jeden der Auxiliary Timer übernommen werden.

Page 79: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 5

T2 / T3 /T4 Over-/UnderflowClocka) Drei unabhängige 16 Bit-

Timer / Counter

T2 / T4Over/-Underflow

b) 32 oder 33 Bit-Timer/Counter T3Clock

T3 Outputtoggle latch

T2 / T4

T3 Over-/UnderflowClock

Capture-Trigger

T2 / T4

d) 16 bit Timer / Counterwith Capture -Register

T2 / T4c) 16 Bit-Timer / Countermit Reload-Register

T3 Over-/UnderflowClock

Reload-Trigger

Betriebsarten im Überblick

Page 80: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

GPT1-Unit in Timer Mode

Mit Hilfe der 16Bit-Timer 2, 3, 4 können unabhängig voneinanderfolgende Zeiten realisiert werden. Die maximale Auflösung der Timer ist 0.4µs, was einer Timer-Eingangsfrequenz von 2.5MHz (20MHz/8) entspricht.Folgende Werte können eingestellt werden (siehe auch Dave):

Prescaler resolution overrun

fcpu/8 0.4µs 26.21 ms

fcpu/16 0.8µs 52.42 ms

fcpu/32 1.6µs 104.85 ms

fcpu/64 3.2µs 209.71 ms

fcpu/128 6.4µs 419.43 ms

fcpu/256 12.8µs 838.86 ms

fcpu/512 25.6µs 1677.72 ms (1.6s)

fcpu/1024 51.2µs 3355.24 ms (3.35s)

27.9.2009 Embedded Systems Seite 6

Page 81: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 7

GPT 1 Funktionsprinzip (20 MHz)

CPUfCPU*2-n

CPUfCPU*2-n

mit: n = 3...10

GPT1 Dave

Gate

InputMode

ControlCore Timer T3

ToggleLatch

INTRFlag

INTRFlag

Gate

InputMode

ControlAux Timer T2 / T4

Capture

RunEnable

INTRFlag

INTRFlag

Gate

InputMode

ControlAux Timer T2 / T4

up / down

RunEnable

INTRFlag

INTRFlag

Reload Run

Enable CPUfCPU*2-n

33-Bit Kaskadierung

up / down

up / down

P5.7 / T4INP5.6 / T2IN

(max. 1.25 MHz)

P5.7 / T4INP5.6 / T2IN

(max. 1.25 MHz)

P3.6 / T3IN(max. 1.25 MHz)

P5.4/T2EUDP5.5/T4EUD

P5.4/T2EUDP5.5/T4EUD

P3.4/T3EUD to CAPCOM2Timer T7, T8

Page 82: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 8

Asynchrone / Synchrone Serielle Schnittstelle(USART-20MHz)

• Eigener Baudraten-Generator

• Asynchrone Betriebsart mit max 625 KBaud Übertragungsrate

– Vollduplex (gleichzeitiges Senden und Empfangen)

– Programmierbare Eigenschaften:• 1 oder 2 Stoppbits,

• 7 oder 8 Datenbits

• Ungerade bzw. gerade Parität

• Fehlererkennung (Parity, Overrun, Framing)

• Synchrone Betriebsart mit max. 2.5 MBit/sec Übertragungsrate.

– Halbduplex-Betrieb - nur Senden oder Empfangen möglich.

– Einfach erweiterbar durch externe Schieberegister.

– Overrun-Fehler werden erkannt.

Page 83: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 9

INTRFlag

TransmitS0TIR

INTRFlag

TransmitS0TIR

INTRFlag

ReceiveS0RIR

INTRFlag

ReceiveS0RIR

INTRFlag

ERROR

INTRFlag

ERROR

zum internen BUS

Control Register

Serial Port

Control

Sende-Schieberegister

Empfangs -Schieberegister

Empfangs-Puffer

vom internen BUS

Schiebe Takt

Asynchron/

Synchron

USART Blockdiagramm

P3.11 / RxD0

P3.10 / TxD0

Baudraten-GeneratorCPU

Clock

Sende-Puffer

Seri Dave

INTR FlagTransmitBufferS0TBIR

INTR FlagTransmitBufferS0TBIR

Page 84: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 10

USART Datenrahmen und Interrupts

StartBit

D0LSB

D1 D2 D3 D4 D5 D6 D7/Parity

(1tes)StopBit

2tesStopBit

8-Bit Datenrahmen der asynchronen Übertragung

SO

TIR

SO

TIR

SO

TIR

SO

RIR

SO

RIR

SO

RIR

SO

TB

IR

SO

TB

IR

SO

TB

IR

Sta

rt

Sta

rt

Sta

rt

Sto

p

Sto

p

Sto

p

Asynchrone Betriebsart

Page 85: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Asynchrones Senden/Empfangen

Typisch ist in beiden Betriebsarten die Doppelpufferung (siehe Folie).Um ein Byte im Asynchron Mode zu senden wird es über den Datenbus in den Sende-Puffer (Transmit Buffer Register) übertragen. Sobald das Sende-Schieberegister (Transmit Shift Register) leer ist, wird der Inhalt des Send-Puffers in das Sende-Schieberegister übernommen. Dadurch wird das Transmit Buffer Interrupt Request Flag S0TBIR gesetzt. Das Transmit-Interrupt-Request-Flag S0TIR wird gesetzt, bevor das letzteBit des Frames (1. oder 2. Stop -Bit) aus dem Transmit-Shift-Register geschoben wird.

Wenn das letzte Stop-Bit empfangen wurde, wird der Inhalt des Empfangs – Schieberegisters (Receiver Shift Registers) in den Empfangspuffer (Receive Data Register) übertragen. Gleichzeitig wird das Receiver Interrupt Request-Flag S0RIR gesetzt.

Mit Hilfe dieser 3 Interrupt Flags kann das Senden und Empfangen im Polling Mode und Interrupt Mode realisiert werden. Siehe hierzu auch Vorlesungs-Beispiele. Beim Auftritt eines Fehlers (Framing,Parity, overrun) werden ebenfalls Interrupt-Flags gesetzt.

27.9.2009 Embedded Systems Seite 11

Page 86: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

2.3.2016 Embedded Systems Seite 12

Analog/Digital-Wandler (ADC - 20MHz)

• 10-Bit ADC Arbeitsweise ist die sukkzessive Approximation– 9.7 µs Wandlungsdauer (programmierbar)– Integrierter Sample & Hold-Schaltkreis (1.6 µs Sample-Zeit).– 8 gemultiplexte Eingangskanäle.– Automatische Selbstkalibrierung nach jeder Wandlung.

• Flexible Betriebsarten– Fixed Channel Single Conversion (FIXED)

Ein bestimmter Kanal wird einmal gewandelt

– Fixed Channel Continuous Conversion (FIXED_CONT)Ein bestimmter Kanal wird kontinuierlich gewandelt

– Auto Scan Single Conversion (SCAN)Eine Sequenz von Kanälen (beginnend mit dem höchsten biseinschließlich Kanal 0) wird einmal gewandelt

– Auto Scan Continuous Conversion (SCAN_CONT)Eine Sequenz von Kanälen wird kontinuierlich gewandelt

Page 87: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Fixed Channel Conversion Modes

Es wird jeweils ein fix zugeordneter Eingangskanal (ADCH) gewandelt. Nach jeder Wandlung wird ein Interrupt Request generiert und das Wandlungsregister mit der zugehörigen Kanalnummer im Register ADDAT gespeichert.

• Im Single Conversion Mode wird der ADC nach einer Wandlung angehalten und die Bits ADC busy (ADBSY) und ADC Start (ADST) werden zurückgesetzt. Im Continuous Conversion Mode startet der ADC automatisch nach jeder Wandlung mit einem weiteren Zyklus.Dies kann dazu führen, dass ein Wandlungsergebnis überschrieben wird, wenn die CPU das Wandlungsergebnis nicht rechtzeitig ausliest. Um dies zu verhindern, kann der Wait for Read Control Modus

programmiert werden. Hierbei wird der ADC nach einer Wandlung solange angehalten, bis das letzte Wandlungsergebnis ausgelesen wurde.

27.9.2009 Embedded Systems Seite 13

Page 88: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Auto Scan Conversion Modes

In dieser Betriebsart wird jedesmal eine ganze Sequenz von analogen Kanälen der Reihe nach analog-digital gewandelt. Im Bitfeld ADCH wird jener Kanal spezifiziert mit der die Wandlungs-Sequenz beginnt; sie endet mit Kanal Null. Nach jeder einzelnen Wandlung wird ein Interrupt Request generiert, der angibt, dass im ADDAT Register ein aktuelles Wandlungsergebnis steht. Auch in dieser Betriebsart wird zwischen einem Single und einem Continuous Conversion Mode unterschieden. Das Verhalten entspricht jenem bei der Fixed Channel Conversion mit dem Unterschied, dass hier jeweils eine Sequenz von Eingangskanälen gehandhabt wird.

Datentransfer mit PEC (Peripheral Event Controller)

Um möglichst schnell Daten aus dem AD-Wandler in ein Array zur späteren Verarbeitung zu speichern kann zum Datentransfer der PEC verwendet werden. Hierbei kann eine programmierbare Anzahl von Wandlungsergebnissen ohne CPU-Unterstützung transferiert werden.Der End-Of- Conversion-Interrupt wird in diesem Fall erst nach der Übertragung generiert. (Siehe hierzu auch Interrupt/PEC-Modus)

2.3.2016 Embedded Systems Seite 14

Page 89: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 15

Analog-Eingänge

Kanalauswahl und Betriebsartenregister

ReferenzSpannung

8KanalAnalogMUX

Sample

&

Hold

INTRFlag

INTRFlag

INTRFlag

INTRFlag

10-Bit A/D-Wandler - Blockschaltbild

10 BitA/D-Konverter

mit Sukkzessiver

Approximation

Kanal

Information

Kanal

SelektionResultat-Register

P5.0 / AN0...

P5.7 / AN7

Resultat-Register

bei Channel Injection Modus

VAREF

VAGND

Konversions-Kontrolle

Adcc2 Dave

Page 90: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

ADC Control Register (ADCON)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0ADCTC ADSTC AD

CRQADCIN

ADWR

ADBSY

ADST

- ADM - ADCH

r/w r/w r/w r/w r/w r r/w - r/w - r/w

27.9.2009 Embedded Systems Seite 16

ADCON (FFA0H), SFR, bit addressable, Reset Value 0000H

Bit 2

Bit 1

Bit 0

Analog Channel Input:

0 0 0 Channel 0, Port 5.00 0 1 Channel 1, Port 5.10 1 0 Channel 2, Port 5.20 1 1 Channel 3, Port 5.31 0 0 Channel 4, Port 5.41 0 1 Channel 5, Port 5.51 1 0 Channel 6, Port 5.61 1 1 Channel 7, Port 5.7

ADCH: ADC Analog Channel Input Selection: ADM:ADC Mode Selection

Bit 5 Bit 4 Conversion modes of the analog/digital converter:

0 0 Fixed Channel Single Conversion0 1 Fixed Channel Continuous

Conversion1 0 Auto Scan Single Conversion1 1 Auto Scan Continuous Conversion

Page 91: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

ADC Control Register (ADCON) -2

ADST: ADC Start Bit, starts the A/D-Conversion when it is set to logical "1" !

ADBSY: ADC Busy Flag, shows, if a conversion is in progress on (ADBSY = logical "1")!

ADWR: ADC Wait for Read Control, if this Bit is set, the next conversion is started not before the previous conversion result is read from result register. In this case no conversion results are lost by being overwritten with new conversion results!

ADCIN: ADC Channel Injection Enable, when this bit set, the Injection Mode is enabled. In injection mode the conversion can be started immediately independent of the currently set operation mode. The injection mode „inserts“ a conversion in the normal cycle, when e.g. the result of a channel is urgently needed. In injection mode also the ADWR-Bit has to be set. The channel to be converted is set in the ADDAT2 Register.

ADCRQ: ADC Channel Injection Request Flag, starts the injection conversion if it is set to "1"!

ADSTC: ADC Sample Time Control:

ADCTC: ADC Conversion Time Control:

27.9.2009 Embedded Systems Seite 17

Page 92: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

AD Datenregister (ADDAT)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

- CHNR - - ADRESr/w - - r/w

2.3.2016 Embedded Systems Seite 18

ADDAT (FEA0H / 50H), SFR, Reset Value 0000H

ADRES: A/D Conversion result, 10 bit result of the channel with number CHNR!

CHNR: Channel number, the number of the channel the 10 Bit conversion results ADRES belongs to!

Further registers of the Analog/Digital-Converter:

P5 (FFA2H), Reset Value 0000H Port 5 Data Register (only Input!) P5DIDIS (FFA4H), Reset Value 0000H, Port 5 Digital Input Control

ADCIC (FF98H, Reset Value 0000H A/D-Converter Interrupt Control Register (End of Conversion)

ADEIC (FF9AH Value 0000H A/D-Converter Interrupt Control Register(Overrun Error / Channel Injection)

Page 93: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Capture / Compare Unit 2

Die Capture/Compare Unit 2 wird für die Zeitmessung bei digitalen Signalen und zur Pulsweitenmodulation verwendet.Die Capture/Compare Unit 2 besteht aus den zwei 16-Bit Timern T7 und T8, sowie den 8 Capture/Compare -Registern CC16 - CC24.

Für die Zeitmessung ist der Capture-Mode vorgesehen.

Capture bedeutet, dass der Wert des zugeordneten Timers aufgrund eines externen Signals (CCxIO) im Capture/(Compare) -Register gefangen wird.

Für die Erzeugung von PWM-Signalen ist der Compare-Mode vorgesehen.

Compare bedeutet, dass der im (Capture/)Compare Register gespeicherte Wert laufend mit dem zugeordneten Timer verglichen wird. Bei Gleichstand wird z.B. ein Signal am CCxIO – Ausgang generiert.

Um den diversen Anforderungen gerecht zu werden, stehen 4 verschiedene Modi zur Verfügung, auf die später noch genauer eingegangen wird.

2.3.2016 Embedded Systems Seite 19

Page 94: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 20

Capture / Compare Unit 2 -Details

• Zwei 16-Bit Timer (T7,T8), mit je einem 16-Bit Reload- Register.– Timer: Interner Takt mit Vorteiler bis zu 2.5 MHz (400ns).– Counter: Externer Takteingang an T7IN bis zu 1.25 MHz, das

T3-Ausgangssignal (GPT1) kann als Takteingang benutzt werden.

• Ein Registerfeld aus acht 8-Bit Capture/Compare Registern.– Einzeln programmierbar für die Capture- oder eine der

Compare-Betriebsarten.– Einzeln den Timern T7 oder T8 zuordenbar.

• Verschiedene Compare-Betriebsarten zur flexiblen Erzeugung pulsdauermodulierter Signale (Pulse Width Modulation - PWM).– Ausgangs-Pin verändert seinen Signalzustand bei positivem

Vergleich (Compare).– 1 oder 2 Compare-Register wirken auf einen Ausgangs-Pin.– 1 or mehrere Compare-Ereignisse können in einer Periode des

Timers auftreten.– Betriebsarten, die nur Interrupts auslösen, sind möglich.

• Capture-Betriebsarten mit wählbarer Eingangsflanke.

Page 95: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Capture Mode

2.3.2016 Embedded Systems Page 21

InterruptRequestCCxIR

EdgeSelection

Capture Reg CCx

Timer TyClock Input

CCxIO

CCMODx InterruptRequestTyIR

Im Capture Mode wird bei Auftreten eines Flankenwechsels - wobei die Flankenart programmiert werden kann- der Inhalt des zugeordneten Timers Ty in das entsprechende Capture Register CCx kopiert.Hierbei wird zusätzlich ein Interrupt Request CCxIR generiert.

Page 96: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Compare Modi

2.3.2009 Embedded Systems Page 22

Compare Reg CCx

Clock

reset

Comparator

Timer TyCCMODx Interrupt request

CCxIR

setPortLatch

CCxIO

In den Compare Modes werden laufend die Werte des Compare Register CCx und des zugeordneten Timers Ty verglichen. Bei Gleichheit werden je nach Modi verschiedene Aktionen ausgeführt werden. Im Mode 3 wird z.B. das Ausgangssignal CCxIO gesetzt und das zugehörige CCxIR-Bit gesetzt. Beim Uberlauf von Timer Ty wird das Signal CCxOI wieder zurückgesetzt.

(MOD3)

Page 97: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 23

Mode 0: nur die INTR Flags werden gesetzt

Mode 1:die INTR Flags werden gesetzt, der Zustand des Port-Pin wird invertiert

Co

mp

are

INT

R

Co

mp

are

INT

R

Port LevelP8.x

CAPCOM2: Compare Modi

• Modus 0 und 1: Mehrere Compare-Ereignisse sind in einer Timer-Periode möglich.

Neuer

Reload Wert

Compare Wert 2

Compare Wert 1

FFFF

Reload Wert

Wert 1 Wert 2

wird geändert zu

Compare Register X:

• Modus 2 und 3: Lediglich ein Compare-Ereignis findet innerhalb einer Timer-Periode statt.

Mode 2: nur die INTR Flags werden gesetzt

Mode 3:die INTR Flags werden gesetzt, der Zustand des Port-Pin wird gesetzt bei Compare und zurück-gesetzt bei Timer-Überlauf C

om

pa

reIN

TR

Tim

erIN

TR

Port Level P8.x

FFFF

Compare Wert 2

Compare Wert 1Reload Wert

Neuer

Reload Wert

wird geändert zu

Wert 1 Wert 2Compare Register X:

Page 98: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 24

CAPCOM2: Doppelregister - Compare

• Zwei Compare-Register wirken auf einen Port Pin.

• Die Betriebsart wird durch spezielle Kombination der beiden Modi 0 und 1 realisiert.

Wert Y

Compare Wert Y

Compare Wert X

FFFF

Reload Wert

Neuer

Reload WertWert XBank1 Compare Register X:

(programmiert für Modus 1)

und das zugeordnete

Bank2 Compare Register Y:(programmiert für Modus 0)

Timer INTR

Port Level P8.x

Compare INTR

Reg. YCompare INTR

Reg. X

Adcc2 Dave

Page 99: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 25

CAPCOM2 – Zusammenfassung

Flankenauswahlfür

Capture Input

InputMode

Control

T7 Reload T7 Reload

RunRunEnable

Clk max.Clk max.2.5 MHz

T8 Reload T8 Reload

Timer T8 Timer T8

Timer T7 Timer T7

Mode Control

INTRFlag

INTRFlag

INTRFlag

INTRFlag

INTRFlag

INTRFlag

INTRFlag

INTRFlag

T3-Overflow

InputMode

Control

Clk maxClk max2.5 MHz

Für die Kanäle24 bis 27 sind nurCapture-Eingangs-signale möglich

Kanal 27 kann “ADC Channel Injection” triggern

• Capture Mode• Compare Mode 0• Compare Mode 1• Compare Mode 2• Compare Mode 3• Double Register

Compare Mode 0

P1H.3 / T7IN

P8.0 / CC16IO

P8.1 / CC17IO

P8.2 / CC18IO

P8.3 / CC19IO

P1H.4 / CC24IO

P1H.5 / CC25IO

P1H.6 / CC26IO

P1H.7 / CC27IO

acht 16 Bit

Capture/CompareRegister

CC16-CC19

CC24-CC27

RunRunEnable

Für die Kanäle16 bis 19 sind

Capture-Eingangs-und Compare-

Ausgangs-signale möglich

T3-Overflow

Page 100: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 26

164CL

XTAL

C166-Core

Port 5 Port 3

CPU

Dua

l Por

t

RAM

2 KByte

Interrupt Controller

Watchdog

Peripheral Data

External Instr./Data

Instr./Data

USART

ASC

BRG

GPT1

16

16

16

1632

PEC

64 KROM

(C164 CI-8RM)

orOTP

(C164CI-8EM)

Interrupt Bus

Data

Data

Port 8

BRG

SSC

Sync. Channel(SPI)

PLL-Oscillatorprog. Multiplier:

0.5; 1; 1.5; 2;2.5; 3; 4; 5

XB

US

(16-

bit N

ON

MU

X D

ata

/ A

ddre

sses

)

T2

T4

T3

13 ext. IRFull-CANInterfaceV2.0Bactive

RTC

10-BitADC

Tim

er 7

Tim

er 8

Port 1

Tim

er 1

3

1 Comp.Channel

3/6 CAPCOMChannels

CAPCOM6 Unit forPWM Generation

8 9 4 16

6

16

Port 4

8-Channels

External Bus8/16 bit

MUX only&

XBUSControl

CAPCOM 2

8-Channel

C164CI - Taktverteilung

P4.6/ CAN TxD

P4.5/ CANRxD

Por

t 0

Page 101: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 27

Oszillator Eigenschaften

• Der Oszillator startet bei einer Versorgungsspannung von 3 V.

• Sicherer Betrieb bis zu einer Versorgungsspannung von 2.7 V.

• Minimale Leistungsaufnahme bei 3 V Versorgungsspannung.

• Quarz-Frequenzbereich: 3.5 MHz ≤ fosc ≤ 16 MHz.

• Frequenzbereich mit ext. Oszillator: 1 MHz ≤ foscillator ≤ 40 MHz.

• Phased Locked Loop (PLL) für niedrige Eingangsfrequenzen.

• Slow Down Divider für die Reduktion der Leistungsaufnahme.

• Getrennte Takttreiber für unterschiedliche Systembereiche.

Page 102: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 28

System-Taktversorgung

Software

Slow Down Divider (SDD)

2:1

fCPU

PLLprog. Multiplier

1, 1.5, 2, 2.5, 3, 4, 5

OWD

MUX

Hardware-Einstellung während Reset

MUX

Direct Drive

MUX

OscXTAL

5 Bit Vorteiler

32:1RTC

Interfaces

Peripherals

CPU

IdlePower-Down

PCDDIS

Power-Down

PDCON

Page 103: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 29

Verminderung der Leistungsaufnahme Überblick

• Design– Optimierte Oszillatorschaltung

– Optimierte Taktverteilung

• Power Management– Betriebsarten zur Verminderung der Leistungsaufnahme:

Idle, Power Down - eigene Maschinenbefehle

– Flexible Taktversorgung der Periphie

– “Slow Down”-Betriebsart

• Besonderheit– Real-Time Clock mit Interrupt zum zyklischen Aufwecken

Page 104: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 30

Power Management

RTC

PLL

EXIN

ASC

SSC

� � ��

fCPU

fPeripherieSlow Down Devider

System Clock Generation Peripherals

ADC

GPT1

CAPCOM2

CAN

� � � � � � � � �

� � � � � � � � � �

� � �

WDT

CAPCOM6

� � � Clock DriverRTC

Power Down

� � � InterfaceClock Driver

Clock DriverCPU

OscillatorOscillator

XTAL

� � �� � �

� � ��

� � ��

� � ��

� � ��

� � ��

� � �

PeripheralClock Driver

� � ��

� � ��

fSystem

fRTC

Interface Peripherals

Idle Mode

Page 105: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 31

Slow Down - Betrieb

• Slow Down Divider (SDD): 5-Bit Reload-Register für einen programmierbaren Vorteiler mit Faktoren 1 bis 32

– Erniedrigt die CPU-Frequenz (z.B. 16 MHz / 32 = 0.5 MHz)

• Ermöglicht eine deutliche Reduktion der Leistungsaufnahme

• Anmerkungen: – am Ausgang CLKOUT liegt ebenfalls das reduzierte

Frequenzsignal an

– der Oszillator-Watchdog läuft in dieser Betriebsart nicht - die PLL wird angehalten

• Um serielle Kommunikation im Slow-Down-Betrieb zu ermöglichen, ist eine geeignete Quarzfrequenz auszuwählen

Page 106: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 32

Flexible Freigabe der Peripherie

• Die Peripherie ist in Gruppen unterteilt, die über eigene Takttreiber verfügen:

– Interfaces: ASC0, SSC, Fast Ext. Interrupts und WDT (immer aktiv)

– PER: alle anderen peripheren Module und der Interrupt Controller

– RTC: Real Time Clock

• Der Takttreiber der Gruppe "PER" kann wahlweise aktiv oder inaktiv geschaltet werden, dies wirkt auf alle angeschlossenen Peripheriemodule.

• Jedes Peripheriemodul kann wahlweise per Software freigegeben oder gesperrt werden.

• Die Register der “stillgelegten” Peripherie können gelesen und beschrieben werden - Ausnahme: XBUS Peripherals.

• Die Peripherie setzt nach erneuter Freigabe ihren Betrieb fort.

• Deaktivieren ist sowohl im “aktiven Betrieb” als auch in der “Idle-Betriebsart” möglich.

SFR

Page 107: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 33

Zusammenfassung: Power Management

• Möglichkeiten im “Aktiven Betrieb”:– Freigabe/Sperren des Takttreibers der Gruppe "Peripherie” (PER)

ist möglich

– Freigabe/Sperren des Takttreibers einzelner Resourcen ist möglich

– “Slow Down”-Betrieb kann aufgenommen werden

• Eigenschaften im “Idle Mode”– Die CPU arbeitet nicht

– Die Möglichkeiten des “Aktiven Betriebs” können zuvor geeignet eingestellt werden.

• Eigenschaften des “Power Down Mode”– CPU, "Interface"- Gruppe und "Peripherie"-Gruppe sind außer

Betrieb

– RTC und Oszillator können wahlweise weiterbetrieben werden

– Die Port-Ausgangstreiber können wahlweise ihren Betrieb aufrechterhalten

Page 108: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 34

Power Consumption

Active Mode

Idle Mode

� � � � � � � � � � � � ! � � � " # $ % % & ' � ( $ ) � # $ % %

� � � � � � � � � � � � ! � � � " # $ * & ' � ( $ ) � # $ % %

� � � � � � � � � � � � ! � � � " # $ % % & ' � ( $ ) � # $ *

� � � � � � � � � � � � ! � � � " # $ * & ' � ( $ ) � # $ *

Active Mode and disabled "PER" group clock driver

Idle Mode and disabled "PER" group clock driver

Flexible Peripheral Management

Flexible Peripheral Management

Active or Idle Mode

Active or Idle Mode

S

L

O

W

D

O

W

N

Power Consumption

Geschätzte Leistungsaufnahme im Überblick

Page 109: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 35

164CL

XTAL

C166-Core

Port 5 Port 3

CPU

Dua

l Por

t

RAM

2 KByte

Interrupt Controller

Watchdog

Peripheral Data

External Instr./Data

Instr./Data

USART

ASC

BRG

GPT1

16

16

16

1632

PEC

64 KROM

(C164 CI-8RM)

orOTP

(C164CI-8EM)

Interrupt Bus

Data

Data

Port 8

BRG

SSC

Sync. Channel(SPI)

PLL-Oscillatorprog. Multiplier:

0.5; 1; 1.5; 2;2.5; 3; 4; 5

XB

US

(16-

bit N

ON

MU

X D

ata

/ A

ddre

sses

)

T2

T4

T3

13 ext. IRFull-CANInterfaceV2.0Bactive

RTC

10-BitADC

Tim

er 7

Tim

er 8

Port 1

Tim

er 1

3

1 Comp.Channel

3/6 CAPCOMChannels

CAPCOM6 Unit forPWM Generation

8 9 4 16

6

16

Port 4

8-Channels

External Bus8/16 bit

MUX only&

XBUSControl

CAPCOM 2

8-Channel

C164CI - Die Peripherie

P4.6/ CAN TxD

P4.5/ CANRxD

Por

t 0

Page 110: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 36

Real-Time Clock (RTC)

• Zählt Zeiteinheiten - Time Ticks

• Die Ticks werden, unabhängig vom CPU-Takt, durch die externe Quarzfrequenz und einen programmierbaren Vorteiler festgelegt

• Zyklischer zeitbasierender InterruptDie Zykluszeit kann über ein Reloadregister festgelegt werden

• Zusätzliche FunktionDas RTC-Register (32 Bit) und der programmierbare Vorteiler können zu einem 48-Bit Zeitgeber kaskadiert werden

Page 111: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 37

Quarz oderexterner

Oszillator

Zeitdauer zwischen zwei Interrupts

Oszillatorfrequenz Minimalzeit Maximalzeit Mögliche RTC-Zeitbasis

1 s4 MHz 0.064 ms 4.1 s5 MHz 0.052 ms 3.35 s 1 s8 MHz 0.032 ms 2 s 1 s

10 MHz 0.026 ms 1.6 s 1 s12 MHz 0.022 ms 1.3 s 1 s16 MHz 0.016 ms 1 s 1 s20 MHz 0.013 ms 0.8 s 0.1 s24 MHz 0.011 ms 0.6 s 0.1 s

externer Oszillator

RTC - Blockdiagramm

4:1 RTC

Takttreiber

8:1

VorteilerOszillator

XTAL

T14

16-bit Timer

T14-Reload

Trim-Register

Programmierbarer Vorteiler

INTRFlag

des RTC

INTRFlag

des RTC

+ , - . / 0 1+ , - 2 3 4

32-bit Timer

SFR

Page 112: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 38

RTC-basierender zyklischer Interrupt

Anwendung:

• Zeitgesteuertes Abwechseln von “Aktiven Betrieb” und “Idle Betrieb”

• Während des aktiven Betriebs bleiben alle ungenutzten Peripheriemodule gesperrt (Flexible Peripheral Management).

• Verlassen des “Idle-Betriebs” und Übergang zum aktiven Betrieb:

– durch Eintreffen des RTC-Interrupt

– durch Eintreffen eines “externen” Ereignisses (ASC, SSC, CAN, EXIN).

IDLE MODE

1 Zyklus

Aktiver Modus mit “FlexiblePeripheral Management”

Aktiver Modus mit “FlexiblePeripheral Management”

Page 113: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 39

Watchdog Timer (WDT) - 20 MHz

• Überlauf eines 16-Bit-Zählers führt zu:– Systemreset

– Aktivieren des Ausgangssignals RSTOUT

– Setzen des zugeordneten Kontrollbits

– WDT bleibt weiter aktiv

• Programmierbarer Eingangstakt abgeleitet vom Systemtakt

• 8-Bit-Reloadregister für das höherwertige Byte

• Zählperioden von 25.6µs bis zu 470ms

• Zurücksetzen des Zählregisters (Reload) erfolgt mittels speziellem Befehl

Der Watchdog wird verwendet, um ein System im Fall von Hardware-oder Software-Fehlern wieder in einen definierten Zustand zurückzu-führen. Dazu wird ein Zähler periodisch erhöht. Bei einem Überlauf wird automatisch ein Restart durchgeführt.

Page 114: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 40

WDTRefresh

8-BitReload-Register Null

RSTOUT

Reset

16-bit Timer

high Byte low Byte

WDT control

CPU CLK / 2

Watchdog Timer - Blockdiagramm

CPU CLK / 128

WDT

Page 115: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 41

Synchrone Serielle Schnittstelle (SSC - 20 MHz)

• Vollduplex-Betrieb

• Eigener Baudraten-Generator für hohe Übertragungsraten – Bis zu 5 MBit/sec Transferrate

• Kompatibel zu SPI (Industriestandard)

• Master- (Takt ist Ausgang) oder Slave-Betriebsart (Takt ist Eingang)

• Programmierbare Varianten für unterschiedlichste Erfordernisse der synchronen seriellen Kommunikation– MSB oder LSB zu erst

– Länge des Datenrahmens von 2 bis 16 Bits

– Taktpolarität und -phase

Page 116: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 42

SSC - Blockschaltbild

Baud RateGenerator

ClockControl

Control Unitwith Controland StatusRegisters

Shift Registerprogrammable from 2 - 16-bit

MSB- / LSB-First Selection

Receive Buffer

Transmit Buffer

Internal Bus

InterruptRequest

Slave Mode

Master ModeCPU

ClockMaster / Slave

Selection

P3.13 / SCLK

P3.8 / MRST

P3.9 / MTSR

SFR

Page 117: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 43

System Reset

Der C164 unterscheidet die folgenden Reset-Ursachen

• Hardware Reset

• Software Reset

• Watchdog Timer Reset

Einfache Reset-Schaltung für Power-Up• 22µF Kondensator zwischen dem Pin RESIN# und Masse

Systemdefinition beim Start-Up• Bestimmte Eigenschaften des C164CI müssen bereits vor der

Ausführung des ersten Befehls fixiert sein (BUS-Konfiguration, CS#-Signale, internes/externes ROM ...)

• EA# - Pin legt externen/internen Programmspeicher fest• Um weitere Festlegungen durchzuführen werden die an Port0 und dem

Pin RD# anliegenden Pegel während des Reset verwendet. ( 1 = HIGH = unbeschaltet

0 = LOW = Pull-Down-Widerstand RPD ≤ 8k2 )

Bootstrap-Modus beim Start-Up• ermöglicht Programmieren eines Flash-EPROM‘s

Page 118: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

27.9.2009 Embedded Systems Seite 44

System Startkonfiguration

Pin EA# (External Access) = '1' � Programmstart aus internem ROM= '0' � Programmstart aus externem ROM

Pin RD# (Read) = '1' � Oszillator Watchdog disable= ‘0' � Oszillator Watchdog enable

SFR

Resetzustand des Port0 P0H, P0L

H7 H6 H5 H4 H3 H2 H1 H0 L7 L6 L5 L4 L3 L2 L1 L0

Port P0 SALSEL CSSEL WRC BUSTYP ADP EMU

CLKCFG SALSEL CSSEL WRCRP0H

ClockGenerator

Port 4Logic

Port 4Logic

Zu interner Kontrolllogiknur bei HW-Reset

SYSCON BUSCON 0

CLKCFG

RD#

SMOD

EA#

Page 119: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

2.3.2016 Embedded Systems Seite 45

Bootstrap Loader

Der built-in bootstrap loader des C164 stellt einen Mechanismus zur Verfügungum das startup Programm, das nach einem Reset ausgeführt wird, mit Hilfe der Seriellen Schnittstelle zu laden. Der C164 startet den BSL-Mode, falls am Endedes Hardware Resets der Pin P0L.4 low (SMOD = 1011, siehe oben ) ist.

Folgende Schritte werden durchgeführt:

• ASC0 erwartet ein Null-Byte

• Aus der Dauer des Null-Bytes wird automatisch die nötige Baudrate ermittelt.

• C164 sendet einen Identifier mit dieser Baudrate zurück.

• Genau 32 Bytes werden von der seriellen Schnittstelle im internen RAM bei 0xFA40 - 0xFA5F deponiert und damit die serielle Schnittstelle in Betrieb genommen.

• Anschließend erfolgt Programmstart bei Adresse 0xFA40.

CodeBeispiel

Page 120: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 1

164CL

XTAL

C166-Core

Port 5 Port 3

CPU

Dua

l Por

t

RAM

2 KByte

Interrupt Controller

Watchdog

Peripheral Data

External Instr./Data

Instr./Data

USART

ASC

BRG

GPT1

16

16

16

1632

PEC

64 KROM

(C164 CI-8RM)

orOTP

(C164CI-8EM)

Interrupt Bus

Data

Data

Port 8

BRG

SSC

Sync. Channel(SPI)

PLL-Oscillatorprog. Multiplier:

0.5; 1; 1.5; 2;2.5; 3; 4; 5

XB

US

(16-

bit N

ON

MU

X D

ata

/ A

ddre

sses

)

T2

T4

T3

13 ext. IRFull-CANInterfaceV2.0Bactive

RTC

10-BitADC

Tim

er 7

Tim

er 8

Port 1

Tim

er 1

3

1 Comp.Channel

3/6 CAPCOMChannels

CAPCOM6 Unit forPWM Generation

8 9 4 16

6

16

Port 4

8-Channels

External Bus8/16 bit

MUX only&

XBUSControl

CAPCOM 2

8-Channel

C164CI - CAN-Schnittstelle

P4.6/ CAN TxD

P4.5/ CANRxD

Por

t 0

Page 121: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 2

Controller Area Network - CAN

• CAN ist ein Bussystem für die serielle Kommunikation, das verteilte Echtzeit-Aufgaben mit sehr hohen Zuverlässigkeitsanforderungen effektiv unterstützt.

• Es wird hauptsächlich in der Automobilindustrie eingesetzt, um mehrere Steuergeräte zu verbinden

Page 122: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

CAN-BUS TOPOLOGY

23.9.2009 Embedded Systems Seite 3

Page 123: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Spannungspegel im CAN Bus

23.9.2009 Embedded Systems Seite 4

Page 124: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Frame Aufbau

23.9.2009 Embedded Systems Seite 5

Frame Typen:- Daten-Frame zur Übertragung von Daten- Remote-Frames zur Anforderung von Daten- Error-Frame zur Signalisierung von Fehlern- Overload-Frame dient zur Zwangspause

Page 125: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

CAN SpezifikationIn der CAN Spezifikation sind folgende Eigenschaften für den CAN Bus festgelegt:

• Systemart: Multimaster

• Topologie: Bus

• Leitungslänge: 1 km bei einer Übertragungsrate von 50 kBit/s;

40 m bei einer Übertragungsrate von 1 MBit/s

• Übertragungsmedium: (verdrillte) Zweidrahtleitung, Lichtwellenleiter

• Buszugriffsverfahren: CSMA/CD (collision detection)

• Bitcodierung: NRZ

• Data format Standard Format:

1 Start, 11 Identifier, 1 RTR, 6 Control, 0-64 Daten,

15 CRC und 1 CRC Delimiter, 2 Acknowledge und 7 End of Frame Bits

• Nutzdaten: 0-64 Bit

• Overheaddaten: 44-64 Bit; zwischen den Paketen sind zumindest

3-Bit Interframe Space

• Knotenanzahl n: typisch 30

23.9.2009 Embedded Systems Seite 6

Page 126: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 7

• Asynchroner serieller BUS mit linearer BUS-Struktur und identischen Knoten (Multi-Master-BUS)

• Es werden nicht Knoten adressiert - die Adressen sind Teile der Message und beziehen sich auf diese, genauso ist die Priorität eine Eigenschaft der Message

• Zwei BUS-Zustände: dominant und rezessiv– die BUS-Anschaltung erfolgt nach dem "Wired-AND”-Mechanismus:

dominante Bits (logisch 0) überschreiben rezessive Bits (logisch 1)

• BUS-Zugriff mittels CSMA/CD mit NDA (Carrier Sense Multiple Access/ Collision Detection mit Non-Destructive Arbitration):– vor dem Senden wird getestet, ob der BUS frei ist

– jeder Sender testet, ob der BUS-Pegel seinem Sendepegel entspricht

– bei Widerspruch wird das Senden eingestellt und in den Empfangsmodus geschaltet

Prinzipielle Eigenschaften von CAN

Page 127: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 8

CAN - Merkmale

• Geringe Kosten– Serieller BUS für 2-Draht-Leitungen– Hohe Stückzahlen der CAN-Bausteine im Kraftfahrzeug- (Automotive-)

Sektor und in der Industrieelektronik.

• Zuverlässigkeit– Ausgefeilte Mechanismen zur Fehlererkennung und -behandlung

führen zu hoher Zuverlässigkeit der Übertragung. Beispiel: • 500 kbit/s, 25% BUS-Auslastung, 2000 Betriebsstunden pro Jahr.

Resultat: 1 nicht entdeckter Fehler in 1000 Jahren! – Fehlerbehaftete Meldungen werden erkannt und wiederholt.– Jeder BUS-Knoten wird über einen Fehler informiert.– Geringe Empfindlichkeit gegenüber elektromagnetischen

Einstreuungen.

• Flexibilität– Knoten können sehr einfach ergänzt oder entfernt werden (plug & play).– Die Anzahl der Knoten ist durch das Protokoll nicht begrenzt.

Page 128: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 9

• Gute Echtzeit-Eigenschaften– Kurze Meldungen (messages): 0 bis 8 Bytes Daten / Message.

– Kurze Latenzzeit zwischen Anforderung einer Übertragung und Start der Übertragung.

– Priorisierung von Meldungen (Arbitration on Message Priority - AMP)

– Multi Master Protokoll mit CSMA/CR. (Collision resolving)

CAN - Merkmale

• Multi-Master-Operationen– Jeder Knoten kann den BUS erhalten

– Die BUS-Kommunikation wird durch fehlerhafte Knoten nicht verhindert

– Fehlerhafte Knoten trennen sich selbst vom BUS ab.

• Geschwindigkeit– maximale Datenrate beträgt 1 MBit/s bei 40m BUS-Länge und immer noch

etwa 40 kBit/s bei 1000m BUS-Länge.

• Flexible Adressierungsmechanismen– Meldungen können an einen oder mehere Knoten gesendet werden.

– Alle Knoten empfangen simultan öffentliche Daten.

Page 129: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 10

CAN: Typische Anwendung

Page 130: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 11

Application Layer

Physical Signalling(Bit –coding, -timing, -synchron.)Physical Medium Attachment(Transmitter/Receiver-Spec.)Medium Dependent Interface(Cable, Plug...)

PhysicalLayer

Logical Link ControlError detection, error handling;Control of data-flow;Acceptance filtering.

Medium Access ControlBit-Stuffing, Framing, Arbitration

DataLink

Layer

Man

agem

ent

Process-Application

Layer

7

2

1

Protokollschichten des CAN

CAN(ISO

11898)Bosch

DeviceNet

CAL, CANopen (CiA)

SDS (Honeywell)etc ...

Page 131: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Protokollschichten des CAN

23.9.2009 Embedded Systems Seite 12

• Die Physica Layer definiert wie Signale übertragen werden.

• Der Data Link Layer bildet das Kernstück des CAN Protokolls. Diese Schicht ist zuständig für das Bit-Timing, die Synchronisation, das Paketieren von Nachrichten, die Arbitration, das Acknowledgement von Nachrichten und die Detektion von Fehlern.

• Der Application Layer ist für die jeweilige Anwendung reserviert.

Page 132: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

BUS-Arbitrierung

Die Buszuteilung erfolgt durch das Verfahren CSMA/CD Carrier Sense Multiple Access/ Collision Detection

Wollen nun zwei oder mehrere Busteilnehmer zum selben Zeitpunkt den Bus belegen (Multiple Access), wird eine drohende Kollision der Botschaften mit Hilfe des Wired-AND Prinzips („dominant überschreibt rezessiv”) und des Identifiers durch bitweise Arbitrierung vermieden. Jeder Knoten gibt Bit für Bit den Identifier seiner Nachricht auf den Bus und beobachtet den Buspegel. Eine Station, die ein rezessives Bit sendet, jedoch ein dominantes Bit zurückliest, verliert in diesem Moment den Wettstreit um den Bus und geht auf Empfang (siehe nachfolgende Abbildung), da der Identifier eines konkurrierenden Teilnehmers niedriger und damit die Priorität von dessen Nachricht höher ist.

23.9.2009 Embedded Systems Seite 13

Page 133: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 14

NODE A

NODE B

rezessiv

dominant

rezessiv

dominant

bus idle

CAN BUS

rezessiv

dominant

Knoten B sendet rezessiven Pegelliest aber dominanten Pegel zurück

Knoten B verliert die Arbitrierungund schaltet sich auf Empfang

BUS-Arbitrierung - 2

Page 134: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 15

CAN_H

CAN_L

z.B.SAE81C90

CAN-Transceiver

CAN-BUS

CAN-Controller

Host-Controller

Application

z.B.80C166

z.B.ABS

z.B.C164CR

oderC515C

z.B.EMS

Node A Node B

(weitere Knoten)

UDiff

CAN

Typische Struktur von CAN-Knoten

Page 135: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 16

Identifier CRC-FieldData Field (0..8 Bytes)

• Es gibt zwei Situationen der Kommunikation:– Ein Knoten sendet (’talker’),

alle anderen Knoten empfangen (’listener’)– Knoten A fordert (von einem Knoten) etwas an und erhält die Antwort.

• Im ’Talk’-Modus benutzten CAN-Knoten Datenrahmen.– Datenrahmen bestehen aus:

• einem Identifier• den Daten, die übertragen werden sollen• und einer CRC-Prüfsumme.

CAN Datenrahmen (data frames)

– Der Identifier spezifiziert den Inhalt der Nachricht (‘Fahrzeug-geschwindigkeit, ‘Öltemperatur’, usw.) und die Priorität der Nachricht.

– Das Datenfeld enthält den zugehörigen Wert (’36 m/s’, ’110°C’, usw.).– Der Cyclic Redundancy Check ermöglicht es Übertragungsfehler zu

erkennen.– Alle Knoten empfangen den Datenrahmen, jene die die Information

nicht benötigen verwerfen sie.

Page 136: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 17

• Um Informationen abzufragen benutzt CAN “Remote Frames”– Ein Remote Frame besteht aus dem Identifier und der CRC-

Prüfsumme, er enthält keine Daten.

CAN Remote Frames

Identifier CRC-Field

– Der Identifier verweist auf die Information, die abgefragt werden soll (’Fahrzeuggeschwindigkeit', ’Öltemperatur', usw.) und die Priorität der Nachricht.

– Jener Knoten, der über die angeforderte Information verfügt (z.B. der Sensor für die Öltemperatur) reagiert mit dem Senden des zugeordneten ‘Data Frame’ (gleicher Identifier, das Datenfeld enthält die gewünschte Information).

Data Frame; Identifier ’Oel_temp';enthält angeforderte Information

~~~~~~~~~~

Remote Frame; Identifier ’Oel_temp'Node A

Node B

(Öltemp.-Sensor)

Wie heiß ist das Öl?

115°C115 °C !

Page 137: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 18

Full-CAN Controller

Message Object 2

CAN Bus

Host CPU

Message Object n CPU load

low high

Message Object 1

.

.

Accep-tance

Filtering

MessageManage-

ment

CAN-Controller

• CAN-Controller führen autark die Verwaltung der Messages und ihre Qualifizierung (acceptance filtering) durch:

• Full-CAN-Controller– Es existieren mehrere Message-Objekte mit jeweils eigenem Identifier.

– Nur wenn eine Message mit einem der vorgegebenen Identifiern empfangen wird, wird diese gespeichert und die Programmausführung der CPU unterbrochen.

– Auf diese Weise läßt sich die Auslastung der CPU gering halten.

Page 138: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 19

Eigenschaften des CAN-Moduls des C164CI

• Maximale CAN-Transferrate von 1 MBit/s

• Full CAN Device:– 15 Message-Objekte mit eigenem Identifier

und eigenen Status- und Control-Bits

– Jedes Message-Objekt kann als Sende-oder Empfangsobjekt definiert werden.

Page 139: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 20

• Programmierbares Masken-Register für Acceptance-Filterung– Globale Maske für eintreffende Messages (Full-CAN-Objekte)

– Zusätzliche Maske für Message-Objekt 15(Basis-CAN-Eigenschaft)

• Basis-CAN-Eigenschaft (Message-Objekt 15)– Zwei Empfangspuffer

– Eigenes globales Masken-Register zur Acceptance-Filterung

• Verbindung zur CPU (C166-Core)– Das Modul wird über den chip-internen XBUS angeschlossen

(16-Bit BUS-Breite)

– Interrupts direkt zur CPU mit allen Möglichkeiten der Interruptbehandlung.

• Zur Anbindung an den CAN-BUS ist lediglich die physikalische Pegelkonversion über einen Standard-CAN-Transceiver nötig (siehe nachfolgende Folie).

Eigenschaften des CAN-Moduls des C164CI

Page 140: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 21

CAN-BusTransceiver

Receive

Transmit

CAN_H

CAN_L

P4.5

P4.6

CAN_L

z.B. P8.0

Pa.b

Pc.d

C164CI

CAN_H CAN_RxD

CAN_TxD

R(opt)

(Standby)

Verbindungzur

Applikation

Verbindung des C164CI zum CAN-BUS

• Das CAN-Modul benutzt 2 Anschlüsse des Port 4 als Schnittstelle zu einen BUS-Transceiver (P4.5 - CAN_RxD, P4.6 - CAN_TxD).

Page 141: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 22

CAN MESSAGES

ACCEPTANCE FILTERING

CAN CONTROLLER

Global Mask (Teil derGeneral Registers)

Arbitration Register(LAR, Teil desMessage Object)

11 1 1 1 1 1 1 1 00

11 0 0 1 0 0 1 1 10

ResultierendeGültige Identfier "d" = don't care

11 0 0 1 0 0 1 1 dd

a) 11 0 0 1 0 0 1 1 10

b)

c)

d)

11 0 0 1 0 0 1 1 00

11 0 0 1 0 0 1 1 01

11 0 0 1 0 0 1 1 11

Wegen der "don't care"-Bits werden auch Messages mit den Identifiern b)..d) akzeptiert.

Page 142: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

3.3.2016 Embedded Systems Seite 23

ACCEPTANCE FILTERING -2

Um zu entscheiden, ob eine Message vom Empfänger akzeptiert wird, wird die ID einer ankommenden Message mit dem Inhalt (ID) des Arbitration-Registers des im Controller hinterlegten Empfangsobjektes verglichen. Für diesen Vergleich sind nur die Bits von Bedeutung, die im Globalen Masken-Register eine Eins besitzen. Enthält das Globale Masken-Register z.B. lauter Einser (11-Bit Wert: 0x7FF), so muss die ID des Messages-Objektes identisch sein mit der ID der ankommenden Nachricht (Message a). Da im obigen Beispiel das Global Mask Register 2 Nullen enthält, werden diese beiden Bits bei der Identitätsprüfung nicht ausgewertet. Es werden somit auch die Messages b, c und d vom Empfänger akzeptiert.Anmerkung:

Ein Controller besitzt in der Regel mehrere Empfangs-Objekte. Werden Messages von mehr als einem Empfangs-Objekt akzeptiert, so erfolgt die Speicherung in dem Objekt mit der niedrigsten Nummer. Falls „remote frames“ von mehr als einem Message Objekt akzeptiert werden, so werden die Daten des Objekts mit der niedrigsten Nummer gesendet.

Page 143: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 24

Bit-Timing

TSeg1 TSeg2Sync-Segm.

Sync-Segm.

Sample-Zeitpunkt

Sende-Zeitpunkt

Bitdauer

1 Zeit-einheit

Das Bit-Timing wird vom Systemtakt fPERIPHERAL abgeleitet und istprogrammierbar bis zu einer Datenrate von 1 MBaud (@ f CPU 16 MHz). Für Synchronisationszwecke wird die Dauer eines Bits, die Bit-Zeit, in vier Abschnitte unterteilt die ihrerseits jeweils aus einer fixen Anzahl aus sogenannten Zeitquanten

bestehen, siehe Abbildung. Die Dauer einer einzelnen Bit-Zeit kann im Bereich von 8 bis 25 Zeitquanten programmiert werden und hängt von der Länge des Buses und der benutzten Übertragungsrate ab .

SFRcan

Page 144: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 25

Register des CAN-Controllers EF00H

General Registers

Control/Status Register EF00H

EF10H Message Object 1

Interrupt Register

EF02H

EF20H Message Object 2

Bit Timing Register

EF04H

EF30H Message Object 3

Global Mask Short

EF06H

EF40H Message Object 4

Global Mask Long

EF08H

EF50H Message Object 5

EF0AH

EF60H Message Object 6

Mask of last Message

EF0CH

EF70H Message Object 7

EF0EH

EF80H Message Object 8

EF90H Message Object 9

EFA0H Message Object 10

EFB0H Message Object 11

EFC0H Message Object 12

EFD0H Message Object 13

EFE0H Message Object 14

EFF0H Message Object 15

SFRcan

Page 145: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

23.9.2009 Embedded Systems Seite 26

Message Object

Message Control +0 Objekt Startadresse

+2

Arbitration +4

Data 0 Message Config. +6

Data 2 Data 1 +8

Data 4 Data 3 +A

Data 6 Data 5 +C

reserviert Data 7 +E

SFRcan

CAN-SW

Page 146: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

µD

04EI

Register des CAN-Controllers -2

3.3.2016 Embedded Systems Seite 27

Das im C164 implementierte CAN Modul besteht aus 15 Message

Objects, wobei jedes mit einem eigenen Satz an Registern ausgestattet ist. Über jedes dieser Subsysteme können Nachrichten verschicktoder empfangen werden. Neben diesen einzelnen Message Objects gibt es einen Satz an allgemeinen Registern über die eine globale Konfiguration des CAN Moduls vorgenommen wird.Letzteres besteht aus den Mask Registern, einem Bit-Timing Register, dem Interrupt Register und einem allgemeinen Control/Status Register (vgl. Abbildung ). Jedes einzelne Message Object wiederum enthält, ihm zugeordnet eigene Register zur Steuerung der Nachrichten. Über diese werden festgelegt, ob die zugeordneten Nachrichten verschickt oder empfangen werden und wie viele Datenbytes benötigt werden. Für alle Message Objects wird die Bitrate in den globalen Registern des CAN Moduls festgelegt. Diese muss mit der Bitrate aller anderen Knoten am Bus übereinstimmen. Weiters gibt es zwei globale Masken Register, die es erlauben ankommende Nachrichten zu filtern.

Page 147: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

Hochschule München Fakultät Elektrotechnik und Informationstechnik Technische Informatik P - ES - A2/1 - 00 – Kr - 00

ES_pv2.doc / 15.02.15 - 1 - C164CI – Praktikum

Einführung zum Embedded Systems II. Softwareentwicklung - Hinweise zur Software-Erstellung mittels μVision und Dave: 1) Im Verzeichnis C164PRJ sind alle Ihre Praktikumsversuche zu realisieren. Legen Sie für

jeden neuen Versuch ein (oder mehrere) neue Projekte in eigenen Unterverzeichnissen an!

2) Dave ist ein Sourcecode-Generator, er erzeugt also Programmquellcode basierend auf

Tabelleneingaben, die Sie tätigen. Die generierten Quelltexte trennen eindeutig zwischen dem automatisch erzeugten Code und dem für die Applikation vom Benutzer einzuge-benden Code. Bitte halten Sie sich stets an die durch Dave vorgegebenen Schablonen im Quellcode!

3) μVision ist eine integrierte Entwicklungsumgebung, ähnlich wie sie aus Programmieren

1 und 2 hinlänglich bekannt ist. Für das spezielle Entwicklungsziel – Erzeugen des ab-lauffähigen Programmes für einen Mikrocontroller – sind geeignete Erweiterungen vor-handen.

4) Vorgehensweise beim Erstellen eines komplett neuen Projektes:

a) Erzeugen des Arbeitsverzeichnis als Unterverzeichnis von C164PRJ (Explorer!). b) Starten von Dave und Erzeugen der Standardeinstellungen (HW-Vorgaben für das

C164-Board – siehe Anhang 1). Abschließend ist der Code zu erzeugen: File /Generate Code.

c) Starten von μVision und festlegen des Projektes (C164CI): Project/Open Project... Angabe des von Dave erzeugten Datei namens xxxx.dpt. Da-raus erstellt μVision sein neues Projekt, das bereits die nötigen Dave-Dateien über-nimmt.

d) Festlegung der Schaltungseigenschaften: Project/Options for Target 'Target 1' : Einstellungen siehe Anhang 1

e) Applikation in den Dave-Quelldateien oder in eigenen Dateien in das Projekt einbrin-gen.

5) Erstellen eines Folgeprojektes – von Dave erzeugte und von Ihnen ergänzte Quelldatei-

en sollen weiter genutzt werden: a) Erzeugen des Arbeitsverzeichnis als Unterverzeichnis von C164PRJ (Explorer!). b) Kopieren aller von Dave erzeugten C-Dateien (*.c) und Header-Dateien (*.h), sowie

der Dave-Projektdatei (*.dav – u.U. umbenennen). c) Kopieren aller eigenen weiterhin benötigten C-Dateien (*.c) und Header-Dateien

(*.h). d) Modifizieren der Dave-Einstellungen und Code erzeugen. e) Fortsetzung wie unter 4c).

Page 148: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

Hochschule München Fakultät Elektrotechnik und Informationstechnik Technische Informatik P - ES - A2/2 - 00 – Kr - 00

ES_pv2.doc / 15.02.15 - 2 - C164CI – Praktikum

Anhang 1

Vision Options for Target Fenster

Target

Output Bei FLASH Fill Byte nichts eintragen, sonst dauert der Download sehr lang.(Alle nicht benutzten Speicherstel-len werden mit dem Fill Byte belegt.)

Page 149: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

Hochschule München Fakultät Elektrotechnik und Informationstechnik Technische Informatik P - ES - A2/3 - 00 – Kr - 00

ES_pv2.doc / 15.02.15 - 3 - C164CI – Praktikum

C166 Compiler

Dave - Project Settings

Page 150: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Version 1.0 Seite 1Praktikum

Einführung zum Praktikum Embedded Systems

Praktikumsarbeitsplatz basierend auf Phytec kitCon-164:

Display mit 4 Zeilen zu

je 20 Zeichen

LOAD / RUN

Schalter

Temperatur-

Sensor

4 Eingabe-

Tasten

DC-Motor

Gabel-

Lichtschranke

Waage mit 3

druckempfindlichen

Widerständen

Reset-Taste

CAN-

Schnittstelle

LED's

Page 151: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Version 1.0 Seite 2Praktikum

Blockschaltbild:

I/O-Ports

A-BUS

D-BUS

Micro-

Controller

C164

Flash-

EPROM256kByte

RAM64kByte

Adreß

Latch

Waage

mit Druck-

Sensoren

DC-Motor

Licht-

schranke

Tasten

LED's

Temperatur

Sensor

RS232

Treiber

CAN-

TransceiverRTC

5MHz

Einführung zum Praktikum Embedded Systems

Page 152: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Version 1.0 Seite 3Praktikum

Verwendung der Ports des C164

Funktion Pin Port Einstellungen Bemerkungen

Eingabetasten 65 P1H.4 Special Threshold möglich Taste 1(ganz links)

66 P1H.5 Low aktiv (Taste gedrückt) Taste 2

67 P1H.6 Taste 3

68 P1H.7 Taste 4 (ganz rechts)

LEDs 51 P1L.4 Low aktiv (LED leuchtet) D11

52 P1L.5 D12

57 P1L.6 D13

58 P1L.7 D14

Waage 76 P5.1

A/D-In 0

z.B. Auto scan continuous

conversion, converter clock

0.8µs, sample time 6.4µs

Die Werte von drei

druckkempfindlichen

Widerständen werden

aufsummiert

77 P5.2

A/D-In 1

78 P5.3

A/D-In 2

Temperaturmessung 74 P8.2 z.B. Capture bei pos. Flanke an

CC18 (P8.2)

Timer 7 mit 0.4µs Auflösung

Temp.Sensor hat ca.

200µs Periode,

Temperatur wird aus

Tastverhältnis berechnet

75 P8.3 z.B. Capture bei neg.. Flanke,

CC19 (P8.3), u.U. Interrupt

Timer 7 mit 0.4µs Auflösung

PWM Out

Motorsteuerung

47 P1L.0 z.B. Timer 12 periode register

(T12P) = C34FH (=5ms), Startwert CC60 =61A8H(50%

Tastverhältnis)

Es ergibt sich ein

Einstellbereich von 0 bis T12P für CC60

Messung der

Drehzahl

73 P8.1 z.B. Interrupt bei pos. Flanke,

CC17 übernimmt Wert von Timer 8, 51.2µs Auflösung

VSoll=400D=190H,

51.2µs*400=10480µs =10.48ms, 30 Schlitze

=>30

Impulse/Umdrehung

Einführung zum Praktikum Embedded Systems

Page 153: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Version 1.0 Seite 4Praktikum

Der Adressraum des Praktikumsystems:

0F:A000-0F:FFFF unbenutzt

0F:9FFF unbenutzt ....

09:0000 08:FFFF RAM 08:0000 07:FFFF unbenutzt

.... 04:0000 03:FFFF Flash

.... 00:0000

Einführung zum Praktikum Embedded Systems

Page 154: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Version 1.0 Seite 5Praktikum

II. Softwareentwicklung - Hinweise zur Software-Erstellung mittels �Vision und Dave:

Dave

�Vision

1)Im Verzeichnis C164PRJ sind alle Ihre Praktikumsversuche zu realisieren. Legen Sie für

jeden neuen Versuch ein (oder mehrere) neue Projekte in eigenen Unterverzeichnissen

an!

2)Dave ist ein Sourcecode-Generator, er erzeugt also Programmquellcode basierend auf

Tabelleneingaben, die Sie tätigen. Die generierten Quelltexte trennen eindeutig zwischen

dem automatisch erzeugten Code und dem für die Applikation vom Benutzer

einzugebenden Code. Bitte halten Sie sich stets an die durch Dave vorgegebenen

Schablonen im Quellcode!

3)�Vision ist eine integrierte Entwicklungsumgebung, ähnlich wie sie aus Programmieren 1

und 2 hinlänglich bekannt ist. Für das spezielle Entwicklungsziel – Erzeugen des

ablauffähigen Programmes für einen Mikrocontroller – sind geeignete Erweiterungen

vorhanden.

�������

��������

Einführung zum Praktikum Embedded Systems

Page 155: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Version 1.0 Seite 6Praktikum

4)Vorgehensweise beim Erstellen eines komplett neuen Projektes:

a)Erzeugen des Arbeitsverzeichnis als Unterverzeichnis von C164PRJ (Explorer!).

b)Starten von Dave und Erzeugen der Standardeinstellungen (HW-Vorgaben für das

C164-Board – siehe Anhang 1). Abschließend ist der Code zu erzeugen:

File /Generate Code.

c) Starten von �Vision und Festlegen des Projektes (C164CI):

Project/Open Project... Angabe der von Dave erzeugten Datei namens xxxx.dpt.

Daraus erstellt �Vision sein neues Projekt, das bereits die nötigen Dave-Dateien

übernimmt.

d)Festlegung der Schaltungseigenschaften:

Project/Options for Target 'Target 1': Einstellungen siehe Anhang 1

e)Applikation in den Dave-Quelldateien oder in eigenen Dateien in das Projekt

einbringen.

II. Softwareentwicklung - Hinweise zur Software-Erstellung mittels �Vision und Dave:

5)Erstellen eines Folgeprojektes – von Dave erzeugte und von Ihnen ergänzte Quelldateien sollen weiter genutzt werden:

a)Erzeugen des Arbeitsverzeichnis als Unterverzeichnis von C164PRJ (Explorer!).

b)Kopieren aller von Dave erzeugten C-Dateien (*.c) und Header-Dateien (*.h), sowie

der Dave-Projektdatei (*.dav – u.U. umbenennen).

c) Kopieren aller eigenen weiterhin benötigten C-Dateien (*.c) und Header-Dateien (*.h).

d)Modifizieren der Dave-Einstellungen und Code erzeugen.e)Fortsetzung wie unter 4c). Übung

Einführung zum Praktikum Embedded Systems

Page 156: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Arbeiten mit RTX166_TINY

Version 1.0 Seite 7Praktikum

Schritte zur Anwendung von RTX

1. Festlegen des zu verwendenden Timers.

Einer der Timer 2,3,4,7,8 muss für RTX zur Verfügung stehen. Diese Festlegung ist in der Datei

"CPUTIMER.INC " im Unterverzeichnis "Rtx_Tiny" der Entwicklungsumgebung zu tätigen. Der

Defaultwert ist T0 (dieser existiert in C164CI nicht!).

Wird "CPUTIMER.INC " modifiziert, so sind die Libraries von RTX neu zu erzeugen. Dazu ist das

Projekt "Rtx_Tiny.uv2" (Unterverzeichnis "C166\Rtx_Tiny") neu zu kompilieren und die dadurch

generierte Datei "RTX166TS.LIB" in das Unterverzeichnis "C166\lib" der Entwicklungsumgebung zu

kopieren. Vor der Compellierung ist sicher zu stellen, dass unter ‚Select device‘ Small, Compact,

HCompact eingestellt ist.

2. RTX-Eigenschaften festlegen.

Timer-Tick ist die Zeiteinheit des RTX, mit der Wartezeiten und Taskwechsel im Round Robin Verfahren

festgelegt werden. Die Variable "INT_CLOCK" ist mit 2500 voreingestellt und legt ein Intervall von

1msec fest (fCPU / 8 / 2500).

–Die Zeitscheibe für das Round-Robin-Verfahren wird durch die Variable "TIMESHARING" fixiert und

gibt die Anzahl der Timer-Ticks an, nach denen ein Taskwechsel erfolgt (ist mit 5msec voreingestellt).

Diese Variable ist mit dem Wert 0 zu belegen, wenn kooperatives Scheduling durchgeführt werden soll.

–Die geeignete Einstellung der Variablen erfolgt in der Datei "CONF_TNY.A66", die als Kopie aus dem

Unterverzeichnis "C166\Rtx_Tiny" in den eigenen Projektordner zu übernehmen ist. Diese Datei muss

zusätzlich in das Projekt eingefügt werden.

Page 157: Embedded Systems SS2018 - lsw.ee.hm.edulsw.ee.hm.edu/~irber/EmbeddedSystems/powerpoint_deutsch/Embedded... · Was ist ein Embedded System? Unter Embedded Systems (ES) versteht man

04EI

Arbeiten mit RTX166_Tiny

Version 1.0 Seite 8Praktikum

3.Projekteinstellungen

Um ein RTX-Projekt zu realisieren, ist unter µVision 4 in "Options for Target" als

Operating System "RTX-166 Tiny" zu wählen.

4. Quellcode

Nach Ausführen des Startup-Codes startet RTX automatisch die Task mit der Nummer 0.

Diese muss also existieren!

Eine Funktion "main()" darf im Projekt nicht enthalten sein, "main()" ist Teil von RTX.

5. RTX und DAVE

DAVE generiert stets die Funktion "main()". Um ein RTX-Projekt zu erstellen ist deshalb

folgende Vorgehensweise zweckmäßig:

-die Einstellung aller Peripheriefunktionen erfolgt wie gehabt.

Ausnahme ist der RTX-Timer, dessen Initialisierung durch DAVE ist auszukommentieren.

- das durch DAVE erstellte main() ist auszukommentieren und (innerhalb der USER-

Klammern) durch Task 0 zu ersetzen.

- Wird DAVE erneut aufgerufen, so sind zuvor obige Maßnahmen zurückzunehmen!