Forum: Mikrocontroller und Digitale Elektronik unterschied zwischen ISP u.IAP


von dirk rohrmoser (Gast)


Lesenswert?

Hallo,
kann mir jemand den genauen Unterschied zwischen: "In-System
Programming und In-Application Programming or Self-Programming"
erklären? Der benutzte Controller ist ein Atmel at89c51cc03.

Vielen Dank

von inoffizieller WM-Rahul (Gast)


Lesenswert?

ISP braucht i.d.R. einen externen Programmer; IAP etc geht per
Bootloader.

von dirk rohrmoser (Gast)


Lesenswert?

Der Controller Programmiert sich also irgendwie selbst über seinen
Bootloader. Aber woher bekommt er das Programm und wozu benötigt man
diesen Modus ?

von inoffizieller WM-Rahul (Gast)


Lesenswert?

>Aber woher bekommt er das Programm und wozu benötigt man
>diesen Modus ?

Woher: serielle Schnittstelle, CAN-Bus, Ethernet. Je nachdem, was
gebraucht wird.

Wozu: Firmwareupdate; gleicher Baustein, anderes Verhalten (z.B.
Regler)

von dirk rohrmoser (Gast)


Lesenswert?

OK, aber die neue Software (Firmware) kann ich doch dann ganz normal
über das Programm FLIP herunterladen(ISP). Ich verstehe noch nicht so
ganz wo der Vorteil in dieser Progrmmierart liegt.

von Peter D. (peda)


Lesenswert?

Mit IAP kann man sich seinen eigenen Bootloader stricken (anderes
Interface, anderes Protokoll), z.B. über Funk.

Auch kann die Anwendung nebenher weiter laufen, d.h. in der Regel
bleibt die CPU kurz (10ms) stehen, während eine Bootloaderaktion
ausgeführt wird. Eignet sich daher auch, um große Datenmengen im Flash
von der Anwendung abzuspeichern (Datenlogger).


Je nach CPU macht man die Bootloaderaufrufe bequem über nen API-Call
(8051) oder muß sie selber umständlich zu Fuß programmieren (AVR).

Die Methode mit dem API-Call hat den Vorteil, daß man sich nicht drum
kümmern muß, wenn der Hersteller später mal den Programmieralgorithmus
ändert oder neue Typen entwickelt.


Peter

von dirk rohrmoser (Gast)


Lesenswert?

besten Dank für die ganzen Informationen.
Das hört sich sehr Interessant an, gibt es zu diesem Thema
(IAP,API,Bootloader) Fachliteratur mit Beispiel-Programmen in Deutsch
?
Aus dem Datenblatt von Atmel, werde ich nicht so richtig schlau !

von dirk rohrmoser (Gast)


Lesenswert?

Hallo Peter,
woher hast du diese Informationen (Datenblatt ???), wenn es noch andere
Quellen zu diesem Thema gibt, dann melde dich doch bitte nochmal.
MFG
Dirk

von Carlos (Gast)


Lesenswert?

Hallo,
generell bedeuten bei ISP und IAP: der uC bleibt während der
Programmierung IN seiner Schaltung, er braucht nicht herausgenommen zu
werden und nicht z.B. in ein besonderes Programmiergerät gelegt zu
werden (wie das z.B. bei EPROMs der Fall ist).

Das Empfangsprogramm auf dem uC (für das neue vom PC gesendete
Programm) ist zunächst vom uC-Hersteller auf dem uC hinterlegt und kann
bei bestimmten uCs (warum auch immer) vom Anwender durch ein eigenes
Empfangsprogramm ersetzt werden.
Auf dem PC läuft ein spezielles Sende-Programm ab, z.B. FLIP.

Soweit sind ISP und IAP zunächst gleich.
Nun der Unterschied:
Bei ISP muß der uC angehalten werden, wenn ein neues Programm
aufgespielt wird (Boot-Modus), das gesamte uC-System bleibt also
stehen, nichts tut sich, solange das neue Programm geladen wird.

Bei IAP läuft noch das alte Programm während des Donwloads weiter !
d.h. das uC-System arbeitet "durch".
Erst wenn das neue Programm komplett herunter geladen worden ist, wird
geschickt umgeschaltet und der uC läuft mit dem neuen Programm.
IAP ist also wesentlich aufwendiger zu realisieren als ISP.
Der AT89C51CC03 kann meines Wissens nur ISP.

Viel Spaß
Carlos

von inoffizieller WM-Rahul (Gast)


Lesenswert?

>Der AT89C51CC03 kann meines Wissens nur ISP.
Nennt man das Bildungslücke?

http://www.atmel.com/dyn/products/product_card.asp?family_id=613&family_name=CAN+Networking&part_id=3186

http://www.atmel.com/dyn/resources/prod_documents/doc4251.pdf
http://www.atmel.com/dyn/resources/prod_documents/doc4266.pdf

Man benutzt diese Methode gerne dafür, die Firmware des Controllers zu
verändern bzw. zu aktualisieren (oben schon genannt).

Warum man da auch gerne einen eigenen Bottloader schreibt?
Weil man z.B. eine Verschlüsselung einbauen will oder eine eigene
Anwendung (statt FLIP) benutzen will/muß oder eine andere Schnittstelle
benutzen will/muß (z.B. auch ein externes EEPROM).

Beim AVR ist es IMHO überwiegend so, dass der Bootloader komplett dazu
da ist, ein neues Betriebsprogramm (Firmware) für den Controller
einzuspielen.
Der Bootloader wird dann nur nach einem Reset (Power-On etc) gestartet
und wartet ein bestimmtes Ereignis ab. Tritt dieses Ereignis ein, wird
die Firmware neu geschrieben, tritt es nach einer gewissen Zeit nicht
ein, wird die Firmware gestartet.
Die Idee, den übrigen Flash-Speicher als Datenspeicher zu benutzen,
finde ich inzwischen sehr interessant.

von dirk rohrmoser (Gast)


Lesenswert?

Hat denn jemand von euch, schonmal selbst ein Bootloader-Programm
geschrieben?
Ok, ich werde mich wohl erstmal einige Zeit mit der ISP beschäftigen
und wenn ich dann noch nähere Informationen sammeln kann mit IAP.
Ich danke für die zahlreichen Beiträge und werde mich dann, wenn ich
soweit bin, nochmal melden.

MFG
DIRK

von anonymer Rahul (Gast)


Lesenswert?

Guck mal in die Codesammlung. Bin mir nicht ganz sicher, ob da einer für
den 89C51CC03 dabei war.
Einer dieser Controller hat IMHO einen Bootloader für CAN und einer
über die serielle Schnittstelle.

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.