Portgeschwindigkeit

  • Moin, Moin,


    In folgendem Thread,


    <!-- m --><a class="postlink" href="http://fs-net.de/phpBB2/viewtopic.php?t=168">http://fs-net.de/phpBB2/viewtopic.php?t=168</a><!-- m -->


    wurde vor 1 1/2 Jahren mal über die Geschwindikeit eines Datentransfers über DIO geschrieben. Nun brauche ich für mein Projekt und einer netDCU9, einen ähnlichen Datendurchsatz von ca. 100000 Bytes oder 50000 16 Bit Worte pro Sekunde.


    Ist die mögliche Transfergeschwindikeit inzwischen höher geworden? 15KhZ, die schnellere Taktfrequenz wird es wohl nicht bringen, wie dort, beschrieben sind auch für mich zu wenig.
    Oder welche andere Möglichkeit besteht, die Daten mit der geforderten Geschwindigkeit zu bewegen. Die DCU hat nichts anderes zu tun, als die Daten anzunehmen, auf dem Monitor/Display dazustellen und eventuelle Bedienungen durch den User auszuführen und im System zu verteilen.



    MfG Rainer

  • Moin,


    Danke, das nächste Problem,


    habe mir die netDCU9 SDK runtergeladen und installiert. Im Beispiel zu Programmierung des FS Busses, PDF Datei NetDCU 4,5,6,8, FS-Bus Driver


    1) open FS-Bus port, wird eine Includefile, "parintfsdk.h",gefordert, die in der netDCU9 SDK, die ich habe, nicht vorhanden ist.


    Welche Files sind denn nun notwendig?


    MfG Rainer

  • Moin,


    die Includefile, habe ich jetzt mal auskommentiert, anscheinend wird sie zum öffnen des FS-Busses noch nicht gebraucht, und gleich wurde mir der nächste Fehler vom Visual Studio gemeldet, es gibt in der netDCU9 SDK keine OLE32.lib.


    Dann habe ich mir auch einmal das netDCU10 SDK, runtergeladen und siehe da, die von mir vermissten files sind dort vorhanden.


    Was ist denn nun mit der netDCU9 SDK los, stimmen die Beispiele der TreiberDOKU nicht mehr?
    Oder stimmt die netDCU9 SDK nicht?



    Auch vermisse ich in der Registry der netDCU9 den Key


    [HKLM\Drivers\BuiltIn\PARINTF]



    MfG Rainer

  • Moin,


    schade das Keiner auf meine Probleme antwortet.
    Nochmal einen kleine Zusammenfassung.


    1) Includefile parintfsdk.h die sich nicht in der SDK befindet.
    Wird die nun, eventuell auch später, für die SDK der netDCU9 benötigt?


    2) FS-Bus
    Das währe genau das was ich brauche, aber der Key HKLM\Drivers\Builtin\PARINTF, war in der Registry nicht vorhanden. Inzwischen habe ich die Werte aus der Devicetreiber Beschreibung netDCU4/5/6/8
    in die Registrierung eingetragen, aber leider bekomme ich immer noch keinen Zugriff auf den FS-Bus, weil er nicht, mit "CreateFile", zu öffnen ist.
    Wo finde ich eigendlich die DLL "PARINTF.DLL" die in der Registrierung angegeben werden muß?


    3) Für mein Projekt brauche ich auch eine flotte Grafik. Das Darstellen einer Grafik mit der netDCU und der WindowsAPI, ist mir zu langsam.
    Nun habe ich es mit Directx, was ja auch in der netDCU SDK enthalten ist, versucht. Ergebnis, die DX Initialisierung kam nur bis

    IstOK = DirectDrawCreate(NULL, (LPDIRECTDRAW *) &lpDirectDraw, NULL);
    IstOK = lpDirectDraw->SetCooperativeLevel (hWnd, DDSCL_NORMAL );


    und ist hier beim Initiallisieren ausgestiegen.


    IstOK = lpDirectDraw->SetDisplayMode (640, 480, 8,0,0);


    Ist Directx noch nicht funktionfähig????


    Wäre nett wenn wir das in den Griff bekommen würden.



    MfG Rainer

  • Hallo,
    leider ist bei der NetDCU9 derzeit kein FS-BUS (parintf) Treiber verfügbar. Dies steht so auch in der auf der CD befindlichen Readme Datei. Der Treiber ist in Entwicklung aber noch nicht fertig. Das Wesentliche Problem bei dem Treiber ist der Interrupt. Falls Sie diesen nicht benötigen, könnten Sie kurzfritig eine Version bekommen.


    Die NetDCU9 unterstützt DirectDraw und Direct3D mobile.
    Auf der CD befinden sich im Verzeichnis DDRAW einige Beispiele.



    MfG Holger Frölich

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hallo,


    Quote from "Baeder"

    Sie können für diese Aufgabe den FS-Bus benutzen, wenn Sie eine NetDCU einsetzten.
    Siehe auch Dokumentation FS-Bus in der Treiber Dokumentation.


    hätte man mir ja auch gleich sagen können.
    Interrupt brauche ich aber.


    Irgendwo auf der CD in einem Readmefile steht es, nett. :evil:



    Die DDraw-Beispiele mögen ja funktionieren, aber ich bekomme kein DDraw nach meinem Beispiel initialisiert. Da fehlen die Sourcecodes für die Beispiele, die hatte ich schon gesucht, damit ich sehen kann wo ich den Fehler gemacht habe.


    Eigendlich erwarte ich, wenn ich so eine Platine kaufe, das alles einfach funktioniert, von der Ausnahme mit den LCD und TFT Displays mal abgesehen, der Rest sollte aber schon ohne Probleme laufen.


    MfG Rainer[/quote]

  • Hallo,
    das Readme wird sowohl beim Einlegen der CD als auch beim Installieren des SDK angezeigt.
    Den Source-Code für eines der DDRAW Beispiele werden wir nachreichen.


    Mir ist allerdings nicht ganz klar, was Sie mit der Zeile

    Code
    1. SetDisplayMode(640,480,8,0,0)

    tun möchten. In keinem der Beispiele wird diese Funktion verwendet.


    MfG Holger Frölich

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Quote from "RainerKa"

    und ist hier beim Initiallisieren ausgestiegen.


    IstOK = lpDirectDraw->SetDisplayMode (640, 480, 8,0,0);


    Ist Directx noch nicht funktionfähig????


    Aus der Manual-Page von IDirectDraw::SetDisplayMode:


    Quote

    Remarks
    As Windows CE does not support display mode changes, DDERR_INVALIDMODE will be returned if any mode other than the current one is passed to SetDisplayMode.


    Vermutlich nutzt der aktuelle Modus 16 bpp, dann klappt das mit 8 eben nicht.


    Mit freundlichen Grüßen,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hallo RainerKa


    Also wenn Du es wirklich mal schaffen solltest, dann wäre ich echt dankbar um ein kurzes Beispiel einer DirectDraw Anwendung. Ich bin froh, dass Du das Engineering gerade machst.


    Gruss


    Timo

  • Hallo,


    Quote


    Ist die mögliche Transfergeschwindikeit inzwischen höher geworden? 15KhZ, die schnellere Taktfrequenz wird es wohl nicht bringen, wie dort, beschrieben sind auch für mich zu wenig.
    Oder welche andere Möglichkeit besteht, die Daten mit der geforderten Geschwindigkeit zu bewegen.


    Wie sieht es mit der Linux-Version der NetDCU 8 aus? Sind dort höhere Frequenzen zu erzielen?



    Christian

  • Die Art der internen Realisierung in Linux ist mir nicht bekannt. Hier müssten Sie sich ggf. an emlix wenden.


    Vielleicht sollte ich aber nochmal betonen, dass diese Geschwindigkeitsbeschränkung sich ausschließlich auf das Senden über GPIO (also das Ändern von Output-Pins) bezieht. Im anfangs zitierten Thread wird ja ausführlich erklärt, warum das Ändern eines I/O-Registers synchronisiert werden muss. Geht es nur um das Lesen, ist eine derartige Synchronisierung grundsätzlich nicht notwendig und somit kann eine deutlich höhere Datenrate erzielt werden.


    Auch ist das Verhalten bei Boards mit anderen Prozessoren komplett anders, da diese über spezielle BitSet und BitClear-Operationen auf den I/O-Registern verfügen, die keine Synchronisierung wie beim Samsung-Prozessor erfordern. Somit können also auf NetDCU5.2, NetDCU9 und NetDCU11 mit Intel XScale, NetDCU6 mit AMD Alchemy und PicoCOM1 mit Atmel deutlich höhere Geschwindigkeiten erzielt werden.


    Mit freundlichen Grüßen,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.