Hallo zusammen, bin ziemlich ein Can-neuling und würde gerne fragen, welche Art von nachrichten ist am besten geeignet wenn ich ein Netzwerk mit eine kleine Anzahl Sensoren habe, die Daten an einem Steuergerät senden. Ich habe bis jetzt BAM Nachrichten und peer to peer gefunden. Die BAM Nachrichten haben kein Acknowledge, also dachte ich ist eventuell eine Sicherheits Lücke. Ich weiss nicht ob die Daten angekommen sind. Bei den peer to peer habe ich ein Adressen Problem. Ich musste alle Nachrichten an meinen Steuergerät schicken, der eine feste Adresse haben muss. Die Adresse darf sie also nicht ändern. Woher sollen sonst die Sensoren wissen wo sie die Daten verschicken müssen. Das begrenzt meine Möglichkeiten, finde ich. Alle Steurgeräte müssen ab Werk feste Adressen bekommen, die sich nicht ändern dürfen. Wie sollen dann die sensoren wissen welche Adresse ist gerade ein Steuergerät? Hilfe!!!! Bin dankbar für Vorschläge
CAN arbeitet nicht mit Adressen sondern über IDs. Das bedeutet, dass jeder Sensor mit einer anderen ID senden muss und das Steuergerät muss halt unterschiedliche IDs auswerten. Du kannst doch bestimmt die ID der Sensoren frei vergeben? Und im Steuergerät sollte es erst rech kein Problem sein.
Normalerweile wird beim CAN nicht das einzelne Gerät adressiert. Es wird der entsprechenden Nachricht eine ID gegeben. Und das Steuergerät beispielsweise sucht sich selbst die IDs raus, auf die es reagieren muß. Beispiel: Du hast du 3 Temperatursensoren, der erste sendet seine Temperatur mit der ID 0x300 auf den Bus, der zweite mit der 0x310, der dritte mit der 0x320. Wenn sich ein Steuergerät für die Temperatur an Sensor 2 interessiert, muß es eben die 0x310 auslesen und auswerten. Ein anderes Gerät könnte dann die 0x300 und 0x320 auslesen für Sensor 1 und 3. Und wenn du im Flur noch ein Display anbringst, kann dieses parallel dazu auch alle drei IDs mitschreiben, um alle drei Temperaturen anzuzeigen. Auf diese Weise wird das normalerweise gehandhabt (die Zahlen sind nur Beispiele). Keine Geräteadressen, sondern die Nachrichten selbst bekommen ihre ID. Wenn ein Sensor z.B. Temperatur und Luftfeuchte mißt, kann er auch zwei (oder mehr) verschiedene IDs versenden (0x300 für die Temperatur und 0x400 für die Luftfeuchte zum Beispiel). Ich hoffe, ich konnte das Prinzip einigermaßen verständlich rüberbringen :-)
Uau, danke für die super schnelle Antworten. Die ID ist dann die PDU Format? In PDU Specific schreibe ich die globale Adresse 255? Richtig? Und ich kann mir die IDs selber suchen? Unabhängig der Industrie Zweig?
Habe SAE J1939 Standard. Es dämmert mir gerade dass es doch wichtig ist. :-)
Vicky schrieb: > Uau, danke für die super schnelle Antworten. > Die ID ist dann die PDU Format? In PDU Specific schreibe ich die globale > Adresse 255? Richtig? > Und ich kann mir die IDs selber suchen? Unabhängig der Industrie Zweig? Das klingt auch hier so, als wenn du von CANopen sprichst. Da kann ich dir aber leider nicht weiterhelfen. Damit habe ich noch nichts gemacht. Ich arbeite nur mit CAN, und ja, dort kann man beliebige IDs benutzen. Zum Thema CANopen soll sich mal jemand anderes äußern, der was davon versteht :-)
Ok du nutzt also J1939, dann wird mir das auch mit der BAM klar. Wer genau spricht denn J1939? Die Sensoren oder das Steuergerät? Vermutlich das Steuergerät aber wenn es J1939 kann kann es auch CAN. Bei Sensoren ist CANopen ein gängies Protokoll. Wie gesagt mach dir erst einmal klar welches Gerät welches Protokoll nutzt.
Pit schrieb: > Wer > genau spricht denn J1939? Die Sensoren oder das Steuergerät? ich würde alle, Steuergerät und Sensoren mit dem Protokoll SAE J1939 programmieren. Sie sind alle eigene Entwicklung.
npn schrieb: > Ich hoffe, ich konnte das Prinzip einigermaßen verständlich rüberbringen Ja, du hast mir doch Licht ins dunkel gebracht. Ich danke dir! Das Prinzip ist wahrscheinlich auch wenn ich SAE J 1939 benutzte vermutlich gleich.
Vicky schrieb: > ich würde alle, Steuergerät und Sensoren mit dem Protokoll SAE J1939 > programmieren. Sie sind alle eigene Entwicklung. Worin siehst du den Vorteil J1939 zu nutzen anstelle von CAN pur? Du hast eher den großen Nachteil das Protokoll noch zu schreiben. Selbst wenn es schon einen J1939 Stack gibt, sehe ich bei solchen Anwendungen keinen Vorteil von J1939. J1939 wird vor allem bei der Kommunikation mit Motoren verwendet. Also das Protkoll stammt aus einem ganz anderen Bereich und ist für Sensoren eigentlich nicht gedacht. Klar geht das aber warum?
Ich denke allgemein kann man sagen, dass man Konfigurationen mit einem bestätigten Dienst schickt, da man wissen will, ob diese übernommen wurden. Die späteren Sensordaten werden dann mit einem unbestätigten Dienst geschickt. Ich denke, dies ist bei alle Protokollen so.
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.