Assembler ps/2 schnittstelle

Neue Frage »

Auf diesen Beitrag antworten »
sirbaros Assembler ps/2 schnittstelle

Hallo,
ich möchte gerne eine ps/2 schnittstelle für eine tastatur programmieren.
dazu muss ich sie wie folgt programmieren!!

kann mir jemand da weiterhelfen wie ich das mit assembler machen muss

vielen dank!!

http://de.wikipedia.org/wiki/PS/2-Schnittstelle


1. Im Einschaltmoment des Computers werden Clock und Data vom PC auf Low gezogen. Die Tastatur erkennt dieses und macht einen Selbsttest (basic assurance test).
2. Nachdem die Software im PC eine Initialisierung (Grundeinstellung aller nötigen Peripherie-Bausteine) vorgenommen hat, wird zunächst Data nicht mehr vom PC auf low gezogen. Ist der PC nun bereit zum Empfang, wird auch Clock deaktiviert und geht durch den Pullupwiderstand auf high.
3. Da nun Clock und Data high sind, kann die Tastatur Daten schicken. Die Pause dieses Zustandes ist hier aus Platzgründen verkürzt dargestellt.
4. Zuerst zieht die Tastatur Data auf low (Startbit), um den Beginn eines zu übertragenden Bytes zu kennzeichnen. Danach wird von der Tastatur Clock für eine Weile auf low gezogen.
5. Auf gleiche Art und Weise werden die folgenden Datenbits D0...D7, odd Parity und Stopbit (Data = 1) übertragen. In dem Beispiel ist D7...D0 = 1010 1010 welches $AA = BAT entspricht. Da die Anzahl der enthaltenen Einsen gerade ist, ist das Parity-Bit für odd Parity gesetzt.
6. Am Ende des Stopbits sind Data und Clock wieder beide high.
7. Zur Bestätigung der empfangenen Daten legt der PC Clock auf low, bis die interne Verarbeitung abgeschlossen ist.

Diagramm PS2-Schnittstelle: Daten vom PC


http://de.wikipedia.org/wiki/PS/2-Schnittstelle

1. Zunächst muss der PC Clock wieder deaktivieren (negativ True logic), damit eine Übertragung ermöglicht wird. Knapp danach legt der PC Data auf low, um mit dem Startbit einen Übertragungswunsch zu signalisieren.
2. Hat die Tastatur das Startbit erkannt, legt sie Clock auf low, um damit das nächste Bit anzufordern.
3. Nun folgen die Daten-Bits D0...D7, Parity und Stopbit nach gleichem Schema. Hier im Beispiel wird 1110 1101 = $ED = Set LED gesendet.
4. Während Clock im Stopbit noch high ist, legt die Tastatur zur Quittierung auf Bitebene Data auf low und dann Clock für eine Weile auf low.
5. Danach wird Data von der Tastatur wieder zurückgenommen, und sowohl Data als auch Clock sind high.
6. Schließlich setzt der PC Clock wieder auf low, um die Daten zu verarbeiten.

Nach diesem Befehl Set LED würde die Tastatur mit Ack auf Byte-Ebene den Befehl als Verstanden quittieren. Als nächstes kann dann der PC z.B. den Parameter $02 übertragen (NumLock LED an). Die Befehlsübersicht steht unter Scancode.
 
Auf diesen Beitrag antworten »
TMSearcher

Hi,
mit was für einem Prozessor (und was für einer Peripherie) oder Mikrokontroller willst du denn arbeiten? Die Prozessor- bzw. Mikrokontrollerfamilien haben in der Regel alle unterschiedliche Befehlssätze. Dem entsprechend muss das Programm aufgebaut werden. Ich würde dir einen Mikrokontroller empfehlen, da dort schon eine Menge Peripherie integriert ist (z. B. PIC... von Microchip – darauf habe ich mich eingeschossen). Weiter würde mich interessieren, wofür brauchst du diese Schnittstelle?
Etwas mehr Input bitte und dir kann vielleicht geholfen werden Augenzwinkern .

Gruß
TMS

Edit: schei... Rechtschreibung und außerdem habe ich meine Kristallkugel verbummelt.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »