Forum: Mikrocontroller und Digitale Elektronik CAN, Ethernet und Webserver


von Michael h. (mzninja)


Lesenswert?

Hallo zusammen,

ich weiß es ist immer unhöflich in ein Forum beim ersten Beitrag nur zu 
fragen, aber ich hoffe dass ich hier die passenden Antworten auf meine 
Fragen finde. Deshalb schon mal vielen Dank an alle die sich bemühen mir 
eine Lösung zum Thema zu finden bzw. mir Denkanstöße geben.

Als Student der Mechatronik habe ich für eine Studienarbeit die 
Aufgabenstellung bekommen eine Verbindung zwischen einem CAN-Netzwerk 
und einem Webbrowser herzustellen. Soweit so gut!

Lösungen gibt es dazu im Web sicher schon reichlich, z.B. auch von 
Modtronix, das ehemalige Tini-Board usw.

Die Frage die sich uns stellt ist nun der softwaretechnische 
Hintergrund. Da es sich hierbei um ein mechatronisches Projekt handelt 
soll der Programmieraufwand in erträglichen Grenzen bleiben! Es sollte 
also eine Lösung sein die auf mehreren "Softwaremodulen" aufbaut und 
zeitlich noch Raum für die Platinen-Entwicklung lässt.

Nachdem wir nun die verschiedensten Lösungen angeschaut haben fehlt uns 
die richtige Kombinationsmöglichkeit von Chip/Software/CAN/Ethernet. Wir 
stehen immer wieder am selben Punkt, dass wir nicht wissen wie sich der 
CAN-Bus in das Webinterface einbinden lässt. Mit was muss programmiert 
werden? Kann z.B. alles in C51 realisiert werden? Wird beim Webserver 
aber eher schwierig.

Gibt es zur Tini-Software (http://www.apms.com.au/tini/) eventuell eine 
neuere Version? Etwas Vergleichbares?

Über eine Erweiterung unseres Horizontes wären wir sehr dankbar.

Vielen Dank im Voraus an alle die sich bemühen mit uns eine Lösung zu 
finden.

von Tom K. (ez81)


Lesenswert?

Muss es komplett selbstgestrickt und ebedded sein?

Mit irgendwas PC-Ähnlichem mit Betriebssystem (PC104, Mini-ITX, 
Raspberry Pi, BeagleBoard) und fertigem Webserver und einem 
USB-Can-Dongle (für PCAN-USB gibt es z.B. Linux-Treiber) wäre man 
wahrscheinlich am schnellsten am Ziel.

von Frank K. (fchk)


Lesenswert?

Schaut Euch das hier an:

https://www.olimex.com/Products/PIC/Development/PIC32-MAXI-WEB/

Das ist eine fertige Plattform mit 80 MHz PIC32 (mehr als zwei 
Zehnerpotenzen leistungsfähiger als ein 8051), Fast Ethernet, zwei 
CAN-Interfaces. Dazu ein sehr guter TCP/IP-Stack (besser als die 
üblichen uIP/lwIP Lösungen) und Peripherietreiber für die ganze on-board 
Peripherie und eine fertige Demo-App.

Compiler und Entwicklungsumgebung und die Application Libraries sind 
kostenlos bei Microchip zu bekommen, und zum Debuggen braucht Ihr das 
hier:

https://www.olimex.com/Products/PIC/Programmers/PIC-KIT3/

Damit habt Ihr alles, was ihr braucht. Für Eure eigene Platine lasst Ihr 
einfach die Sachen weg, die Ihr nicht braucht (zB das Display). 
Schaltplan gibts auf der Olimex-Webseite.

fchk

von josch222 (Gast)


Lesenswert?

Für den Raspberry gibbet von MHS eine API-Lib, eine CAN-Logger 
Applikation
und Beispiele für Python und C(++), für deren Tiny-CAN USB/CAN-Adapter.
http://www.mhs-elektronik.de/index.php?module=download&action=list

Das wäre schonmal ein Ansatz für eine relativ kostengünstige Lösung.

Frag aber vorher mal nach mit welchen der verschiedenen Adapter das 
läuft,
die gibts ab 77€
http://www.mhs-elektronik.de/index.php?module=content&action=show&page=tinycan_hardware

von Michael h. (mzninja)


Lesenswert?

Vielen Dank schon mal für eure Antworten.

@Tom: Ja es sollte schon embedded sein. Kleiner Rechner wäre sicher auch 
sinnvoll!! Aber ist halt zur Vorlesung Technische Informatik und sollte 
dann schon nicht nur das Rumschlagen mit Treiberproblemen sein :)

@Frank: Das sieht schonmal sehr gut aus. Bleibt nur noch die Frage ob 
wir solch eine Platine selber entwickeln können. Ich denke dass das 
möglich ist. Für eigene Arbeit bleibt ja dann auf jeden Fall noch genug 
Spielraum ... Entfernen der Code-Fragmente, Ansteuerung eines anderen SG 
über CAN, etc.

@josch: Bleibt auch wieder nur das Problem mit dem Linux:), d.h. es 
würde sich wieder auf ein reines Informatik-Projekt reduzieren. Klar 
macht auch Spaß, vor allem bleibt dann mehr Zeit um Unsinn 
reinzuprogrammieren... aber!!

von Michael h. (mzninja)


Lesenswert?

Noch eine letzte Frage:

Ein vorige Lösung wurde auf Basis des Tini-Boards realisiert auf dem der 
Chip DS80C400 als Mikrocontroller verwendet wird. Meiner Meinung handelt 
es sich hierbei um einen veralteten Chip! Schon erst Recht deshalb weil 
das Board nicht mehr angeboten wird. Gehe ich richtig in der Annahme 
oder befinde ich mich da auf dem Holzweg.

von Christian T. (christian_t)


Lesenswert?

Hallo Michael,

guck dir mal https://mbed.org/handbook/mbed-NXP-LPC1768 an.

Da kannst du in C++ programmieren und es gibt fertige Libraries für CAN 
und HTTP. Über die Qualität der Libraries kann ich nichts sagen, 
funktionieren tut es aber auf den ersten Blick.

Auf dem Board ist bereits ein Ethernet-Phy drauf. Den CAN-Phy musst du 
noch anschliessen.

Gruß
Christian

von Frank K. (fchk)


Lesenswert?

Michael hab' ich auch schrieb:
> Noch eine letzte Frage:
>
> Ein vorige Lösung wurde auf Basis des Tini-Boards realisiert auf dem der
> Chip DS80C400 als Mikrocontroller verwendet wird. Meiner Meinung handelt
> es sich hierbei um einen veralteten Chip! Schon erst Recht deshalb weil
> das Board nicht mehr angeboten wird. Gehe ich richtig in der Annahme
> oder befinde ich mich da auf dem Holzweg.

Du meinst den DS80C410, der 400'er hat kein CAN.
Die Webseite von Maxim sagt, dass der Chip noch produziert wird und 
einen Listenpreis von 27.20$ in Einzelstückzahlen hat. Zum Vergleich: 
Der um ein vielfaches leistungsfähigere PIC32MX795F512L wird bei 
Microchip mit 9.41$ aufgerufen.

Das Design des 8051 ist ziemlich alt, und der Chip ist ziemlich teuer. 
Wenn es wenigstens billig wäre, wie z.B. der PIC18F67J60, ein 8-Bit PIC 
mit eingebautem Ethernet MAC und eingebautem Ethernet PHY (dein 80C410 
braucht noch einen extra PHY), der in Einzelstückzahlen 4.55$ kostet, 
dann wäre das noch was anderes. Verbreitet ist der Chip auch nicht. Ich 
sehe also nichts, was dafür sprechen würde.

fchk

von Frank K. (fchk)


Lesenswert?

Michael hab' ich auch schrieb:

> @Frank: Das sieht schonmal sehr gut aus. Bleibt nur noch die Frage ob
> wir solch eine Platine selber entwickeln können. Ich denke dass das
> möglich ist. Für eigene Arbeit bleibt ja dann auf jeden Fall noch genug
> Spielraum ... Entfernen der Code-Fragmente, Ansteuerung eines anderen SG
> über CAN, etc.

Klar, Du hast den Schaltplan, Du hast ein funktionierendes Exemplar, wo 
Du abschauen kannst, die Bauteile sind alle mit der Hand lötbar, unterm 
Strich ist das machbar.

fchk

von Lothar (Gast)


Lesenswert?

Hier noch eine günstige Lösung mit Schaltplan zum Nachbauen und Software 
(LPC1766):

https://www.olimex.com/Products/ARM/NXP/LPC1766-STK

Der "uIP WEB Server - WEB server application running on the top of the 
uIP TCP-IP stack" unterstützt auch JavaScript und AJAX/POST. Die 
CAN-Daten können also ohne neues Laden der Webpage dynamisch 
aktualisiert werden, z.B. als Diagramm. Hierfür gibt es fertige 
JavaScript-Bibliotheken mit Beispielen:

http://www.rgraph.net/docs/updating-charts-dynamically.html

Einziger "Nachteil": Die Software ist für den IAR Compiler, wenn man 
also nicht portieren will, muss man die allerdings kostenfreie Kickstart 
(mit Codelimit) dafür nehmen.

Debugger ist nicht nötig, die Software kann vom PC direkt über RS232 
geladen werden (FlashMagic).

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


Lesenswert?

Hallo Michael,

hast Du das schon gefunden:
http://gnublin.embedded-projects.net/

Da gibt es auch noch ein DIL Board
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=1694

Gruß
Klaus

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
Noch kein Account? Hier anmelden.