PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hardwareseitige Absicherung von Controllerbefehlen?



Powell
03.04.2007, 20:24
Hallo

Mir gehts um folgendes: Ich habe eine Anwendung bei der Eingangsbefehle über Schließertaster gegeben werden. Sie werden direkt an den Controller gegeben, der bei Tastendruck ein Low-Signal erhält, sein Programm fährt und dann einen entsprechenden Ausgang setzt. Dieser Ausgangsbefehl lässt über eine Treiberstufe ein Relais anziehen (ehemals NPN Transistor als Relaistreiber, jetzt ein Darlington-Arrays ULN2003 da ich mehrere Relais habe).
Diese Schaltung hat jetzt so in dem Zustand noch keine Hardwaremäßige Absicherung für die Relais. Ich möchte in jedem Falle erreichen, dass das Relais nur dann anziehen kann wenn auch der Taster gedrückt ist, da die Schaltung in einem sehr ungünstigen EMV-Bereich eingesetzt wird (Zündung vom KFZ) und ein ungewolltes Fehlsignal beschädigungen an Peripheriegeräten hervorrufen kann, das darf nicht sein. Also wer hat eine gute Idee?
Ich hatte mal überlegt den Taster in Reihe zur Relaisspule zu schalten (Strom muss über Tasterkontakt fließen) und das GND-Signal für den Controller von der GND-Seite der Spule abzugreifen. Mit dem Darlington Arrays klappt das leider nicht, da es dauerhaft auf 12V liegt und vom Arrays GND zugeschaltet bekommt, also active low.

Also wie könnte man das lösen :-k ?

Grüße Paul

ghost0
04.04.2007, 07:36
Wie weit sind Taster, Relais und Controller voneinander entfernt ?
Wenn es nicht ausreicht mit verdrillten / geschirmten & abgeschlossenen
Leitungen (Stromfluss) zu arbeiten, ist es vielleicht möglich, das ganze
optisch zu übertragen. Die Wandler und vorkonfektioniertes Glasfaserkabel
gibt es recht preiswert.
Und die Versorgung des Controllers "möglichst sauber" hinbekommen
(einschl. Watch Dog & Power Fail).

Grüsse
Heinz

wkrug
04.04.2007, 10:42
Wie wärs direkt am Microcontroller einen Optokoppler einzusetzen.
Der Taster steuert dann über eine eigene Stromversorgung die LED im Optokoppler an.
Ein Störimpuls muss dann schon sehr energiereich sein, um die Led des Optokopplers zu leuchten zu bringen.
Geschirmte Leitungen sollten dann ein übriges zur Funktionssicherheit beitragen.

kalledom
04.04.2007, 11:35
Wie wäre es, wenn die Taster einfach per Software / Zähler erst nach 50...100ms als aktiv gelten und so auch gleichzeitig sauber entprellt sind ? Spitzen haben dann keine Chance mehr.

Powell
04.04.2007, 11:44
Hallo Heinz

Weil die Platine sehr kompakt aufgebaut (sein muss) liegen Relais und Controller recht nahe aneinander, Abstand vielleicht 3cm.
Die Taster liegen außerhalb, über eine 2m Leitung mit der Platine verbunden.

Optische Übertragung? Hmm, davon habe ich nun gar keine Ahnung, noch nie mit gearbeitet. Wie sieht das Schematisch denn aus?

Ich habe noch eine Idee bekommen: Tasterklemme 1 wird auf +12V gelegt. Tasterklemme 2 geht an das Relais, welches also nur bei Tasterdruck auf 12V liegt. Weiterhin wird an Tasterklemme 2 eine Reihenschaltung aus Vorwiderstand und Z-Diode 5V geschaltet und auf GND geführt. Bei Tasterbetätigung fallen an der Zener-Diode also 5V ab, dieses Signal wird als Schaltbefehl für den µC verwendet, dieser schaltet das Darlington-Arrays welches dem Relais GND zur Verfügung stellt und es durchschaltet.
Was sagt ihr zu der Idee? Müsste eigentlich funktionieren oder?

Grüße Paul

Powell
04.04.2007, 14:07
Hi zusammen

also vielleicht sollte ich noch die Vorgeschichte erwähnen: Ich bin schon seit Wochen dabei diese Schaltung störsicher hinzubekommen - ohne Erfolg. Die Taster sind entprellt (50ms), es ist ein externer sehr kleiner Pullup (1K) zum Eingang geschaltet gewesen damit man schon richtig Energie zum Schalten braucht - alles ohne Erfolg, ich habe immer wieder Fehlsignale eingestreut bekommen. Das seltsame ist, dass ich am Eingangspin keine Signale feststellen kann: Wenn der Störimpuls kommt und das Relais ohne Tasterbetätigung geschaltet wird, habe ich mit dem Oszi ein Aalglattes High Signal am Eingangspin (ich frage die abfallende Flanke ab)... ich kann es mir nicht erklären. Der Ausgang wird aber scheinbar strikt nach Software geschaltet, also wird wohl auch nicht irgendwie die Treiberstufe direkt beeinflusst, sondern das Programm wird im Controller korrekt abgearbeitet obwohl der Befehl dazu nicht kommt - daher habe ich jetzt beschlossen auf Nummer Sicher zu gehen und das ganze Hardwareseitig abzusichern...

Grüße Paul

ogni42
04.04.2007, 14:13
Kannst Du mal ein Schaltbild posten? Ich kann mir das so nicht so ganz vorstellen.

Powell
04.04.2007, 19:06
Hallo

Klar, hier die Schaltbilder: e1 zeigt meine Idee mit der Zener-Diode: Wenn S1 betätigt wird fallen an der Diode 5V ab, Eingang PB4 bekommt ein Signal, Ausgang PB3 schaltet das Darlington-Arrays, das Relais bekommt GND und zieht an. Wird der Taster losgelassen/nicht gedrückt kann es nicht anziehen. (Schaltplan natürlich nur schematisch und nicht vollständig)

E2 zeigt die derzeitige Situation der gesamten Schaltung. Man denke sich noch je einen externen Pullup an den Eingängen PB3 und PB4 dazu.

Powell
06.04.2007, 09:32
Hat dazu keiner ein Kommentar? Würde mich interessieren was ihr dazu meint bevor ich eine Platine baue und es dann nicht funzt ;)

Grüße Paul

ogni42
06.04.2007, 16:15
Du brauchst auf jeden Fall Dioden in Sperrrichtung über den Relais.

Powell
07.04.2007, 09:38
hallo ogni

die Freilaufdioden sind bereits im Darlington-Arrays integriert, deswegen hab ich extern keine mehr vorgesehen.

Grüße Paul

Hubert.G
07.04.2007, 10:29
Wie hast du die Stromversorgung und Resetbeschaltung realisiert. Die Freilaufdioden im ULN sind aber nur aktiv wenn du auch common auf +12V gelegt hast. Dein Schaltbild von ULN ist übrigends falsch, bei mir hat er 18 Beine.

Das letzte stimmt natürlich nicht, ich war im Schaltbild vom ULN2803