Software Router für AX.25

Aus RMNC/FlexNet wird RMNC/(X)NET

RMNC-Umbauanleitung für den Betrieb mit (X)NET

Weshalb RMNC/(X)NET?

Mit der Zeit kommt die alte 8-Bit Hardware des RMNC in die Jahre. Begrenzungen werden sichtbar. Sowohl die maximale Connectzahl pro Karte, wie auch der Durchsatz stösst an harte Grenzen. Die RMNC/FlexNet-Software hat in den EPROMs kaum noch Platz - sie kann nicht mehr wesentlich weiterentwickelt werden.
Viele Sysops würden zwar gerne den  Knoten durch eine schnellere Hardware erweitern - wollen aber nicht auf ein ganz neues Konzept (wie zum Beispiel den TNC4e) umsteigen.

Bei der RMNC/(X)NET-Software wird der bisherige RMNC-Solomaster durch einen (X)NET-Master (TNC3 oder TNC4) entlastet. Die QSO-Verwaltung oder die Verwaltung der Destinations übernimmt der leistungsfähigere (X)NET-Master. Mit einem Hauptspeicherausbau von bis zu vier Megabyte (TNC4) ist auf lange Zeit vorgesorgt. Wichtiger  ist, dass an den TNC3/TNC4 weitere Modems oder ein weiterer HighSpeedBus angeschlossen werden kann,  womit der Digi auf höhere Baudraten ausgebaut werden kann. Die Baudrate neuer Linkstrecken oder Multimedia-Einstiege ist ab sofort nicht mehr auf 76k8 Baud begrenzt.

High Speed Interface für RMNC

Mit der HighSpeed-Interface-Software bekommt der RMNC eine schnelle Schnittstelle zu einen (X)NET-Master Rechner. Auf dem RMNC Solomaster wird nur eine SCC 85c30 eingesteckt und die (X)NET-Treibersoftware ins EPROM gebrannt. Danach ist die Umrüstung fertig. Je nach Taktfrequenz des Solomasters bietet das RMNC-System nun eine HighSpeedBus-Schnittstelle mit bis zu 1,2288 Mbit/s (16 Mhz Solomaster)  Maximaldurchsatz.

Auf der (X)NET-Seite wird der RMNC mit Hilfe des „HSKISS“-Treibers auf einer beliebigen SCC „attached“. Nach dem Einstellen der Baudraten und der entsprechenden Mode-Parameter ist der RMNC/(X)Net Digi betriebsbereit.

Was ist (X)NET?

Die Digi-Software (X)NET gibt es bereits seit 1995. Sie wurde speziell für High Speed Packet-Radio entwickelt und bis heute immer weiter ausgebaut. Die wesentlichen Eigenschaften dieser Software sind:
  • FlexNet kompatibler Router
  • NetROM (INP3) Router
  • IP-Router
  • Integrierter Web-Server, FTP, Telnet
  • Hoher AX.25-Durchsatz (bis 3 Mbit/s)
  • 10MBit/s Ethernet-Schnittstelle (mit TNC4)
  • Integrierter Ping-Pong Convers
  • Flash-Software-Update per Funk möglich
  • RMNC-Treibersoftware-Update per Funk möglich

Durchsatz im Vergleich

Welchen Durchsatz hat RMNC/(X)NET im Vergleich zu RMNC/FlexNet? Um diese Frage zu beantworten wurde ein RMNC-Knotenrechner einmal mit RMNC/FlexNet und dann mit RMNC/(X)NET betrieben und dann der Duchsatz gemessen. Diese Messung wurde mit unterschiedlichen Baudraten durchgeführt. Dabei ergibt sich folgendes Ergebnis:
Durchsatzgewinn durch (X)NET/RMNC
Bis zu einer Baudrate von 57k6 arbeiten beide Systeme optimal. Bei einer Baudrate von 115k2 brechen beide Systeme ein, wobei RMNC/(X)NET noch 40% schneller als RMNC/FlexNet arbeitet. Der Einbruch kommt durch die Interrupt-Last auf den RMNC-Slave-Karten zustande.

Hardwareanforderungen für RMNC/(X)NET

  • Einen RMNC mit Solomaster
  • Eine Z85C30 SCC
  • Einen TNC3, TNC31 oder TNC4

Unterstützte RMNC-Besonderheiten

Unterstützt werden alle RMNC-Karten, d.h.:
  • Alle Prozessortaktfrequenzen: Alle Karten mit Prozessortaktfrequenzen von 1 MHz bis 20 MHz werden unterstützt. Einzige Einschränkung: Die Quarzfrequenz muss ein vielfaches von 1.000.000 Hz sein.Die Masterfrequenz wird durch das entsprechende EPROM-File (für 3, 8, 12 und 16 MHz) vorgegeben. Die restliche Anordnung wird automatisch ausgemessen.
  • Verschiedene CPUs: Der verwendete Prozessortyp (Hitachi 6309 oder Motorola 6809) wird automatisch erkannt.
  • Unterschiedliche SCC-Takte: Detektiert werden alle SCC-Taktfrequenzen von 1.228.800 MHz bis  14.745.600 MHz in 1.228.800 Hertz Schritten.
  • KISS-Karten: KISS-Karten werden automatisch erkannt.
  • RMNC2 und RMNC3: Die Software läuft mit beiden Kartentypen problemlos. Spezielle Modem-Taktoptionen werden manuell mit dem Mode-Befehl (siehe unten) eingestellt.
  • IO-Karte: Mit Hilfe des Mode-Befehls können die 16 TTL-Ausgänge der IO-Karte gesetzt werden. Die Abfrage der Eingänge ist im Moment noch nicht möglich.
Die Prozessortaktfrequenzen der im RMNC verwendeten Karten kann also beliebig gewählt werden. Insbesondere können auf verschiedenen Karten auch unterschiedliche Taktfrequenzen verwendet werden. Dies gilt auch für die Taktung der SCCs. Einzig RMNC-Terminal-Karten werden nicht unterstützt (die Terminalsoftware ist im (X)NET bereits integriert).

Native Mode nutzt versteckte Kräfte

RMNC-Karten mit dem Hitachi 6309-Prozessor werden im sog. "native Mode", einem erweiterten Befehlssatz betrieben, was zu einem weiteren Performancegewinn von ca. 10 bis 20% führt. Selbstverständlich ist die Software aber auch mit dem originalen Motorola MC6809 Prozessor lauffähig.

Neues Buszugriffsprotokoll sorgt für Ruhe

Die (X)NET-RMNC Software implementiert ein neues ereignisgesteuertes Buszugriffsprotokoll. Anstatt laufend eine Slave-Karte nach der anderen abzufragen, meldet sich jede RMNC-Karte selbständig, sobald sie Daten empfangen hat. Auf diese Weise bleibt das Bussystem des RMNC so lange ruhig, bis tatsächlich Daten auszutauschen sind. Hierdurch ergeben sich drei Vorteile:
  1. Die HF-Abstrahlung des RMNC Rechners wird reduziert
  2. Die Antwortzeiten und damit auch der Systemdurchsatz werden verbessert
  3. Karten mit niedrigen Prozessortakten bremsen den Bus nicht aus

Optimierte Bus-Blocktransfers bringen Durchsatz

Um einen optimalen Gesamtsystemdurchsatz zu erhalten, war es notwendig die Übertragung von Nutzdaten so schnell wie möglich zu gestalten. Nach mehreren Optimierungsschritten kann nun ein Nutzdatenbyte in 25 Prozessorzyklen auf eine andere Karte übertragen werden. Dies ergibt eine Bus-Durchsatzrate von 1.280.000 Bit/s zwischen zwei 16 MHz-Karten.

Installation der Hardware

Der Anschluss des TNC3/TNC4  ist denkbar einfach - es genügen sechs Drahtverbindungen zwischen TNC-Modemport und RMNC-Solomaster:
 
Sechs Drahtverbindungen
Prinzipschaltbild des Adapters zwischen TNC3 und RMNC
Adapterplatine Oberseite
Adapterplatine Oberseite
Adapterplatine Unterseite
Adapterplatine Unterseite
 

Um die höchstmögliche Übertragungsrate zwischen TNC und RMNC zu erreichen, wird die Baudrate nach Taktfrequenz des Solomasters und dessen SCC-Taktversorgung errechnet:
 
Prozessor/SCC
4.915.200 Hz
7.372.800 Hz
9.830.400 Hz
14.745.600 Hz
16 MHz
1.228.800 Bit/s
1.228.800 Bit/s
1.228.800 Bit/s
1.228.800 Bit/s
12 MHz
819.200 Bit/s
921.600 Bit/s
819.200 Bit/s
921.600 Bit/s
8 MHz
614.400 Bit/s
614.400 Bit/s
614.400 Bit/s
614.400 Bit/s
4 MHz
307.200 Bit/s
307.200 Bit/s
307.200 Bit/s
307.200 Bit/s
Bitrate zwischen TNC und RMNC in Abhängigkeit der Taktfrequenz des Solomasters und der Taktversorgung der SCC

RMNC2-Solomaster

Das Verbindungskabel wird beim RMNC2 auf die 20-Pol-Stiftleiste und auf TNC3-Seite auf einen Modemanschluss gesteckt. Zusätzlich muss die SCC85C30 beim RMNC2-Solomaster bestückt werden. Der HighSpeedBus-Takt wird durch die SCC im RMNC (TRxC A) vorgegeben.
Verbindungskabel zwischen RMNC2 TNC3
Verbindungskabel zwischen RMNC2-Karte und TNC3-SCC mit Steckerbelegung

Ein RS232-Pegelwandler (MAX 232A) kann an der SCC B für Diagnosezwecke vorgesehen werden. Damit besteht die Möglichkeit den RMNC mittels eines Terminalprogramms im Betrieb zu überwachen (19200 Bd.). Der RS232-Anschluss kann auch zum Laden und zum Weiterentwickeln der Treibersoftware verwendet werden.

RMNC3-Solomaster

Null-Modem-Kabel zwischen TNC und RMNCDa auf der RMNC3-Karte bereits ein Modem Disconnect Anschluss vorhanden ist, lässt sie sich besonders einfach für den Betrieb mit (X)NET umrüsten. Zuerst wird das 27C512-EPROM (IC4) durch das (X)NET/RMNC-EPROM ersetzt. Sofern ein 27C256-EPROM eingesetzt wird, muss der Jumper 2 (JP2) auf die Stellung 2b gesetzt werden. Anschliessend wird die SCC 85C30-16 (IC3) bestückt. Analog dem obigen Prinzipschaltbild muss nun ein Null-Modem-Adapter (s. Abbildung) zwischen den Modem-Disconnect-Steckern des TNC3 und des RMNC hergestellt  werden. Damit ist (X)NET/RMNC-Digi betriebsbereit.
Für Diagnosezwecke kann zusätzlich auch noch der MAX232 (IC25) bestückt werden. Die Verbindung zwischen MAX232 Pin 11 (T1I) und SCC Pin 15 (TXDA) wird aufgetrennt und stattdessen wird der MAX232-Pin mit SCC Pin 25 (TXDB) verbunden. Gleiches gilt für die Empfangsleitung: Die Verbindung zwischen MAX232 Pin 12 (R1O) und SCC Pin 13 (TXDA) wird aufgetrennt und mit SCC Pin 27 (RXDB) verbunden. Für den Betrieb des MAX232 werden ausserdem die Kondensatoren C23, C24, C25 und C26 benötigt.

Installation der Software

Auf RMNC-Seite

Je nach Taktfrequenz des Solomasters wird eine der folgenden Dateien ausgewählt und in ein 27C256-EPROM gebrannt:
 
EPROM-File Taktfrequenz Solomaster
RMNC04.BIN 4 MHz Takt
RMNC08.BIN 8 MHz Takt
RMNC12.BIN 12 MHz Takt
RMNC16.BIN 16 MHz Takt
Eigenes RMNCxx.BIN An Adresse 0x7F00 der RMNCxx.BIN-Datei die Taktfrequenz in MHz eintragen

Mit dem Einbau des EPROMs ist der RMNC für den Betrieb mit (X)NET vorbereitet. Die Software der RMNC-Slave-Karten wird nicht getauscht!
Achtung: Anstatt einem 27C256-EPROM (32 KByte) kann auch ein 27C512-EPROM (64 KByte) verwendet werden. In diesem Fall muss die Software ab der EPROM-Adresse 0x8000 gebrannt werden.

Auf TNC/(X)NET-Seite

In die Datei AUTOEXEC.NET werden folgenden Eintragungen gemacht:

att <scc> hskiss 0 16

<scc> = scc1 | scc2 | scc3

Damit wird der HSKISS-Treiber auf der angegebenen SCC geladen und die Ports 0 bis 15 eingerichtet. Als SCC wird die SCC angegeben an der der RMNC am TNC eingesteckt wird (Die Portnummer 0 wird nicht verwendet). Anschliessend wird jede einzelne Slave-Karte mit mindestens zwei Angaben parametriert:

po <Kartennummer> baud <Baudrate>
po <Kartennummer> mode <modenr>

Die Baudrate ist jeweils die Funk-Baudrate, bzw. bei KISS-Karten die RS232-Baudrate. Die Mode-Nummer definiert die zusätzlichen Hardware-Parameter:
 
Bedeutung Mode hex. dezimal
externer RX-Takt  r 0x40 64
externer TX-Takt t 0x20 32
NRZ statt NRZI z 0x10 16
CRC bei KISS c 0x02 2

Beispiel:
Soll ein externer TX-Takt (32) und gleichzeitig ein externer RX-Takt (64) verwendet werden, lautet die Konfiguration des Ports (32 + 64 = 96).

port <Kartennummer> mode 96
 
 
Signale an der SCC 8530 in Abhängigkeit des Mode-Parameters
Mode (Anzeige) Mode Parameter TRxCA (Input/Output) RTxCA (Input) TRxCB (Output) Kommentar
-- 0 TxC (Output) F32 F32 RxC, TxC intern
t 32 F32 (Output) TxC F32 TxC extern
r 64 TxC (Output) RxC F32 RxC extern
tr 96 TxC (Input) RxC F32 RxC, TxC extern

F32 = 32 fache Baudrate
TxC = Sendetakt einfach
RxC = Empfangstakt einfach
Input: Signal muss zum Betrieb angelegt werden
Output: Signal kann abgegriffen werden.

Tipp

Beim TNC3 empfiehlt es sich einfach den DIP-Schalter auf Programmnummer 6 zu stellen, denn in dieser Konfiguration wird der HighSpeedBus automatisch "attached". In die Datei AUTOEXEC.NET müssen dann nur noch die Baudrate und die Mode-Einstellungen eingetragen werden.

Update der RMNC-Software über Funk

Selbstverständlich kann auch die RMNC-Treibersoftware per Funk aktualisiert werden: Die Datei "RMNCBOOT.BIN" enhält eine Download-Version der RMNC-Software. Diese Datei wird auf den (X)NET-Digi gespielt - anschliessend wird der RMNC resetted.
Beim Startvorgang der RMNC-Software wird die datei  "RMNCBOOT.BIN" vom  (X)NET-Digi geladen. Dies alles kann ohne Digi-Reset durchgeführt werden.

RMNC-Besonderheiten

IO-Karte

Die IO-Karte wird über den mode-Befehl des Pseudo-Ports 0 angesprochen. Beispiel:

port 0 mode 0

setzt alle Port-Bits auf 0.

port 0 mode 65535

setzt alle Port-Bits auf 1.

Hardware-Informationen

Der ausführliche Status des RMNC kann auch über Funk vollständig abgefragt werden. Diese Abfragen werden über das Setzen des Duplex-Parameters des Pseudo-Ports 0 durchgeführt. Die Ausgabe erfolgt im Online-Log des Digis. Beispiel:
  1. Digi "connecten", sich als Sysop privilegieren und "log" eingeben.
  2. Digi auf einem zweiten Kanal "connecten" und ebenfalls "Sys" eingeben.
Wird auf dem zweiten Kanal der Befehl ...

port 0 duplex    3

... eingegeben, erscheinen im ersten Kanal Meldungen vom RMNC. Sie sind im folgenden genauer beschrieben:

Duplex 0

Duplex 0 liefert eine Übersicht der verfügbaren Kommandos

HSKISS : 0 RMNC HighSpeed-Interface CPU 12 MHz V1.15 06.10.02 (C) DL1GJI
HSKISS : 0 0) show available commands
HSKISS : 0 1) show MAC settings
HSKISS : 0 2) misc. test
HSKISS : 0 3) infos about this RMNC harware
HSKISS : 0 4) show slave processes
HSKISS : 0 5) show postmortem Information
HSKISS : 0 6) test bus performance

Duplex 1

Duplex 1 zeigt die Parameter, die tatsächlich im RMNC gesetzt sind. Die müssen natürlich mit den (X)NET - Parametern des jeweiligen (X)NET-Ports übereinstimmen.

HSKISS : 0 Port TxDelay Duplex Baud   Mode TxTail
HSKISS : 0 1    80      10     28800  32   8
HSKISS : 0 2    80      10     19200  32   9
HSKISS : 0 3    80      10     19200  32   9
HSKISS : 0 4    80      0      9600   32   12
HSKISS : 0 5    80      10     19200  32   9
HSKISS : 0 7    250     0      1200   0    59
HSKISS : 0 8    250     0      9600   32   12

Duplex 2

Duplex 2 zeigt errechnete Werte für das Bus-Timing an. Errechnet wird ein Timeout Wert, der sich nach der langsamsten CPU am Bus richtet.

HSKISS : 0 Cycles = 1
HSKISS : 0 Slowest Slave = 12 Max. Timeout 4 CS-Rate 1465

Duplex 3

Anzeige der RMNC-Kartendaten:

HSKISS  :  0 HSKISS: 921600 Bit/s CPU 6309: 12 MHz SCC Clock: 7374kHz Buffer: 136
HSKISS  :  0  5: CPU 6309:  4 MHz SCC Clock: 7374kHz Buffer: 135
HSKISS  :  0 11: CPU 6309: 12 MHz SCC Clock: 7374kHz Buffer: 133
HSKISS  :  0  7: CPU 6309: 12 MHz SCC Clock: 7374kHz Buffer: 133
HSKISS  :  0  1: CPU 6309: 12 MHz SCC Clock: 7374kHz Buffer: 120

Die erste Zeile liefert die Hardware-Informationen über die Master-Karte. Sie beginnt mit der Bitrate des Links zwischen RMNC-Master und TNC. Die gemeinsamen Spalten enthalten Informationen zu den einzelnen RMNC-Karten:

Bezeichnung Bedeutung
CPU Erkannte CPU: Entweder Hitachi 6309 oder Motorola 6809
Taktfrequenz Gemessene Taktfrequenz der CPU
SCC Clock Gemessene Taktfrequenz welche an der SCC anliegt
Buffer Anzahl aktuell verfügbarer Buffer für das Senden und Empfangen von Frames

Duplex 4

Anzeige des Prozessorstatus der jeweiligen Karte mit Registerinhalten

HSKISS : 0 1: PC:5ACB S:0638 X:0A00 Y:8A00 U:0015 DPR:0000 W:0005 D:D503 CCR:0000
HSKISS : 0 2: PC:90CB S:0638 X:0A03 Y:3200 U:0048 DPR:0000 W:0005 D:D503 CCR:0000
HSKISS : 0 3: PC:CFCB S:0638 X:0A02 Y:4200 U:00BD DPR:0000 W:000A D:D503 CCR:0000
HSKISS : 0 4: PC:6400 S:0644 X:0000 Y:50FF U:C100 DPR:0000 W:D248 D:CAF0 CCR:0000
HSKISS : 0 5: PC:8ECB S:0638 X:0A03 Y:6E00 U:0086 DPR:0000 W:000A D:D503 CCR:0000
HSKISS : 0 7: PC:FDCB S:0638 X:6405 Y:4100 U:008F DPR:0000 W:002D D:D503 CCR:0000
HSKISS : 0 8: PC:6400 S:0644 X:0000 Y:FAFF U:F100 DPR:0000 W:D248 D:CAF0 CCR:0000

Duplex 5

Fehlerstatistik

HSKISS : 0 Master: r:7 b:0 t:0(0) c:124 i:0
HSKISS : 0 1: r:3 b:0 t:0(0) c:0 i:0
HSKISS : 0 2: r:3 b:0 t:159(0) c:0 i:0
HSKISS : 0 3: r:3 b:0 t:3(0) c:0 i:0
HSKISS : 0 4: r:3 b:0 t:0(0) c:0 i:0
HSKISS : 0 5: r:3 b:0 t:0(0) c:0 i:0
HSKISS : 0 7: r:3 b:0 t:8(0) c:0 i:0
HSKISS : 0 8: r:3 b:0 t:0(0) c:0 i:0
Bezeichnung Bedeutung
r Anzahl der Ausgelösten Resets (Warmstart)
b Zahl der Pufferüberläufe während des Betriebs
t Anzahl Pufferüberläufe: Zahl verworfener Pakete die weggeworfen wurden, weil mehr als 32 Pakete zur Aussendung anstanden (Weggeworfen wird in diesen Fällen immer das älteste Paket).
c Masterkarte: CRC Fehler auf der HS-Link Verbindung (RMNC <-> TNC). Slavekarte: CRC-Fehler bei CRC-KISS Betrieb.
i Anzahl undefinierter Interrupts

Duplex 6

Eine Durchsatzmessung wird auf dem RMNC-Bus durchgeführt. Die Ergebnisse sind nur für die Softwareoptimierung relevant. Eine Durchsatzsteigerung kann erreicht werden, wenn alle Karten mit höchstmöglichen Taktfrequenzen betrieben werden.

Zusammenfassung

Die RMNC/(X)NET Treibersoftware eröffnet den Betreibern von RMNC-Knoten neue Ausbaumöglichkeiten. Schnelle Benutzereinstiege oder schnelle Linkstrecken (> 78k8 Baud) können jetzt mit TNC3 oder TNC4 realisiert werden. Gleichzeitig kann die bisherige RMNC-Hardware weiter betrieben werden. Andere Möglichkeiten sind beispielsweise der direkte Anschluss der Mailbox über Ethernet an den TNC4-Knotenrechner. Der Phantasie sind kaum Grenzen gesetzt.
Auf der Softwareseite ergeben sich sich durch (X)NET neue Möglichkeiten, wie z.B. der (X)NET IP-Router oder der in der Knotensoftware integrierte Web-Server.

Home ] (X)NET für DLC7 ] Version 1.38 ] Was bisher geschah... ] (X)NET Download ] Dokumentation ] RMNC/(X)NET ] TNC2 SRP/Token Ring KISS ] TNC3/4 Software ] (X)NET Beta Site ]

06.04.2007