Hallo alle zusammen Was den CAN-Bus angeht, stehe ich noch ganz ganz weit am Anfang. Ich habe noch einige Verständnisprobleme mit der Abarbeitung von Anfragen. Bsp. Bus mit mehreren Knoten , die alle eine Temperatur Messen können. Beim I2C war es ja so, da habe ich gesagt "Start-Adresse,lesen - was will ich lesen-Stop". Und dann hat ja genau der adressierte Teilnehmer seine Info zurückgesendet. Wie läuft denn das nun beim CAN. Ich möchte jetzt meinetwegen genau vom Tempfühler im Badezimmer die Temperatur wissen, und nicht die vom Tempfühler im Gewächshaus. Wenn ich jetzt eine Nachricht verschicke "ID - lesen" dann hören ja alle mit. Wenn jetzt nur der Tempfühler im Badezimmer antworten soll, muss dann die Id der Anfrage nach der Temperatur im Bad eine andere sein, als die ID der Anfrage nach der Temperatur im Gewächshaus? Das heißt, brauche ich bei 20 verschiedenen Tempfühlern (rein theoretisch ;-)) 20 mal die ID (1=TempS1 , 2=TempS2... usw) oder wie? Bedeutet das auch, dass mein BUS bzw dessen Teilnehmer zusammen, bei 11bit ID genau 2048 verschieden Befehle "versteht"? So, dass wäre das erste Unklare. Nun noch eine zweite Sache ... vorerst :-). Mein Testbus besteht aus 3 Knoten (MAX232<->ATmega8<->MCP2515<->PCA82C250) und die ganzen Teile dafür kommen hoffentlich in den nächsten Tagen und dann lege ich los mit probieren. Aber... jetzt kommts :-),im dem Datenblatt des AT90CAN128 (ist mir für den Anfang zu umständlich zum Testbordaufbau) bin ich über den Begriff "Pages" gestolpert. Was sind denn nun wieder die Pages? Ist das eine Ablage, wenn mehrer Datenpakete in schneller Folge kommen? Da würde mir die grobe Info erstmal reichen, da meine ersten Gehversuche bestimmt keine gewaltigen Datenmengen bewegen werden. Danke im Voraus Marco
Bei CAN läuft nichts über Adressen, sondern über Nachrichten IDs. Du kannst zwei verschiedene Wege gehen: 1) Remote : Dabei Sendet der "Master" an alle - "Ich brauche die Nachricht mit der ID xxx". Dies interessiert aber nur einen einen deiner Teilnehmer, und der schick darauf hin den Temperaturwert mit der Nachrichten ID xxx zurück. 2) Jeder Sensor schickt in regelmäßigen Abständen die Temperatur über den CAN-Bus. Jeder Sensor schickt dabei den Wert mit einer unterschiedlichen ID. Jeder CAN-Bus Teilnehmer kann das empfangen wenn der lust dazu hat. Anhand der ID kann der Empfanger feststellen welche Temperatur gemeint ist.
Ah jetzt ja! Ich habe in der Zwischenzeit noch die CAN Doku auf der seite Kvaser.com durchgelesen und bin danke der "Summeries" gut hintergestiegen. Das heißt für mich, dass ich, wenn ich 10 gleiche Temperatursensoren baue, alle mit der selben Software füttere, ich ihnen per Dipschalter oder weiß der Geier wie mitteilen muss, Du bist jetzt der Sensor aus dem Bad und Du der Sensor im Gewächshaus und dementsprechend verpackt der eine Sensor seine Temperatur mit der ID X und der andere Sensor seine Temperatur mit der ID Y. Liegt nun auf dem Buss die ID Y wissen alle, das ist die Temperatur aus dem Gewächshaus. Super, wieder einen Schritt weiter. Das bedeutet, wenn ich demnächst in der Firma das geile sech-Achs-System von Trinamic vor mir zu liegen habe ( wird erstmal mit der passenden Software und Schnittstelle von Trinamic betrieben), kann ich, wenn ich weiß, welche ID welche Daten enthält, das ganze auch über einen kleinen Atmel steuern. Vielleicht ergibt sich ja auch noch eine Antwort auf die Geschichte mit den Pages. Falls nicht mehr heute, schönes WE.
Hi, @Martin: "Remote : Dabei Sendet der "Master" an alle" ist etwas mißverständlich ausgedrückt, denke ich. 1. Es gibt keinen Master. CAN ist ein Multimaster Bus, die Chips arbitrieren. 2. Es gibt kein "an alle" 3. Ein Knoten muss nicht zwangsläufig per Remote Transmit Request (RTR: nur CAN ID keine Daten) zum Senden aufgefordert werden. Das kann auch mit beliebigen anderen IDs gemacht werden - die Software hats in der Hand. So wie bereits dargestellt, werden lediglich Nachrichten mit eindeutigen IDs versendet. Ob eine Nachricht ein "an alle" (also ein Broadcast) ist, hängt davon ab, wie das Bus-Protokoll definiert wurde. Sinnvoller Weise benutzt man die ID Bits, um Knoten-IDs und Broadcasts zu codieren.
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.