PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastaturabhängiger Barcodescanner => AVR



Jaecko
19.05.2009, 15:08
Moin.

Hab hier einen Barcodescanner liegen, der bisher immer am PC seinen Dienst tat. Jetzt soll der möglichst Kompakt (d.h. Elektronik soll ins Gehäuse) auf I2C umgebaut werden.

Mit nem AVR ist es ja kein Problem, PS/2-Daten auszuwerten.
Problem ist aber: Der Barcodescanner wird mit einem Y-Kabel zwischen PC und Tastatur gesteckt. Ohne Tastatur tut der Scanner natürlich nichts. Wird ein Barcode gescannt, piept der Scanner zwar, aber es kommt nichts am PC. Wird die Tastatur dann eingesteckt, wird der gescannte Code empfangen.

Welcher Typ von Scanner das ist, dürfte mal egal sein, da
- der Typ mir selbst nicht bekannt ist (nirgendwo ne Beschriftung)
- wohl alle Scanner mit Y-Kabel für die Tastatur gleich arbeiten.

Eine Tastatur ausschlachten und den Controller noch mit reinbasteln geht leider nicht, da dafür dann definitiv kein Platz mehr ist.

Die Frage ist jetzt: Wie kann ich den Scanner ohne Tastatur am AVR betreiben?

Meine Theorie wäre, dass der Scanner kurz an der Data-Leitung zupft. Die Tastatur bzw. der AVR erkennt das und erzeugt darauf hin das Clock-Signal => Daten können eingelesen werden.

Korrekt so?

mfG

PICture
19.05.2009, 15:37
Hallo Jaecko!

Ob deine Theorie stimmt, kann ich nicht sagen. Aber normaleweise müsste man mit einem Ohmmeter überprüfen können, ob ohne Tastatur irgeneine Verbindung zwischen dem Scanner und PC (AVR) nicht unterbrochen wird. Wen es so wäre, sollte es reichen die Taststur auf dieser Stelle zu überbrücken.

Es könnte aber auch sein, dass die Tastatur sich beim PC (AVR) meldet und wird dann von ihm bediennt. Das würde verlangen eine Emulation der Tastatur, was komplizierter wäre.

MfG

sast
19.05.2009, 21:31
Hallo Jaecko,

vielleicht ist der Scanner nicht in der Lage auch die Hostanfragen des PC zu bedienen. Das sollte dir dann aber für den AVR auch egal sein, dann müsstest du ohne Tastatur-Init und Parameterverstellung auskommen. Versuch doch mal, ob beim Anschluß von 5V an VCC und Ground irgend ein Takt am Clock rauskommt, wenn du was scannst. Und dann lies dir mal die PS2 Keyboard Key-Code Beschreibungen im Inet durch. Da gab es einen Link in nem Thread von gestern oder so wo es auch um Barcode ging.

sast

Hab gerade gesehen, dass du sogar selber was in dem Thread geschrieben hast https://www.roboternetz.de/phpBB2/viewtopic.php?t=48104

thewulf00
20.05.2009, 12:35
Hey Jaecko, Du willst uns nicht wirklich erzählen, dass in Deinem Barcodescanner noch Platz für einen AVR ist, aber nicht für einen Keyboard-Controller??? In welcher Zeit lebst Du denn?

http://tigert.1g.fi/mik/vatsim/ms-internet-keyboard.jpg

sast
20.05.2009, 12:53
Ich glaube nicht, dass du einen Keyboardcontroller brauchst. Wahrscheinlich empfängt der Barcodescanner sogar alle Befehle die normalerweise das Keyboard bekommt und setzt sie um, aber da davon ausgegangen wird, dass auch ein Keyboard dran hängt, wird er kein Response senden um die Antwort vom Keyboard nicht zu verstümmeln.

sast

Jaecko
20.05.2009, 13:29
Also das PS/2-Protokoll zwischen Tastatur und PC an sich kenn ich schon. Nur ist PS/2 ja _eigentlich_ nur für ne Verbindung zwischen 2 Partnern vorgesehen.
Geht halt darum, was denn die Tastatur (noch) hat, was dem Scanner fehlt; was wohl die Takterzeugung sein dürfte.

Werds demnächst mal testen; muss mir nur noch was einfallen lassen, wie der AVR für den Scanner Tastatur und PC gleichzeitig sein kann.

Der Scanner selbst bzw. dessen Y-Kabel ist eine einfache 1:1-Verbindung, d.h. mit dem Y-Kabel aber ohne daran angeschlossenen Scanner läuft die Tastatur auch.

sast
20.05.2009, 17:34
Das mit dem Takt kann ich mir nicht vorstellen, da die Tastatur doch bestimmt nur einen Takt sendet wenn sie selbst was überträgt, oder vom Host zum Empfang aufgefordert wird. Deshalb auch die Anregung mal den Takt am Scanner zu messen. Das ist auch nur ne Vermutung, habe selbst noch nie mit Tastaturen rumgespielt.

Ansonsten muss dein AVR eben den Takt erzeugen, sollte ja bei den paar kHz nicht das Problem sein

sast

Jaecko
20.05.2009, 19:27
Die Frequenz des Taktes dürfte das geringste Problem sein. Eine Zeichenverzögerung von 75 ms ist noch eingestellt. Umprogrammieren geht mangels Handbuch nicht.

linux_80
21.05.2009, 10:31
Das mit dem Takt könnte so sein, da normalerweise nur die Tastatur einen Takt sendet, kann der Scanner das nicht auch machen. Damit aber der Scanner seine Zeichen los wird, braucht er den Takt der Tastatur, was er dadruch erreichen kann, das er so tut als würde er der Tastatur etwas senden, dann startet die Tastatur mit dem Takt, und der PC denkt die Tastatur hat was gesendet. Die Tastatur kann aber mit dem gesendeten nix anfangen und verwirft das empfangene.
Was ein AVR hier tun müsste, ist nur einen Takt generieren, wenn der Scanner an der Leitung zupft.
:-k

Welcher Scanner ist das denn, hast Du mal ein Bild, wenn sich sonst nix dazu finden, evtl. kennt den jemand. Hast Du schon mal nach Symbol gesucht, ist eine der bekanntesten Namen in der Richtung ?

sast
21.05.2009, 15:20
nein die Tastatur verwirft nicht, sondern sendet eine Fehlermeldung. Zumindest steht es so in der Beschreibung zu den Tastaturkeys.
Deshalb meine Vermutung, dass auch die Tastatur nur taktet wenn sie was sendet.

Hast du keine Möglichkeit mal den Takt zu messen? Das würde die Raterei beenden und man könnte an der Stelle anknüpfen. Zur Zeit drehen wir uns hier im Kreis.

sast

Jaecko
21.05.2009, 18:37
Am ähnlichsten sieht er einem "Zebra CF-1KB":
http://www.micro-associates.com/zebra/cf-1kb.html
Nur findet man zu der Gurke kaum Informationen.
Im Manual auf der Seite gibts ebenfalls wie im anderen Handbuch Barcodes zum Umprogrammieren; nur die versteht mein Scanner nicht.

Und nachmessen, ob sich was tut ginge schon. Bzw. hab ich auch schon mal; nur gabs zu der Zeit, aus der das Oszi kommt, noch keinen Speicher. D.h. ich seh zwar, dass sich was tut; nur die zeitliche Abfolge kann man daraus nicht rauslesen.
Was halt damit auch nicht geht: Rausfinden, von wem das kommt.

Interessant wärs, was passiert, wenn der Scanner was sendet, was für die Tastatur ein gültiger Befehl ist...