Ich suche seit längerer Zeit einen Bus für unser System:
folgende Spezifikationen sollen erfüllt werden:
Nutzdatenrate von mind 2MByte/s, Geräte können während des Betriebes
entfernt, bzw. hinzugefügt werden, kein serieller Bus( Ausfall eines
oder mehrere Teilnehmer sollte nicht das ganze System blockieren),max
Buslänge 50 cm...
Durch hab ich alle konventionellen Feldbusse(ProfiBus, Interbus,....)
und auch schon Echtzeit Ethernet Varianten (EtherCAT, PowerLink,...) Die
Varianten sind entweder zu teuer oder erfüllen nicht die Anforderungen.
Gibt es sonst noch irgendwelche high-perfomance Bussysteme?
>kein serieller Bus>ProfiBus, Interbus,EtherCAT, PowerLink
sind bei mir alles serielle Busse.
Wie sieht die Umgebung aus? Im Schaltschrank? Freiluftverdrahtung in
einer Maschine? Auf einer Leiterplatte?
2MB/s sind jetzt nicht so viel, allerdings zuviel für einen Feldbus wie
du schon erkannt hast.
Georg schrieb:> Also ich habe vergessen zu sagen, dass sich am Bus bis zu 30 Teilnehmer> befinden können.
Grad dann würde ich mich aufs Serielle verlegen, denn ein paralleler
Multidrop-Bus mit 30 Teilnehmern ist aufgrund der vielen Treiber
vergleichsweise aufwendig.
Also CAN und TWI scheiden bezüglich Datenrate aus! Bei SPI gibt es das
Problem mit der Adressierung und ich habe noch keinen günstigen µC
gefunden der als SPI Slave mit ~40 MHz arbeiten kann.
Georg schrieb:> Also ich habe vergessen zu sagen, dass sich am Bus bis zu 30 Teilnehmer> befinden können.
Muss der Bus Multi-Master-fähig sein?
Wenn ja: wer macht die Arbitrierung?
Georg schrieb:> kein serieller Bus( Ausfall eines> oder mehrere Teilnehmer sollte nicht das ganze System blockieren),max> Buslänge 50 cm...
Wenn ein Teilnehmer den Bus blockiert, ist es völlig wurscht, ob seriell
oder parallel.
Im Gegenteil, ein serieller Bus läßt sich im Fehlerfall leichter
trennen.
Peter
Nein, ein Master und dumme Slaves(liefern nur Daten). Nur die Slaves
müssen eindeutig zuweisbar sein(eindeutige Adressierung). Und die
Entfernung einer oder mehrerer Teilnehmer darf nicht die Kommunikation
stören(NT seriell)
Wie aufwendig darf es denn werden? Was heißt "günstig"? Ist ein CPLD der
das SPI handelt zu teuer?
Bei einem CPLD kannst du ev. auch was eigenes implementieren, spontan
fällt mir ein, dass man z.B ein SPI mit z.B. 2 oder 4 Datenleitungen
basteln könnte.
Ist halt die Frage ob es was standardisiertes sein muss und was es
kosten darf
Georg schrieb:> Die Varianten sind entweder zu teuer ....> Gibt es sonst noch irgendwelche high-perfomance Bussysteme?
Du wirst nichts finden, high-performance (was immer das sein mag) ist
eben teuer.
Ad hoc fiel mir noch der VME-Bus ein, schnell, parallel, aber nichts für
den kleinen Hunger zwischendurch :-)
Momentan schwebt mir eine M-LVDS Lösung mit FPGA's im Kopf herum, nur
dass mir das Abschätzen der Dauer für komplette
Eigenentwicklung(Protokoll,..) die Erfahrung fehlt.
UND ihr antwortet mir zu schnell :)
Georg schrieb:> Bei SPI gibt es das Problem mit der Adressierung
Wieso? 5 Adressbits und fertig.
> und ich habe noch keinen günstigen µC> gefunden der als SPI Slave mit ~40 MHz arbeiten kann.
Da liegt der Hase im Pfeffer, zumal klassische µC-Slaves ohnehin leicht
in Gefahr laufen, an 2MB/s zu ersaufen. In µCs integriert gibts solche
Slaves praktisch nur mit 100Mb Ethernet. Bleibt nur, einem µC mit
I/O-Bus ein CPLD ans Bein zu binden, aber so viel simpler als Ethernet
wirds dann auch nicht.
Georg schrieb:> Momentan schwebt mir eine M-LVDS Lösung mit FPGA's im Kopf herum, nur> dass mir das Abschätzen der Dauer für komplette> Eigenentwicklung(Protokoll,..) die Erfahrung fehlt.
Ähem - Ethernet ist dir zu teuer, aber dafür langts?
Eventuell selbst basteln? Mit 9 Leitungen (8x Daten + Clock) reichen mit
Start/Stop-Bedingung also 2Mhz. Erst die Adresse (30 Slaves + Master =
5bit, bleiben 3 bit für Commands wie Read/Write/"Dauer-Read" etc),
danach die Daten. Das Protokol kann man somit auch selbst Schreiben.
Georg schrieb:> Ethernet selbst nicht, nur das die Anpassung der> Busse(EtherCAT,PowerLink,..) zu teuer ausfällt.
Schau dich doch mal bei den üblichen Verdächtigen für die Komponenten
von Ethernet-Switches um. Vielleicht befindet sich unter deren
Switching-Engines etwas, dass sich für eine örtlich begrenzte Kopplung
ohne viel Treiberzirkus eignet.
Was spricht denn gegen SPI? Kleine Abänderung reicht um das ganze für 30
Slave zu machen: Das erste Byte vom Master bestimmt die Adresse und erst
dann darf der Slave senden.