- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 6 von 6

Thema: Mehrere µCs an UART?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.11.2004
    Beiträge
    68

    Mehrere µCs an UART?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Moin,

    kann an eigentlich mehrere µCs über die UART-Schnittstelle miteinander verbinden, so gewissermaßen als Bus?

    Gruß,

    Jörn

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    41
    Beiträge
    506
    Klar kannst du das, aber du solltest dir dann ein sinnvolles Antikollisionsverfahren überlegen...

    Normalerweise nimmt man für diese Sachen I²C, da dies genau dafür entwickelt wurde...

    MfG
    Stefan

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Du könntest eine Art Reihenschaltung realisieren:
    Der TxD vom RS232 geht an den RxD des ersten µC, der TxD des ersten Mikrocontrollers geht an den RxD des zweiten Mikrocontrollers usw.
    Und der TxD des letzten Mikrocontrollers geht an den RxD vom RS232.
    Damit hättest Du eine Art Ring und müsstest Dir keine Sorgen um Kollisionen machen.
    Aber es ist ein Mehraufwand auf Sofwareseite.
    Immer, wenn der erste Mikrokontroller ein Byte empfängt, muss er es, sofern es nicht für ihn ist, weiterleiten. Also musst Du noch Adressen einführen.
    Vorschlag: Nimm drei nacheinander gesendete Byte: ZielAdresse_Daten_QuellAdresse (oder andere Reihenfolge). Dann weiß der PC immer, mit wem er redet.

    Dann funktioniert das so: Der PC sendet drei Byte. Der erste Mikrokontroller empfängt alle drei und speichert sie zwischen (Bspw. in drei Register, oder direkt in den RAM), dann schaut er auf die ZielAdresse. Wenn diese nicht seine ist, also das "Paket" nicht für ihn ist, dann schickt er alle drei Bytes weiter.
    Die Adresse eines jeden Mikros kannst du ja dann separat im EEPROM einstellen, falls zwei oder mehr dasselbe Programm erhalten sollen.

    Dann kannst Du noch so Spielchen machen, wie einen Broadcast. Wenn die Zieladresse 0xFF ist, dann soll das Paket für jeden bestimmt sein.
    Oder wenn ein Controller ein "Paket" erhält, der Absender er selbst ist, dann braucht er es nicht weiterschicken, da es dann (wie auch immer) im Kreis läuft.

    Mann könnte auch eine dynamische Adressvergabe einbauen, wäre gar nicht so schwer.

    Nach dem Start schickt der PC ein Paket an alle (0xFF) mit Daten 0xFF (oder irgendwas) und Absender PC (0x00). Dann weißt der Mikrocontroller, der das Paket als erstes erhält, dass er es NICHT weiterleiten soll, sondern er Controller Nummer EINS ist (Absender plus eins). Dann schickt Mikrocontroller EINS dasselbe Paket mit Absender EINS. Dann weiß Mikrocontroller ZWEI, dass er Nummer ZWEI ist.
    uswusf. Zu guter Letzt bekommt dann der PC ein Paket, wo die Absenderadresse die Zahl der Controller darstellt, die im Bus hängen.

    Viele Grüße,
    wulfi

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Variante wäre noch "token ring" , hat aber auch seine Feinheiten.
    mfg robert

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Das, was ich oben beschrieben habe, ist ja ein Ringbussystem, nur dass eben kein Token vergeben wird.
    Aber man müsste sich einig sein, ob die µC von sich aus senden dürfen, dann bräuchte man evtl. einen (aber ich denke, es geht auch ohne, da der Aufwand größer wäre als der Nutzen).

    Das wird auch ohne ganz gut funktionieren.

    Viele Grüße,
    wulfi

  6. #6
    Gast
    Für's Erste geht's ja so. Aber früher oder später willst du mehr als ein Byte senden (shorts, floats), und bevor du schaust, definierst Du Dir Frames mit allem, was dazugehört.
    Is ja nix Böses, macht auch Spaß, aber, wie gesagt, Du tritts eine Lawine los. mfg robert

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen