Hi,
ganz richtig sind die Aussagen alle nicht.
Im Polling-Modus frägt der Master vom Slave (dem Steuergerät) eine
Anzahl Bytes ab einer von einer Speicheradresse ab oder schreibt diese
Beispiel der Master sendet: "Lese 1 Byte ab Adresse 0xAFFE"
Der Slave antwortet mit den entsprechenden Bytewerten "0x42"
Im DAQ-Modus (Event) allokiert der Master Listen mit Startadressen und
Längen auf dem Slave und ordnet diese einem Ereignis zu. Das Ereignis
selbst ist im Steuergrerät definiert und kann zyklisch sein, muß aber
nicht. In den meisten Fällen ist es der Beginn oder das Ende einer
zyklischen Task (1ms, 10ms, 100ms,....) Mit dem Auftreten des
Ereignisses begint dann der Slave die Daten zu übetragen. Es muss auch
nicht zwingend eine Allokation sein, die Listen können statisch und/oder
vordefiniert sein.
Weitere Dienste sind noch die Programmierung von Flash- und
EEProm-Speicher, die Umschaltung von Kalibrierseiten, (so eine Art
Auswahl Parametersätzen) und die Kalibrierung, also das Verändern
einzelner Parsameter
Das Protokoll ist massiv auf eine schlanke Slave-Implementierung und
einen hohen Netto-Datendurchsatz optimiert, eine nahezu vollständige
Slave-Implementierung lässt sich mit weniger 200 C-Code-Zeilen
darstellen.
Auf dem Master siehts schon schwieriger aus, der hat ordentlich zu
arbeiten, vor allem braucht er Informationen über das Steuergerät, z.B.
an welcher Adresse sich welcher Wert befindet und wie dieser in
physikalische Größen umgerechnet wird, oder welche Events (Ereignisse)
auf dem Steuergerät verfügbar sind. Diese Informationen werden über eine
sogenannte A2L-Datei bereitgestellt. Die ist zwar im Textformat, einen
tauglichen A2L-Parser zu entwickeln dauert Jahre
VG Zaphod