Mehrfachaufrufe der iowkit.dll erlaubt?

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
Aleus
Posts: 3
Joined: Fri Jul 06, 2007 11:02 am
Location: Germany/Stutensee

Mehrfachaufrufe der iowkit.dll erlaubt?

Post by Aleus »

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
Guido Körber
Site Admin
Posts: 2878
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

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.
Aleus
Posts: 3
Joined: Fri Jul 06, 2007 11:02 am
Location: Germany/Stutensee

Post by Aleus »

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
Guido Körber
Site Admin
Posts: 2878
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

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.
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

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.
Guido Körber
Site Admin
Posts: 2878
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Eine Millisekunde beim Senden gilt nur für den IOW56. Bei den IOW40/24 hängt es vom Hostcontroller ab, OHCI schafft ein Datenpaket pro 300µs, UHCI braucht 3ms.
Aleus
Posts: 3
Joined: Fri Jul 06, 2007 11:02 am
Location: Germany/Stutensee

Post by Aleus »

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
Guido Körber
Site Admin
Posts: 2878
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Das Foren FAQ ist natrülich für das Forum. Das IO-Warrior FAQ findet sich auf den IO-Warrior Seiten.
Post Reply