Seite 2 von 2

Pufferspeicher bei Ethernet Light Karte

Verfasst: Mi 17. Jul 2024, 10:27
von detlef
Dass der Überlauf auf der Sendeseite auftritt, hatte ich ja bereits geschrieben. Aber ich habe den Puffer im Quelltext noch nicht gefunden. Ich sehe da nur den 50 Byte i-Telex-Puffer. Ich habe aber auch nur kurz reingeschaut.

Ich habe jetzt hier einen T1000 mit 100 Baud angeschlossen und werde damnächst nochmal ein paar Tests machen, wo ich beide Seite beobachten und protokollieren kann. Das wird aber ein paar Tage dauern, weil ich jetzt erst mal an anderen Themen dran bin.

Pufferspeicher bei Ethernet Light Karte

Verfasst: Mi 17. Jul 2024, 11:57
von damarco
Der Buffer liegt vermutlich im Ethernet Stack und das senden wird dann durch den iTelex Code getriggert. Das lässt sich konfigurieren und da ja die Ressourcen stark begrenzt sind vermeidet man doppelte buffer.

Pufferspeicher bei Ethernet Light Karte

Verfasst: Mi 17. Jul 2024, 12:12
von detlef
Guter Hinweis. Im Ethernet-Stack habe ich nichts gefunden, aber hier:

enc.jpg

Pufferspeicher bei Ethernet Light Karte

Verfasst: Mi 17. Jul 2024, 15:45
von damarco
Hmm ja aber das ist der Buffer vom Ethernet IC. Der Teilt sich dann durch die aktiven Verbindungen, bei 8 besteht für jede Verbindung ein Emfangsbuffer von 1k. Der dann durch den AVR gelesen werden muss. Wenn du nur eine Verbindung zulässt kann du 8k verwenden.

Ich vermute stark das es keinen Zeichenbuffer an sich gibt, sondern einen allgemeinen Buffer und wie viele Zeichen zwischen gespeichert werden können hängt vom Zustand ab. Sonst hätte diese Frage auch schon jemand konkret beantwortet. Der Code ist nicht so ganz einfach nachzuvollziehen, man müsste sich damit richtig befassen.

Was sind denn 4300 Zeichen auf einem A4 Blatt? Ich denke man hat es so gelöst das zu 99% der Telex Nachrichten der Buffer ausreichend ist. Es ist ja die logische Konsequenz das der Sendebuffer einmal überlaufen wird.

Pufferspeicher bei Ethernet Light Karte

Verfasst: Mi 17. Jul 2024, 21:22
von detlef
Ohne genau zu wissen, wie der Code arbeitet, ist das sowieso alles Spekulation.
Aber es ist Speicher, der die Daten puffern könnte.

Pufferspeicher bei Ethernet Light Karte

Verfasst: Do 18. Jul 2024, 08:49
von damarco

Code: Alles auswählen

volatile TPuffer SendePuffer; 
	//!< Puffer (mit Baudot-Codes gefüllt) für die Richtung Netz -> Endgerät.
	
volatile TPuffer EmpfPuffer; 
	//!< Puffer (mit Baudot-Codes gefüllt) für die Richtung Endgerät -> Netz.

Code: Alles auswählen

PufferInit()

Code: Alles auswählen

#ifndef FIFOPUFFER_MAX
enum { MaxPuffer = 50 } ; 
#else 
enum { MaxPuffer = FIFOPUFFER_MAX } ; 
#endif

Pufferspeicher bei Ethernet Light Karte

Verfasst: Do 18. Jul 2024, 09:24
von detlef
Ja, die hatte ich gefunden. 50 Byte. FIFOPUFFER_MAX ist undefiniert.
Ich suche aber 2000 Byte.

Pufferspeicher bei Ethernet Light Karte

Verfasst: Do 18. Jul 2024, 13:12
von damarco
Also wir suchen an der falschen Stelle, dieser Buffer ist 50 Zeichen groß und wenn dieser voll ist wird er durch das Senden geleert.

Das was wir suchen steckt im TWI Code, denn die Schnittstellenkarte sendet ja weiter über den TWI Bus und die Problemstellung tritt auch bei der Kommunikation intern auf.

Pufferspeicher bei Ethernet Light Karte

Verfasst: Do 18. Jul 2024, 13:58
von detlef
Ich habe eigentlich den kompletten Quelltext durchsucht, auch den der Schnittstellenkarten.
Natürlich nicht Zeile für Zeile, aber nach allen möglichen Suchbegriffen.

Wir suchen, wie gesagt, einen 2 KB großen Puffer. Ich habe keine Ahnung, wo der sich im Quelltext verstecken sollte. ;)