Derzeit arbeite ich an einem Projekt, bei dem ich eine Anordnung von vier Sensorknoten mit jeweils drei Sensoren haben werde. Diese Sensorknoten müssen ihre Daten zur Verarbeitung, Anzeige usw. an ein von ATMega gesteuertes Board zurücksenden. Ich hatte die Idee, einige ATTiny85s zu verwenden, eines an jedem Sensorknoten, und diese zu verwenden, um die Daten von den verschiedenen Sensoren zu sammeln und dann zu verpacken es zur Übertragung. Ich möchte nur ein Datenkabel, ein Massekabel und ein Spannungskabel haben, das jeden Knoten verbindet.
Meine Frage lautet: Was wäre das beste Protokoll zum Senden dieser Datenpakete über eine Leitung? Jeder Sensorknoten muss nicht miteinander kommunizieren, und der ATMega muss nur Eingaben von den Sensoren akzeptieren, nicht aber auch Ausgaben senden. Ich habe schon einmal davon gehört, die OneWire-Bibliothek mit ATMega-Chips zu verwenden, aber noch nie auf so etwas wie einem ATTiny85. Oder wäre es am besten, einfach zu versuchen, jedes Datenpaket "manuell" zu senden (sie sind sehr klein, nicht größer als 100 Bytes)?
Die beste Option wäre entweder das Onewire-Protokoll oder vielleicht ein Halbduplex-UART. Bei Halbduplex-UART verbinden Sie lediglich alle RX- und TX-Pins des UART mit dem Kabel und halten alle TX-Pins mit Ausnahme des einen Mikrocontrollers, der sendet, im Tristate-Modus. Bei der Halbduplex-UART-Methode könnten Sie auf Konkurrenzprobleme stoßen. onewire hat dieses Problem nicht, da es Open-Drain ist. Sie sollten keine Probleme mit Onewire auf einem attiny85 haben, abgesehen von vielleicht einer sperrigen Bibliotheksimplementierung, die den gesamten Programmspeicher auffrisst.
gbulmer
Alexander Wulff
gbulmer