bin gerade dabei... erstmal zum testen per UART (9600baud) ne TX-RX kreuzung, später dann mal per i2c...
bin gerade dabei... erstmal zum testen per UART (9600baud) ne TX-RX kreuzung, später dann mal per i2c...
Wo liegt denn das Problem dabei? Es gibt doch genug Schnittstellen dafür. am Einfachsten finde ich es mit RS232.
Was genau willst du denn wissen?
MFG Moritz
www.free-webspace.biz/update
Bei mehreren Controllern empfehle ich das RS485-Netzwerk. Dafür braucht man nur noch einen entsprechenden Treiberbaustein, der an der UART angeschlossen wird (kostet ungefähr 0 komma nix Euro). Großer Vorteil: Auch längere Strecken sind zu überbrücken (Aufgrund der Differenzübertragung) In meinem Netzwerk verwende ich 38,4 kBaud (aber auch höhere Übertragungsraten sind unproblematisch)
Gruß
ich Suche eine schnelle übertragung nix unter megabaud
Also 1 MBaud ist über UART möglich (zumindest beim ATMega16). Was genau möchtest Du denn machen ? Wozu brauchst Du so hohe Übertragungsraten ? Welche Controller willst Du denn verbinden ?
Schreib doch mal etwas mehr !
Gruß
Ich habe das absichtlich abstrakt gehalten well ich erlebt habe das die leute das für zu kompliziert halten und kein vorschläge machen. Also das was ich unten beschreibe ist eine wunschliste wenn nicht alles erfült wird ist es akzeptabel. Deswegen traut euch!
vorerst baue ich eine einfache haus steuerung "ineligentes haus".
phase 1: ich soll von einem tastenfeld den standbystrom für fernseher und rechner abschalten können.(relle)
phase 2 usw: Schpäter dann erweiterung auf mehrere terminals(10ner tastatur und LCD oder AT tastatur mit LCD oder fernbidinug mit LCD) die terminals habe ja ein mikrokontroller und sollen auch die usgänge zum schalten mitenthalten. Mann soll auch nachrichen senden und empfangen können (später wenn ein rechner oder kleiner webserver eingebunden ist email und icq) auch internet telefonie wäre denkbar bzw die übertragung zu denn surround boxen. Alle geräte werden auf ferbrauch überwacht dammit ich sehe ob meine steuerung strom verbraucht oder sparrt. Auch komputer sollen das netz zur datenübertragung nutzen können (DSL geschwindigkeit, DSL anbindung oder direkt verbindung)
Ich habe erst an 10 Mbit netzwerk gedacht doch dann müsste ich in jedes terminal ein kleinen webserver mit einer netzwerkkarte einsetzen auserdem brauche ich dann ne ganze menge switsche. Was ich bei den switschen nicht mag ist das sie wenn nichts übertagen wird immer noch senden und dabei unmengen von strom verbauchen. Alternative wäre einfach mikrokontroller als switsche zu nemen. Dan brauche ich nur noch ein protokoll womit ich erstmal zwei controller verbinden kann die einzigen vorrausetzungen sind das mehrere ports gleichzeitig betreiben kann. Damit fallen hardware twi und UART aus. Software UART könnte ich höher tackten als spezifizirt habe aber die befürschtung das es zu viel ressursen und ewentuel intterupts braucht. Ich hate for das mit I2C so zu machen das der switch der slave ist und einfach erst mal 8bit parallel von 4 I2C ports in ein array schreibt dafür braucht er nämlich wenig zeit so das die masters schnell ihre daten loswerden dann warten die master wenn sie nicht ferdig sind auf ein ack und der switch wertet die daten aus und setzt sie in die richtige sende puffer. Jadoch habe ich bemerkt das wenn ich die 8 ports nacheinander aus dem array lese verarbeite und in die puffer schreibe das mehr zeit in anschpruch nimmt als einlesen und senden.
Ich binn sowhol für dieses auch als für andere vorschläge offen!
Ich würde das anders lösen:
1 zentraler Server (Computer) der die gesamten Messdaten sammelt und z.B. über einen Webserver zur Verfügung stellt. Für die Terminals würden sich dann entweder Microcontroller anbieten (der Server verteilt die nötigen Daten, RS232 würde dafür meiner Meinung nach reichen, TCP/IP wäre auch denkbar, so kompliziert mit den Switches ist dass nun auch wieder nicht) oder statt Microcontroller könnte man auch minimale PCs nehmen (IndustriePCs/passiv gekühlt, Rechenleistung ist ja nur wenig nötig).
Wieviele "Terminals" sollen es denn werden?
.:: rot ist blau und plus ist minus ::.
anzahl der terminals: erst mal bei mir in zimmer für jeden tisch ein und ein auf den fernseher mit infrarot bedinung und später dan mehrere pro zimmer. ich weiss nicht wie du dir da vorschteltst wenn ich ein pc mit zich serielen schnitschtellen buen soll auserdem müste ich dann zich leitungen verlegen das gegenteil von demm was ich wollte. Tcp ist auf jeden fall gute idee aber ich müsste ca. 5kleine switsches pro zimmer nemen um keine doppelte kabel nicht ligen zu haben. dann noch zich netzwerkkarten. Die verbindungen von zimmer zu zimmer kann ich mir schon vorschtellen so zu verlegen aber die verteilung in einem raum möchte ich doch sparsamer und billiger. Also wenn der an eternet angeschlosener conntroller(nene ich mal host) zb mit I2C zu drei anderen controllern verbunden were. wegen der badbreite möchte ich aber das jeder von denen mit separatem bus angeschlosen. zwei davon wären terminals in der nähe und der dritte könnte dann etwas weiter entfernte weiterer host sein das wieder drei terminals versorgt. Was du warscheinlich falch verstanden hast ich brauch keine tips zur netzstruktur die ist weitgehend festgelegt mein problem ist ein programm zu schreiben das mehrere bussysteme zb.eternet und die drei i2c( oder was uch immer vorteihaft wäre) gleichzeitig lafen zu lassen das es nicht wenn an einem übertagung statfindet bei denn anderen die bits ins lehre laufen. Also welches busprotokoll kann ich auf einem controller mehrmals simultan lafen lassen? bei I2C habe ich keine probleme mit dem master aber wenn ein kontroller weiterverteilen soll brauche eich auch ein slave wegen der redundanz/bandbreite am besten zwei. momentan habe ich zwei terminals die sich über ein controller(host) sich gegenseitig nachrichten zuschiken sollen. Die Terminals im fall I2C müssen master sein weil bei übertragung auf LCD bzw lesen der tstatur von host nichts empfangen können. Wenn der host aber an zwei verschidenen i2s bussen hängt darf er auf keinem was verpassen. meine idee wäre einfach die bits parallel in in arry zu lesen und wärend die master auf ein ack warten soweit sie noch nicht fertig sind die datten zu verarbeiten. da Suche ich eine matematische operation die das kann. im array wären dann in denn 8 byts immer der erste bit von bus eins die müssten dann in ein byte im zweiten array. Alle zweiten bints in zweite byte... aber bitte nicht so nacheinander wie ich beschriben habe sondern wie man matritzen transponiert oder änlich
Lesezeichen