Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
im Rahmen meiner DA soll einer Simulationssoftware für CAN-BUS Detektoren erstellt werden. Die CAN-Busse werden per CAN-Karte (NI-CAN-Series 2 PCMCIA) betrieben.
Ich habe gelernt, dass in CAN-Protokoll 2 arten von Identifiers (11 bits und 29 bits). In meinem Fall wird extended Identifier (29bits) benutzt.
Als ich die CAN-Beispiele-VIs getestet habe, habe ich festgestellt dass die NI-Karte ein ID aus 30bits liefert. Woher kommt der 30. bit?Ich verstehe gar nix mehr. Habe ich vielleicht was falsches gemacht?
Bsp: Der Controller sendet 10AAA00B (Request) aber gezeigt wird 30AAA00B :-(
Hat jemand eine Idee oder Erfahrung mit NI-Karten?
Gruss
24.07.2007, 11:12 (Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2007 11:12 von A.Berndsen.)
ich kann Dir zwar nicht weiterhelfen, werde aber jemanden auf Deinen Post aufmerksam machen, der Dir vielleicht helfen kann.
Hast Du den LV-Code Bereich hier im Forum schon mal angesehen. Da gibt es ein Tool für CAN.
ich kann Dir zwar nicht weiterhelfen, werde aber jemanden auf Deinen Post aufmerksam machen, der Dir vielleicht helfen kann.
Hast Du den LV-Code Bereich hier im Forum schon mal angesehen. Da gibt es ein Tool für CAN.
Grüße
Andreas
Danke, aber es hat sich schon erledigt. Habe schon die Lösung.
Gruss
Adil
24.07.2007, 12:42 (Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2007 12:43 von eg.)
' schrieb:Kannst du bitte vielleicht sagen, wie und was du gelöst hast. Nur so, damit andere bei ähnlichen Problemen es auch wissen. Du musst natürlich nicht.
Danke, eg
gerne...
Am Anfang hatte gedacht, dass die CAN-Karte einen internen Fehler hat. Als ich mir das CAN-Frame-Protokol angeschaut habe, habe ich festgestellt dass die Treiber der 30. bit als internemarke benutzen, somit weiss die CAN-Karte dass ein extended frame empfangen/gesendet wird.
Man kann der 30. bit entfernen indem man ein logische XOR mit 0x20000000 dazufügt.Daselbe wenn man eine extended Frame schreiben will. In diesem Fall logische OR mit 0x20000000, damit wird 30. bit hinzugefügt. So weiss die Karte dass eine extended frame gesendet wird....
' schrieb:gerne...
Am Anfang hatte gedacht, dass die CAN-Karte einen internen Fehler hat. Als ich mir das CAN-Frame-Protokol angeschaut habe, habe ich festgestellt dass die Treiber der 30. bit als internemarke benutzen, somit weiss die CAN-Karte dass ein extended frame empfangen/gesendet wird.
Man kann der 30. bit entfernen indem man ein logische XOR mit 0x20000000 dazufügt.Daselbe wenn man eine extended Frame schreiben will. In diesem Fall logische OR mit 0x20000000, damit wird 30. bit hinzugefügt. So weiss die Karte dass eine extended frame gesendet wird....
[attachment=34344:29_bit_ID.jpg]