Forum: Analoge Elektronik und Schaltungstechnik Auslegung paralleler Datenbus mit 700MT


von Dirk L. (tbo)


Lesenswert?

Hallo zusammen,

ich bin auf der Suche nach einer besseren Lösung für mein 
Datenübertragungsproblem:

Folgende Übertragungsstrecke ist gegeben:
Sender->PCB->Stecker->Koaxkabel->Stecker->PCB->Empfänger

Prinzipiell handelt es sich um ein Kundengerät, welches Daten an mein 
Gerät sendet.

Zu den Details der einzelnen Komponenten:
Das Kundengerät beeinhaltet ein Device (ASIC/FPGA/MCU/...) welches Daten 
(1-32bit parallel Bus + Clock, 0.9-3.3V, single-ended, DDR oder SDR, 
0-700MT) ausgibt. Das Layout der Kundenplatine ist häufig unbekannt, oft 
wird meiner/der Empfehlung (50Ohm-Layout) gefolgt.

Kabel: 50Ohm, 10cm, coax für jedes Signal separat
Stecker/Buchse: 50Ohm

Mein Gerät ist auf 50Ohm geroutet und mit einer schaltbaren 
50Ohm-Terminierung auf VCC/2 versehen. Das Empfänger-FPGA hat eine 
Eingangslast von 10pF (Clock) bzw. 5pF (Daten).
Ein Problem was vorhanden ist, die Kapazität der bekannten Signalstrecke 
(Kabel/stecker/Empfänger/PCB) ist ziemhlich hoch (~30pF). Bei 350MHz 
wird das schon ziehmlich viel, allerdings ergibt sich die Kapazität 
einfach aus der Physik (Coaxkabel 95pF/m, PCB 8.5pF). Würde ich die 
Schirmung weglassen, haben ich Übersprechen und mehr Leiterabstand ist 
aus Platzmangel (BGA/Stecker) nicht möglich. Also meiner Meinung nach 
kommt man um 50Ohm-Treiber evtl. noch 100Ohm nicht drum herum.

Die Vergangenheit hat gezeigt, das im Digitalbereich 50Ohm-Designs nicht 
gern gesehen werden. Verständlich, da bei 3.3V und 32 Signalen die 
Stromversorgung der Kundenhardware stark belastet wird. Aber, es hat 
sich gezeigt, dass das aktuelle Design bei der breiten Masse der Kunden 
die bessten Ergebnisse liefert.
Vorteile sind, das einerseits unsere Hardware in der Lage ist, den 
Input-Threshold frei zu programmieren und das unsere Empfänger auch noch 
mit 500mV-Signalsamplitude etwas anfangen können. D.h. das 
zusammenbrechen der Amplitude bei schwachbrünstige Kundendesigns, ist 
kein Problem. In der Analog-Technik würde jeder bei der Signalqualität 
weinend zusammenbrechen, aber in der Digitaltechnik muss nur eine 
gewisse Schwelle überschritten werden, dann funktioniert es. Das hilft 
uns.

Gut ich hoffe, ich konnte meine Situation soweit darstellen. Jetzt die 
Frage: Welche Alternativen für das Streckendesign gibt es, um die 
Signalqualität auch für schwache Sender-Treiber zu verbessern?

Gedanken:
Mir sind DDR3-Interfaces eingefallen. Das würde die externen Switches 
und Widerstände auf der Empfängerseite einsparen und -8pF bringen. Mit 
DDR3-Interfaces sind zumindest auf PCB-Ebene 900MHz möglich. Allerdings 
setzt das für mich voraus, das jede Kunden-Hardware sauber 
impedanzkontroliert baut ist (was leider nicht der Fall).
Da wir eben nicht die Situation einer reinen Chip-Chip-Verbindung auf 
dem gleichen Board haben, befürchte ich, das ein DDR3-Interface einfach 
nur andere Probleme bringen wird und nicht wirklich eine Verbesserung.

Es ist die ewige suche nach der eierlegenden Wollmilchsau, die ich 
praktisch schon gefunden habe. Allerdings werden jetzt größere Eier bei 
mehr Milch und Wolle gefordert und ich frage mich ob ich noch irgendeine 
Schraube zum optimieren übersehen habe.

Danke für jeden hilfreichen Tip,
TBO

von Falk B. (falk)


Lesenswert?

@ Dirk L. (tbo)

>Das Kundengerät beeinhaltet ein Device (ASIC/FPGA/MCU/...) welches Daten
>(1-32bit parallel Bus + Clock, 0.9-3.3V, single-ended, DDR oder SDR,
>0-700MT)

Was oll das sein? 0-700 Mbit/s?

>Kabel: 50Ohm, 10cm, coax für jedes Signal separat
>Stecker/Buchse: 50Ohm

Für 32 Bit? Warum?

>Ein Problem was vorhanden ist, die Kapazität der bekannten Signalstrecke
>(Kabel/stecker/Empfänger/PCB) ist ziemhlich hoch (~30pF). Bei 350MHz
>wird das schon ziehmlich viel, allerdings ergibt sich die Kapazität
>einfach aus der Physik (Coaxkabel 95pF/m, PCB 8.5pF).

Nö. Das ist keine zusammgefasste Kapazität (lumped capacitance) sondern 
eine HF-Leitung, siehe Wellenwiderstand. Die kann man NICHT gleich 
betrachten.

>Die Vergangenheit hat gezeigt, das im Digitalbereich 50Ohm-Designs nicht
>gern gesehen werden. Verständlich, da bei 3.3V und 32 Signalen die
>Stromversorgung der Kundenhardware stark belastet wird.

Jain. Mit AC-Terminierung geht das schon. Aber 700 Mbit/s schiebt man 
sowieso nicht über 3,3V CMOS Pegel ;-)

>Frage: Welche Alternativen für das Streckendesign gibt es, um die
>Signalqualität auch für schwache Sender-Treiber zu verbessern?

Ein aktiver Mehrkanal-Tastkopf, wie ihn z.B. Logicanalyzer benutzen. 
Dahinter hat man dann seine definierte Leitung + Empfänger.

>dem gleichen Board haben, befürchte ich, das ein DDR3-Interface einfach
>nur andere Probleme bringen wird und nicht wirklich eine Verbesserung.

DDR3 ist ja eher die Bezeichung für das SDRAM Timing, welches 
physikalisch über SSTL1,8 oder so läuft.

von Dirk L. (Gast)


Lesenswert?

Hallo Falk,

> Was oll das sein? 0-700 Mbit/s?

bei variable Busbreiten kann man eben nicht ohne weitere Angaben sagen, 
wieviel Bit pro Sekunde übertragen werden. Deshalb verwendet man die 
einheit "Transfers" (1 Million Transfers = 1 MT), alternativ ist auch 
die Einheit "Baud" möglich.
Wird die Transferzahl mit der Busbreite multipliziert, erhält man die 
Datenrate z.B. 700MT*32bit = 22,4Gbit/s.

> Für 32 Bit? Warum?

Weil der Bus als paralleler Bus so spezifiziert ist. Schlagwort: 
Trace-interface. Es gab Zeiten da war die serielle Übertragung mit 
mehreren Megabyte pro Sekunde noch nicht üblich. Aus dieser Zeit stammt 
der Bus und Chipdesigner von heute bohren ihn halt immer weiter auf.
Alternativen sind da, werden aber oft aus Kostengründen/Platzgründen 
nicht eingesetzt.

> Nö. Das ist keine zusammgefasste Kapazität (lumped capacitance) sondern
> eine HF-Leitung, siehe Wellenwiderstand. Die kann man NICHT gleich
> betrachten.

Ok, ich denke hier können wir tiefer gehen.
Wie kann ich dann mein Szenario modellieren, wenn
das Kabel 95pF/m und 1.9Ohm/m (L=unbekannt) hat. PCB-Track hat 8.5pF, 
Input-Buffer hat 10pF?
Welche kapazitive Last kann der Sender erwarten?


> Jain. Mit AC-Terminierung geht das schon. Aber 700 Mbit/s schiebt man
> sowieso nicht über 3,3V CMOS Pegel ;-)

Wem sagst Du das wobei bei den höheren Dataneraten eher 1.8V Verwendung 
finden. Das ist für eine Low-Power-MCU aber immernoch ziehmlich viel.
AC-Terminierung,...hm, habe ich in der Vergangenheit nicht so gute 
Erfahrungen gemacht und deshalb eher aus den Möglichkeiten 
herausgenommen.


> Ein aktiver Mehrkanal-Tastkopf, wie ihn z.B. Logicanalyzer benutzen.
> Dahinter hat man dann seine definierte Leitung + Empfänger.

Habe ich auch schon überlegt, allerdings wie sind die Eingangsstufen 
aufgebaut? Da ich eben ziehmmlich viele Signale zu empfangen habe, fällt 
eine diskrete Lösung aus und irgendwelche teuren Agilent-Spezialchips 
gibt es vermutlich nicht so auf dem freien Markt.

> DDR3 ist ja eher die Bezeichung für das SDRAM Timing, welches
> physikalisch über SSTL1,8 oder so läuft.

Richtig, ich bezog mich eher auf die Ausgänge der CPU, welche 
verschiedene Serienwiderstände zuschalten können, um sich an die externe 
Welt anpassen zu können.

Gruß

von Falk B. (falk)


Lesenswert?

@Dirk L. (Gast)

>bei variable Busbreiten kann man eben nicht ohne weitere Angaben sagen,
>wieviel Bit pro Sekunde übertragen werden.

Pro Leitung schon, denn das ist der wesentliche Parameter für die 
HF-Eigenschaften. Ob dann 5 oder 32 Bit parallel liegen, ist 
zweitrangig.

>einheit "Transfers" (1 Million Transfers = 1 MT), alternativ ist auch

Ich hätte noch auf Transitions getippt.

>die Einheit "Baud" möglich.

Da wird es dann wieder schön mehrdeutig, denn dann könnte man auf eine 
Multilevelsignalisierung tippen ;-)

>Weil der Bus als paralleler Bus so spezifiziert ist. Schlagwort:
>Trace-interface. Es gab Zeiten da war die serielle Übertragung mit
>mehreren Megabyte pro Sekunde noch nicht üblich. Aus dieser Zeit stammt
>der Bus und Chipdesigner von heute bohren ihn halt immer weiter auf.

Klar.

>Alternativen sind da, werden aber oft aus Kostengründen/Platzgründen
>nicht eingesetzt.

Platz? Für 32x Koaxkabel? Größer geht es wohl kaum. Ausserdem, was für 
ein Pegel läuft dort WIRKLICH? 3,3V und 700 Mbit/s / Leitung paasen 
nicht zusammen.

>Wie kann ich dann mein Szenario modellieren, wenn
>das Kabel 95pF/m und 1.9Ohm/m (L=unbekannt) hat. PCB-Track hat 8.5pF,
>Input-Buffer hat 10pF?

Als HF-Leitung, neudeutsch transmission line.

>Welche kapazitive Last kann der Sender erwarten?

0pF, denn eine transmission line sieht vom Sender her ohmsch aus!

>Wem sagst Du das wobei bei den höheren Dataneraten eher 1.8V Verwendung
>finden. Das ist für eine Low-Power-MCU aber immernoch ziehmlich viel.

Was ist denn das für ein Mischmasch?

>AC-Terminierung,...hm, habe ich in der Vergangenheit nicht so gute
>Erfahrungen gemacht und deshalb eher aus den Möglichkeiten
>herausgenommen.

Sie hat ihre Problemchen, wenn die Terminierung eine ungünstige 
Zeitkonstante hat. Dann ist Theveninterminierung besser, weil direkt 
DC-tauglich.

>> Ein aktiver Mehrkanal-Tastkopf, wie ihn z.B. Logicanalyzer benutzen.
>> Dahinter hat man dann seine definierte Leitung + Empfänger.

>Habe ich auch schon überlegt, allerdings wie sind die Eingangsstufen
>aufgebaut?

So wie jeder Digitaleingang von schnellen ICs.

> Da ich eben ziehmmlich viele Signale zu empfangen habe, fällt
>eine diskrete Lösung aus

Das halte ich für eine vorschnelle Entscheidung. Du weißt doch gar 
nicht, was verfügbar ist. Und es gibt auch diskrete Mehrkanalpuffer in 
SMD.

>und irgendwelche teuren Agilent-Spezialchips
>gibt es vermutlich nicht so auf dem freien Markt.

Dafür sehe ich wenig Notwendigkeit. Dann eher noch ein FPGA.

von Dirk L. (Gast)


Lesenswert?

Hi Falk,

> Pro Leitung schon, denn das ist der wesentliche Parameter für die
> HF-Eigenschaften. Ob dann 5 oder 32 Bit parallel liegen, ist
> zweitrangig.

ich habe den Eindruck Du denkst noch zu getrennt von 
Analog/Digital-Technik.
Die Digitaltechnik in der Embedded-Branche ist noch lange nicht weg vom 
parallelen Bus, wobei die Frequenzen schon lange die 300MHz 
überschritten haben (also HF sind).
Weiterhin ist die Frage, ob 5 oder 32 Leitungen mit 50Ohm bei 3.3V 
terminiert sind, nicht egal, denn sie lassen ganz schön viel Strom 
fliessen. Womit man wiederum ziehmlich mit Crosstalk auf der Platine zu 
kämpfen hat.

>>die Einheit "Baud" möglich.
>
> Da wird es dann wieder schön mehrdeutig, denn dann könnte man auf eine
> Multilevelsignalisierung tippen ;-)

...deswegen die Einheit Transfers. :-)

> Platz? Für 32x Koaxkabel? Größer geht es wohl kaum. Ausserdem, was für
> ein Pegel läuft dort WIRKLICH? 3,3V und 700 Mbit/s / Leitung paasen
> nicht zusammen.

Bist Du Amateurfunker? ....Hoin, denk digitol...
Meine Coax-Kabel sind AWG38 und die gibt's als Flachbandkabel. Da sind 
20 Leitungen zusammen keine 13mm breit.

> Als HF-Leitung, neudeutsch transmission line.

Hm auch unter Beachtung von digitalen Gesichtspunkten? ;-)

>>Welche kapazitive Last kann der Sender erwarten?
> 0pF, denn eine transmission line sieht vom Sender her ohmsch aus!

Da würde ich jetzt einwenden, das der Treiber bei einem einfachen 
Low/High-Wechsel die Leitung einmal umladen muss und damit schon die 
Leitung+PCB+Input als Kapazität "sieht".
Zur Erinnerung, es geht um 0-700MT bzw. 0-350MHz.

>>Wem sagst Du das wobei bei den höheren Dataneraten eher 1.8V Verwendung
>>finden. Das ist für eine Low-Power-MCU aber immernoch ziehmlich viel.
> Was ist denn das für ein Mischmasch?

Eben Digitaltechnik/Busse im Bereich von MCUs und CPUs. Der 
LVTTL-Standart deckt 1.8/2.5 und 3.3V ab. Die cleveren Designer gehen 
auch mal auf 1.2V oder 1V runter.
...that's my life!

> Sie hat ihre Problemchen, wenn die Terminierung eine ungünstige
> Zeitkonstante hat. Dann ist Theveninterminierung besser, weil direkt
> DC-tauglich.

Mein Reden, deshalb ist dezeit auch eine modifizierte Thevenin im 
Einsatz (50Ohm auf Vcc/2).   :-)

>>> Ein aktiver Mehrkanal-Tastkopf, wie ihn z.B. Logicanalyzer benutzen.
>>> Dahinter hat man dann seine definierte Leitung + Empfänger.
>
>>Habe ich auch schon überlegt, allerdings wie sind die Eingangsstufen
>>aufgebaut?
> So wie jeder Digitaleingang von schnellen ICs.

...dann habe ich das schon.

> Das halte ich für eine vorschnelle Entscheidung. Du weißt doch gar
> nicht, was verfügbar ist. Und es gibt auch diskrete Mehrkanalpuffer in
> SMD.

Es stehen halt immernoch die 32bit im Raum, da wird diskret schnell 
aufdringlich. ;-)
Bekannte Mehrkanalpuffer haben aber auch das Problem des Leitungs 
Abschlusses. Das bringt also nicht wirklich weiter.

>>und irgendwelche teuren Agilent-Spezialchips
>>gibt es vermutlich nicht so auf dem freien Markt.
>
> Dafür sehe ich wenig Notwendigkeit. Dann eher noch ein FPGA.

Wird bereits verwendet.

Letztendlich besteht das Problem in der Erfassung des schnellen 
Datenstromes (FPGA, ist schon gelöst) und im Finden eines flexiblen 
Terminierungsschemas (geringe Verlustleistung, hohe Übertragungsrate, 
Übersprech-Unempfindlichkeit, weiter Spannungsbereich) oder 
Übertragungsstreckendesigns.

Gruss,

von Falk B. (falk)


Lesenswert?

@ Dirk L. (Gast)

>> Pro Leitung schon, denn das ist der wesentliche Parameter für die
>> HF-Eigenschaften. Ob dann 5 oder 32 Bit parallel liegen, ist
>> zweitrangig.

>ich habe den Eindruck Du denkst noch zu getrennt von
>Analog/Digital-Technik.

Ich nicht ;-)

>Die Digitaltechnik in der Embedded-Branche ist noch lange nicht weg vom
>parallelen Bus,

Mag sein.

> wobei die Frequenzen schon lange die 300MHz
>überschritten haben (also HF sind).

Sicher.

>Weiterhin ist die Frage, ob 5 oder 32 Leitungen mit 50Ohm bei 3.3V
>terminiert sind, nicht egal, denn sie lassen ganz schön viel Strom
>fliessen.

Auch klar.

>Womit man wiederum ziehmlich mit Crosstalk auf der Platine zu
>kämpfen hat.

Jain.


>Bist Du Amateurfunker?

Nein.

> ....Hoin, denk digitol...
>Meine Coax-Kabel sind AWG38 und die gibt's als Flachbandkabel. Da sind
>20 Leitungen zusammen keine 13mm breit.

Ohh, das klingt ja schon recht kompakt ;-)

>> Als HF-Leitung, neudeutsch transmission line.

>Hm auch unter Beachtung von digitalen Gesichtspunkten? ;-)

???

>>Welche kapazitive Last kann der Sender erwarten?
> 0pF, denn eine transmission line sieht vom Sender her ohmsch aus!

>Da würde ich jetzt einwenden, das der Treiber bei einem einfachen
>Low/High-Wechsel die Leitung einmal umladen muss und damit schon die
>Leitung+PCB+Input als Kapazität "sieht".

Aber nicht sofort. Die "Ladewelle" läuft mit ~ 2/3 Lichtgeschwindigkeit 
durch Kabel.

>Zur Erinnerung, es geht um 0-700MT bzw. 0-350MHz.

Schon klar. Ändert an meiner Aussage rein gar nichts.

http://www.signalintegrity.com/

Der HF-Pabst und die Bibel (wobei es hier meist nur um Digitalsignale 
geht).

http://www.signalintegrity.com/Pubs/edn/TransmissionLine.htm

In seinem Buch ist das alles deutlich umfangreicher und besser 
dargestellt.

http://www.signalintegrity.com/Pubs/news/1_19.htm

>Mein Reden, deshalb ist dezeit auch eine modifizierte Thevenin im
>Einsatz (50Ohm auf Vcc/2).   :-)

Auch nicht wirklich neues.

>Es stehen halt immernoch die 32bit im Raum, da wird diskret schnell
>aufdringlich. ;-)

Naja, NULL Ausdehnung wird eng.

>Bekannte Mehrkanalpuffer haben aber auch das Problem des Leitungs
>Abschlusses. Das bringt also nicht wirklich weiter.

Doch. Weil du nämlich HINTER deinem Puffer DEFINIERTE Verhältnisse hast 
und mit stromsparender Serienterminierung bis zu deinem Ziel gehen 
kannst. So wie jeder Oszitastkop es quasi macht.

upps, da fällt mir ein Trick ein. Ein Z0-Tastkop ist relativ 
stromsparend und breitbandig, den önnte man in 32 Bit sehr einfach und 
kompakt aufbauen. Einziger Nachteil ist die Dämpfung. Da braucht man 
besondere Empfänger, welche mit dem kleinen Pegel klarkommen. Nur so ne 
Idee.

http://www.signalintegrity.com/Pubs/straight/probes.htm

von wrdlbrmpf (Gast)


Lesenswert?

Hai!

Falk Brunner schrieb:
> Ein Z0-Tastkop ist relativ stromsparend und breitbandig,
> den könnte man in 32 Bit sehr einfach und kompakt
> aufbauen. Einziger Nachteil ist die Dämpfung. Da braucht
> man besondere Empfänger, welche mit dem kleinen Pegel
> klarkommen.

Sender Jerewan: "Im Prinzip ja, aber erstens muss man
keine 50Ohm-(Streifen)Leitung verwenden (sondern kann
evtl. eine hoehere Impedanz verwenden), und zweitens
muss man nicht unbedingt 1:20 teilen."

So aus der Ferne (und ohne tiefergehende Sachkenntnis)
sieht z.B. 330 Ohm / 70 Ohm ganz passend aus - aber ich
weiss natuerlich nicht, ob eine 70-Ohm-Streifenleitung
von der Geometrie her brauchbar ist. Bei 3.3V Input hat
man dann einen High-Pegel von ca. 550mV.

Hmmm... sag mal... kann man nicht eigentlich den
Z0-Tastkopf mit einer Serienterminierung kombinieren?
Also z.B. einen Spannungsteiler 150 Ohm / 150 Ohm am
Eingang der Leitung; Wellenwiderstand der Leitung 75 Ohm,
Ende offen. Geht das?

Grusz,
Rainer

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.