ZBus Serial Host (Deutsch)

From Ethersex_Wiki
Jump to: navigation, search
TTL-ZBus-Adapter mit MAX485, Terminierung und Bias-R's

Da der ZBus auf dem USART Feature basiert, welches alle ATmegas haben, können wir einfach eine ZBus Netzwerkschnittstelle an unserem Computer anschließen. Die serielle Schnittstelle (auch bekannt als COM-Port oder RS232) ist nur eine normale USART mit Pegelwandler (-3V - +15V). Um eine RS485-Schnittstelle daraus zu machen, welche für den ZBus benötigt wird, nimmt man einen MAX232 (oder funktional ähnlich), um das RS232-Signal wieder in ein USART TTL-Signal zu wandeln. Ein RS485-Interface-Chip (z.B. ein MAX485, siehe Bild) konvertiert daraus das Differenzsignal.

Einige Embedded-Gerät haben USARTs an Bord, die keinen Signalwandler besitzen- sie bieten das USART TTL-Signal direkt an. Man muss dann nur noch den RS485-Chip verbinden und den Treiber für die Architektur kompilieren. Der populäre Linksys WRT54G (WLAN-Router mit OpenWRT) ist so ein Embedded-Gerät mit einer TTL-USART an Bord.

Auf der Software-Seite habe ich beschlossen, einen userland driver mit tun device anstatt eines Kernel-Moduls zu schreiben, weil es viel einfacher zu codieren und zu debuggen ist. Das Programm stellt eine übliche Netzwerkschnittstelle wie die Ethernet-Karte bereit und kann auch wie Diese verwendet werden (zum Beispiel Routing, verschiedene IP-Adressen und so weiter). Das ist sehr flexibel. Man kann den Treiber-Daemon bei contrib/zbus-serial-host finden.

zbus0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.9.1  P-t-P:192.168.9.1  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:174  Metric:1
          RX packets:16418 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16423 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:1381934 (1.3 MiB)  TX bytes:1379532 (1.3 MiB)