Umwandler von Serieller Schnittstelle auf CAN-Bus

Gast #437867
Lesenswert?

Hallo AVR-Freunde!!

Ich bin verzweifelt:

Ich will das Protokoll der Seriellen Schnittstelle in ein CAN-Bus 
Protokoll umwandeln.

Ich lerne zurzeit erst den Codevision-Editor und kann nur den Timer 
programmieren, wenns hochkommt ein wenig mit dem UART-Baustein!


Kann mir jemand helfen??

PS: Nebenbei gesagt: PC-seitig verwende ich VS C# 2005!!

Danke schon im voraus!!
Gast #437889
Lesenswert?

Hm, mal schaun:
die serielle Schnittstelle hat erstmal kein Protokoll in dem Sinne, das 
wird erst durch eine Software gebildet. Beim CAN sieht das ein bisschen 
anders aus, da werden die Daten in einen rel. komplexen frame verpackt.
Was genau willst du machen? Es ist rel. einfach, Daten von der seriellen 
Schnittstelle auf einen CAN-Bus zu senden, noch einfacher ist es 
andersrum. Die Probleme lauern hauptsächlich im timing des ganzen, da 
beide Systeme natürlich nur begrenzte Bandbreite haben. Wenn man 
schneller Daten sendet, als das andere verarbeiten kann, hat man ein 
Problem. Buffer helfen, wenn der Datenstrom diskontinuirlich ist, 
ansonsten kommt man um ein handshake nicht herum. Und gerade das geht 
wiederum auf dem CAN-Bus eigentlich überhaupt.
Also schreib einfach mal genau, was du machen willst und was VS C#2005 
ist.
#437891
Lesenswert?

Versuch mal genauer zu beschreiben was Du machen willst

Z. B. Welche Komponenten sind beteiligt?

Willst Du nur eine CAN-Interface, daß Du an die serielle Schnittstelle 
des PCs anschließend willst?

Oder willst Du über einen AVR auf den CAN-Bus zugreifen?

Du solltest Dich auch erst einmal etwas in den CAN-Bus einlesen.

Du kannst z. B. nicht UART Daten 1 zu 1 auf den CAN-Bus schreiben. UART 
ist zeichenorientiert, CAN ist Botschafts-orientiert.

Infos
http://www.me-systeme.de/canbus.html
http://www.mikrocontroller.net/articles/CAN-Bus
Gast #437902
Lesenswert?

Hallo Danke erst mal für die Meldung!!

Ich will softwareseitig einen Datenrahmen vom PC über die serielle 
Schnittstelle auf den Atmega16 schicken. Dieser Datenrahmen soll dann in 
ein ein Can-Bus Botschaftsrahmen (Can-Bus Protokoll) umgewandelt werden 
(Identifier und so).
Es soll also ein simples Gateway programmiert werden.(was für mich schon 
zu komplex ist)

Es wird angenommen, dass der PC keinen Can-Bus integriert hat.

Danke hast du vielleicht ein ähnliches Programm oder gute Ideen parat.

mfg Florian

PS: Das Programm ist Visual Studio 2005 C# Express version wenn du dich 
dann besser auskennst.
Gast #437916
Lesenswert?

wenn du schnelle Ergebnisse willst, empfehle ich dir die Kombination mit 
dem SPI-CAN-Controller MCP2515. Mach dir eine kleine Platine mit dem 
MCP, dazu einen CAN-Transceiver.

Willst du das STK501 verwenden, solltest du dir einen AT90CAN128 
besorgen, der hat den CAN-Controller schon on Chip.
Gast #437932
Lesenswert?

Hallo!

Ich habe leider diese Boards schon gekauft und will es darum mit diesen 
versuchen!
Kennst du dich vielleicht auch mit diesen Bausteinen aus???

Wäre echt gigantisch wenn du dich da auch auskennen würdest.

Danke für deine mitHilfe!!!

lg Florian
Gast #437944
Lesenswert?

Die STK501 CAN Bus Platine ist nur der Transceiver mit Secker und 
Hühnerfutter, und erfordert einen AT90CAN128.
Mit dem Mega16 wirst du da nichts.
Möglichkeit, die du jetzt hast: AT90CAN128 (AVR mit 
CAN-Kernerweiterung)besorgen oder den MCP2515 von Microchhip, ein 
CAN-Controller, der über die SPI angesprochen wird.
#437992
Lesenswert?

@Florian:

Bitte jetzt nicht falsch verstehen, ABER:

Falls du an Software-CAN denkst, lass dir von jemand der vor dem 
90CAN128 mit dem Mega128 Software CAN realisiert hat sagen, wenn du dich 
nur mit Timer und USART auskennst, VERGISS ES !!!

crazy horse's Vorschlag ist da der schnellere, sichere und sinnigste 
Weg, wenn du schon Hardware gekaufst hast, musst du halt akzeptieren, 
das von dem Zeugs evtl. etwas nicht brauchbar ist! ...oder halt gleich 
CAN128, aber wurde ja schon geschrieben...

Gruß Micha,

PS: Software-CAN mit 125kHz auf ATMega128@16MHz mit alles was 
dazugehört... (Bit-Stuffing, PolynomCRC, Identifier, ACK, etc...) ---> 
Das Teil war während der Sende und Empfangsphase echt am straucheln...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren