Forum: Mikrocontroller und Digitale Elektronik time out protokoll mit pic18f


von Ron N. (blitzgeist)


Lesenswert?

Hallo zusammen,

ich möchte ein time-out Protokoll mit einem PIC in C realisieren. Vorab 
erst alles auf theoretischer Basis, d.h. habe noch keine Hardware.

Annahme:
Mein Datenpaket besteht aus einem Adressbyte und n Nutzbytes. Alles 
liegt im Speicher vom PIC. Der Befehl wird über RS485 gesendet. Zwischen 
jedem Nutzbyte gibt es eine Pausenzeit x (ist kleiner als timeout z). 
Nach einer Totzeit y (ist größer als timeout z) kann ein neues 
Datenpaket gesendet werden.

(mein 1.) Ansatz:
Das erste Byte wird gesendet (i = 0), danach wird ein timer1 gestartet, 
der bis x läuft , anschließend das zweite (i = 1). Hier bietet sich doch 
eine for-Schleife an, welche die n Bytes behandelt. In der for-Schleife 
wird das erste Byte an die RS485 ausgegeben, danach der timer1 
gestartet, bis n-1 Bytes gesendet wurden. Anschließend wird ein timer2 
gestartete der bis y läuft, dann kann ein neuer Befehl bearbeitet 
werden.

Wird z überschritten, bricht der Transfer ab.

Doch was passiert, wenn während der Bearbeitung eines Datenpakets, schon 
ein nächstes ansteht? Dies kann doch abgefangen werden, indem timer2 
eine boolean var setzt: var anfangs false, erst wenn timer2 bis y 
gelaufen ist folgt var true und ein neues Datenpaket kann bearbeitet 
werden.

Was denkt ihr über den Sachverhalt?

gruß
blitzgeist

von Ron N. (blitzgeist)


Lesenswert?

Hallo Leute,

hat niemand zu diesem Thema was zu sagen?

Gruß
blitzgeist

von Severino R. (severino)


Lesenswert?

Du musst halt schneller senden als die Datenpakete anstehen oder die 
Datenpakete in einem Ringpuffer zwischenspeichern.

Severino

von Ron N. (blitzgeist)


Lesenswert?

Die Daten werden über USB FS an den PIC gesendet. Das ganze Datenpaket 
soll im   Speicher des PICs zwischengespeichert werden und nach und nach 
die Bytes aus dem Speicher gelesen werden.

In diesem Thread geht es mir auch darum, wie man generell ein timeout 
Protokoll realisiert. Gibt es da irgendwelche Internetseiten zu diesem 
Thema?

Gruß
blitzgeist

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.