Positionierungssystem für motorbetriebene Tafeln

Slides:



Advertisements
Ähnliche Präsentationen
Vom HW-Automaten zum Prozessor
Advertisements

4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
Multiplizierer Gesucht: Schaltkreis zur Multiplikation zweier Binärzahlen , Beispiel: RW-Systemarchitektur Kap. 3.
Befehlssatz und Struktur
LCDisplay Anschluss des LCDisplays Aufbau der LCDisplay-Platine
Technische Universität Dortmund
Das LCA – Problem in Suffixbäumen
Workshop „Monitoring an der Universität Duisburg-Essen“
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
FH-Hof Formale Sprachen - Maschinenmodelle Richard Göbel.
BCD Ripple Carry Adder von Enrico Billich.
Das Halteproblem. Gibt es einen Algorithmus, mit dem man für jedes beliebig vorgegebene Programm R und für jede beliebig vorgegebene Eingabe E entscheiden.
Technische Informatik I (SS 2006) Teil 1: Logik 1b: Schaltnetze.
Rechneraufbau & Rechnerstrukturen, Folie 7.1 © 2006 W. Oberschelp, G. Vossen.
µ-Controller-Labor Projekt- Prüfstandslüfter
Spielzeugsortierer Labor Mikrocomputertechnik Dozent: Prof. J. Walter
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 9 Claudio Moraga; Gisbert Dittrich FBI Unido
2.5. Mikrocontroller-Komponenten
Klausur „Diskrete Mathematik II“
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
4. Mikrocontroller-Komponenten
Hinweise zum 10. Übungsblatt zu GIN1b, WS04/05 Prof. Dr. W. Conen (Version 1.0alpha, )
Heute: Scherenzange zeichnen
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Der Simple As Possible Computer
So, ein paar Fragen.. Wo sind mehr Bälle? Wo sind mehr Steine?
Digital Design Schnuppervorlesung /
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
Einfache Syntax einer Matrix
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Erhard Künzel für Info 9. Klasse:. Bereiche Objekt: Bereich Eingabe- bereiche Verbunde und Verteiler Darstellung von Datenflüssen.
... Unternehmens- leitung
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter Indirekte Adressierung- Quickie Beschreibung.
Universelle Registermaschine
Halfadder a =1 s & cout b.
Einer wird gewinnen! (one will win!) The game is played in pairs or in 2 groups. You can pick any square and click on it. When you have finished with your.
Parallel Programming ( J ) CSP
3.3 Speicher Latches SR-Latch 1-bit Speicher S Q Q R Q Q
1 SR-Latch 3.3 Speicher Latches © Béat Hirsbrunner, University of Fribourg, Switzerland, 31. Oktober 2007 S Q Q R Q Q 1-bit Speicher.
3.4 CPU-Chips und Busse CPU-Chips
© Béat Hirsbrunner, University of Fribourg, Switzerland
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Der Funktionsassistent
Computerorientierte Physik VORLESUNG
ICT – Modul Tabellenkalkulation
Driften Spiel des Lebens. Anzahl der Ziehung en Absolute Häufigk eit blau Absolute Häufigk eit rot Relative Häufigk eit blau Relative Häufigk eit rot.
Programmieren in Assembler
Computer-Kurse © 2009 Michaela Behling Relative und absolute Bezüge Kopieren von Berechnungen.
Brüche-Quartett Klasse 6-8 Spieler 4-6. Brüche-Quartett A1 Brüche-Quartett A2 Brüche-Quartett A3 Brüche-Quartett A4 Brüche-Quartett B1 Brüche-Quartett.
Datenverarbeitung im PC
Parallelwinkel im Überblick
Vegetationsplot 43 m 10 m Sammlerplot Reserveplot Bodenplot A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 Streusammler Schneesammler Regensammler Vegetationsquadrat.
You need to use your mouse to see this presentation © Heidi Behrens.
Rechnerstrukturen 3b. Endliche Automaten.
Tabellen in Word for Windowscomputeria, Urdorf Tabellen in Word for Windows computeria Urdorf / Dieter Eckstein.
Universität Rostock Fachbereich Elektrotechnik und Informationstechnik Institut für Angewandte Mikroelektronik und Datentechnik Eine Prozessorarchitektur.
Der Prozessor Von Stephan Blum.

Bs Segmentierung Adressraum besteht aus mehreren Segmenten (segments), die unabhängig voneinander manipulierbar sind. Segmentierungsstruktur ist.
Mikrocomputertechnik BLIN_INT-P-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „BLIN_INT-P-Quickie“
Mikrocomputertechnik Timer-0-1-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „TIMER-0-1-Quickie“
Programmbeginn Modus einstellen AD - Wandlung Welcher Modus (P3.4) Modus 1Modus 2 Subb – 2,5 VSubb – 3,5 V Carry- Bit gesetzt? Licht_aus P5.0 setzen Licht_ein.
LCDisplay Anschluss des LCDisplays Aufbau der LCDisplay-Platine
Aufbau und Funktionsweise einer CPU
Vom Prozessor zum System
Vom HW-Automaten zum Prozessor
CSL211 Computer Architecture
 Präsentation transkript:

Positionierungssystem für motorbetriebene Tafeln Andreas Glausch, Andreas Kerlin, David Weese

Produktidee Problem - optimale Positionierung von Tafeln in Mehr-Tafel-Anlagen - vollständige Nutzung der Tafelflächen Ziel - vereinfachendes Kontrollsystem für automatische Positionierung der Tafeln konkret - Nutzung vorhandener Tafelsysteme - Design eines Eingabepanels - Möglichkeit der voll- und halbautomatischen Tafelpositionierung - optionale Verwendung von Reinigungssystemen - zyklisches Bereitstellen der Tafeln

Externe Schnittstellen Tafel-Schnittstelle - max. 4x4 Tafeln mit Schrittmotorik und jeweils einem Eingang für Richtung MRi und Takt MTi - je Tafel zwei Sensoren SOi und SUi, die genau dann 1 liefern, wenn Tafel i den oberen bzw. unteren Rand erreicht hat Nummerierung von hinten nach vorn, dann von links nach rechts, hinterste Tafelposition durch 4 teilbar, ( Beispiel nebenstehend ) 4 8 1 5 9 2 6 10 Anforderungen ans externe Tafellöschsystem (TLS) - 4 Eingänge für maximal 16 Tafeln - 1 Eingang zum Starten der Löschaktion - 1 Ausgang, der Abschluss der Aktion signalisiert

Eingänge des Prozessors Control-Panel A1 A2 A3 A4 LineA LineB LineC LineD B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 Col1 Col2 Col3 Col4 Tafel  Weiter Holen Up Down Get Clear Tafel  Löschen Auto Eingänge des Prozessors

Anschlüsse Eingänge: vom Control Panel 13 Signale: - 8 Tafelbits (LineA, ..., LineD, Col1, ..., Col4) - 5 Aktionsbits (Auto, Up, Down, Get, Clear) vom Tafellöschsystem: 1 Fertig-Signal Reset Stromversorgung 5V Ausgänge: 16 LEDs: L0, ... ,L15 16 mal MRi und MTi ( i = 0...15) zum Tafellöschsystem: - 4 Tafelbits - 1 Löschbit

Der Prozessor ROM (32kb) (Programm) (EPROM) Speicheraufbau RAM (16kb) 0x0000 0x7FFF RAM (16kb) (Daten) 0x8000 0xBFFF Ein-/Ausgabe 0xC000 0xFFFF Adresse Lesezugriff Schreibzugriff 0xC000...0xC00F (i = 0...15) Bit0 = SUi , Bit1 = SOi , Bit2-Bit7 = 0 Bit0 = MTi , Bit1 = MRi , Bit2-7 unbenutzt 0xC010 Bit0...3 = LineA...D, Bit4...7 = Col1...4 Bit[i] = Li 0xC011 Bit0 = Down, Bit1 = Up, Bit2 = Get, Bit3 = Clear, Bit4 = Auto, Bit 5,6,7 = 0 Bit[i] = Li+8 0xC020 (TLS) Bit0 = Fertig Bit1-Bit7 = 0 Bit0..3 = Tafel i, Bit4 = Löschbit, Bit5-Bit7 unbenutzt 0xC030 Anzahl Tafelzeilen unbenutzt 0xC031 Anzahl Tafelspalten sonst

16Bit-Ein-Adressmaschine 5Bit 1Bit 2Bit Opcode Mode Operand Mode Befehlsformat 16Bit-Ein-Adressmaschine Befehlsaufbau (1Byte) 5Bit 1Bit 2Bit Opcode Mode Operand Mode Beschreibung direkt (Register oder Immediate) 1 indirekt (registerindirekt oder absolut) Operand Beschreibung Befehlslänge 00 Register A 1Byte 01 Register B 10 Register C 11 Immediate 3Byte Beispiele: add B Mode = 0, Operand = 01 jmp 0123h Mode = 0, Operand = 11 sub [C] Mode = 1, Operand = 10 and [8002h] Mode = 1, Operand = 11

nicht vorkommende Opcodes entsprechen NOP Befehlssatz Opcode Befehl Beschreibung ADD A = A + <Operand> 1 SUB A = A - <Operand> 8 OR A = A | <Operand> 9 AND A = A & <Operand> 10 NOT A = ~A 11 SHL A = A << 1 12 SHR A = A >> 1 16 LD A = <Operand> 17 ST <Operand> = A 24 JMP PC = <Operand> 25 JZ IF (Z = 1) PC = <Operand> 26 JC IF (C = 1) PC = <Operand> 27 JNZ IF (Z = 0) PC = <Operand> 28 JNC IF (C = 0) PC = <Operand> 31 NOP No Operation nicht vorkommende Opcodes entsprechen NOP

INTERNER BUS (nullterminiert) CPU - Layout ALSU A kku B Flags: CF ZF C Mikrosteuerwerk IR INTERNER BUS (nullterminiert) PC 20 Steuerleitungen PC- Inkrement austauschbar ROM Memory Controller MAR RAM MDR I/O R W Leitungen mit werden vom Mikrosteuerwerk ein- oder ausgeschaltet Registergrößen: A, B, C, PC, MAR, MDR - 16 Bit IR - 8 Bit (oberen 8 Bits des Busses werden ignoriert)

(ArithmeticLogicShiftUnit) ALSU (ArithmeticLogicShiftUnit) Bus ALSU- Decoder s3 s2 s1 s0 BA ALU a b c al rs Akku Flags RSU al rs (Right Shifter) ALSU-Decoder: Befehl a b c s3 s2 s1 s0 BA al rs NOP x ADD 1 SUB AND OR NOT LSHIFT RSHIFT - ALU benutzt parametrischen Carry-Skip-Adder aus vier 4-Bit-Carry-Lookahead-Addern (c0 = 0)

IR Flags K PC Steuerspeicher (512x20) Steuerleitungen Mikrosteuerwerk Dekodierschaltung decode Resetleitung PC Inkr. (/decode) Steuerspeicher (512x20) Steuerleitungen Dekodierschaltung K setzt PC entsprechend IR und Flags. (Bsp.: JNZ führt mit gesetztem ZF NOP aus, JNZ mit gelöschtem ZF JMP.) Am Ende jeder Instruktion wird ein Fetch und ein Decode ausgeführt (siehe Microcode)

- R = 1 bedeutet Lese- und W = 1 Schreibzugriff (R  W) Memory Controller austauschbar Memory Controller ROM MAR 15 Bit Adresse 16 Bit Adresse 16 Bit Daten R RAM 14 Bit Adresse MDR 16 Bit Daten 16 Bit Daten R W I/O 6 Bit Adresse 8 Bit Daten R W Read Write MAR-Bits 15 und 14 Speicherbereich Adressbits 0 x ROM 14...0 1 0 RAM 13...0 1 1 I/O 5...0 - R = 1 bedeutet Lese- und W = 1 Schreibzugriff (R  W)

Microcode Reset LD [B] ADD 0042h Schritt Aktion 1. Ain, Bin, Cin, PCin 2. ALU:OR (löscht CF, setzt ZF) 3. PCout, MARin 4. MDRout, IRin, PCinc, decode LD [B] Schritt Aktion 1. Bout, MARin, R 2. MDRout, Ain 3. PCout, MARin 4. MDRout, IRin, PCinc, decode, ADD 0042h Schritt Aktion 1. PCout, MARin, R 2. MDRout, ALU:ADD, PCinc 3. PCinc 4. PCout, MARin 5. MDRout, IRin, PCinc, decode

NOP und unerfüllter bedingter Sprung Jxx Reg Schritt Aktion 1. PCout, MARin 2. MDRout, IRin, PCinc, decode JMP 0123h und erfüllter bed. Sprung Jxx Imm Schritt Aktion 1. PCout, MARin, R 2. MDRout, PCin 3. PCout, MARin 4. MDRout, IRin, PCinc, decode ST [1234h] Schritt Aktion 1. PCout, MARin, R 2. MDRout, MARin, PCinc 3. Aout, MDRin, W, PCinc 4. PCout, MARin 5. MDRout, IRin, PCinc, decode

Assemblercode Definitionen (TASM Syntax) motor .EQU 0c000h sensor .EQU 0c000h hoch .EQU 3 runter .EQU 1 aus .EQU 0 zeilen .EQU (0c021h) ;() entspricht indirekt spalten .EQU (0c022h) #DEFINE MOV(x,y) LD x\ST y #DEFINE ADD(x,y) LD x\ADD y\ST x #DEFINE SUB(x,y) LD x\SUB y\ST x #DEFINE INC(x) LD x\ADD 1\ST x #DEFINE DEC(x) LD x\SUB 1\ST x Initialisierungsphase (Auszug) LD tafel ;Tafelnummer nach A laden ADD sensor ;A enthält Tafelsensoradr. ST C ;A->C downloop: ;Tafel ganz runter fahren LD (C) AND 1 ;teste Bit0 = SUTafel JNZ downend ;stoppe, wenn gesetzt MOV (runter,(C)) ;Motoradr. gleich JMP downloop ;Sensoradr. downend: MOV (0,B) ;Zähler auf Null setzen

uploop:. ;Tafel ganz hoch fahren LD. (C) AND. 2 uploop: ;Tafel ganz hoch fahren LD (C) AND 2 ;teste Bit1 = SOTafel JNZ upend ;stoppe, wenn gesetzt MOV (hoch,(C)) ;Motoradr. gleich INC (B) ;Makro. Nicht mit indirekt ;verwechseln! JMP uploop ;Sensoradr. upnend: MOV (B,zaehler) ;enthält Anzahl der ;Schrittmotorsteps einer ;Tafel(von oben nach unten) In der Initialisierungsphase werden alle Tafeln herunter gefahren, und beim Wiederhochfahren die Einzelschritte jeder Tafel gezählt (für spätere Berechnungen notwendig).

Programmablauf Initialisierung: Alle Tafeln nach unten fahren und Istwerte auf 0 setzen n – Anzahl der Tafeln n Sollwerte (Zielpositionen) n Istwerte – (aktuelle Positionen) n Maxwerte – (maximale Positionen) n Positionen (Tafelreihenfolge) aktuelle Tafel Alle Tafeln nach oben fahren Dabei Istwerte erhöhen Maxwerte auf Istwerte setzen Sollwerte berechnen Istwerte anpassen (evtl. Motoren bewegen) Tafeltaste gedrückt? Panel-Eingabe abfragen „Weiter“ gedrückt? ja nein neue aktuelle Tafel aktuelle Spalte rotieren ja nein „Runter“ gedrückt? Sollwerte neu berechnen Sollwert für aktuelle Tafel dekrementieren ja nein „Hoch“ gedrückt? Sollwert für aktuelle Tafel inkrementieren ja nein „Holen“ gedrückt? Sollwert für aktuelle Tafel auf 0 setzen ja nein „Löschen“ gedrückt? Löschvorgang für aktuelle Tafel starten ja nein

... Rotation am Beispiel einer 3x2-Tafelmatrix 1. Kapitel 1. Kap... 2. Kap... 1. Kapitel 1. Kapitel 2. Kapitel 2. Kapitel 3. Kapitel 4. Kap... 3. Kap... ... Das 7. Kapitel überschreibt das 1. Kapitel.