CAN over USB

Gast #3133746
Lesenswert?

Hallo,

ich möchte gerne folgende Platine erstellen.

- Das Board soll über 2x High Speed CAN verfügen.
- Das Board soll über 1x High Speed USB verfügen, mit dem es an einen 
Windows-PC angeschlossen werden kann.
- Es soll ein USB Treiber und eine Bibliotheke für Windows verfügbar 
sin.
- Die Flash Programmierung soll über USB durchgeführt werden. Dabei soll 
das Kommunikationsprotokol über USB von mir bestimmt und implementiert 
werden. Meine implementierung gibt die Übertragenden Daten dann weiter 
an die Routinen, die die Flash Programmierung durchführen.
- Das Board soll für einen Temperaturbereich von -40° C .. 105° C 
ausgelegt sein.
- Das Board soll über Hardware-Timer verfügen.
- Das Board soll über USB mit Strom versorgt werden.
- Das Board soll über einen niedrigen Energieverbrauch verfügen.

Hierfür bin ich gerade auf der Suche nach Bauteilen. Ich habe jedoch 
keine Erfahrung und kenne mich nicht aus.

Hättet ihr vielleicht vorschläge für Bauteile wie etwa den 
Micocontroller oder ggfs. externe Chips für USB und CAN?

Ich hätte eine weitere Frage. Gibt es elegante und effiziente 
Möglichkeiten um vor der Kompilierung der Software einen Filter auf 
bestimmte IDs festzulegen (White List), die ich empfangen und 
verarbeiten möchte?
Gast #3134376
Lesenswert?

Markus_AC schrieb:
> Was willst Du denn mit dem Board machen?
> Wenn Du von Windows aus auf zwei CAN-Busse zugreifen willst, nimm Dir
> doch was fertiges: http://www.peak-system.com/PCAN-USB-Pro.200.0.html
> Dazu gibt es auch genügend Treiber und Software - auch freie Software
> ist verfügbar.

Hallo,

also ich würde gerne folgendes machen.

- Ich möchte den Source Code für jeden Anwendungsfall neu kompilieren 
und den Flash neu programmieren. Bei der Flash Programmierung über USB 
möchte ich ein bestimmtes Protokoll verwenden.
- Ein Anwendungsfall ist, dass bestimmte Signale aus dem Frame 
extrahiert und unter einer bestimmten Addresse im Ram abgelegt werden. 
Wenn das gleiche Frame wieder empfangen wird, wird das vorhandene Signal 
bzw. die vorhandenen Signale  überschrieben. Es wird also immer das 
aktuellste Signal gespeichert. Parallel wird über mehrere Timer (z. B. 
10, 20, 50, 100, 500 und 1000 ms) das aktuellste Signal über USB 
übertragen. Dabei kann ein Signal einen Timer haben und ein Timer 
mehrere Signale. Die Sgnale, mit dem gleichen Timer liegen im Speicher 
in einem fortlaufendem Bereich.
- Ein weiterer Anwendungsfall wäre quasi das gleiche Prinzip, nur dass 
ich von bestimmten Frames das 8-Byte Datenfeld und nicht nur einzelne 
Signale speichere und zyklisch per USB übertrage.
- Der letzte Anwendungsfall ist, dass ich von bestimmten Frames das 
komplette Frame sofort über USB weiterleite ohne es zu speichern.
(Firma: MHS-Elektronik GmbH & Co. KG) #3134422
Lesenswert?

Die Tiny-CAN API hat Funktionen zum filtern von CAN Nachrichten.
Gefilterte Nachrichten werden in einen Puffer abgelegt der mit jeder 
neuen
Nachricht überschrieben wird.

http://www.mhs-elektronik.de/index.php?module=download&action=list

Eine extra Firmware für jeden Anwendungsfall zu erstellen macht
keinen Sinn, der PC kann ja ohne Probleme alles machen.

Oder hast Du noch einen PC mit 8 Bit Prozessor :-)

Gruß
Klaus
#3136435
Lesenswert?

Kannst Du ein bisschen mehr Details nennen,
was Du unter "Pre-Compiler-Time-Configuration" verstehst
und was der Vorteil des ganzen ist?

Ist das ein Hobby-Projekt oder was kommerzielles?
Soll nur 1 Stück entstehen oder mehrere davon?
Wo/mit was/in was soll das ganze eingesetzt werden?
Gast #3136468
Lesenswert?

Es gibt mehrere formale Beschreibungsdateien, wie etwa DBC, Fibex oder 
A2L. Aus diesen Dateien wird Code generiert (Pre-Prozessor Konstanten, 
initialisierte Arrays und Strukturen). Dieser Konfigurations-Code wird 
von fertigen Modulen (.h + .c) importiert. Dann wird der kompiliert und 
die Zielplattform wird geflashed.
Gast #3137142
Lesenswert?

Was haltet ihr denn von folgenden Microcontrollern für meinen 
Anwendungsfall? Falls dieser Controller geeignet ist, würde ich ihn auch 
mal mit den Modellen von Texas Instruments und Freescale vergleichen...

Type number
Flash total
Flash bank A
Flash bank B
Total SRAM
LCD
Ethernet
USB0 (Host, Device, OTG)
USB1 (Host, Device)/ULPI interface
PWM
QEI
ADC channels
Temperature range[1]
GPIO

LPC4327JET100 1 MB 512 kB 512 kB 136 kB no no yes no/no no no 4 J 49
LPC4325JET100 768 kB 384 kB 384 kB 136 kB no no yes no/no no no 4 J 49
LPC4323JET100 512 kB 256 kB 256 kB 104 kB no no yes no/no no no 4 J 49

Unterschiede gibt es beim Flash- und beim RAM-Speicher. Hier weiss ich 
noch nicht wieviel ich benötige.

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