masasibe
23.01.2011, 14:39
Hallo allerseits!
Ich bereite ein Projekt vor, bei dem 2 ATmegas miteinander über 4 Leitungen kommunizieren sollen. 2 davon sind Datenleitungen. Über die 1. Datenleitung sendet der 1. ATmega und über die 2. der andere. Die beiden anderen Leitungen sind "OK-Bit" Leitungen.
Das Protokoll soll nun so funktionieren:
Möchte ATmega A Daten senden legt er eine 1 oder eine 0 auf die seine Datenleitung und verändert sein OK-Bit. ATmega B erkennt die Veränderung des OK-Bits und und speichert die 1 oder die 0 die an der Datenleitung anliegt ab, gleich danach verändert ATmega B sein OK-Bit zur Bestätigug. So erkennt ATmega A, dass ATmega B wieder bereit ist um weitere Daten zu empfangen. Also legt ATmega A das nächste Datenbit auf die seine Datenleitung und verändert sein OK-Bit. ATmega B erkennt nun wieder die Veränderung des OK-Bits und speichert das Datenbit ab und verändert sein eigenes OK-Bit als Bestätigung für den Empfang. Dann geht es wieder von vorne los.
Das ganze hat den Sinn, dass Daten sozusagen mit beinahe dem maximalen Takt übertragen werden und dass ein neues Bit aber auch immer erst gesendet wird wenn der Empfänger (in diesem Fall ATmega B) bereit ist ein neues Bit zu empfangen.
Meint ihr das könnte so funktionieren oder ist es doch besser einen vordefinierten Takt zu verwenden?
Ich bereite ein Projekt vor, bei dem 2 ATmegas miteinander über 4 Leitungen kommunizieren sollen. 2 davon sind Datenleitungen. Über die 1. Datenleitung sendet der 1. ATmega und über die 2. der andere. Die beiden anderen Leitungen sind "OK-Bit" Leitungen.
Das Protokoll soll nun so funktionieren:
Möchte ATmega A Daten senden legt er eine 1 oder eine 0 auf die seine Datenleitung und verändert sein OK-Bit. ATmega B erkennt die Veränderung des OK-Bits und und speichert die 1 oder die 0 die an der Datenleitung anliegt ab, gleich danach verändert ATmega B sein OK-Bit zur Bestätigug. So erkennt ATmega A, dass ATmega B wieder bereit ist um weitere Daten zu empfangen. Also legt ATmega A das nächste Datenbit auf die seine Datenleitung und verändert sein OK-Bit. ATmega B erkennt nun wieder die Veränderung des OK-Bits und speichert das Datenbit ab und verändert sein eigenes OK-Bit als Bestätigung für den Empfang. Dann geht es wieder von vorne los.
Das ganze hat den Sinn, dass Daten sozusagen mit beinahe dem maximalen Takt übertragen werden und dass ein neues Bit aber auch immer erst gesendet wird wenn der Empfänger (in diesem Fall ATmega B) bereit ist ein neues Bit zu empfangen.
Meint ihr das könnte so funktionieren oder ist es doch besser einen vordefinierten Takt zu verwenden?