Hi Leute Ich will mal wissen, wie ein Gateway im Detail funktioniert. D.h. wie funktioniert es dass eine Netzinformation in ein fremdes Netz kopiert wird genau? Z.B. CAN nach Ethernet. Der Kern ist doch sicher das Zwischenpuffern der Nachrichten. Was muss man alles beachten, dass dort nichts schiefgehr oder verlorengeht? Kenn jemand einen guten Link oder Buch?
Das macht ein Gateway: http://de.wikipedia.org/wiki/Gateway_%28Computer%29 Also benötigst Du erstmal alle Details zu den Protokollen die ineinander überführt werden sollen. Dann mußt Du den kleinsten gemeinsamen Nenner der Protokolle im OSI Schichtmodell finden und den Gateway auf exakt diese Schicht trimmen. Wenn die zu übertragenden Datenpakete in identischer Form vorliegen, mußt Du "lediglich" (!) den "Wrapper" um das Datenpaket von einem Protokoll ins andere übersetzen. Wenn es jedoch unterschiedliche Datenpakete sind (z.B. mit extra Prüfsumme oder verschlüsselt usw.) mußt Du ein Datenpaket vollständig nach Protokoll dekodieren, gegebenenfalls Puffern und dann die passenden Daten ins neue Protokoll packen und versenden. Das ganze in beide Richtungen. Sowas kann sehr schnell in Extreme abgleiten, z.B: ein ATM Netz auf I2C umbasteln ... Wäre aber prinzipiell auch möglich ;) Klar geworden ?
hört sich eigentlich einfach an. Wo ist der meiste Aufwand? Jemand mit Erfahrung ?
Wie .... schon vermittelt haben sollte, gibt DEN GATEWAY nicht. Es gibt nur ganz konkrete Gateways zwischen ganz konkreten Protokollen/Anwendungen. Erste Gegenfrage ist also: zwischen welchen?
tja, dann Daten von CAN_Bus puffern, prüfen(wenn Fehler, erneut anfordern), Empfang qittieren, decodieren, puffern, ins Ethernetprotokoll umsetzen, puffern und über LAN/WAN, auf die Reise schicken, auf Antwort vom Server warten. und retour, na das bekommst du selbst herraus. Sollte auf beiden Seiten ein CAN_Bus harren kannst du das CAN_Paket in eine LAN/WAN Tüte(Wrap) stecken und am andern Ende auspacken und weitersenden. für die unwarscheinliche Variante LAN/WAN <-- CAN-----CAN -->LAN/WAN mußt du natürlich die WAN/LAN_Daten in eine CAN Tüte stecken. In beiden Fällen brauchst du vor dem weitersenden nicht dekodieren sondern nur einpacken und auspacken. Achtung hier vergrößern sich die Paket_Laufzeiten z.T. erheblich ---> Timoutbedingungen anpassen. Sollte der CAN stark frequentiert werden, so sollten die CAN Daten dringend vorgefiltert werde. Nur das was am andern Ende der WAN/LAN Strecke von Interesse ist und dort quittiert werden soll, sollte auch verschickt werden sonst kann sich das system schon nach wenigen Paketen restlos aufhängen.
gibt es eigentlich einen Standard der genau definiert, was ein Gateway alles können mus? Ich dachte da an die ISO. Aber kann dort bei denen nichts finden. Hab auch schon was bei dem "Federal Standard 1037C" gesehen, aber ist mir nicht bekannt.
Es gibt nicht nur eine Standard ISO-32342.34b und ANSI-X.3465 der die Funktionalität eines Gateways beschreibt, sondern zusätzlich noch das GtwyVerGes, das noch genauere Vorschriften zu den Gateways enthält sowie auch das BetrGtwyG für Betreiber von Gateways.
kommt man an die Infos ran? Per internet meine ich..... oder ist das alles kostenplichtig?
ANSI- und ISO-Standards sind zwar kostenpflichtig, aber die Suche nach Titel und Bedeutung bestimmter Dokumente sicher nicht. Vor einer offiziellen Anfrage solltest du das erst einmal das machen. Hilft bestimmt weiter.
hallo zusammen, es gibt von beck relativ preiswerte module, die diese funktion übernehmen können. schau dir mal folgenden link an: http://www.beck-ipc.com/home.asp?plugin=flash5&sp=de ich habe mal ein modul eingesetzt, welches can-bus daten direkt in ein ethernet frame packt und dieses konnte problemlos über ein winsock angesprochen werden. das modul heißt can2web und wird von synertronixx vertrieben. wobei der support bei synertronixx nicht so gut war. als ich mich dann direkt an beck gewendet habe klappte alles sofort. gruß timo
Ok, das mit der Frame-Konvertierung geht dann klar. Bleibt nur noch die Strategie ob man einen Zyklus verwendet oder bei jedem Nachrichteneingang die Konvertierung vornimmt. Zyklus z.B. alle paar Millisekunden wo sich solange eingehende Nachrichten ansammeln dürfen (Puffer) und diese dann innerhalb des Warte-Zyklus verarbeitet und gesendet werden. Wär das ne Idee?
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.