-
bus auf rs232-basis
ich möchte einen bus "entwickeln", um meine boards zu verbinden. dafür wollte ich das rs232 protokoll nehmen. dafür müsste ja eine leitung reichen. es senden immer nur einer am bus, die anderen empfangen. das problem ist, dass ja ein ic beide pins, also txd und rxd, an der gleichen leitung hat. um dies herauszufiltern, habe ch an ein nand-gatter gedacht. an ein input kommt der bus, an den anderen der ausgang des controller. wenn er sendet, ist an beiden eingangen immer derselbe zustand, der ausgang verändert sich nicht. wenn aber daten ankommen, verändert sich nur ein pin und die daten kommen am ausgang an.
habe ich da irgendwelche denkfehler oder kann das so klappen?
mfg roboman
-
txd und rxd sind an der selben leistung?
Warum unbedingt RS232? Wie groß ist denn die Entfernung?
-
die entfernung ist nur gering, deutlich unter 1m. rs232, weil das für mich am einfachsten ist. an der selben leitung hängen alle, damit alle empfangen können, wenn einer sendet.
mfg roboman
-
Ach das meinst du mit den selben Pins...
Wenn du an die Slaves etwas senden willst, sendest du zuerst die Adresse des Slaves der sich angesprochen fühlen soll und dann den Rest der Daten.
-
es klappt so nicht! Du brauchst einen Baustein wo du den Sender zuschalten kannst. Heisst meistens TXEN, TX enable, sonst blockierst du den Bus. Schau mal unter RS485 nach.
gruss wawa
-
Meiner Meinung nach würde sich ein I²C viel besser eignen.
Was genau möchtest du denn Verbinden?
-
danke für die antworten. ich hab grad nochn bissl gesucht und dabei das hier gefunden:
UCSRB = (1<<RXEN)
damit kann ich den empfang am avr ausschalten. kann ja auch gehen.
ich hab allerdings nicht verstanden, was wawa mit blockieren meint.
mfg roboman
-
Warum muss es unbedingt RS232 sein? RS232 ist nicht für solch eine Topologie ausgelegt. Verwend lieber RS485, dies kannst du auch einfach die USART verwenden. oder du nimmst I2C her
-
also i2c scheidet aus, da ich mich nicht auf einen master festlegen soll, da das projekt keinen wirklichen haubtprocessor hat. rs485 werde ich mir mal angucken.
mfg roboman
-
Was mit RS232 geht ist Daisy-Chaining, also TX vom 1. an RX vom 2. TX vom 2. an RX vom 3. usw. usw. Du muss dann nur die Daten filtern, sprich das angesprochene Modul muss wissen das es gemeint ist und die Daten andernfalls weiterschieben. Wichtig ist halt, dass der Sender die Daten wieder vom "Bus" nimmt wenn kein anderer diese akzeptiert hat.
So ähnlich funktioniert das alte BNC-Netzwerk.
Gruß Hartmut