mikrocontroller.net

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


Autor: dirk rohrmoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ISP braucht i.d.R. einen externen Programmer; IAP etc geht per
Bootloader.

Autor: dirk rohrmoser (Gast)
Datum:

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

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: dirk rohrmoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: dirk rohrmoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 !

Autor: dirk rohrmoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Carlos (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: inoffizieller WM-Rahul (Gast)
Datum:

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

http://www.atmel.com/dyn/products/product_card.asp...

http://www.atmel.com/dyn/resources/prod_documents/...
http://www.atmel.com/dyn/resources/prod_documents/...

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.

Autor: dirk rohrmoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: anonymer Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.