Frage zum CAN-Bus ...

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hi NG,
nachdem ich nun schon einiges zum Thema gelesen habe bleiben trotzdem einige
Fragen offen....

1. lt. Literatur sind die Identifier als Sender-Identifikation vorgesehen.
Wie aber ADRESSIERE ich dann ein Paket an einen bestimmten Node ?

2.In der Literatur ist immer wieder die Rede von den Remoteframes mit denen
eine Antwort angefordert werden kann. Wie funktioniert dann die Adressierung
? Sendet der angesprochene Node automatisch nur eine Bestätigung oder muß
der übergeordnete µC ein Antwortpaket individuell generieren `?

Nicolas Nickisch



Re: Frage zum CAN-Bus ...

Quoted text here. Click to load it

Gar nicht. Wer's hört (und dass muss jeder sein) und sich dafür
interessiert, wertet das Paket aus. Sieh es eher als
Inhalts-Identifikation, so nach dem Motto "und nun die Lottozahlen von
heute" (gestern/morgen), oder "Hier die Temperatur von Sensor 7", oder
noch CAN-näher, "Hier die Nachricht, für die der Programmierer
Priorität xyz vorgesehen hat". Alles weitere ist eine Frage höherer
Protokollschichten, die vorschreiben, wer was zu senden und wer was
wie zu verstehen hat.

Anders als bei z.B. TCP/IP ist ein nacktes Paket an keinen bestimmten
Empfänger gerichtet. Die meisten Empfängerbausteine können zwar Filter
setzen und den µC nur mit Paketen belästigen, die er sehen will, sie
müssen aber trotzdem alle Pakete lesen und bei Übertragungsfehlern
laut (auf dem Bus) aufschreien. Auch wenn der µC das evtl. nur über
Fehlerzähler mitkriegt.

Quoted text here. Click to load it

Remoteframes sind nach meiner Erfahrung praxisfremd. Wo kommen sie in
freier Wildbahn vor?

Andreas
--
You can only fit so many mistakes into 128kB. :)
(Greg Alexander)

Re: Frage zum CAN-Bus ...
On Mon, 16 Aug 2004 22:26:47 +0200, "Nicolas Nickisch"
Quoted text here. Click to load it
Im Prinzip garnicht, der Node soll einfach auf diese ID hören.

CAN ist so gedacht:
- Motorsteuergerät sendet mit ID28%0 Drehzahl und Verbrauch,
- ESP Steuergerät sendet mit ID18%0 Raddrehzahlen,
- Instrumententräger ("Tachobrett") hört auf 280 und 180 und zeigt
  Fahrgeschwindigkeit, Drehzahl und Verbrauch an,
- Mobiltelefon hört auf 280 und überträgt bei zu großer
  Verbrauchssumme elektronisch Kreditantrag zur Bank zwecks
  Großeinkauf von 10 Litern 95er Wüstengold ;-/

Manche CAN Controller unterstützen Mailboxen, wo für jede Box
eine ID programmiert werden kann. Will man dann die übertragenen
Parameter erfahren, liest man einfach die entsprechende Mailbox aus,
die immer den neuesten Stand beinhaltet, teilweise auch mit
Zeitstempel.

Quoted text here. Click to load it
Es wird ein Paket mit RTR rezessiv und Datenlänge 0 unter einer
ID auf den Bus gelegt, und die Device, die sich für diese ID als
Datenquelle zuständig fühlt, sendet dann eine vollständige Message
(wie üblich RTR dominant) unter dieser ID auf den Bus.
Auch das geht teilweise automatisch über eine sendende Mailbox,
wenn der Controller die Anforderung sieht, kippt er einfach den
Mailboxinhalt unter der gleichen ID auf den Bus. Lesen darf die Daten
dann jeder, den es interessiert.

Deshalb wird üblicherweise auch dringend empfohlen, wirklich
jedem Parameter eine feste Position in einer Nachricht zuzuordnen
(z.B. Tankstand = Byte 3 Bit 0 bis 5 von ID 380). Natürlich kann man
auch mit Sequenznummern arbeiten, aber das widerspricht IMHO
dem CAN-Konzept.

Gruß Oliver

--
Oliver Bartels + Erding, Germany + snipped-for-privacy@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10

Re: Frage zum CAN-Bus ...
On Tue, 17 Aug 2004 01:40:59 +0200, Oliver Bartels

Quoted text here. Click to load it

Ist es Zufall, dass VAG wirklich auf 0x280 die Drehzahl schickt? ;-)

Gruss,
Florian



Re: Frage zum CAN-Bus ...
On Tue, 17 Aug 2004 11:24:39 +0200, Florian Schenk
Quoted text here. Click to load it
;-)

Gruß OLiver

--
Oliver Bartels + Erding, Germany + snipped-for-privacy@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10

Re: Frage zum CAN-Bus ...
Vielen Dank erstmal.

Also angenommen, ich stelle dem Bus unter einer ID xyz Daten zur Verfügung
(so interpretiere ich Deine Ausführungen zum Thema Identifier), dann
interessiert sich eben nur ein knoten für IDs xyz.
O.k. ?
Nun angenommen, ich möchte von genau diesem Knoten die Software-Version
zurücklesen, dann würde ich jetzt die ID xyz als Remote-Frame senden, oder ?
Wie aber antwortet dieser Node dann ? Mit xyz wäre doch eigentlich verkehrt,
oder ? Es soll ja etwas anderes zurückgesendet werden.

Nicolas Nickisch

Quoted text here. Click to load it
vorgesehen.
denen
Adressierung



Re: Frage zum CAN-Bus ...
Gleich noch eine Frage:
Momentan verwende ich den MCP2510 als CAN-Controller zusammen mit Atmel
AVRs.
Gibt es noch andere CAN-Controller, die leichter zu kriegen, rsp. billiger
sind ?

Nicolas Nickisch

Quoted text here. Click to load it
vorgesehen.
denen
Adressierung



Re: Frage zum CAN-Bus ...
On Wed, 18 Aug 2004 07:19:15 +0200, "Nicolas Nickisch"
Quoted text here. Click to load it
Ohne Wertung gibt es von Philips (SJA1000), Intel (82527),
Infineon (SAE81C90) Standalone-Controller, neben den unzähligen
auf Microcontrollern und DSP's integrierten solchen.

Gruß Oliver

--
Oliver Bartels + Erding, Germany + snipped-for-privacy@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10

Re: Frage zum CAN-Bus ...
Oliver Bartels schrieb:

Quoted text here. Click to load it

SJA1000 und 82527 gibts sogar beim Bastlerbedarf;-) Reichelt, nebst den
Leitungstreibern 82C250/251.


Gruß Dieter

Re: Frage zum CAN-Bus ...
Das schöne am MCP2510 ist das SPI-Interface (spart  Leitungen am µC)

Nicolas Nickisch

Quoted text here. Click to load it



Re: Frage zum CAN-Bus ...

Quoted text here. Click to load it

Kannst Du noch etwas warten?

Wenn ja: AT90CAN128: quasi Atmega128 minus Mega103 Kompatibilitätsmodus plus
CAN auf PD4/PD5

Ansonsten PIC 18F458. Ich finde die PIC-Architektur aber persönlich etwas
unbequem. Oder AT89C51CC03 (8051 Core)


Mit freundlichen Grüßen

Dipl.-Ing. Frank-Christian Krügel

Site Timeline