Byte/sec-Anzeige für Modems und serielle Schnittstellen

Dies ist ein Projekt, das entstand, als ich darüber nachdachte, daß die blinkenden LEDs an meinem Modem zwar zeigen, wenn Daten fließen, aber ich eigentlich mal wissen wollte, wie schnell die Daten eigentlich sind.

Ist ja eigentlich nicht so schwierig, man muß ja nur die Daten empfangen und mitzählen, wieviele Bytes so pro Sekunde unterwegs sind. Da das Modem irgendwo in einem Schrank steht, dachte ich mir, man könnte die Datenrate ja auch mit einer LED-Kette anzeigen, da ich das auch aus ein paar Metern Entfernung noch prima sehen kann.

Also den Fädeldraht und die Lochrasterplatinen ausgepackt und angefangen:

  • Erst mal die serielle Schnittstelle durchschleifen und die interessanten Signale (TxD, RxD, CTS, RTS, DCD, DTR) abhören. Ich hab dann gleich auch LEDs daran angeschlossen. So sieht man, ob das Modem eine Verbindung hat usw.
  • Die RxD und TxD gehen jeweils auf einen Microcontroller (Atmel 89C2051), der die Bytes empfängt und mitzählt. Jede Sekunde wird ausgewertet, wieviele Bytes es waren und somit die Datenrate berechnet. Dieser Wert wird nun auf jeweils einer LED-Kette dargestellt.
  • Nun lag in meiner Wunderkiste noch ein LCD-Modul rum. Also nimm noch einen Atmel und schließ es daran an. Die beiden anderen teilen nun per serieller Schnittstelle dem dritten Controller mit, wieviel Byte/sec sie gezählt haben. Der zeigt das gleich als Zahl am LCD an.
  • Hier endet erstmal der Funktionsumfang dieses Dings, ich habe da noch ein paar Ideen, aber ich muß auch noch etwas Zeit finden.

    Inzwischen habe ich etwas Zeit gefunden und die Anzeige am LCD etwas erweitert:
    Im Abstand von ca. 3 Sekunden wechselt das Display zwischen folgenden Werten:

  • Die gesendeten und empfangenen Bytes/sec (wie gehabt).
  • Die Online-Zeit (erkannt am Zustand der DCD-Leitung), also wielange das Modem mit einer Gegenstelle verbunden ist.
  • Die Anzahl der insgesamt gesendeten Bytes (in KB) und
  • die Anzahl der insgesamt empfangenen Bytes (auch in KB)

  • Die Online-Zeit und die Gesamtbytes werden bei jedem neuen Verbindungsaufbau (d.h. DCD geht von inaktiv nach aktiv) auf Null gesetzt.

    Für alle (bastel-) technisch begeisterten Leser hinterlege ich den Schaltplan: sermon.pdf und die Assemblerprogramme für die Controller: sermon.tar.gz

    Zurück zur Homepage

    Hier gibt es ein einfaches Programmiergerät für den AT89C2051 und Verwandte: www.batronix.com/elektronik/bauanleitungen/mc-brenner.shtml. Ich habe das Teil selbst nie besessen oder getestet, aber die Beschreibung sieht ganz brauchbar aus.

    Und hier noch das unvermeidliche Foto:

    ... und ein Zaehlpixel hab ich auch :-)