Moin zusammen! Ich entwickele derzeit eine Anwendung mit dem Xbee Pro 868, welche später mal bei niedriger Datenrate mit hoher Reichweite funktionieren soll. Dazu wird ein Protokoll implementiert, welches eine gesicherte Punkt-zu-Punkt Verbindung über das API-"Protokoll" des Xbees herstellt. Die Dokumentation ist leider relativ schlecht, Erfahrungen von anderen Xbees scheinbar nicht direkt übertragbar. Insbesondere stellen sich mir gerade folgende Fragen: a) Automatische Retransmission: In welchem Zeitintervall erfolgen diese? Ich möchte in meiner Anwendung einen Timeout festlegen, in welcher ich einen Ack empfangen sollte. b) Was passiert bei verloren gegangenen ACK-Paketen? Sorgt das Xbee selbst dafür, dass der Empfänger einer Nachricht diese nur maximal einmal der Anwendung übergibt? Ist meine Annahme, dass eine Nachricht angekommen sein könnte, obwohl ich kein ACK bekommen habe, korrekt? Eventuell hat jemand von euch Erfahrung mit den Modulen und kann mir helfen. Oder ich wende mich doch mal an digi, in der Hoffnung, dass die Antworten... Gruß, Matthias
Matthias Larisch schrieb: > Eventuell hat jemand von euch Erfahrung mit den Modulen und kann mir > helfen. Oder ich wende mich doch mal an digi, in der Hoffnung, dass die > Antworten... In der Doku/API steht zu deinen Fragen nichts, da es sich um eine API über dem eigentlichen ZigBee handelt. Deine Fragen beziehen sich direkt auf das ZigBee-Protokoll, evtl. gibt es Headerfiles etc. mit den Parametern? Grüße.
Hallo! Danke für deine Antwort. Sollte nicht das Verhalten der API dennoch dokumentiert sein? Beim Xbee Pro 868 handelt es sich bei der RF-Implementierung auch (angeblich) nicht um ZigBee, sonst würde ich da wohl mal nachlesen. Das Datenblatt gibt auch keine weitere Auskunft zur RF Implementierung, im digi.com Forum stehen wohl ein paar Fragen dazu, jedoch seit Monaten ohne Antwort. Gruß, Matthias
Matthias Larisch schrieb: > Sollte nicht das Verhalten der API dennoch dokumentiert sein? Es sollte dokumentiert sein, ist es wohl nicht :-). > Beim Xbee > Pro 868 handelt es sich bei der RF-Implementierung auch (angeblich) > nicht um ZigBee, sonst würde ich da wohl mal nachlesen. Das Datenblatt > gibt auch keine weitere Auskunft zur RF Implementierung, im digi.com > Forum stehen wohl ein paar Fragen dazu, jedoch seit Monaten ohne > Antwort. Naja, das ist mehr oder weniger alles eine Soße mit Overhead (ZigBee) oder ohne. In den Networking "Features" steht auch: Protocol: Proprietary Wenn du Pech hast, dann musst du dir dein eigenes ACK/Retransmission in die höheren Layer bauen. Wird das DutyCycle auf den 868MHz vom Protokoll gehandelt oder ist das deine Aufgabe? Wenn vom Protokoll, dann könntest du auch Probleme mit dem ACK bekommen wenn die Kanalzeit um ist. Grüße.
FYI 4.4 Transmission Modes There are two transmission modes: unicast and broadcast. Unicast is the default. It supports retries; broadcast doesn’t. In unicast mode, a module receiving a packet will send an ACK back to the transmitter. If the transmitter does not receive an ACK within 200mS, it will retry up to three times. These three retries are provided automatically, but the RR command will set or read a multiplier: the number of times the (up to) 3 retries will be repeated if necessary. The range of the RR parameter is 0 to 6, and the default is 0. The parameter was introduced in firmware version 1xa0. The EA parameter gives the number of ACK failures since the counter was last reset. The counter is incremented when the module reaches its retransmission limit without an ACK having been received. When the counter reaches 0xffff it retains that value instead of overflowing. To reset the counter, set the EA parameter to 0. In broadcast mode, all RF modules within range will accept the transmission. No ACKs are sent, and there is no automatic retransmission of packets. A packet is sent in broadcast mode if its destination address is DL=0xffff and DH=0.
Danke für deine Mühe, leider gilt das Cookbook nicht fürs Pro 868 :) Zumindest die Angaben zu den Retransmissions sind nachweislich anders: Diese sind nämlich in 1er Schritten von 0-15 konfigurierbar fürs 868, laut Datenblatt... Ich mache jetzt erstmal Annahmen über den genauen Ablauf und teste mal ne Weile, wie gut das funktioniert. Auf niedriger Sendeleistung kann ich im Gebäude auch ganz gut verlorene Pakete "erzeugen" und sollte somit hoffentlich mal alle Situationen testen können. Wenn alle Stricke reißen, deaktivier ich das Low-Level Ack und bastel halt selbst (Inkl. Retransmission & Ack), wobei das sicherlich die Hardware besser kann als ich selbst, zumal die Anwendung unter Linux in Java läuft und somit von der Reaktionszeit vermutlich recht schlecht abschneidet. Duty Cycle macht das 868 selbst, der ist aber kein Problem. Ich kann ihn zum einen jederzeit auslesen, außerdem übertrage ich meistens nicht so viele Daten. Irgendwer hat mal nen Overhead von rund 60-70% überschlagen, d.h. ich schaff effektiv rund 1 kBit/s und das reicht mir. Gruß, Matthias
Rufe einfach bei Digi in Dortmund an, die sind eigentlich sehr hilfsbereit, unabhängig vom Kundenstatus!
Hi! Tschuldigung, dass ich länger nicht reingeschaut habe. Also das Ack-Timeout liegt in der Größenordnung von 60ms (durch PL4 innerhalb eines Raumes kann ich manuell gut packet loss erzeugen, 10 Retransmissions dauern etwa 600ms). In diesem Fall habe ich ACK Pakete verloren (TX Xbee auf PL0, RX Xbee auf PL4), der Empänger hat (scheinbar) das erste Paket bereits an die Anwendung ausgegeben, weitere Paketduplikate kamen nicht (war eigentlich so zu erwarten - aber nun bin ich mir sicher). Getestet habe ich durch Übertragen von etwa 500 Paketen - erstaunlicherweise kam in allen Fällen spätestens bei der 10. Retransmission das ACK an, da muss ich auch nochmal schauen, denn das ergibt wenig Sinn. Grundsätzlich ist mein Paketdurchsatz derzeit noch etwas schlecht. Ich versende nur ein Paket zur Zeit und warte zwischendurch im Java-Code auf das TX Finished Frame. Dies erhalte ich minimal etwa 50-60ms nach dem Versand (selbst bei 0 Retransmissions). Diese Latenz kann allerdings gut auch durchs Scheduling vom BS oder in Java selbst entstehen, da muss ich bei Zeiten nochmal ran. Derzeit ist es so akzeptabel :) Ich würd sagen: Thema erstmal so gelöst! Gruß, Matthias
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.