ZBus am PC (RS232 zu RS485 Konverter)

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche

Zbus ( ein RS485 netzwerk mit IP )

Wichtig - erst diese Seite lesen: http://www.ethersex.de/index.php/Network_Bridges

Hier findet man die Anschlussbelegung von atmega8 mit atmega644 per MAX485 http://www.ethersex.de/index.php/Bild:Zbus.pdf

Für den Aufbau eines RS485 Buses/Netzes gibt es einiges zu beachten: http://archive.chipcenter.com/embapps/emba062.htm

Bild 1 unten gibt einen richtigen Aufbau wieder.

Dort kann man am ende des Artikel auch als pdf downloaden. Die bilder der HTML Version sind deutlicher als die der PDF-Version.

Protokoll siehe: http://www.ethersex.de/index.php/ZBus_Protokoll

Den PC als Host siehe: http://www.ethersex.de/index.php/ZBus_Serial_Host

ZBus an der seriellen Schnittstelle

Es gibt zwar die Möglichkeit ein ZBus Netz nur aus Ethersexen bestehend aufzubauen und dann eines als Gateway in die normale Netzwerkwelt zu benutzen (dieses Gateway hat dann einmal ZBus und einmal Ethernet). Jedoch kann man auch die serielle Schnittstelle eines normalen PCs oder sogar einen USB-zu-Seriell Konverter verwenden um ZBus mit Ethersexes zu sprechen. Dazu braucht es allerdings einen Konverter von dem RS232 das die auf der seriellen Schnitstelle gefahren wird zum RS485, dass bei ZBus normalerweise verwendet wird.

Der erste Versuch ist hier zu finden. Dieser ist allerdings noch komplizierter, braucht einen externen Attiny zum umschalten des RX/TX Pins (bei RS485 muss man zwischen Senden und Empfangen umschalten). Jedoch kann man sich dieses umschalten mit einem kleinen Trick ersparen.

Full Feautured Aufbau mit LEDs

PC als Host node am Zbus einsetzen:
Ein PC_Host Adapter kann so aussehen:
- Ist auch als universal rs232-rs485 Konverter einzusetzen
- Hat zwei rs485 Kanälen
- Das umschalten zwischen empfangen und senden ist Baudratenunabhaengig.
- Verkraftet eine Baudrate bis 115200.
- Mit den Steckverbinder kann man jedes Kabel anschliessen ohne zu loeten.
- Die Leds leuchten nur auf wenn etwas ampfangen oder gesendet wird.
- Kein Hardware handshake.
- J4 ist um bei kürzeren Leitungen 5V weiterzuleiten, sodass kein Extra Spannungsumwandler bei dem Node nötig ist.
- Mit 2 extra Jumper kann auch ein RS422 eingestellt werden media:Zbus_node_PoZbus_RS232_RS485_RS422.png

Zbus node PC PoZbus.png Schaltplan PC am Zbus (aka) universal rs232 extender (ohne hardware handshaking)

P1010069.jpg P1010070.jpg Bastel Bilder von PC an Zbus (aka) rs232 extender

P1010073.jpg 232.png

485.png 2576T.png

Bastel Bild nach 40m kabel mit schaltplaene die darauf stecken

Die rs232 und rs485 sind getrennt nach aussen gefuehrt. Somit kan man es als entwicklungsboard einsetzen und ein avr-net-io ohne aenderung an die zbus haengen.


Beispiel node mit atmega8

Zbus node PoE.png

Zbus node mit atemaga8

Um den PC das Zbus bei zu bringen geh zu:
~/ethersex/contrib/zbus-serial-host und gebe
 make
ein, damit wird zbus-serial-host gebaut.
Wie normal hat man unter Linux mit rechten zu tun.
Wenn man als user nun :
 ./zbus-serial-host 

versucht aus zu fuehren kommt: ./zbus-serial-host: Couldn't open tun device

 su

und dein password abgeben fuer root und als root weiter machen. jetzt als root:

 ./zbus-serial-host -h

ausfuehren. Dann soll folgende ausgabe kommen:

-h --help      Print this help and exit
-r --baudrate  set baudrate
-a --address   adds of the interface in the form 192.168.8.1/24
-d --device    set the ttyS* interface to use
-m --mtu       set mtu
-u --up        call this command, when the interface is up

Annahme du willst ein baudrate von 19200 an /dev/ttyS0 mit ip=10.0.1.22 und netmask 255.255.255.0 Dann gibt man folgendes ein:

 ./zbus-serial-host -r 19200 -d /dev/ttyS0 -a 10.0.1.22/24

Mit

 ifconfig

soll zbus jetzt auftauchen als netz interface. ausgabe soll sowass sein:

 zbus0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
           inet addr:10.0.1.22  P-t-P:10.0.1.22  Mask:255.255.255.0
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:174  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:500 
         RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Das zbus0 interface ist wie ein gewohnliches internetz interface. (zb eth0) Alle Zbus ethersexen sollen eine IP in 10.0.1.x haben. Annahme: den PC hat als ip 10.0.0.188 Mit eingabe von:

 ip route add 10.0.1.0/24 via 10.0.0.188

sollten alle ethersexe erreichbar sein die an Zbus angeschlossen sind und richtig mit Zbus kompiliert sind.Das bedeutet auch das alles was an Zbus haengt mit die gleiche baudrate laufen muss.