Hallo Leute, wie bekomme ich preisgünstig ca. 180 digitale I/O-Kanäle an einen PC? Man könnte jetzt bspw. eine Profibuskarte oder eine CAN-Bus-Karte in den Rechner stecken und alles mit (teurer) dezentraler Peripherie machen. Aber vielleicht gibt es hier ja jemanden, der eine bessere Idee hat. Die Kabellänge beträgt etwa 10m, die Polling-Zeit ca. 100ms. Ich zähle auf eure Ideen. Gruß Joline
Wie wärs mit ein paar 8051 über serielle Schnittstelle? Der TxD eines 8051ers geht auf den RxD des nächsten, und der TxD des letzten wieder zum RxD vom PC. Gruß Ralf
Naja, man bräuchte nur einen Mikrocontroller. 8051 ist schon mal gut, da dieser über einen Adressbus verfügt und sich so eine fast beliebige Anzahl von Peripheriebausteinen anschließen läßt. Eine Möglichkeit wäre z.B. 82C55 zu verwenden (24 I/O Ports pro Chip). Bei acht 82C55 wären das dann 192 I/O Ports.
Okay, klar, das war auch meine erste Idee, allerdings sind zumindest bei uns in der Gegend 82C55 sehr schwer aufzutreiben. Und ein Nachteil dieser Schaltung wäre, dass sie wirklich zentral sein muss, während mehrere µCs ja verteilt werden können, es kommt eben drauf an was man machen will. Gruß Ralf
Danke schon mal für die schnellen Antworten. @Ralf 1. Ich kenne mich mit 8051 nicht aus, nur mit AVR. Aber prinzipiell kann man diese ja auch über Rx/Tx vernetzen. Nun die Frage: Dein Vorschlag ist, Tx an Rx des nächsten usw. Dann muss doch jeder das empfangene immer weiter senden, wenn es nicht für ihn selbst bestimmt ist, oder? Wäre dann eine parallele Vernetzung nicht sinnvoller? 2. Das ganze ist mehr oder weniger zentral. Rechner und Datenpunkte sind nur ca. 10m voneinander getrennt. Das liese sich aber über einen seriellen Strick überbrücken. @Marko Die Idee mit den Peripheriebausteinen (82C55) klingt auch sehr interessant. Leider kenne ich sowas nicht vom AVR. :o( --------------- Aber vielleicht gibt es noch eine Idee mit fertigen Komponenten. Ich dachte da so z.B. eine Art Netzwerk mit RS485-Komponenten, die adressierbar sind und eine Anzahl I/O-Kanäle onboard haben. Hat vielleicht jemand da eine Idee? Natürlich bin ich aber auch für alle anderen Ideen dankbar. ;o) Gruß Joline
Hallo, es gäbe vielleicht noch die Möglichkeit über i2C Komponenten (PCF8574). Ein PC-Interface ist relativ einfach zu bauen. Es gibt da Bausteine mit 16 I/Os und mit 8 I/Os. Das könnte funktionieren, obwohl ich Mikrocontroller-Lösungen vorziehen würde. Man könnte auch µC zusammenschalten, und diese über I2C adressieren. Vielleicht hilft es ja.. Gruss Andreas
Ralf: Schwer aufzutreiben? Gibts für EUR 2,10 pro Stück bei Reichelt. Andreas: I2C mit PCF8574 könnte auch gehen, weiß aber nicht ob das dann schnell genug wäre ... Joline: Soweit ich weiss haben auch einige von den größeren AVRs (z.B. Mega128) einen externen Bus, da kannst Du die 82C55 genauso anschließen.
Die einfachtste, günstigste und sicherste Variante ist ein Netzwerk von über RS485 verbundenen MC´s. Je nachdem wie viele Ein/Ausgänge Du brauchst kannst Du den entsprechenden AVR auswählen. Die I/os kannst Du auch einfach mit Schieberegistern fast unendlich erweitern. Steffen
Hi, ich hatte gestern bei Ebay eine ISA I/O Karte gesehen (100 I/O's). Leider finde ich die imho nicht. Rubrik Wissenschaftliche Geräte. Mfg Dirk
Kannst Du Deine Anforderungen noch etwas genauer spezifizieren? Sind die 100ms für einen I/O-Pin oder für alle 180? Das wären dann nur 555µs pro Portpin, oder anders ausgedrückt: 1800 baud. Das könnte - zuzüglich Adressierung - für den I2C-Bus schon etwas viel werden. Die Vernetzung von mehreren µC über Rx/Tx wird sicher auch jede Menge Protokolloverhead erzeugen, von daher wäre ich auch für einen einzelnen µC, als Wandler von RS232 auf irgendein synchrones serielles Format (Schieberegister/I2C) oder vielleicht ist auch eine Matrixanordnung denkbar. Dazu folgende Frage: Müssen alle 180 Pins bidirektional sein, oder ist das irgendwie aufgeteilt? Wenn Du das mit möglichst wenig Bauteilen machen möchtest, nimm ein FPGA. Da großes Schieberegister reinprogrammiert und Du bist fertig. Und die Geschwindigkeit ist sicher kein Problem. Und wenn ich mal neugierig sein darf: Was hast Du vor, was willst DU damit machen? CU, Markus_8051
@Markus: Das Ganze ist überhaupt nicht zeitkritisch. Keine Steuerungsaufgaben oder so. Es werden fast alles Ausgänge sein, an denen lediglich je eine LED angeschlossen ist. Am Rechner passiert etwas und dementsprechend leuchten gewisse LED's. Ich dachte nur als Reaktionszeit sind 100ms (für alle) ganz akzeptabel. Trotzdem noch eine Frage: "großes Schieberegister reinprogrammiert" -> Wie könnte das funktionieren? Egal welcher µC, er hat doch nur eine bestimmte Anzahl I/O. Ohne zusätzliche Hardware kommt man da nicht aus, oder doch? @Steffen: Also die Lösung mit einem RS485-Netzwerk gefällt mir eigentlich auch am besten, weil das relativ einfach erweiterbar ist, ohne die schon vorhandene HW zu stören. Jeder bekommt eine eindeutige Adresse und wenn noch einer hinzukommt, stört das die anderen nicht. Und wenn ich gerade dabei bin, etwas Neues zu entwickeln, schadet es nicht, wenn es etwas universeller ausfällt. ;o) ____________________ Nur wie macht man am besten die Vernetzung: seriell (also Tx an Rx des nächsten usw.) oder doch lieber parallel (also alle Rx und alle Tx zusammen)?
Nimm doch CAN - alle parallel an den CAN-Bus und keinerlei Protokollsorgen. Wolfgang
Es geht noch einfacher: Multiplexing am Parallelport. Ein paar Bustreiber und Adressbausteine an den Parallelport und fertig.
Dann vielleicht doch einen µC, und Schieberegister (z.B. 74595 = Out, 74589 = In), wenn ich das mit einem 8051 durchgehe, komme ich auf knapp 30 Register, also etwas weniger als 240 Ports. Gruß Ralf
Wie macht man am besten die Vernetzung für ein RS485-Netzwerk: seriell (also Tx an Rx des nächsten usw.) oder doch lieber parallel (also alle Rx und alle Tx zusammen)?
Was brauchst Du, Ein- oder Ausgaenge? Ich habe mal fuer ein Modellbahnsteuerung eine PC-Karte mit 8 x 8255 verbaut, da gingen 4 50(?)-polige Flachbandkabel raus (196 I/Os). siehe http://www.soft-lok.de/produkte.php Ansonsten ist Parallel-Port mit Extenderschaltung auch eine gute Moeglichkeit.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.