Benutzer-Werkzeuge

Webseiten-Werkzeuge


ebus:ebuscrc

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

ebus:ebuscrc [2015/10/10 16:40]
127.0.0.1 Externe Bearbeitung
ebus:ebuscrc [2015/10/11 14:07] (aktuell)
bernhardh
Zeile 1: Zeile 1:
--- Main.BernhardH - 2010-01-21 
 ====== Häufige Fehler ====== ====== Häufige Fehler ======
  
 Nachdem ich beim eBus-Connector gesehen habe, dass im Schnitt bei ca. 4 % der gelesenen Pakete fehlerhafte Prüfsummen ausgewiesen wurden habe ich mir das noch einmal genauer angesehen. Nach ausführlichen Tests konnte ich feststellen,​ dass ich die Prüfsumme falsch berechnete. Nachdem ich beim eBus-Connector gesehen habe, dass im Schnitt bei ca. 4 % der gelesenen Pakete fehlerhafte Prüfsummen ausgewiesen wurden habe ich mir das noch einmal genauer angesehen. Nach ausführlichen Tests konnte ich feststellen,​ dass ich die Prüfsumme falsch berechnete.
  
-Die Berechnung der Prüfsumme eines eBus-Datenpaketes muss über den _expandierten//​Datenstring erfolgen, also bevor das Parse-Zeichen 0xA9 ausgewertet wird. In meinem Programm hatte ich eine Funktion, welche zuerst das gelesene Zeichen auswertete und die Umschlüsselung des Parse-Zeichens durchführte. Erst dann wurde über den gelesenen Datenblock die Prüfsumme berechnet. Nach dem Umbau der Einleselogik stimmt nun die Prüfsumme beinahe immer. Die restlichen Fälle schließe ich auf tatsächliche Übertragungsfehler (21 CRC-Fehler bei 32500 gelesenen Packeten dürfte nicht so schlimm sein.)+Die Berechnung der Prüfsumme eines eBus-Datenpaketes muss über den //​expandierten// Datenstring erfolgen, also bevor das Parse-Zeichen 0xA9 ausgewertet wird. In meinem Programm hatte ich eine Funktion, welche zuerst das gelesene Zeichen auswertete und die Umschlüsselung des Parse-Zeichens durchführte. Erst dann wurde über den gelesenen Datenblock die Prüfsumme berechnet. Nach dem Umbau der Einleselogik stimmt nun die Prüfsumme beinahe immer. Die restlichen Fälle schließe ich auf tatsächliche Übertragungsfehler (21 CRC-Fehler bei 32500 gelesenen Packeten dürfte nicht so schlimm sein.)
  
 Außerdem habe ich nun die Lesefunktion so geändert, dass auch die Antworten vom Slave eingelesen werden. Damit sind noch mehr Möglichkeiten zur Auswertung gegeben. Außerdem habe ich nun die Lesefunktion so geändert, dass auch die Antworten vom Slave eingelesen werden. Damit sind noch mehr Möglichkeiten zur Auswertung gegeben.
Zeile 10: Zeile 9:
 Nicht vergessen, die Variable am Anfang mit 0 zu initialisieren ;) Nicht vergessen, die Variable am Anfang mit 0 zu initialisieren ;)
  
-<​code>​<​file>​//////////////////////////////////////////////////////////////////////////​+<​code ​c crc.c> 
 +//////////////////////////////////////////////////////////////////////////​
 // //
 // CRC-Berechnung ​ aus http://​www.mikrocontroller.net/​topic/​75698 // CRC-Berechnung ​ aus http://​www.mikrocontroller.net/​topic/​75698
Zeile 111: Zeile 111:
 } }
  
- 
- 
-</​file>​ 
 </​code>​ </​code>​
  
ebus/ebuscrc.txt · Zuletzt geändert: 2015/10/11 14:07 von bernhardh