Hallo Leute,
ich habe vor, den IOwarrior als USB Frontend für einen I2C Bus zu nutzen, in diesem Zusammenhang habe ich folgende Fragen:
a) Kann ich die DLL von einem Programm so aufrufen, das zwei Boards mit jeweils eigenem IOwarrior gleichzeitig angesprochen werden. Das heißt werden die Kommandos an unterschiedliche IOwarrior Bausteine quasi parallel ausgeführt oder seriell?
b) Wie sieht es aus, auf einem IOwarrior Baustein aus. Kann ich (oder gibt es eine Möglichkeit hierfür) auf dem I2C Bus ein Kommando senden und quasi parallel IO Pins abzufragen oder verändern?
Falls Nein, liegt es eher an der iowkit DLL oder an der Firmware der Bausteine?
Vielen Dank für eine Antwort
Aleus
Mehrfachaufrufe der iowkit.dll erlaubt?
Moderator: Guido Körber
-
- Site Admin
- Posts: 2878
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
a) Ja, ein Programm kann über die DLL mehrere IO-Warrior bedienen.
b) Jein, die beiden Funktionen laufen in gewissen Grenzen parallel. Zwei Befehle gehen nicht concurrent raus an den IO-Warrior, da bei IOW40/24 die Ausgaberichtung für beide Funktionen über eine Pipe abwickelt. In Eingangsrichtung können aber Sachen parallel passieren.
Da der IIC aber nicht ganz langsam ist, macht sich eine Überlappung auch nicht wirklich bemerkbar, der USB ist hier der begrenzende Faktor.
b) Jein, die beiden Funktionen laufen in gewissen Grenzen parallel. Zwei Befehle gehen nicht concurrent raus an den IO-Warrior, da bei IOW40/24 die Ausgaberichtung für beide Funktionen über eine Pipe abwickelt. In Eingangsrichtung können aber Sachen parallel passieren.
Da der IIC aber nicht ganz langsam ist, macht sich eine Überlappung auch nicht wirklich bemerkbar, der USB ist hier der begrenzende Faktor.
Kurze Nachfrage:
a) Also ein Programm mit zwei unabhängigen Threads kann zwei Iowarrior praktisch unabhängig von einander bedienen.
b) Das hätte ich so nicht erwartet, da USB mit 12 MBit eigentlich mindestens Faktor 30 schneller sein sollte als der I2C Bus mit max. 400kHz. Meist wird der I2C Bus jedoch langsamer als mit 400kHz betrieben.
Dann verstehe ich aber nicht, warum mein Testaufbau so langsam ist.
Bei dem Testaufbau habe ich am I2C Bus 5 IO Extender PCA9555 angeschlossen. Bei 5 lesenden und 2 schreibenden Zugriffen mit je 16 Bit und das ganze 16 mal komme ich auf kapp 1800 Bit Daten plus Adressierung die ich großzügig zu nochmal 1800 Bit abschätze. Diese 3600 Bits dauern bei mir ca. 4 Sekunden.
Mache ich da was falsch? Was habt Ihr denn für Erfahrungen mit Datenübertragungsraten auf dem I2C Bus?
Viele Grüße
Aleus
a) Also ein Programm mit zwei unabhängigen Threads kann zwei Iowarrior praktisch unabhängig von einander bedienen.
b) Das hätte ich so nicht erwartet, da USB mit 12 MBit eigentlich mindestens Faktor 30 schneller sein sollte als der I2C Bus mit max. 400kHz. Meist wird der I2C Bus jedoch langsamer als mit 400kHz betrieben.
Dann verstehe ich aber nicht, warum mein Testaufbau so langsam ist.
Bei dem Testaufbau habe ich am I2C Bus 5 IO Extender PCA9555 angeschlossen. Bei 5 lesenden und 2 schreibenden Zugriffen mit je 16 Bit und das ganze 16 mal komme ich auf kapp 1800 Bit Daten plus Adressierung die ich großzügig zu nochmal 1800 Bit abschätze. Diese 3600 Bits dauern bei mir ca. 4 Sekunden.
Mache ich da was falsch? Was habt Ihr denn für Erfahrungen mit Datenübertragungsraten auf dem I2C Bus?
Viele Grüße
Aleus
-
- Site Admin
- Posts: 2878
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
a) ja, so lange es ein Programm ist, die DLL unterstützt bisher nur ein Programm
b) Welcher IO-Warrior? Die Auffassung mit den verfügbaren 12 MBit/sec ist in jedem Fall falsch, da ein einzelnes Gerät am USB nicht die gesamte Bandbreite belegen kann. Die dazugehörigen Diskussionen hatten wir schon so oft, dass ich auf das FAQ und die Suchfunktion im Forum verweise.
b) Welcher IO-Warrior? Die Auffassung mit den verfügbaren 12 MBit/sec ist in jedem Fall falsch, da ein einzelnes Gerät am USB nicht die gesamte Bandbreite belegen kann. Die dazugehörigen Diskussionen hatten wir schon so oft, dass ich auf das FAQ und die Suchfunktion im Forum verweise.
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Das IowKit 1.5 API unterstuetzt maximal 16 IOWarrior. Das ist mehr als genug, da so viele USB-Geraete das Betriebssystem schon deutlich belasten koennen.
Ein IOWarrior 24 bzw. 40 kann nur alle 10 Millisekunden 8 Byte an Daten an den Rechner schicken. Das ist eine Hardware-Beschraenkung fuer low-speed USB-Geraete. Der IoWarrior 56 kann jede Millisekunde 64 Byte schicken, da er ein full-speed Geraet ist.
Beim Senden von Daten sollte es ein Datenpaket pro Millisekunde sein fuer alle IOWarrior. Da kann einem aber das Betriebssystem in die Suppe spucken, da es keine wirklichen Garantien gibt.
Ein IOWarrior 24 bzw. 40 kann nur alle 10 Millisekunden 8 Byte an Daten an den Rechner schicken. Das ist eine Hardware-Beschraenkung fuer low-speed USB-Geraete. Der IoWarrior 56 kann jede Millisekunde 64 Byte schicken, da er ein full-speed Geraet ist.
Beim Senden von Daten sollte es ein Datenpaket pro Millisekunde sein fuer alle IOWarrior. Da kann einem aber das Betriebssystem in die Suppe spucken, da es keine wirklichen Garantien gibt.
-
- Site Admin
- Posts: 2878
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Vielen Dank für die Antworten,
einen Teil der Antworten habe ich dann auch in den zugehörigen Datenblättern gefunden. Ein ehemaliger Kollege von mir pflegte zu sagen: "Wer lesen kann ist klar im Vorteil!" - Recht hat er! Auf meine Fragen habt ihr mehr Informationen gegeben als im Datenblatt steht, somit war die Frage nicht ganz Umsonst. Trotzdem Sorry!
Kleine Frage noch zum Hinweis auf die FAQ.
Die FAQ hier im Forum enthält auf den ersten und den zweiten Blick nur Informationen über das Forum selbst und keine technischen Deteils zu konkreten Bausteinen. Habe ich was übersehen? Oder gibt es eine weitere FAQ zu technischen Fragen die ich nicht gefunden habe?
Viele Grüße
Aleus
einen Teil der Antworten habe ich dann auch in den zugehörigen Datenblättern gefunden. Ein ehemaliger Kollege von mir pflegte zu sagen: "Wer lesen kann ist klar im Vorteil!" - Recht hat er! Auf meine Fragen habt ihr mehr Informationen gegeben als im Datenblatt steht, somit war die Frage nicht ganz Umsonst. Trotzdem Sorry!
Kleine Frage noch zum Hinweis auf die FAQ.
Die FAQ hier im Forum enthält auf den ersten und den zweiten Blick nur Informationen über das Forum selbst und keine technischen Deteils zu konkreten Bausteinen. Habe ich was übersehen? Oder gibt es eine weitere FAQ zu technischen Fragen die ich nicht gefunden habe?
Viele Grüße
Aleus
-
- Site Admin
- Posts: 2878
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact: