Forum: Mikrocontroller und Digitale Elektronik CAN over USB


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tikonteroga (Gast)


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?

von Markus_AC (Gast)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

Kannst ja 2 SJA1000 an einen Cypress FX2 anschließen dann hast du alles 
zusammen.

von Tikonteroga (Gast)


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.

von Klaus D. (Firma: MHS-Elektronik GmbH & Co. KG) (mhs-elektronik)


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

von Tikonteroga (Gast)


Lesenswert?

Doch, gerade das Erstellen einer neuen Firmware für jeden Anwendungsfall 
ist der Sinn und Kern der Sache. Es wird eine 
Pre-Compiler-Time-Configuration vorgenommen.

von Tikonteroga (Gast)


Lesenswert?

Ich frage jetzt mal, etwas konkreter. Wäre ein Cortex M3 für mich 
geeignet?

von Uwe Bonnes (Gast)


Lesenswert?

STM32 kann entweder 2*Can + 1* USB FS oder 1*Can + 1* USB HS. Eine ULPI 
Pin, der fuer HS benotigt wir, kollodiert mit dem zweiten CAN Kanal.

von Marie M. (capiman)


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?

von Tikonteroga (Gast)


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.

von Tikonteroga (Gast)


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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.