Hey,
ich habe mich in den letzten Tagen mit verschiedenen Bussystemen
beschäftigt (RS232,RS485,Ethernet,CAN). Nun würde ich gehn mal von euch
wissen für welche Sachen ihr welche Systeme benutzen würdet? und für
welchen Einsatzzweck sich was am besten eignet?
Micha
Na. RS232 ist ein Punkt zu Punkt System, RS485 kann einen geraden Bus
bilden. Ethernet ist sterfoermig mit einem Switch, und Baumfoermig mit
mehreren Switches.
Interessant ist auch die Leistungsaufnahme. RS232 kann mit ein paar mA
pro Station laufen, RS485 auch. Bei Ethernet muss man mit 500mA pro
Station rechnen.
CAN wurde fuer die Autoindustrie fuer minimale Reaktionszeiten gebaut
und hat daher nur ein paar wenige Baye als Packetlaenge. Ich halte es
fuer unnoetig muehsam wenn man laengere Meldungen nicht ausschliessen
kann. Ja. man kann Meldungen zusammenkleben ... ein zusaetzlicher
Aufwand. Es ist ein gerades bussystem, moeglicherweise duchgeschlauft.
Zipp schrieb:
> Interessant ist auch die Leistungsaufnahme. RS232 kann mit ein paar mA> pro Station laufen, RS485 auch.
Du vergisst bei RS485 den nicht unerheblichen Strom durch den Abschluss.
> RS485 kann einen geraden Bus
oder stern, oder gemischt,... und auch ohne terminierung..
kommt nur drauf an wie "eilig" man es hat mit daten übertragen..
Das mit dem eilig ist so eine Sache. Mann kann aufgrund der
Anforderungen zB zum Schluss kommen, dass fuer die paar Tasten und
Befehle 1200 Baud schon ueppig sind. Nach ein paar Jahren Betrieb
steigen die Anforderungen und man moechte burstmaessig mit 250kBit
fahren. Dann waere es unguenstig wenn man vorher alle Leitungen
rausreissen muss. Ich wuerd von einer sentralen Stelle her sternfoermig
gerade Busse ziehen.
i²c hast du vergessen.
der größte vorteil von can ist zweifelsohne die extreme
störunempfindlichkeit. ich kenne kein bussystem was so sicher läuft wie
can. das problem ist aber, das ding zum laufen zu bringen. der
konfigurationsaufwand ist schon etwas extrem.
im prinzip musst du auswählen was für dich für anforderungen
(busgeschwindigkeit, datenvolumen, störsicherheit, wieviele master
sollen betrieben werden, welche busstruktur ist möglich, welche
busstruktur ist sinnvoll, maximale buslänge... ) bestehen und
dementsprechend deinen bus heraussuchen.
um sensoren auszulesen z.b. reicht ein i²c wenn es statische sensoren
wie z.b. für temperatur o.ä. sind, da ist es auch nicht so problematisch
wenn nur aller paar sec mal ein protokoll durchkommt, sprich die
störempfindlichkeit spielt keine so große rolle. will man jedoch z.b.
lichtschalter oder noch wichtigeres damit schalten muss man sich fragen,
ob die störsicherheit nicht vorrang vor den anderen werten hat und
entsprechend auswählen.
den idealen bus für alle anwendungen gibt es also nicht, da er
entsprechend den anforderungen passen muss.
ich baue an einer mehrcontrollerlösung die die einzelnen controller via
rs232 interface miteinander verbindet. (hauptcontroller, dcf77
empfänger, display, satellitencontroller) ist auch abhängig davon was
für µc du einsetzt. ich hab bei mir atmega 1280 bzw als hauptcontroller
2560 geplant, der dcf77 empfänger wird ein atmega8.
des weiteren hab ich noch i²c bus als sensorbus angedacht welcher jedoch
auch mittels entsprechenden schaltkreisen als portexpander des
hauptprozessors fungiert. genaugenommen habe ich sogar 2 i²c (einer am
hauptcontroller (innen) und einer am sattelittencontroller (aussen)) die
getrennt voneinander funktionieren, einer im gebäude der hier den
angesprochenen portexpander bedient und gleichzeitig temperatur und
helligkeitswerte im gebäude erfasst und dann einen 2. externen bus
welcher die umgebungsbedingungen incl bodenfeuchte an verschiedenen
stellen aufnimmt um später eine bewässerungsautomatik bedienen zu
können.
I2C wuerd ich vergessen. Denn er hat eine marginal Common Mode Spannung
und ist nicht differentiell. Dh jede Einstreuung macht das Signal
kaputt. I2C sollte auf einer Leiterplatte bleiben. Die anderen
erwaehnten Busse, Ethernet, RS485, CAN sind alle differentiell.
Nicht vergessen, der moderne Mensch hebt sich vom Hoehlenbewohner ab,
indem er einen selbsttaetigen 1 Wattpuls UHF Sender mit sich
rumschleppt.
Christian B. schrieb:
> der größte vorteil von can ist zweifelsohne die extreme> störunempfindlichkeit. ich kenne kein bussystem was so sicher läuft wie> can.
PSI-5
auch ein I2C kann über differentielle Leitungen gebracht werden,
man benötigt allerdings zwei Leitungs-Paare.
Ist über einen 82B96 und RS485-Treiber zu machen.
Ich habe Bus Längen von bis zu 200m mit I2C und 100 kHz testweise
aufgebaut ohne differentielle Leitungen benutzen zu müssen, bevor ich
mich für den I2C-Bus bei meiner Haus-Steuerung entschieden habe.
Bei der Verwendung von I2C gibt es einen einfachen Vorteil, es gibt
eine menge von kostengünstigen Bausteinen die bereits ein I2C-Anschluss
haben und somit unproblematisch im Bus angesteuert werden können. z.B.
Temp- , Feuchte- Sensoren / AD- , DA - Wandler / Port-Erweiterungen
usw. ...
old-school schrieb:
> Ich habe Bus Längen von bis zu 200m mit I2C und 100 kHz testweise> aufgebaut ohne differentielle Leitungen benutzen zu müssen, bevor ich> mich für den I2C-Bus bei meiner Haus-Steuerung entschieden habe.
200m? und das funktioniert wirklich gut?
Ich möchte nämlich eine 5m I2C-Leitung aufbauen und wollt vorher wissen,
ob das so hinhauen kann.
Hallo,
I²C hängt stark von der Umgebung ab. Z.b. in der Nähe von Leitungen, die
eine Halogenlampe mit einem elektronischen Trafo verbinden, sind nur
sehr kurze Stecken praktisch möglich (bei mir wird auf einer 2m-Strecke
jedes 5. bis 10. Paket zerschossen, da in der gleichen Abhangdecke ein
Halogensystem eingebaut ist). Für den nächsten Hausbus gehe ich auf CAN;
nicht wirklich teuer (Controller mit SPI-Schnittstelle 1,80, Tranceiver
1,20-> zusammen also 3,00€) und sehr gute Störfestigkeit bei hoher
Datenrate. Einziger Nachteil: Linearer Bus, Stern und Baum nur als
Pseudo-Stern und Pseudo-Baum (mit einem Adernpaar hin, mit einem zweiten
zurück).
Schöne Grüße,
Martin