eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Opóźnienie w transmisji USB
Ilość wypowiedzi w tym wątku: 36

  • 21. Data: 2015-04-02 02:38:05
    Temat: Re: Opóźnienie w transmisji USB
    Od: Michał Semeniuk <m...@g...pl>

    Dnia 2015-04-01, o godz. 07:42:28
    s...@g...com napisał(a):
    > Na innym PC, to samo. Znalazłem też takie coś spoza FTDI, ale nie
    > obsługuje akurat tej kostki.
    >
    > http://www.intra2net.com/en/developer/libftdi/
    >

    Na wstępie witam całą grupę !

    Nie prawda, że libftdi nie wspiera FT2232H:

    http://developer.intra2net.com/git/?p=libftdi;a=blob
    _plain;f=README;hb=HEAD

    Od dłuższego czasu używam FT2232H (tryb asynchroniczny) + libftdi. W
    pierwszej wersji korzystałem z binding'ów do python'a, teraz mam już
    wszystko przepisane na natywne C. System operacyjny: Linux.
    Tryb synchroniczny FIFO jest również wspierany przez libftdi dla
    FT2232H, w źródłach masz nawet przykład:

    http://developer.intra2net.com/git/?p=libftdi;a=blob
    _plain;f=examples/stream_test.c;hb=HEAD

    Wydajność z tego co piszą ludzie (nie robiłem porównania osobiście)
    jest trochę gorsza niż binarne d2xx ale w zamian masz:
    - dostęp do całego kodu źródłowego: kernel + libusb + libftdi
    - bezproblemowe i stabilne działanie na mips/arm - to akurat dla mnie
    warunek konieczny

    Korzystając z dołączonych przykładów, ogarnięcie w python'ku libftdi +
    FT2232H to jeden dłuższy wieczór.

    Jeżeli chodzi o samo opóźnienie to nic takiego nie zauważyłem. Wiadomo
    działamy w userspace więc coś tam może się przytkać i zbuforować, ale
    to raczej dziesiątki-max setki ms, przy mocno obciążonym systemie. W
    takim układzie zadziała handshake sprzętowy po stronie ftdi - nie dasz
    rady do niego pisać. Sprawdzone w praktyce, ale tj pisałem w trybie
    asynchronicznym.

    --
    Pozdrawiam
    Michał Semeniuk


  • 22. Data: 2015-04-02 22:46:13
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu czwartek, 2 kwietnia 2015 02:38:07 UTC+2 użytkownik Michał Semeniuk napisał:
    > Dnia 2015-04-01, o godz. 07:42:28
    > s...@g...com napisał(a):
    > > Na innym PC, to samo. Znalazłem też takie coś spoza FTDI, ale nie
    > > obsługuje akurat tej kostki.
    > >
    > > http://www.intra2net.com/en/developer/libftdi/
    > >
    >
    > Na wstępie witam całą grupę !

    Witaj !!

    >
    > Nie prawda, że libftdi nie wspiera FT2232H:
    >
    > http://developer.intra2net.com/git/?p=libftdi;a=blob
    _plain;f=README;hb=HEAD

    Ano być moxe masz rację. Ja "zabazowałem" na tym co znalażłem (link w poprzednim moim
    wpisie)

    >
    > Od dłuższego czasu używam FT2232H (tryb asynchroniczny) + libftdi. W
    > pierwszej wersji korzystałem z binding'ów do python'a, teraz mam już
    > wszystko przepisane na natywne C. System operacyjny: Linux.
    > Tryb synchroniczny FIFO jest również wspierany przez libftdi dla
    > FT2232H, w źródłach masz nawet przykład:
    >
    > http://developer.intra2net.com/git/?p=libftdi;a=blob
    _plain;f=examples/stream_test.c;hb=HEAD
    >
    > Wydajność z tego co piszą ludzie (nie robiłem porównania osobiście)

    Zrób, jak coś sensownego wyjdzie, to się dogadamy w sprawach finansowych.

    >
    > Jeżeli chodzi o samo opóźnienie to nic takiego nie zauważyłem.

    Jak to sprawdzałeś ?


  • 23. Data: 2015-04-02 23:29:07
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu środa, 1 kwietnia 2015 15:46:50 UTC+2 użytkownik J.F. napisał:
    > Użytkownik napisał w wiadomości
    > >Wracając do tematu, to opóźnienie wygląda tak, jakby w pamięci peceta
    > >tworzył się FIFO o n-krotnej pojemności rozmiaru pojedyńczego frame'a
    > >akwizycji (16KB).
    >
    > Chyba jak najbardziej mozliwe, trzeba by sie doczytac opisu drivera.
    > Z tym, ze powinies go tez szybko oproznic, skoro przetwarzanie jest
    > szybkie.

    No w końcu mnie zrozumiałeś!! Zdarza się, że czasami zbyt "zawile" opisuję problemy.
    Zacznijmy od dokumentacji:

    1) datasheet:

    http://www.ftdichip.com/Support/Documents/DataSheets
    /ICs/DS_FT2232H.pdf

    Ot, takie pierdulamenty jak to pospawać, jakie tryby są możliwe, etc..

    2) D2XX Programmer's Guide:

    http://www.ftdichip.com/Support/Documents/ProgramGui
    des/D2XX_Programmer%27s_Guide%28FT_000071%29.pdf

    Na stronie 18 masz opisaną funkcję FT_READ. Ano z niej korzystam !!

    3) No i dokumentacja trybu jakiego używam:

    http://www.ftdichip.com/Support/Documents/AppNotes/A
    N_130_FT2232H_Used_In_FT245%20Synchronous%20FIFO%20M
    ode.pdf

    ====================

    No i rva jego mać, zaczynam mieć tego dosyć!! Zbyt długo się w tym ciapram.
    Na ChipScopie(XILINX) wszystko zapindala jak se Stachu zaplanował..

    Wracając do głównego wątka.. Pytanie do WSZYSTKICH, aktywnych w tym wątku:

    Jaka inna kostka? Może jakiś Cypress?

    > No i powinny byc dane od razu do dyspozycji, a o ile rozumiem po
    > prierwszym uruchomieniu programu odbierajacego mamy sekunde czekania.
    >
    > Z drugiej banki - a moze urzadzenie za malo wysyla ?
    > Jak rozumiem to w programie czytasz potrzebna ilosc bajtow ... i wedle
    > opisu funkcja czeka az tyle naplynie.
    > Jesli naplywa powoli, to czekamy.
    >
    > Tylko wtedy na koncu nie ma pobierania danych z bufora.
    >
    > J.


  • 24. Data: 2015-04-03 01:23:58
    Temat: Re: Opóźnienie w transmisji USB
    Od: 2m <m...@g...com>

    W dniu czwartek, 2 kwietnia 2015 23:29:07 UTC+2 użytkownik s...@g...com napisał:

    > http://www.ftdichip.com/Support/Documents/ProgramGui
    des/D2XX_Programmer%27s_Guide%28FT_000071%29.pdf
    >
    > Na stronie 18 masz opisaną funkcję FT_READ. Ano z niej korzystam !!
    >
    > 3) No i dokumentacja trybu jakiego używam:
    >
    > http://www.ftdichip.com/Support/Documents/AppNotes/A
    N_130_FT2232H_Used_In_FT245%20Synchronous%20FIFO%20M
    ode.pdf
    >

    A jak masz ustawione Timeouty ? i co ważniejsze parametry USB funkcja
    FT_SetUSBParameters....
    Moze zerknij tutaj:
    http://www.ftdichip.com/Support/Documents/AppNotes/A
    N232B-03_D2XXDataThroughput.pdf

    2m


  • 25. Data: 2015-04-03 01:57:39
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu piątek, 3 kwietnia 2015 01:23:59 UTC+2 użytkownik 2m napisał:
    > W dniu czwartek, 2 kwietnia 2015 23:29:07 UTC+2 użytkownik s...@g...com
    napisał:
    >
    > > http://www.ftdichip.com/Support/Documents/ProgramGui
    des/D2XX_Programmer%27s_Guide%28FT_000071%29.pdf
    > >
    > > Na stronie 18 masz opisaną funkcję FT_READ. Ano z niej korzystam !!
    > >
    > > 3) No i dokumentacja trybu jakiego używam:
    > >
    > > http://www.ftdichip.com/Support/Documents/AppNotes/A
    N_130_FT2232H_Used_In_FT245%20Synchronous%20FIFO%20M
    ode.pdf
    > >
    >
    > A jak masz ustawione Timeouty ? i co ważniejsze parametry USB funkcja
    FT_SetUSBParameters....

    Timeouty są ustawione na maxa. Na 256ms. Dlaczego na aż tyle? Moje badziewie robi
    akwizycję przez 60ms. Dopóki nie zakończy, to pomimo wysłanego sygnału TXE# ze strony
    FT2232H, sygnał WR# jest w stanie '1'. I to działa! Bo gdyby nie działało, to cała
    synchronizacja poszła by się paść.

    > Moze zerknij tutaj:
    > http://www.ftdichip.com/Support/Documents/AppNotes/A
    N232B-03_D2XXDataThroughput.pdf
    >
    Znam to!! Nie chodzi mi o prędkość transmisji, bo owa jest zarąbista. Nie mierzyłem
    precyzyjnie, ale z całą pewnością >30MB/s. Ale nie w tym rzecz!!

    Przeczytaj główny wątek jeszcze raz, dyskusję z Kolegami, bo nie chce mi się po raz
    setny tłumaczyć w czym problem.


  • 26. Data: 2015-04-03 04:41:15
    Temat: Re: Opóźnienie w transmisji USB
    Od: 2m <m...@g...com>

    > Przeczytaj główny wątek jeszcze raz, dyskusję z Kolegami, bo nie chce mi się po raz
    setny tłumaczyć w czym problem.

    Czytałem.
    Czy i na jaką wartość masz ustawiony parametr dwInTransferSize w funkcji
    FT_SetUSBParameters ?

    2m


  • 27. Data: 2015-04-03 13:10:21
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu piątek, 3 kwietnia 2015 04:41:16 UTC+2 użytkownik 2m napisał:
    > > Przeczytaj główny wątek jeszcze raz, dyskusję z Kolegami, bo nie chce mi się po
    raz setny tłumaczyć w czym problem.
    >
    > Czytałem.
    > Czy i na jaką wartość masz ustawiony parametr dwInTransferSize w funkcji
    FT_SetUSBParameters ?
    >
    > 2m

    16K


  • 28. Data: 2015-04-03 16:21:09
    Temat: Re: Opóźnienie w transmisji USB
    Od: 2m <m...@g...com>

    W dniu piątek, 3 kwietnia 2015 13:10:24 UTC+2 użytkownik s...@g...com napisał:
    > W dniu piątek, 3 kwietnia 2015 04:41:16 UTC+2 użytkownik 2m napisał:
    > > > Przeczytaj główny wątek jeszcze raz, dyskusję z Kolegami, bo nie chce mi się po
    raz setny tłumaczyć w czym problem.
    > >
    > > Czytałem.
    > > Czy i na jaką wartość masz ustawiony parametr dwInTransferSize w funkcji
    FT_SetUSBParameters ?
    > >
    > > 2m
    >
    > 16K

    Moim zdaniem powinieneś pomanipulować tą wartością uwzględniając to, że dane są
    przesyłane w 64bajtowych pakietach (endpoint size) i w każdym pakiecie USB 2 bajty są
    zarezerwowane przez FTDI.
    Czyli dwInTransferSize powinien być:
    A) wielokrotnością 64
    B) jego wartość powinna uwzględniać TwojDane + wspomniane 2 bajty na pakiet.
    Wtedy będzie to transakcja. Host Controller Driver robi sheduling USB optymalizowny
    na transakcje. (UHCI OHCI EHCI każdy z nich stosuje różne algorytmy).
    Twój przypadek pasuje mi do sytuacji kiedy TwojeDane nie mieszczą się w jednej
    transakcji i stąd powstaje opóźnienie.
    Daj znać jeśli trafiłem.
    2m


  • 29. Data: 2015-04-03 18:12:14
    Temat: Re: Opóźnienie w transmisji USB
    Od: janusz_k <J...@o...pl>

    W dniu 2015-04-02 o 23:29, s...@g...com pisze:
    > W dniu środa, 1 kwietnia 2015 15:46:50 UTC+2 użytkownik J.F. napisał:
    >> Użytkownik napisał w wiadomości
    >>> Wracając do tematu, to opóźnienie wygląda tak, jakby w pamięci peceta
    >>> tworzył się FIFO o n-krotnej pojemności rozmiaru pojedyńczego frame'a
    >>> akwizycji (16KB).
    >>
    >> Chyba jak najbardziej mozliwe, trzeba by sie doczytac opisu drivera.
    >> Z tym, ze powinies go tez szybko oproznic, skoro przetwarzanie jest
    >> szybkie.
    >
    > No w końcu mnie zrozumiałeś!! Zdarza się, że czasami zbyt "zawile" opisuję
    problemy. Zacznijmy od dokumentacji:
    >
    > 1) datasheet:
    >
    > http://www.ftdichip.com/Support/Documents/DataSheets
    /ICs/DS_FT2232H.pdf
    >
    > Ot, takie pierdulamenty jak to pospawać, jakie tryby są możliwe, etc..
    >
    > 2) D2XX Programmer's Guide:
    >
    > http://www.ftdichip.com/Support/Documents/ProgramGui
    des/D2XX_Programmer%27s_Guide%28FT_000071%29.pdf
    >
    > Na stronie 18 masz opisaną funkcję FT_READ. Ano z niej korzystam !!
    >
    > 3) No i dokumentacja trybu jakiego używam:
    >
    > http://www.ftdichip.com/Support/Documents/AppNotes/A
    N_130_FT2232H_Used_In_FT245%20Synchronous%20FIFO%20M
    ode.pdf
    >
    > ====================
    >
    > No i rva jego mać, zaczynam mieć tego dosyć!! Zbyt długo się w tym ciapram.
    > Na ChipScopie(XILINX) wszystko zapindala jak se Stachu zaplanował..
    >
    > Wracając do głównego wątka.. Pytanie do WSZYSTKICH, aktywnych w tym wątku:
    >
    > Jaka inna kostka? Może jakiś Cypress?
    Wtrącę swoje 3 grosze, mam kupiony analizator stanów logicznych Saleae i
    też się nie wyrabia, teoretycznie powinien samplować 24M a ja w porywach
    osiągam 500k, jak poczytałem to podobno wina sterowników usb które w
    jakiś sposób się gryzą i zabagnionego windowsa, tyle że ja nie mam
    zabagnionego a mimo to się nie wyrabia, więc wychodzi kicha, może
    postawię czystego XP i spróbuję znowu.
    Więc zastanów się zanim sięgniesz po cypressa bo może się okazać że ma
    tak samo złe drivery usb jak reszta.


    --
    Pozdr

    Janusz_K


  • 30. Data: 2015-04-03 18:26:25
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu piątek, 3 kwietnia 2015 16:21:10 UTC+2 użytkownik 2m napisał:
    > W dniu piątek, 3 kwietnia 2015 13:10:24 UTC+2 użytkownik s...@g...com napisał:
    > > W dniu piątek, 3 kwietnia 2015 04:41:16 UTC+2 użytkownik 2m napisał:
    > > > > Przeczytaj główny wątek jeszcze raz, dyskusję z Kolegami, bo nie chce mi się
    po raz setny tłumaczyć w czym problem.
    > > >
    > > > Czytałem.
    > > > Czy i na jaką wartość masz ustawiony parametr dwInTransferSize w funkcji
    FT_SetUSBParameters ?
    > > >
    > > > 2m
    > >
    > > 16K
    >
    > Moim zdaniem powinieneś pomanipulować tą wartością uwzględniając to, że dane są
    przesyłane w 64bajtowych pakietach (endpoint size) i w każdym pakiecie USB 2 bajty są
    zarezerwowane przez FTDI.
    > Czyli dwInTransferSize powinien być:
    > A) wielokrotnością 64
    > B) jego wartość powinna uwzględniać TwojDane + wspomniane 2 bajty na pakiet.
    > Wtedy będzie to transakcja. Host Controller Driver robi sheduling USB optymalizowny
    na transakcje. (UHCI OHCI EHCI każdy z nich stosuje różne algorytmy).
    > Twój przypadek pasuje mi do sytuacji kiedy TwojeDane nie mieszczą się w jednej
    transakcji i stąd powstaje opóźnienie.
    > Daj znać jeśli trafiłem.
    > 2m

    Nawet nie podchodzę do Twoich sugestii, bo są bezsensowne. To o czym piszesz ma wpływ
    na całkowitą prędkość transmisji, a nie na buforowanie "w stylu FIFO"

strony : 1 . 2 . [ 3 ] . 4


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: