Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

25.9.2009Embedded SystemsSeite 1 C166-Core Port 5 Port 3 CPU Dual Port RAM 2 KByte Interrupt Controller Watchdog Peripheral Data External Instr./Data Instr./Data.

Ähnliche Präsentationen


Präsentation zum Thema: "25.9.2009Embedded SystemsSeite 1 C166-Core Port 5 Port 3 CPU Dual Port RAM 2 KByte Interrupt Controller Watchdog Peripheral Data External Instr./Data Instr./Data."—  Präsentation transkript:

1 Embedded SystemsSeite 1 C166-Core Port 5 Port 3 CPU Dual Port RAM 2 KByte Interrupt Controller Watchdog Peripheral Data External Instr./Data Instr./Data USART ASC BRG GPT PEC 64 K ROM (C164 CI-8RM) or OTP (C164CI-8EM) Interrupt Bus Data Port 8 BRG SSC Sync. Channel (SPI) PLL- Oscillator prog. Multiplier : 0.5; 1; 1.5; 2; 2.5; 3; 4; 5 XBUS (16-bit NON MUX Data / Addresses) T2 T4 T3 13 ext. IR Full -CAN Interface V2.0B active RTC 10-Bit ADC Timer 7 Timer 8 Port 1 Timer 13 1 Comp. Channel 3/6 CAPCOM Channels CAPCOM6 Unit for PWM Generation Port 4 8-Channels External Bus 8/16 bit MUX only & XBUS Control CAPCOM 2 8-Channel C164CI Blockschaltbild P4.6/ CAN TxD P4.5/ CAN RxD Port 0

2 Embedded SystemsSeite 2 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-Chip Static RAM R15 R0 STK OV STK UV 4-Stage Pipeline 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

3 Embedded SystemsSeite 3 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 f CPU ) 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

4 Embedded SystemsSeite 4 Arithmetic Logic Unit ALU AB Z C in op C out flags Arithmetic Operations: Logic Operations: Shift / Rotate: addsub incdec neg andnand ornor exorexnor not sllsrl slasra rolror s/ro : shift/rotate l/r : left/right l/a : logic (unsigned)/arithmetic (signed)

5 Embedded SystemsSeite 5 Barrel Shifter

6 Embedded SystemsSeite 6 General Purpose Register (GPR) 16 GPRs bilden eine Registerbank bestehend 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.

7 Embedded SystemsSeite 7 0F600 R8 R9 R10 R11 R12 R13 R14 R15 RH0 RH1 RH2 RH3 RH4 RH5 RH6 RH7 RL0 RL1 RL2 RL3 RL4 RL5 RL6 RL7 Context pointer 0FDFE 2KBytes internal RAM R6 R0 R1 R2 R3 R4 R5 R7 STKOV STKUV R15 R0 0FC00 Stackpointer Underflow Stackpointer Stackpointer Overflow STKUV STKOV 2 kByte internes RAM - Plazierung der Registerbänke und des Stack SP

8 Embedded SystemsSeite 8 Gesamter Adressraum: –64 kByte nicht-segmentierter Adressraum –bis zu 4(16) 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

9 Embedded SystemsSeite 9 Interner und externer Adressplan des C164CI

10 Embedded SystemsSeite 10 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-BezeichnungErläuterung memory typesAls 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. sfrDient der Deklaration von "Special-Function-Register" (SFR) der 166-Familie sbitDeklaration von Bits innerhalb von SFR's. bitDatentyp bit. Rückgabewert, Übergabeparameter von Funktionen können vom Typ bit sein. bit-addressableVariable im bitadressierbaren Bereich können mittels bdata als Speichertyp vereinbart werden.

11 Embedded SystemsSeite 11 Die Programmiersprache C für den Mikrocontroller C164 C166-BezeichnungErläuterung registerbank (using) Jede Funktion kann eine Vereinbarung enthalten, in der die zu benutzende Registerbank angegeben wird. interruptFunktionen können als Interrupt-Service-Routinen vereinbart werden durch Angabe des Interruptnamens bzw. –vektors. register maskDer 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 tasksDurch das Schlüsselwort _task_ werden Funktionen als Tasks des Betriebssystems RTX166 spezifiziert. Neue Schlüsselwörter (Keywords): Speicherarten:near, idata, bdata, sdata, far, huge, xhuge Datentypen:bit, sfr, sbit Funktionen:interrupt, _task_, using

12 Embedded SystemsSeite 12 Speicherarten (Memory Types) AuswahlAdressraum 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 SFRs 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

13 Embedded SystemsSeite 13 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 Die Programmiersprache C für den Mikrocontroller C164 Speichermodell VariableFunktionenSegmentierungCodeumfang TINYnearnearnein64k SMALLnearnearja64k COMPACTfarnearja 64k HCOMPACT hugenearja64k MEDIUMnearfarjaunbegrenzt LARGEfarfarjaunbegrenzt HLARGEhugefarjaunbegrenzt

14 Embedded SystemsSeite 14 Datentypen: Speicherumfang und Wertebereich Datentyp SpeicherumfangWertebereich bit #1 Bit0 oder 1 signed char1 Byte-128 bis +127 unsigned char1 Byte0 bis 255 signed int2 Bytes to unsigned int2 Bytes0 bis signed long4 Bytes bis unsigned long4 Bytes0 bis float4 Bytes 1.176E-38 bis 3.40E+38 double8 Bytes 1.7E-308 bis 1.7E+308 pointer2/4 BytesAdresse des Objects Die Programmiersprache C für den Mikrocontroller C164 Datentypen für den Zugriff auf Special Function Registers (SFR) sbit #1 Bit0 or 1 sfr #2 Bytes0 to # spezielle Datentypen in C166, die in ANSI-C nicht definiert sind.

15 Embedded SystemsSeite 15 Integrierte Entwicklungsumgebung C- Library ANSI C Compiler Macro- Assembler – Debugger – Simulator Emulator & PROM Programmer RTX Tiny Real Time Operating System – µVision2 Editor / Project Management Library Manager Linker / Locater CPU & Simulator Monitor Target Debugging Peripheral Ab ins Praktikum

16 Embedded SystemsSeite 16 Code-Adressierung mittels Segmentierung im 4 MByte Adressraum Code Segment Pointer (CSP) zur Code-Adressierung 22-Bit physikalische Code-Adresse (C164) 6-Bit Segment- nummer 16-Bit 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.

17 Embedded SystemsSeite 17 Adressierung von Daten mittels Seitenauswahl (Paging) innerhalb des 4 MByte Adressraumes Daten-Adressierung über Data Page Pointer (DPP) 14-bit bit Adresse 1415 Auswahl eines Data Page Pointer 10-bit Seiten- nummer DPP3 DPP2 DPP1 DPP0 Physikalische 24-Bit Daten-Adresse (bis zu 22 aussen verfügbar beim C164) SFR

18 Embedded SystemsSeite 18 External Bus Controller Ermöglicht variables Timing von CPU-Steuersignalen mittels Software Realisiert bis zu 4 Chip-Select-Signale Auswahl von 4 Adressbereichen möglich Special Function Register BUSCON0..4 Programmierbare Zeiten. Festlegung von CS# - Signalen. Auswahl der Breite des Daten-BUS 8 / 16 Bit. Special Function Register ADDRSEL1..4 Programmierbare Ausschnitte aus dem Adressraum für den Zugriff auf externe Komponenten mit den Eigenschaften der zugeordneten BUSCONx- Register.

19 Embedded SystemsSeite 19 Gemultiplexter Adress- und Daten-BUS Address Data A16..A21 ALE CS# A0..A15 D0..D15 (7) RD# A0..15 D0..15 (7) WR# Verlängern des Adress- Setups Speicher- zugriffszeit Tri-State - Zeit WR-Delay RD-Delay SFR

20 Embedded SystemsSeite 20 Integrierte Chip Select - Signale Die Basisadresse ist stets ein Vielfaches des Adressbereiches. (d.h. der Chip Select mit einem Adressbereich von 128kByte beginnt an einer 128kByte Grenze) A21 A20 A19 CS3# CS2# CS1# CBAGCBAG CS11 CS10 CS9 CS8 CS7 CS6 CS5 CS4 74ACT138 C164 0xB xB xA xA x x x x Extra Memory-Mapped Chip-Selects P3.9 P3.8 P3.6 CS3# CS2# CS1# CBAGCBAG CS11 CS10 CS9 CS8 CS7 CS6 CS5 CS4 74ACT138 C164 0xF xE xD xC xB xA x x Extra IO-Mapped Chip-Selects Alle mit gleichem Bus-Mode, Waitstates, usw. CS0#P6.0BUSCON0 CS1#P6.1BUSCON1ADDRSEL1 CS2#P6.2BUSCON2ADDRSEL2 CS3#P6.3BUSCON3ADDRSEL3 Aktiv für jenen Adressraum der nicht durch CS1#..CS3# abgedeckt wird.

21 Embedded SystemsSeite 21 Anschluß von externen Speicherbausteinen mit 8 Bit- Organisation C164 [20 MHz] WE# OE# CS# CE# D0-7 A0-16 A0-18 MT5LC128K8D4 AM27C040 RAM ROM MT5LC128K8D4 Fa. Micron SRAM 128k x 8 Zugriffszeit 25 ns ADDRSEL1 = 0x0406 BUSCON1 = 0x04CF AM27C040 Fa. AMD Eprom 512k x 8 Zugriffszeit 120 ns BUSCON0 = 0x04CE A Bit D-Latch EN WRL# WRH# RD# D0-15 A16-19 CS1# CS0# ALE

22 Embedded SystemsSeite 22 BHE# OE# CS# CE# D0-15 A0-15 A0-16 IDT71016 M27C202 RAM ROM IDT71016 Fa. IDT (Integrated Device Technology) SRAM 64k x 16 Zugriffszeit 20 ns ADDRSEL1 = 0x0405 BUSCON1 = 0x04CF M27C202 Fa. ST Microelectronics ST Eprom 128k x 16 Zugriffszeit 100 ns BUSCON0 = 0x04CE BLE# WE# C164 [20 MHz] A Bit D-Latch EN WR# BHE# RD# D0-15 A16-17 CS1# CS0# ALE A0 Anschluß von externen Speicherbausteinen mit 16 Bit- Organisation

23 Embedded SystemsSeite 23 Sich überdeckende Adressbereiche XBCON0 BUSCON2 BUSCON4 BUSCON1BUSCON3 BUSCON0 0x xFFFFFF Inaktiver Bereich Aktiver Bereich Höchste Priorität Überlappen nicht zulässig

24 Embedded SystemsSeite 24 Interrupt System Interrupt Controller –Kurze Interrupt-Reaktionszeiten: Min. 250ns, typisch 400ns MHz) –Geringer Overhead für ISRs –Leistungsfähige Priorisierung in 15 Prioritätsstufen, zu je 4 Gruppen –Hardware Traps detektieren Laufzeitfehler –Software Traps Peripheral Events Controller (PEC) –Entlastet die CPU von einfachen und häufig auftretenden ISRs –Interruptgesteuerter DMA-ähnlicher Datentransfer ohne CPU- Eingriff –Reaktionszeiten: Min. 150ns, typisch 300ns mit einer CPU-Belastung von 100ns MHz)

25 Embedded SystemsSeite Group L e v e l 1 64 Level 15 group 1 group 0 group 2 group 3 Level 14 group 1 group 0 group 2 group 3 PEC 0 PEC 6 PEC 5 PEC 4 PEC 3 PEC 2 PEC 1 PEC 7 Level 1-13 group 1 group 0 group 2 group 3 (Level 0) group 1 group 0 group 2 group 3 Interrupts und PEC - Priorisierung

26 Embedded SystemsSeite 26 Interrupt Processing INTR Flag ist gesetzt Periph. Interrupt Externer Interrupt* External Interrupt* Prioritäts-Check Vergleich der Interruptpriorität mit der Laufzeit-Priorität der CPU 16 Prioritäts-Stufen falls höhere Priorität Interrupt Control Register des auslösenden Peripherie-Elementes INTR Service: Retten: PSW, CSP, IP Neue CPU-Prio. im PSW. CSP und IP aus Peripherie-Vector oder Trap-Nummer PEC Service * 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ösche INTR Flag Periph. Interrupt SFR Dave Vektoren

27 Embedded SystemsSeite 27 Interrupt hat den Prioritäs- und Gruppen-Check erfüllt Interrupt Priorität < 14 Interrupt Priorität 14 oder 15 und Data Counter > 0 Interrupt Priorität 14 oder 15 und Data Counter > 0 Interrupt ServicePEC Service 8 PEC Kanäle Data Counter SRC Pointer DEST Pointer Contr. Reg. Memory Segment 0 0xFFFF 0x0000 Byte bzw. Word Transfer INTR Service: Retten: PSW, CSP, IP Neue CPU-Prio. im PSW. CSP und IP aus Peripherie-Vector oder Trap-Nummer Interrupt falls Data Counter = 0 Prioritäts- & Gruppen- Check Peripheral Events Controller (PEC) Peripheral Events Contoller SFR


Herunterladen ppt "25.9.2009Embedded SystemsSeite 1 C166-Core Port 5 Port 3 CPU Dual Port RAM 2 KByte Interrupt Controller Watchdog Peripheral Data External Instr./Data Instr./Data."

Ähnliche Präsentationen


Google-Anzeigen