Forum: Mikrocontroller und Digitale Elektronik Signalerkennung


von Stefan M. (skysurfer)


Lesenswert?

Hi,

ich hab 2 Signale auf einem Bus das eine mit 4810 Bit/s das andere mit
2405 Bit/s wie kann ich mit einem AVR am einfachsten erkennen um welchen 
Signaltyp es sich handelt?

Gruß SkySurfer

von Magnus Müller (Gast)


Lesenswert?

Klingt nach serieller Übertragung, oder?

Werden die Signale asynchron (ohne Clocksignal wie bei RS232) oder 
synchron (mit Clocksignal wie bei SPI) übertragen?

Wenn du ein Clocksignal anzapfen kannst, musst du nur die Periodendauer 
messen.

Gruß,
Magnetus

von Ronny (Gast)


Lesenswert?

Ohne Taktsignal muss sich im Datensignal irgendwo ein Sync-Muster 
befinden,damit der Empfänger feststellen kann wo ein Datenpaket 
beginnt/endet.Und das besteht meistens aus einer 1/0/1 oder 
0/1/0-Folge,so das sich damit die kürzeste Bitdauer ergibt.Also einfach 
einige Zeit auf den Bus schauen und aus der kürzesten Zeit schwischen 2 
Flanken dann die Bitdauer berechnen.

Wie Magnus schon sagte:Das gilt bei serieller Kommunikation.Werden die 
Daten hingegen z.B. im Frequenzmultiplex (oder Zeitmultiplex wie z.B 
PCM30 ISDN/Telefon) übertragen,ist es dann nicht mehr so einfach.

Erzähl doch mal,was für ein Bus das ist.CAN,ASi,Interbus,etc?

von Stefan M. (skysurfer)


Lesenswert?

Die Daten sind Seriell ohne Sync Signal ...  dann werde ich mal schauen 
ob ich da ein SyncMaster finde.

von Magnus Müller (Gast)


Lesenswert?

Nochmal nachgehakt:

Geht es nun darum, dass du einen seriellen Bus hast der die Daten 
ENTWEDER mit 4810 Bits / Sekunde ODER mit 2405 Bits / Sekunde 
überträgt, oder ist es doch eher so, dass die Wertigkeit der Bits durch 
unterschiedlich lange Pulse festgelegt wird???

Gruß,
Magnetus

von Stefan M. (skysurfer)


Lesenswert?

Es werden Datenpakete versendet und das mit 2 unterschiedlichen 
Geschwindigkeiten also entweder 4810 B/s  oder 2405 B/s also kein PWM 
wie du damit wohl andeuten wolltest.

Mein Ansatz war jetzt das Signal auf PD6 eines ATTiny2313 zu legen damit 
müsste ich ja während dem Empfangen die Geschwindigkeit bestimmen können 
und wenn es die falsche Geschwindigkeit ist die Daten einfach verwerfen.

Oder hab hab ich da ein Denkfehler drin?

von Magnus Müller (Gast)


Lesenswert?

Du willst nicht wirklich behaupten, dass die Daten in ein und der selben 
Anwendung von ein und der selben Quelle je nach Lust und Laune mal mit 
der einen Baudrate (2405 Baud) und mal mit der anderen (doppelten) 
Baudrate (4810 Baud) gesendet wird?!? Wer baut / programmiert denn so 
einen Mist??!

Gruß,
Magnetus

von Stefan M. (skysurfer)


Lesenswert?

Ist ein Bussystem von Motorola. Nur werden keine Chips mehr dafür 
hergestellt aber das System ist eben nach wie vor im Einsatz. So muss 
man sich eben an die Gegebenheiten anpassen.

von Magnus Müller (Gast)


Lesenswert?

alle_infos_aus_der_nase_ziehen_muss

Gibts noch mehr aussagekräftige Infos zu diesem "Bussystem"?

- Welches Format / welche Codierung?
- Wie wird das Taktsignal übertragen?
  (wenn es nicht separat zur Verfügung gestellt wird, so muss es
  zumindest aus dem Datenstrom extrahiert werden können!)
- Wie nennt sich / wie nennt Motorola dieses Bussystem?

...oder was auch immer...

Gruß,
Magnetus

von Stefan M. (skysurfer)


Lesenswert?

Geht ums Märklin Digital/ Motorola Format

Hab grad ne gute Beschreibung der Signale gefunden :

http://www.heise.de/ct/Redaktion/cm/buch/digit_1.html

von Magnus Müller (Gast)


Lesenswert?


von Stefan M. (skysurfer)


Lesenswert?

Danke für die Links sind sehr hilfreich.

Noch mal zur Umsetzung über den Clock Counter wäre es ein möglicher weg 
die Signale einzulesen? Ich hab mit dem Clockcounter bis jetzt noch 
keine Erfahrungen. Hat vielleicht jemand irgendwo ein Beispiel dafür?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.