ZBus am PC (RS232 zu RS485 Konverter)
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
Schaltplan PC am Zbus (aka) universal rs232 extender (ohne hardware handshaking)
Bastel Bilder von PC an Zbus (aka) rs232 extender
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 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.