-         
+ Antworten
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: Mehrfachumschalter

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.07.2004
    Ort
    Brandenburg
    Alter
    32
    Beiträge
    34

    Mehrfachumschalter

    Hi...

    Zur Zeit nutze ich Relays um Datenleitungen umzuschalten. Da mir das aber nach und nach zu Groß wird brauche ich eine bessere Lösung.

    Folgendes... ich habe 20 Leitungen die rein kommen. Diese sollen per Steuerstrom auf auf andere Umgeleitet werden. Alle zugleich. Das heisst 1 Leitung der 20 hat 6 weitere. Also muss diese eine zwischen 6 hin und her geschaltet werden... Und das ganze 20 mal. Wenn die Eingangsleitung x1-1 auf Ausgangsleitung x3-1 gelegt wird müssen alle anderen auch auf die x3-n gelegt werden.

    ZZ. sind es nur ein 20 Pol eingang und 2x 20 Pol Ausgänge welche ich mit 10x 2Fach Wechsler Relais regeln kann, nun kommen aber nochmal 4x 20 Pol Ausgänge dazu und das würde den Ramen sprängen mit Relays.


    Ich dachte schon an ICs aber was kann man da nehmen?
    Geht es anders? Muss ich Relays nehmen?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    24.04.2004
    Ort
    Karlsruhe
    Alter
    38
    Beiträge
    1.277

    Re: Mehrfachumschalter

    Zitat Zitat von StoneColdCrazy
    Hi...
    Ich dachte schon an ICs aber was kann man da nehmen?
    Geht es anders? Muss ich Relays nehmen?
    Probiers mit Treibberbausteinen der 74er Reihe. Hatten wir grad schon mal in dem Thread wo jemand seine ISP-Stecker umschalten wollte...
    Je nach Signal und Strom eventuel noch nen Leistungstreiber...

    Gruß, Sonic

  3. #3
    Gast
    Es Kommt auch ein wenig auf deine Signale an. Was für Datenleitungen sind den das 3.3V, 5V, Frequenz?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    27.07.2004
    Ort
    Brandenburg
    Alter
    32
    Beiträge
    34
    Datenleitung. ein teil der 20 Leitungen sind RS-232

  5. #5
    Gast
    Wie wärs mit einem CD4051 pro Datenleitung

    http://www-s.ti.com/sc/ds/cd4051b.pdf

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Hi,
    habe ein ähnliches Problem, wollte nen Umschalter zwischen 2 Parallelschnittstellen eralisieren, also entweder die einen 8 oder die anderen. Dafür relais zu verwenden ist auch zu blöd.
    Der CD4051 ist dafür nicht so ganz geeignet, gleub ich, was gibt denn noch?

    Und 2., wie sieht es bei Audiosignalen aus, dafür bräuchte ich was vergleichbares.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    10.06.2004
    Ort
    Burgenland
    Beiträge
    28
    tja wenns sowas für audiosgnale auch gäbe wär ich auch interessiert!

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.06.2004
    Ort
    nahe Heidelberg
    Alter
    38
    Beiträge
    233
    Hallo,

    der Gast hier war ich. Hab gestern gar net gemerkt, das ich ausgeloggt war. der CD4051/52/53 sowie z.B. auch der CD4066/67 oder auch andere Analog-Multiplexer lassen sich für Digitale sowie Analoge Signale nutzen. Bei Audiosignalen sind jedoch ein paar Besonderheiten zu beachten, wenn es um Klangqualität geht. Da diese IC's auch Verzerrungen mit sich bringen.

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.08.2004
    Ort
    Stuttgart
    Alter
    41
    Beiträge
    849
    Ich habe mal vor längerer Zeit eine "Scwich-Box" gebaut gehabt um RS232-Signale umzuschelten. Dazu braucht maqn eine Menge RS232-Treiber, einen EPROM (GAL geht auch) und eine C-Control (z.B. M-Unit). Die Umschaltung hatte ich extern steuerbar gemacht gehabt.

    Den Code setzte ich einfach mal rein:

    Code:
    ' TF-1 Box Software für die C-Control/BASIC
    ' Version 1.00
    '     !!! Nur für den Prototypen !!!
    ' (C) Wolfgang Schmid
    '-----------------------------------------
    
      'I/O Definitionen
      DEFINE Sel_A    PORT[1]       'Slave-Anwahl D0
      DEFINE Sel_B    PORT[2]       'Slave-Anwahl D1
      DEFINE SendCom  PORT[3]       'Sendefreigabe TF-1 an Master
      DEFINE Sonde    PORT[6]       'Sonde für Datenfluß
      DEFINE RES      PORT[4]       'Reset für Urzustand der Box
      DEFINE Remote   PORT[7]       'Remote-Anschluß ist inaktiv
      DEFINE Power    PORT[8]       'Peripherie zuschalten
      '-----------------------------------------------------------------
      DEFINE LED1     PORT[9]       'LED-Anzeige: Port 1 aktiv
      DEFINE LED2     PORT[10]      'LED-Anzeige: Port 2 aktiv
      DEFINE LED3     PORT[11]      'LED-Anzeige: Port 3 aktiv
      DEFINE LED4     PORT[12]      'LED-Anzeige: Port 4 aktiv
      DEFINE LED5     PORT[13]      'LED-Anzeige: Warten auf Datenblock
      DEFINE LED6     PORT[14]      'LED-Anzeige: ESC-Kommando erhalten
      DEFINE LED7     PORT[15]      'LED-Anzeige: Daten vorhanden
      DEFINE LEDs     BYTEPORT[2]   'Alle LEDs ansprechen
    
      'Variablen-Definitionen
      DEFINE WortWert WORD[1]       'Byte-Zahl 16-Bit
      DEFINE Multi    WORD[2]       'Byte-Zahl 8-Bit
      DEFINE Nummer   WORD[3]       'Multiplikations-Hilfsvariable
      DEFINE DatenEin BYTE[7]       'Aktuell gelesenes Daten-Byte
      DEFINE BoxID    BYTE[8]       'ID-Nummer der TF-1 Box
      DEFINE BS1      BYTE[9]       'Baudrate Slaveteilnehmer 1
      DEFINE BS2      BYTE[10]       'Baudrate Slaveteilnehmer 2
      DEFINE BS3      BYTE[11]       'Baudrate Slaveteilnehmer 3
      DEFINE BS4      BYTE[12]      'Baudrate Slaveteilnehmer 4
      DEFINE Wert     BYTE[13]      '8-Bit Universal-Variable
      DEFINE Disp     BYTE[14]      'Text-Ausgaben Mode
      DEFINE i        BYTE[15]      'Universal-Schleifenzähler
      DEFINE a        BYTE[16]      'Zeitverzögerung der Signalpause
    
      'ASCII-Codes für die ESC-Sequenzen
      DEFINE ESC      27            'ESC-Zeichen
      DEFINE CLS      12            'Display löschen
      DEFINE LF       10            'Zeilenwechsel
      DEFINE CR       13            'Zum Zeilenanfang
      DEFINE DLE      16            'Zeichen löschen
      DEFINE ACK      6             'IO-Melung
      DEFINE NAK      21            'NIO-Meldung
      DEFINE DP       58            'Doppelpunkt
      DEFINE SP       59            'Strichpunkt
      DEFINE xB       66            'Buchstaben
      DEFINE xD       68
      DEFINE xE       69
      DEFINE xI       73
      DEFINE xR       82
      DEFINE xS       83
      DEFINE xX       88
      DEFINE x1       49            'Zahlen
      DEFINE x2       50
      DEFINE x3       51
      DEFINE x4       52
    
    #Init
      SendCom = 1
      Sel_A = 0
      Sel_B = 0
      LEDs = 0
      Disp = 0
      IF RES THEN GOTO Init4
      i = 100
      LED1 = 1
      Disp = 1
    
    #Init1
      IF RES THEN GOTO Init4
      i = i - 1
      IF i = 0 THEN GOTO Init2
      GOTO Init1
    
    #Init2
      LED1 = 0
      LED2 = 1
      Disp = 2
      i = 100
    
    #Init3
      IF RES THEN GOTO Init4
      i = i - 1
      IF i = 0 THEN GOTO Init4
      GOTO Init3
    
    #Init4
      LEDs = 0
      IF NOT RES THEN GOTO Init4
      LEDs = 127
      IF Disp > 0 THEN GOTO JP001
      PUT CLS
      PRINT "  ***************************************"
      PRINT "  * TF-1 Box   Version: 1.00            *"
      PRINT "  *              Stand: 160801-1925     *"
      PRINT "  *        Entwicklung: Wolfgang Schmid *"
      PRINT "  *                     Frank Acker     *"
      PRINT "  *-------------------------------------*"
      PRINT "  *    Im Auftrag von Mindrevolution    *"
      PRINT "  *    http://www.mindrevolution.de     *"
      PRINT "  ***************************************"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP001
      Nummer = 0
      GOSUB xLoad
      IF Disp > 0 THEN GOTO JP002
      SendCom = 1
      PRINT "Box-ID: "; BoxID
      PUT LF
      PRINT "Ready. "
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP002
      SendCom = 0
      LEDs = 0
    
    #MainLoopO
      GOSUB AktivPort
      SendCom = 0
      i = 0
      GOTO MainLoop
    
    #MainLoopX
      GOSUB AktivPort
      SendCom = 0
      i = 40
      GOTO MainLoop
    
    #MainLoopF
      SLOWMODE OFF
      PAUSE 50
      IF Disp < 1 THEN GOTO JP021
      SendCom = 1
      PRINT "Zuendung wurde eingeschaltet"
      PUT LF
      PAUSE 1
    #JP021
      GOTO MainLoopO
    
    #MainLoop
      IF Remote THEN GOTO Standby
      Power = 1
      IF RXD THEN GOTO Kommando
      IF NOT RES THEN GOSUB Urladen
      LED5 = 0
      IF i > 0 THEN i = i - 1
      IF i > 0 THEN LED6 = 1 ELSE LED6 = 0
      LED7 = Sonde
      GOTO MainLoop
    
    #Standby
      IF Disp < 1 THEN GOTO JP022
      SendCom = 1
      PRINT "Zuendung wurde ausgeschaltet"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP022
      SLOWMODE ON
    
    #Standby2
      IF NOT Remote THEN GOTO MainLoopF
      Power = 0
      LEDs = 0
      i = i + 1
      IF i >= 12 THEN i = 0
      IF i >= 11 THEN LED5 = 1 ELSE LED5 = 0
      GOTO Standby2
    
    #AktivPort
      LED1 = 0
      IF NOT Sel_A AND NOT Sel_B THEN LED1 = 1
      IF NOT Sel_A AND NOT Sel_B THEN Wert = BS1
      LED2 = 0
      IF Sel_A AND NOT Sel_B THEN LED2 = 1
      IF Sel_A AND NOT Sel_B THEN Wert = BS2
      LED3 = 0
      IF NOT Sel_A AND Sel_B THEN LED3 = 1
      IF NOT Sel_A AND Sel_B THEN Wert = BS3
      LED4 = 0
      IF Sel_A AND Sel_B THEN LED4 = 1
      IF Sel_A AND Sel_B THEN Wert = BS4
      IF Wert = 12 THEN BAUD R1200
      IF Wert = 24 THEN BAUD R2400
      IF Wert = 48 THEN BAUD R4800
      IF Wert = 96 THEN BAUD R9600
      RETURN
    
    #Kommando
      GET DatenEin
      IF DatenEin <> ESC THEN GOTO MainLoop
      LED6 = 1
      GET DatenEin
      IF DatenEin = xB THEN GOTO xBaudrate
      IF DatenEin = xI THEN GOTO xID
      IF DatenEin = xE THEN GOTO xSave
      IF DatenEin = xS THEN GOTO xSwitch
      IF DatenEin = xX THEN GOTO xStatus
      IF DatenEin = xR THEN GOTO xReset
      GOTO MainLoop
    
    #xStatus
      'Status der Schnittstellen und Box-ID anzeigen
      'Syntax: ESC X;
      GET DatenEin
      LED6 = 0
      IF DatenEin <> SP THEN GOTO MainLoop
      IF Disp < 1 THEN GOTO JP003
      SendCom = 1
      PRINT "Baudrate Slave 1: ";BS1;"00 Baud"
      PRINT "Baudrate Slave 2: ";BS2;"00 Baud"
      PRINT "Baudrate Slave 3: ";BS3;"00 Baud"
      PRINT "Baudrate Slave 4: ";BS4;"00 Baud"
      PRINT "Box-ID:           ";BoxID
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP003
      PAUSE 200
      GOTO MainLoopX
    
    #xBaudrate
      'Baudrate einstellen für Slave-Teilnehmer 1 bis 4
      'Syntax: ESC B[n]:[b];
      '        n = Schnittstelle (Slave)
      '        b = Baudrate (1200, 2400, 4800, 9600)
      'Schnittstellen-Baudrate wird umgestellt
      GET DatenEin
      DatenEin = DatenEin - x1
      ON DatenEin GOTO xBaudSlave1, xBaudSlave2, xBaudSlave3, xBaudSlave4
      GOTO MainLoopX
    
    #xBaudSlave1
      GET DatenEin
      IF DatenEin <> DP THEN GOTO MainLoopX
      GOSUB LeseZahl
      GET DatenEin
      IF DatenEin <> SP THEN GOTO MainLoopX
      IF Disp < 1 THEN GOTO JP004
      SendCom = 1
      PRINT "Baudrate an Slave 1 wurde auf ";WortWert;" eingestellt"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP004
      IF WortWert = 9600 THEN BS1 = 96
      IF WortWert = 4800 THEN BS1 = 48
      IF WortWert = 2400 THEN BS1 = 24
      IF WortWert = 1200 THEN BS1 = 12
      GOTO MainLoopX
    
    #xBaudSlave2
      GET DatenEin
      IF DatenEin <> DP THEN GOTO MainLoopX
      GOSUB LeseZahl
      GET DatenEin
      IF DatenEin <> SP THEN GOTO MainLoopX
      IF Disp < 1 THEN GOTO JP005
      SendCom = 1
      PRINT "Baudrate an Slave 2 wurde auf ";WortWert;" eingestellt"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP005
      IF WortWert = 9600 THEN BS2 = 96
      IF WortWert = 4800 THEN BS2 = 48
      IF WortWert = 2400 THEN BS2 = 24
      IF WortWert = 1200 THEN BS2 = 12
      GOTO MainLoopX
    
    #xBaudSlave3
      GET DatenEin
      IF DatenEin <> DP THEN GOTO MainLoopX
      GOSUB LeseZahl
      GET DatenEin
      IF DatenEin <> SP THEN GOTO MainLoopX
      IF Disp < 1 THEN GOTO JP006
      SendCom = 1
      PRINT "Baudrate an Slave 3 wurde auf ";WortWert;" eingestellt"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP006
      IF WortWert = 9600 THEN BS3 = 96
      IF WortWert = 4800 THEN BS3 = 48
      IF WortWert = 2400 THEN BS3 = 24
      IF WortWert = 1200 THEN BS3 = 12
      GOTO MainLoopX
    
    #xBaudSlave4
      GET DatenEin
      IF DatenEin <> DP THEN GOTO MainLoopX
      GOSUB LeseZahl
      GET DatenEin
      IF DatenEin <> SP THEN GOTO MainLoopX
      IF Disp < 1 THEN GOTO JP007
      SendCom = 1
      PRINT "Baudrate an Slave 4 wurde auf ";WortWert;" eingestellt"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP007
      IF WortWert = 9600 THEN BS4 = 96
      IF WortWert = 4800 THEN BS4 = 48
      IF WortWert = 2400 THEN BS4 = 24
      IF WortWert = 1200 THEN BS4 = 12
      GOTO MainLoopX
    
    #xID
      'Box-ID ändern (1 bis 255)
      'SYNTAX: ESC ID[n];
      '        n = 0 bis 255
      'Die ID der Box wird geändert
      GET DatenEin
      IF DatenEin <> xD THEN GOTO MainLoop
      'Eingabe einlesen
      GET DatenEin
      IF DatenEin < 48 AND DatenEin > 57 THEN GOTO MainLoop
      DatenEin = DatenEin - 48
      Nummer = DatenEin * 100
      GET DatenEin
      IF DatenEin = SP THEN GOTO xIDEnde1
      IF DatenEin < 48 AND DatenEin > 57 THEN GOTO MainLoop
      DatenEin = DatenEin - 48
      Nummer = Nummer + (DatenEin * 10)
      GET DatenEin
      IF DatenEin = SP THEN GOTO xIDEnde2
      IF DatenEin < 48 AND DatenEin > 57 THEN GOTO MainLoop
      DatenEin = DatenEin - 48
      Nummer = Nummer + DatenEin
      GET DatenEin
      IF DatenEin <> SP THEN GOTO MainLoopX
      GOTO xIDEnde3
    
    #xIDEnde1
      Nummer = Nummer / 10
    
    #xIDEnde2
      Nummer = Nummer / 10
    
    #xIDEnde3
      BoxID = Nummer
      IF Disp < 1 THEN GOTO JP008
      SendCom = 1
      PRINT "Neue Box-ID: "; BoxID
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP008
      GOTO MainLoopX
    
    #xSave
      'Setup sichern
      GET DatenEin
      IF DatenEin <> SP THEN GOTO MainLoopX
      OPEN# FOR WRITE
      PRINT# BoxID
      PRINT# BS1
      PRINT# BS2
      PRINT# BS3
      PRINT# BS4
      CLOSE#
      IF Disp < 1 THEN GOTO JP009
      SendCom = 1
      PRINT "Einstellungen im EEPROM gespeichert"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP009
      GOTO MainLoopX
    
    #xLoad
      'Setup laden
      OPEN# FOR READ
      INPUT# BoxID
      INPUT# BS1
      INPUT# BS2
      INPUT# BS3
      INPUT# BS4
      CLOSE#
      IF Disp < 1 THEN GOTO JP010
      SendCom = 1
      PRINT "Einstellungen aus EEPROM geladen"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP010
      RETURN
    
    #xSwitch
      'Umschaltung auf anderen Slave-Teilnehmer
      'SYNTAX: ESC S[n];
      '        n = Teilnehmer-Nummer 1 bis 4
      'Schnittstelle anwählen
      GET DatenEin
      IF DatenEin < 49 AND DatenEin > 52 THEN GOTO MainLoopX
      Wert = DatenEin - 48
      GET DatenEin
      IF DatenEin <> SP THEN GOTO MainLoopX
      IF Wert = 1 THEN WortWert = BS1
      IF Wert = 2 THEN WortWert = BS2
      IF Wert = 3 THEN WortWert = BS3
      IF Wert = 4 THEN WortWert = BS4
      WortWert = WortWert * 100
      IF Disp < 1 THEN GOTO JP011
      SendCom = 1
      PRINT "Schnittstelle: Slave ";Wert
      PRINT "Baudrate:      ";WortWert;" Baud"
      PUT LF
      PAUSE 1
    #JP011
      IF WortWert = 1200 THEN BAUD R1200
      IF WortWert = 2400 THEN BAUD R2400
      IF WortWert = 4800 THEN BAUD R4800
      IF WortWert = 9600 THEN BAUD R9600
      LED1 = 0
      LED2 = 0
      LED3 = 0
      LED4 = 0
      Wert = Wert - 1
      ON Wert GOTO xSwitch1, xSwitch2, xSwitch3, xSwitch4
    
    #xSwitch1
      LED1 = 1
      Sel_A = 0
      Sel_B = 0
      GOTO Signalpause
    
    #xSwitch2
      LED2 = 1
      Sel_A = 1
      Sel_B = 0
      GOTO Signalpause
    
    #xSwitch3
      LED3 = 1
      Sel_A = 0
      Sel_B = 1
      GOTO Signalpause
    
    #xSwitch4
      LED4 = 1
      Sel_A = 1
      Sel_B = 1
      GOTO Signalpause
    
    #Signalpause
      i = 255
      a = 5
    
    #Signalpause2
      IF RXD THEN GET DatenEin else DatenEin = 0
      LED5 = 1
      LED7 = Sonde
      IF a = 5 THEN i = i - 1
      IF Sonde THEN a = 5
      IF a > 0 THEN a = a - 1
      IF i = 0 THEN GOTO Signalpause3
      IF a = 0 THEN GOTO Signalpause3
      GOTO Signalpause2
    
    #Signalpause3
      LED5 = 0
      SendCom = 0
      GOTO MainLoopX
    
    #LeseZahl
      WortWert = 0
      Multi = 1000
    
    #LeseZahl1
      GET DatenEin
      IF DatenEin < 48 AND DatenEin > 57 THEN RETURN
      Nummer = (DatenEin - 48)
      Nummer = Nummer * Multi
      WortWert = WortWert + Nummer
      IF Multi = 1 THEN RETURN
      Multi = Multi / 10
      GOTO LeseZahl1
    
    #Urladen
      FOR i = 1 to 5
        LEDs = 1
        PAUSE 7
        LEDs = 2
        PAUSE 7
        LEDs = 4
        PAUSE 7
        LEDs = 8
        PAUSE 7
        IF RES THEN AbortRes
      NEXT i
      LOOKTAB StandardDaten, 0, BoxID
      LOOKTAB StandardDaten, 1, BS1
      LOOKTAB StandardDaten, 2, BS2
      LOOKTAB StandardDaten, 3, BS3
      LOOKTAB StandardDaten, 4, BS4
      LEDs = 255
    
    #WartenRES
      IF NOT RES THEN GOTO WartenRES
      LEDs = 15
      OPEN# FOR WRITE
      PRINT# BoxID
      PRINT# BS1
      PRINT# BS2
      PRINT# BS3
      PRINT# BS4
      CLOSE#
      IF Disp < 1 THEN GOTO JP012
      SendCom = 1
      PRINT "Standard-Daten wurden geladen!"
      PRINT "Slave 1: ";BS1;"00 Baud"
      PRINT "Slave 2: ";BS2;"00 Baud"
      PRINT "Slave 3: ";BS3;"00 Baud"
      PRINT "Slave 4: ";BS4;"00 Baud"
      PRINT "Einstellungen im EEPROM gespeichert"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP012
      PAUSE 100
      LEDs = 0
      GOTO AbortRES
    
    #AbortRES
      i = 0
      GOSUB AktivPort
      RETURN
    
    #xReset
      GET DatenEin
      IF DatenEin <> SP THEN GOTO MainLoopX
      IF Disp < 1 THEN GOTO JP013
      SendCom = 1
      PRINT "Software-Reset ausgefuehrt"
      PUT LF
      PAUSE 1
      SendCom = 0
    #JP013
      GOTO Init
    
      END
    
      'Initialisierungsdaten für den Urlade-Zustande der Box
      TABLE StandardDaten
      0 48 48 48 48
      TABEND

    Das Programm ist für 5 Datenleitungen gedacht und eine davon ist der Master der den Schaltvorgang und die Baudrate ändern kann.



    Die Box sah wie auf dem Foto hier aus. die PS/2-Anchlüsse dienen der 5V-Versorgung der RS232-Teilnehmer und die LED's auf der Frontseite sind die Kanäle 1 bis 4, Data, Kommando-Sequenz.

    Eine Testsoftware von mir zum Prüfen der Funktion der Box unter MS-DOS:

    http://www.mds-5.de/Temp/Tf1test1.exe

    Bei Bedarf kann ich es ja noch auf meiner Seite veröffentlichen. Habe auch ein Demo-Programm geschrieben, Layouts angefangen. Funktioniert hatte sie aber ganz gut.

    Aktueller Stand der TF-1 Box:

    * Multiplexer zur direkten Verbindung von Slave-Teilnehmern zu den Master-Teilnehmern
    * Auf dem Master horcht die MCU mit, um Steuer-Kommandos zu erkennen
    * Die Baudrate der MCU-Schnittstelle stellt sich je nach angewähltem Slave-Teilnehmer automatisch ein
    * Bei der Umschaltung der Slave-Schnittstelle werden alle Teilnehmer durch das RTS/CTS- Handshake blockiert, bis die Parametrierung und die Umschaltung fertig ist
    * Die Multiplexer-Schaltung wird durch einen EPROM vom Typ 2764 realisiert
    * Jede Schnittstelle wird mit einem eigenen RS232-Treiber ausgestattet vom Typ MAX232 von MAXIM
    * Die RS232-Treiber der Slave-Teilnehmer soll mit einer Steuerleitung deaktiviert werden können. Der RS232-Treiber der Master-Schnittstelle ist jedoch immer aktiv
    * Die Slave-Teilnehmer werden auf 4 Teilnehmer begrenzt
    * Es gibt nur einen Master im System. In diesem Fall immer ein Palm-Top
    * Slave 1 soll vorerst einmal nur der GPS-Empfänger sein. Baudrate 4800 Baud
    * Slave 2 soll vorerst einmal nur ein Handy im GSM-Mode sein. Baudrate 9600 Baud
    * Slave 3 und Slave 4 werden vorerst nur einmal Reserve sein, und sind auf eine Baudrate von 9600 Baud eingestellt
    * Die Stromversorgung der Slave-Geräte wird durch eine PS2- Steckverbindung hergestellt werden
    * Die Stromversorgung des GPS-Empfängers ist auch bei ausgeschalteter TF-1 Box aufrechtzuhalten. Diese Funktion kann durch einen Jumper deaktiviert werden
    * Die Box soll eine Standby-Funktion besitzen. Die Wake-Up Funktion wird entweder durch ein beliebiges Kommando vom Palm- Top ausgelöst, oder durch eine Remote- Leitung von der Zündanlage des Fahrzeugs
    * Der Palm-Top ist die Steuereinheit der TF1-Box, und besitzt alle nötigen Funktionen zur Bedienung der TF-1 Box
    * Die TF-1 Box muß nur auf Kommandos des Palm-Top (Master) reagieren, und alle nötigen Umschaltsequenzen für das Handshake zwischen den Teilnehmern koordinieren

    Funktionen im Schnittstellenprotokoll:

    Schnittstelle wählen:
    ~~~~~~~~~~~~~~~~~~~~~

    ESC S1; 27,S,1,;

    Schnittstelle 1 Wird angewählt für Senden/Empfangen.
    Danach muß der Palm auf die Baudrate der Schnittstelle wechseln (z.B. Schnittstelle 1 ist mit GPS-Empfänger verbunden, dann muß der Palm auf 4800 Baud umschalten). Dann wartet der Palm auf Empang von Daten.


    Schnittstelle einstellen:
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    ESC B14800; 27,B,1,4,8,0,0,;

    Schnittstelle 1 wird auf 4800 Baud eingestellt, damit die TF1-Box auch dei folgenden ESC-Kommandos versteht. Die start-Baudrate ist bei 9600 Baud fest eingestellt, wegen der sicheren Verbindung von Box und Palm.


    Einstellungen sichern in EEPROM:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    ESC E; 27,E;

    Einstellungen werden im EEPROM gesichert wegen Spannungsausfall.

    Beispiel:
    ~~~~~~~~~

    1) Palm muß Schnittstelle auf 9600 Baud einstellen
    2) Schnittstelle 1 einstellen mit dem Palm. Mit 'ESC B14800;'
    3) Schnittstelle 2 einstellen mit dem Palm. Mit 'ESC B19600;'
    4) Schnittstelle 3 einstellen mit dem Palm. Mit 'ESC B12400;'
    5) Schnittstelle 4 einstellen mit dem Palm. Mit 'ESC B12400;'
    6) Einstellungen sichern mit 'ESC E;'
    ---------------------------------------------------------------
    7) Schnittstelle 1 anwählen mit 'ESC S1;'
    Palm muß seine Schnittstelle jetzt sofort auf 4800 Baud einstellen
    9) Jetzt kann der Palm auf Daten warten von der Box (Port 1 - GPS-Empfänger)
    10) Die Daten die jetzt ankommen sind in 4800 Baud und im exakt gleichen Protokoll
    wie die Daten vom GPS-Empfänger
    11) Zu Schritt 7) wenn zu anderer Schnittstelle gewechselt werden soll

    1) bis 6) nur bei Erstinbetriebnahme oder Änderungen nötig
    7) bis 11) immer nötig für Umschaltung

    Mit Reset werden die Schnittstellen auf 4800, 9600, 9600, 9600 eingestellt (Port 1 bis Port 4)

    Das EPROM, das den Schaltvorgang durchführt sieht we folgt aus:

    Code:
    :100000005C7E9DBF5C7E9DBF5C7E9DBF5C7E9DBF18
    :100010005C7E9DBF5C7E9DBF5C7E9DBF5C7E9DBF08
    :100020005C7E9DBF5C7E9DBF5C7E9DBF5C7E9DBFF8
    :100030005C7E9DBF5C7E9DBF5C7E9DBF5C7E9DBFE8
    :100040005A7E5A7E9BBF9BBF5A7E5A7E9BBF9BBFE8
    :100050005A7E5A7E9BBF9BBF5A7E5A7E9BBF9BBFD8
    :100060005A7E5A7E9BBF9BBF5A7E5A7E9BBF9BBFC8
    :100070005A7E5A7E9BBF9BBF5A7E5A7E9BBF9BBFB8
    :10008000567E567E567E567E97BF97BF97BF97BFC8
    :10009000567E567E567E567E97BF97BF97BF97BFB8
    :1000A000567E567E567E567E97BF97BF97BF97BFA8
    :1000B000567E567E567E567E97BF97BF97BF97BF98
    :1000C0004E7E4E7E4E7E4E7E4E7E4E7E4E7E4E7ED0
    :1000D0008FBF8FBF8FBF8FBF8FBF8FBF8FBF8FBFB0
    :1000E0004E7E4E7E4E7E4E7E4E7E4E7E4E7E4E7EB0
    :1000F0008FBF8FBF8FBF8FBF8FBF8FBF8FBF8FBF90
    :100100005C7E9CBE5C7E9CBE5C7E9CBE5C7E9CBE1F
    :100110005C7E9CBE5C7E9CBE5C7E9CBE5C7E9CBE0F
    :100120005D7F9DBF5D7F9DBF5D7F9DBF5D7F9DBFEF
    :100130005D7F9DBF5D7F9DBF5D7F9DBF5D7F9DBFDF
    :100140005A7E5A7E9ABE9ABE5A7E5A7E9ABE9ABEEF
    :100150005A7E5A7E9ABE9ABE5A7E5A7E9ABE9ABEDF
    :100160005B7F5B7F9BBF9BBF5B7F5B7F9BBF9BBFBF
    :100170005B7F5B7F9BBF9BBF5B7F5B7F9BBF9BBFAF
    :10018000567E567E567E567E96BE96BE96BE96BECF
    :10019000567E567E567E567E96BE96BE96BE96BEBF
    :1001A000577F577F577F577F97BF97BF97BF97BF9F
    :1001B000577F577F577F577F97BF97BF97BF97BF8F
    :1001C0004E7E4E7E4E7E4E7E4E7E4E7E4E7E4E7ECF
    :1001D0008EBE8EBE8EBE8EBE8EBE8EBE8EBE8EBEBF
    :1001E0004F7F4F7F4F7F4F7F4F7F4F7F4F7F4F7F9F
    :1001F0008FBF8FBF8FBF8FBF8FBF8FBF8FBF8FBF8F
    :00000001FF
    Grüsse Wolfgang

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    27.07.2004
    Ort
    Brandenburg
    Alter
    32
    Beiträge
    34
    mhhh.... alles schön und gut... nur die größe *scluck*

    also ich habe mal ebend mein Elektronikbuch durchgeblättert... dabei bin ich wieder auf viele ICs gestoßen... so... nun sind die meisten aber für NAND, NOR etc. schaltungen. Meine Idee ist nun ein Chip zu haben der zB 8 eingänge und 8 ausgänge hat, sowie VCC und GND. Die 8 ein und ausgänge müssten bei Anliegen von VCC verbunden sein. Dann bräuchte man nur noch ein Relay zum strom an und ausschalten...


    meine frage nun... gibt es sowas?

+ Antworten
Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •