Forum: Mikrocontroller und Digitale Elektronik Verständnis-Frage


von Bahos (Gast)


Lesenswert?

Hallo,

nehmen wir mal an, ich programmiere einen Ethernet/CAN-Messgerät ,und 
ich sende ein Start-Paket(über Ethernet) um die CAN-Messung zu starten, 
während CAN gestartet ist trifft noch eine Ethernet-Paket vor, diesmal 
um die Messung zu stoppen, wird dieses paket bearbeitet oder ist der 
Controller mit CAN-Daten beschäftigt, und erst wenn es keine CAN-Daten 
vorliegen(keine Receive Interrupts), dann wird das Paket bearbeitet ? 
wie ist das eigentlich?

Vielen Dank.

PS.:Ich möchte das später mit einem LPC-uC realisieren, ich bin jetzt in 
der Plannungsphase

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Das ist abhängig davon wie du programmierst.

Bei einem Pollingbetrieb im Programm ist es sehr wahrscheinlich, dass du 
dich auf einer Schnittstelle blockierst.

Bei einem Interruptbetrieb im Programm sollte es möglich sein, die 
Aufgaben am CAN-Bus und über Ethernet annähernd gleichzeitig 
abzuarbeiten.

von Bahos (Gast)


Lesenswert?

Kannst du bitte erklären was mit Polling- und Interruptbetrieb meinst, 
vielen Dank.

von Ralf (Gast)


Lesenswert?

Polling bedeutet, dass du an bestimmten Stellen im Programm eine Aktion 
mit der Schnittstelle ausführst.

Interrupt bedeutet, wenn etwas empfangen wird oder gesendet werden soll, 
wird eine entsprechende Interrupt-Routine automatisch vom µC aufgerufen, 
die das macht (die Routine muss natürlich auch programmiert werden).

Vorteil des Pollings ist, dass es einfacher ist, aber nicht flexibel, 
weil du nur an bestimmten Stellen des Programms prüfst, ob etwas mit der 
Schnittstelle getan werden muss.

Beim Interrupt-Betrieb unterbricht der µC selbstständig das Programm, 
und führt die Interrupt-Routine aus, wenn es nötig ist.

Vorteil ist, dass quasi zu jedem beliebigen Zeitpunkt auf ein Ereignis 
reagiert werden kann. Allerdings ist die Programmierung von Interrupts 
etwas aufwendiger.

Ralf

von Bahos (Gast)


Lesenswert?

Vielen Dank für die Erklärung.
Aber wie ist das In Interruptbetrieb, wenn die CAN-Daten eintreffen 
(Receive Interrupt),und danach Eternet-Daten vorliegen, wie wird das 
behandelt?

von Bahos (Gast)


Lesenswert?

Vielen Dank für die Erklärung.
Aber wie ist das in Interruptbetrieb, wenn die CAN-Daten eintreffen
(CAN-Receive Interrupt),und danach Eternet-Daten(Ethenet-Receive 
Interrupt) vorliegen, wie wird das behandelt? und wenn gleich in die 
Ethernet-ISR gesprungen wird, was passiert dann mit den CAN-Daten die 
dazwischen reinkommen?
Sorry wenn zu viel Frage.

von Bahos (Gast)


Lesenswert?

Die letzte Frage ist entscheidend für die Planung meines zukünftigen 
Projekts, ich bin sehr dankbar jeden Hinweis.

von Karl H. (kbuchegg)


Lesenswert?

Es passiert das was du planst das passieren soll.
Sorry aber mit so wenig Angaben kann man keine vernünftigere
Auskunft geben.
Prämisse: Ausser in einem Multiprozessor Kern, kann ein
Prozessor immer nur eine Aufgabe zur gleichen Zeit ausführen.
Der Prozessor kann allerdings in sehr kurzen Zeitintervallen
von einer Aufgabe zu einer anderen wechseln, sodaß der Eindruck
der Gleichzeitigkeit entsteht. Wie das konkret aussieht, hängt
von zuvielen (unbekannten) Faktoren in deiner Anfrage ab.
Da erhebt sich zb. die Frage: Kann dein Ethernet/CAN Hardware
überhaupt einen Interrupt ausführen? Wenn die Hardware ein
Paket zum Versenden bekommen hat, schickt sie dann das Paket
unter allen Umständen raus, oder kann die Hardware das mittendrinn
abbrechen? Inwiefern kann die Hardware überhaupt eigenständig
Nachrichten empfangen/senden und wie weit benötigt sie dazu
Hilfe vom µC? ....

von Unbekannter (Gast)


Lesenswert?

Uh, uh, uh...

Da zerbricht sich mal wieder ein Blinder seinen Kopf über ein Gemälde...

von rifman (Gast)


Lesenswert?

@ Karl heinz Buchegger:
Vielen Dank für deine Auskunft!
Das Board womit ich das ganze realisieren will, sollte auf jedenfall 
einen Ethernet- und CAN-Contoller besitzen, sodass der uC nur zwischen 
den beiden kombiniert, bringt das was zur sache?

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.