Wie multiplext man eine bidirektionale Datenleitung?

Ich habe einen Anwendungsfall, in dem ich mehr als 4 Sonarsensoren mit einem pic 628A-Mikrocontroller steuern muss. Das Bild ist auch für die Steuerung eines GPS und eines LCD verantwortlich, sodass Pins knapp sind. Die Sonarsensoren haben jeweils einen einzelnen Signalstift. Um sie zu betreiben, pulsieren Sie diesen Stift, der ein Ultraschall-Zwitschern erzeugt, und warten dann, bis er wieder hoch geht, was anzeigt, dass ein Echo erkannt wurde. Die Zeit zwischen dem Anfangsimpuls und dem Antwortimpuls entspricht der Laufzeit des Chirps.

Ich würde gerne alle Sonarsensoren auf einen einzigen Bus multiplexen können, bin mir aber nicht sicher, wie ich das bewerkstelligen soll. Ich möchte, wenn möglich, nur grundlegende Komponenten verwenden (keine spezialisierten ICs), da mein Hauptzweck dieses Experiments darin besteht, ein besseres Verständnis der Grundlagen zu erlangen. Da der Signalkanal sowohl Eingang als auch Ausgang zulassen muss, glaube ich nicht, dass Bipolartransistoren funktionieren werden. Ich habe überlegt, FETs zu verwenden, um jede Signalleitung zu multiplexen, aber ich bin mit diesem Zeug sehr unerfahren und würde mich über eine Anleitung freuen.

Wenn Sie ein höheres Modell des PIC verwenden, könnten Sie einen I2C-Bus haben, mit dem Sie dem System I/O-Port-Chips hinzufügen könnten.
Das ist ein guter Vorschlag, aber der Grund, warum ich dies tue, ist, ein besseres Verständnis für den Aufbau von Schaltungen mit diskreten Komponenten zu erlangen.

Antworten (2)

Was Sie wollen, ist ein 8:1 Multiplexer/Demultiplexer. Sie können sie als IC erhalten , aber ich weiß nicht, ob das unter Ihre Vorstellung von einem "spezialisierten" IC fällt oder nicht. Es ist die Art von Dingen, die Sie in einem Digital-Logik-Kurs für Studienanfänger verwenden würden.

Wenn Ihnen das nicht einfach genug ist, zeigt Ihnen das Blockdiagramm immer noch, was Sie bauen müssen.Mux/Demux-Blockdiagramm

Die untere Hälfte sind Ihre MOSFETs. Die obere Hälfte wird als Decoder bezeichnet , wenn Sie dies in einem einzigen IC erhalten möchten. Sie können die Inverter und UND-Gatter mit 4 Eingängen auch als separate ICs erhalten, oder Sie können diese aus Transistoren bauen, wenn Ihnen das gefällt. Hängt davon ab, wie schwer du es dir selbst machen willst.

PTL liegt etwas außerhalb meines Verständnisniveaus. Nehmen wir an, ich habe 3 Pins für die Sensorauswahl (wodurch ich 8 separate Sonarsensoren adressieren kann) und 1 Pin für Daten. Könnte ich den PIC-Datenpin nicht einfach an 8 separate FETs anschließen, die jeweils zu einem Sonarsensor gehen, um einen bidirektionalen Kanal zu erreichen? Könnte ich dann nicht die 3 Datenauswahl verwenden, um die FET-Gatter irgendwie zu multiplexen?
@odysseus.section9 wie willst du 8 FETs an 3 Pins anschließen?
Ich dachte, ich könnte die 3 Pins vielleicht als Datenauswahlpins auf einem 1 bis 8 Multiplexer verwenden, der zu den Gates von 8 FETs geht.

Der einfachste Ansatz könnte darin bestehen, so etwas wie einen 74HC4051 zusammen mit einer Art Zählerchip zu verwenden, um zwischen bis zu sieben Geräten auszuwählen. Man könnte wahrscheinlich einen einzelnen Prozessor-Pin verwenden, um alles zu tun, wenn der Zähler von der steigenden Flanke auf der Datenleitung betrieben würde, obwohl es wahrscheinlich eine gute Idee wäre, eine kurze Verzögerung hinzuzufügen (möglicherweise mit ein paar Schmidt-Trigger-Wechselrichtern mit einem RC Verzögerung zwischen ihnen) zwischen der Datenleitung und dem Takteingang des Zählers (um sicherzustellen, dass die Datenleitung ganz hoch ist, bevor der Zähler vorrückt). Um die Notwendigkeit einer separaten Leitung zum Zurücksetzen oder Erfassen des Zählerstands zu vermeiden, verbinden Sie einen der 74HC4051-Eingänge mit einem Pulldown-Widerstand, der stark genug ist, um den „normalen“ Pullup am Pin zu überwältigen. Das wiederholte Aktivieren und Loslassen des Pins würde dazu führen, dass der Zähler weit genug vorrückt, um diesen Eingang auszuwählen;