Ich habe ein einfaches Projekt auf einem Host-Gerät, das 2 Pins mit hohem Logikpegel (Spannung 3,3 V, 5 V oder 12 V - spielt keine Rolle) ansteuern und warten soll, bis 2 andere Pins vom Peripheriegerät auf einen hohen Pegel angesteuert werden.
Kann ich ein solches Host-Gerät mit einem Standard-PC implementieren und welche Hardware (integriert oder extra) sollte ich verwenden?
Antworten:
Es ist nicht klar, was der PC tun soll und was das Gerät tun soll ("Host-Gerät" macht keinen Sinn), aber es scheint, dass Sie grundlegende digitale E / A von einem PC wollen.
PCs sind nicht wirklich für die direkte digitale E / A an externe Geräte ausgelegt. Sie können jedoch digitale E / A-Module kaufen, die über USB mit dem PC verbunden sind und die es Ihnen ermöglichen, einzelne digitale Signale zu lesen und zu schreiben. Sie können dies am einfachsten selbst tun, indem Sie einen Mikrocontroller über einen COM-Anschluss mit dem PC kommunizieren lassen.
Wenn dies jedoch nur ein einfaches Steuerungsproblem ist, warum benötigen Sie überhaupt einen PC? Lassen Sie einen kleinen Mikrocontroller die ganze Aufgabe selbst erledigen. Genau dafür sind Mikronroller gedacht. Es handelt sich um kleine Computer mit digitalen und anderen E / A-Leitungen, die direkt an externe Hardware angeschlossen werden sollen.
quelle
Wenn Sie immer noch einen finden, ist es erwähnenswert, dass ein echter paralleler Anschluss einem GPIO ungefähr so nahe kommt, wie Sie ihn in einem Standard-PC finden. Klassischen Implementierungen mangelt es an Flexibilität, da viele der Pins eine feste Richtung haben und einige invertiert sind, aber die Leute arbeiten seit Jahren daran.
Die größere Einschränkung besteht darin, dass solche Ports aussterben. Die abstrakteren Ersetzungen wie USB-Parallel-Konverter können normalerweise nur zur Steuerung der tatsächlichen Drucker verwendet werden, und es fehlen Register, die Sie direkt lesen / schreiben können, um den Pin-Status festzulegen oder zu überwachen. Es wurde gemunkelt, dass es einige gibt, die diese Fähigkeit haben, aber sie können schwer zu finden sein und erfordern detaillierte Aufmerksamkeit für die Fahrer.
An diesem Punkt wird es tendenziell praktischer, ein über USB angeschlossenes E / A-Gerät zu verwenden. Oft ist dies ein Mikrocontroller, auf dem eine einfache Firmware ausgeführt wird, entweder vom Hersteller oder vom Benutzer.
Ein Hauptvorteil einer benutzerdefinierten Implementierung ist die Möglichkeit, die niedrigsten, sich wiederholenden und / oder zeitkritischen Teile der E / A-Manipulation auf den Prozessor auf dem Gerät zu verlagern, anstatt zu versuchen, dies vom PC aus zu tun, wo die Latenz von USB-Paketierung, Durchqueren mehrerer Busse und Multitasking-Betriebssysteme führen dazu, dass Bit-für-Bit-Vorgänge schmerzhaft langsam werden.
Wenn Sie noch nicht genau herausgefunden haben, wie Ihre Lösung aussehen wird, besteht eine Möglichkeit darin, sich ein Arduino zu schnappen, das zur Vereinfachung sowohl im Hardware- als auch im Toolchain-Sinne verpackt ist und entweder als eigenständige Lösung oder als eigenständige Lösung betrieben werden kann als E / A-Helfer für Aufgaben auf niedriger Ebene unter Befehl eines angeschlossenen PCs.
quelle
Ich würde empfehlen, einen FTDI FT232RL mit einem speziellen Treiber zu verwenden, der den Bitbang-Modus aktiviert . Diese Methode funktioniert auf praktisch allen PCs und ermöglicht einen angemessenen Latenzzugriff auf ein einfaches GPIO.
Es gibt viele FTDI-Chip-Breakout-Boards, aber ich persönlich benutze dieses .
quelle