|
Ablauf der KommunikationDas Protokoll ist so einfach aufgebaut, daß es mit wenig Aufwand auch auf Systemen mit stark beschränkten Ressourcen implementiert werden kann. Befehle werden als Block gesendet, was etwa 0,5 Millisekunden pro Byte dauert. Dabei ist nur darauf zu achten, daß zwischen zwei Bytes keine Pausen liegen, bei einer Unterbrechung von mehr als 260 Mikrosekunden geht die Firmware von einem Problem aus und verwirft das Paket. Die Verarbeitung des Befehls dauert nie länger als die serielle Übertragung eines Bytes. Danach beginnt die Leistungselektronik unmittelbar mit dem Senden der Antwort. Das Programm des Steuerrechners sollte in dem empfangenen Datenstrom nach dem Antwortpaket suchen und sich dabei fehlertolerant verhalten sowie Timeouts berücksichtigen. Diese Aufgabe übernimmt ein einfacher Algorithmus, der auch in der Firmware der Leistungselektronik zum Einsatz kommt.
Prinzipiell kann die Dauer eines Befehlszyklus und damit die Länge der Timeouts relativ genau berechnet werden. Bei den meisten seriellen Schnittstellen scheitert dies jedoch an den FIFOs des Treiberchips. Sie sammeln empfangene Bytes und geben sie erst an das Betriebssystem oder an Applikationen weiter, wenn sie einen gewissen Füllstand erreicht haben oder eine bestimmte Zeit lang keine neuen Bytes empfangen wurden. Der eigentliche Befehlszyklus dauert maximal neun Millisekunden, abhängig von der Schnittstelle und dem Betriebssystem müssen die Timeouts unter Umständen wesentlich höher liegen. |