Ablauf der seriellen Kommunikation
Der Sender führt folgende Schritte aus:
- Applikation verschickt AMS Kommando
- Wenn das AMS Kommando größer als 255 Bytes ist, wird ein Fehler an die Applikation geschickt.
- Ein serieller AMS Frame wird allokiert und das AMS Kommando wird in das Feld Nutzdaten kopiert. Das Feld Nutzdatenlänge wird auf die Größe des AMS-Kommandos gesetzt.
- Der Frame wird über die serielle Schnittstelle verschickt und es wird auf ein Acknowledge gewartet.
- Falls der Sender nach mehrmaligem Senden kein gültiges Acknowledge erhält, wird ein Reset Frame verschickt.
Der Empfänger führt folgende Schritte aus:
Die serielle Schnittstelle wird ausgelesen, falls Daten empfangen werden:
- Überprüfen des Magic Cookies
- Überpüfen der CRC
- Überprüfen ob die Fragment Nummer mit dem internen Zähler übereinstimmt. Wenn dies der erste empfangene Frame ist, oder nach einer bestimmten Zeit kein Frame mehr empfangen wurde, wird die Frame-Nummer einfach übernommen und nicht überprüft.
- Wenn ein gülitger Frame empfangen worden ist:
- ein Acknowledge an den Sender schicken
- Nutzdaten( AMS-Telegramm) an die Applikation weiterleiten
Da ADS nur ein überlagertes Protokoll von AMS ist, gilt dasselbe auch für das Verschicken von ADS-Kommandos. Das ADS Kommando befindet sich im Datenbereich des AMS-Kommandos, dass dann über die serielle Schnittstelle verschickt werden kann.