eGospodarka.pl
eGospodarka.pl poleca

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

  • 1. Data: 2015-03-20 13:44:12
    Temat: Opóźnienie w transmisji USB
    Od: s...@g...com

    Witam,

    Prototypię obecnie takie urządzenie:
    Wejście (sygnał analogowy zmodulowany AM/nośna 3-5MHz)=>Wzmacniacz=>przetwornik A/C
    12-bit/fs=20MHz=>FPGA(demodulacja cyfrowa,decymacja i kompresja logarytmiczna do
    8-bit)=>interface USB(FT2232H)=>PC

    Na pececie wyświetlam dane w postaci graficznej w czasie rzeczywistym, więc używam
    trybu synchronicznego FIFO. Zapycha 30-40MB/s bez problemu, ale...
    To wszystko jest opóźnione jakby "w fazie" o jakieś 1-2 sekundy. Efekt podobny do
    tego jak panienka w studio TV zadaje pytanie reporterowi w terenie, a on to odbiera z
    kilkusekundowym opóźnieniem i dopiero zaczyna odpowiadać.

    Korzystam z drajwerów FTDI d2xx.dll. Co jest grane? Drajwery takie, czy ki pieron?

    Najgorsze, że w moim badziewiu taka sytuacja jest niedopuszczalna. Co radzicie? Może
    jakieś inne kostki USB, np. Cypressa, albo jakieś inne czarymary macie do
    zaproponowania?


  • 2. Data: 2015-03-20 14:18:55
    Temat: Re: Opóźnienie w transmisji USB
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik napisał w wiadomości grup
    >Prototypię obecnie takie urządzenie:
    >Wejście (sygnał analogowy zmodulowany AM/nośna 3-5MHz)=>Wzmacniacz
    >=>przetwornik A/C 12-bit/fs=20MHz
    >=>FPGA(demodulacja cyfrowa,decymacja i kompresja logarytmiczna do
    >8-bit)
    >=>interface USB(FT2232H)=>PC

    >Na pececie wyświetlam dane w postaci graficznej w czasie
    >rzeczywistym, więc używam trybu synchronicznego FIFO. Zapycha
    >30-40MB/s bez problemu, ale...
    >To wszystko jest opóźnione jakby "w fazie" o jakieś 1-2 sekundy.
    >Korzystam z drajwerów FTDI d2xx.dll. Co jest grane? Drajwery takie,
    >czy ki pieron?
    >Najgorsze, że w moim badziewiu taka sytuacja jest niedopuszczalna. Co
    >radzicie? Może jakieś inne kostki USB, np. Cypressa, albo jakieś inne
    >czarymary macie do zaproponowania?

    A predko tam ?
    Bo z tego co piszesz to gdzies po drodze mogloby byc 30-80MB
    zmagazynowane - a to na pewno nie FT2232, i pewnie nie w FPGA, tylko
    gdzies w komputerze.


    Na konwerterze RS-USB mozna sie chyba spodziewac opoznien o pare ms -
    raz, ze jesli dobrze udaja 16550, to staraja sie same zbuforowac
    troche znakow wejsciowych a nie meczyc systemu przerwaniami, dwa, ze
    USB w podstawowym trybie jest przegladane co 1ms ..

    J.


  • 3. Data: 2015-03-21 19:32:59
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu piątek, 20 marca 2015 14:19:06 UTC+1 użytkownik J.F. napisał:


    >
    > A predko tam ?
    > Bo z tego co piszesz to gdzies po drodze mogloby byc 30-80MB
    > zmagazynowane - a to na pewno nie FT2232, i pewnie nie w FPGA, tylko
    > gdzies w komputerze.

    No może nie aż tyle, bo cały mój "frame" zbierania danych to zaledwie 16KB.
    Z tych zaledwie 16KB muszę zrobić kupę postprocessingu i wyświetlić to jako wykres,
    obraz 2D, cokolwiek... Natomiast układ akwizycji może śmigać na 20MHz, ale cały
    "obraz" akwizycji mogę odebrać zgodnie z portokołem USB (1ms scheduling).
    Podejrzewam, że drajwery FTDI buforują dane na f=60MHz z sobie jedynie znanych
    powodów.

    >
    >
    > Na konwerterze RS-USB mozna sie chyba spodziewac opoznien o pare ms -
    > raz, ze jesli dobrze udaja 16550, to staraja sie same zbuforowac
    > troche znakow wejsciowych a nie meczyc systemu przerwaniami, dwa, ze
    > USB w podstawowym trybie jest przegladane co 1ms ..
    >

    A cóż to takiego "tryb podstawowy"? Nie ma nic takiego! Czy ja coś pisałem o
    konwerterze RS-USB? Chyba nie. Protokół USB to nie przerwania! Odpytuje jednak co 1ms
    chęć dostępu do urządzenia/transmisji. Jest to tzw. scheduled protocol, czy jak kto
    woli "planowany". W moim przypadku czas tworzenia kompletnego zestawu danych (16KB),
    to aż 60ms. Dodając do tego 1ms na "dobicie się" do transmisji mamy 61ms, co daje 16
    obrazów/s. Czas postprocessingu i samej transmisji jest pomijalny na byle jakim
    pececie. I faktycznie tak jest! Ale owego "przesunięcia fazowego" za cholerę nie
    rozumiem... Podejrzewam drajwery FTDI, a z tym już nic nie jestem w stanie
    nakombinować. Chyba trza będzie zastosować inne kostki. Tylko jakie, coby nie mieć
    tej samej checy ?




  • 4. Data: 2015-03-27 16:29:58
    Temat: Re: Opóźnienie w transmisji USB
    Od: Adam Górski <gorskiamalpawpkropkapeel_@xx>

    On 2015-03-21 19:32, s...@g...com wrote:
    > W dniu piątek, 20 marca 2015 14:19:06 UTC+1 użytkownik J.F. napisał:
    >
    >
    >>
    >> A predko tam ?
    >> Bo z tego co piszesz to gdzies po drodze mogloby byc 30-80MB
    >> zmagazynowane - a to na pewno nie FT2232, i pewnie nie w FPGA, tylko
    >> gdzies w komputerze.
    >
    > No może nie aż tyle, bo cały mój "frame" zbierania danych to zaledwie 16KB.
    > Z tych zaledwie 16KB muszę zrobić kupę postprocessingu i wyświetlić to jako wykres,
    obraz 2D, cokolwiek... Natomiast układ akwizycji może śmigać na 20MHz, ale cały
    "obraz" akwizycji mogę odebrać zgodnie z portokołem USB (1ms scheduling).
    Podejrzewam, że drajwery FTDI buforują dane na f=60MHz z sobie jedynie znanych
    powodów.
    >
    >>
    >>
    >> Na konwerterze RS-USB mozna sie chyba spodziewac opoznien o pare ms -
    >> raz, ze jesli dobrze udaja 16550, to staraja sie same zbuforowac
    >> troche znakow wejsciowych a nie meczyc systemu przerwaniami, dwa, ze
    >> USB w podstawowym trybie jest przegladane co 1ms ..
    >>
    >
    > A cóż to takiego "tryb podstawowy"? Nie ma nic takiego! Czy ja coś pisałem o
    konwerterze RS-USB? Chyba nie. Protokół USB to nie przerwania! Odpytuje jednak co 1ms
    chęć dostępu do urządzenia/transmisji. Jest to tzw. scheduled protocol, czy jak kto
    woli "planowany". W moim przypadku czas tworzenia kompletnego zestawu danych (16KB),
    to aż 60ms. Dodając do tego 1ms na "dobicie się" do transmisji mamy 61ms, co daje 16
    obrazów/s. Czas postprocessingu i samej transmisji jest pomijalny na byle jakim
    pececie. I faktycznie tak jest! Ale owego "przesunięcia fazowego" za cholerę nie
    rozumiem... Podejrzewam drajwery FTDI, a z tym już nic nie jestem w stanie
    nakombinować. Chyba trza będzie zastosować inne kostki. Tylko jakie, coby nie mieć
    tej samej checy ?
    >
    >
    >
    Czyli jeśli dobrze rozumiem robiąc np. "ping" PC->device->PC (albo
    device ->PC-> device ) dostajesz odpowiedź mierzoną w sekundach ? No
    to jakieś jaja by były.

    Gdybyś tak zechciał zmierzyć czas tego "ping" to coś by się dało
    powiedzieć. Dziwnie 16kB co 60ms i taka latencja ... hm dziwne.

    A jesteś pewien że z kostki na szynę wyłazi ? Podepnij może oscyloskop i
    zobacz.

    Adam


  • 5. Data: 2015-03-28 07:45:16
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu piątek, 27 marca 2015 16:30:06 UTC+1 użytkownik Adam Górski napisał:
    > On 2015-03-21 19:32, s...@g...com wrote:
    > > W dniu piątek, 20 marca 2015 14:19:06 UTC+1 użytkownik J.F. napisał:
    > >
    > >
    > >>
    > >> A predko tam ?
    > >> Bo z tego co piszesz to gdzies po drodze mogloby byc 30-80MB
    > >> zmagazynowane - a to na pewno nie FT2232, i pewnie nie w FPGA, tylko
    > >> gdzies w komputerze.
    > >
    > > No może nie aż tyle, bo cały mój "frame" zbierania danych to zaledwie 16KB.
    > > Z tych zaledwie 16KB muszę zrobić kupę postprocessingu i wyświetlić to jako
    wykres, obraz 2D, cokolwiek... Natomiast układ akwizycji może śmigać na 20MHz, ale
    cały "obraz" akwizycji mogę odebrać zgodnie z portokołem USB (1ms scheduling).
    Podejrzewam, że drajwery FTDI buforują dane na f=60MHz z sobie jedynie znanych
    powodów.
    > >
    > >>
    > >>
    > >> Na konwerterze RS-USB mozna sie chyba spodziewac opoznien o pare ms -
    > >> raz, ze jesli dobrze udaja 16550, to staraja sie same zbuforowac
    > >> troche znakow wejsciowych a nie meczyc systemu przerwaniami, dwa, ze
    > >> USB w podstawowym trybie jest przegladane co 1ms ..
    > >>
    > >
    > > A cóż to takiego "tryb podstawowy"? Nie ma nic takiego! Czy ja coś pisałem o
    konwerterze RS-USB? Chyba nie. Protokół USB to nie przerwania! Odpytuje jednak co 1ms
    chęć dostępu do urządzenia/transmisji. Jest to tzw. scheduled protocol, czy jak kto
    woli "planowany". W moim przypadku czas tworzenia kompletnego zestawu danych (16KB),
    to aż 60ms. Dodając do tego 1ms na "dobicie się" do transmisji mamy 61ms, co daje 16
    obrazów/s. Czas postprocessingu i samej transmisji jest pomijalny na byle jakim
    pececie. I faktycznie tak jest! Ale owego "przesunięcia fazowego" za cholerę nie
    rozumiem... Podejrzewam drajwery FTDI, a z tym już nic nie jestem w stanie
    nakombinować. Chyba trza będzie zastosować inne kostki. Tylko jakie, coby nie mieć
    tej samej checy ?
    > >
    > >
    > >
    > Czyli jeśli dobrze rozumiem robiąc np. "ping" PC->device->PC (albo
    > device ->PC-> device ) dostajesz odpowiedź mierzoną w sekundach ? No
    > to jakieś jaja by były.
    >
    > Gdybyś tak zechciał zmierzyć czas tego "ping" to coś by się dało
    > powiedzieć. Dziwnie 16kB co 60ms i taka latencja ... hm dziwne.
    >

    Źle mnie zrozumiałeś. 60ms to nie latencja, lecz czas akwizycji danych. Praw fizyki
    nie zmienię. Natomiast po zakończeniu akwizycji,
    transmisja+postprocessing+wyświetlenie tego na ekranie powinno być szybkie jak
    cholera, coby rozpocząć kolejny cykl akwizycji. I tak w koło Macieju...
    Czyli powinienem mieć jakieś 16 obrazów/s (1/60ms). I faktycznie tyle mam!
    Problem w tym, że jak warknę do swojego badziewia "Hallo", to owo badziewie czysto i
    wyraźnie mi odpowiada "Hallo", ale z opóźnieniem 1-2s. Ot takie "przesunięcie
    fazowe". Przeczytaj jeszcze raz główny wątek. Przykład panienki z TV chyba najlepiej
    to obrazuje.

    > A jesteś pewien że z kostki na szynę wyłazi ? Podepnij może oscyloskop i
    > zobacz.
    >
    Jakby nie wychodziło, to miałbym spaprane dane lub nie miałbym ich. Dane przychodzą
    jak najbardziej przewidywalne i poprawne.


  • 6. Data: 2015-03-28 08:40:06
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu sobota, 28 marca 2015 07:45:19 UTC+1 użytkownik s...@g...com napisał:
    > W dniu piątek, 27 marca 2015 16:30:06 UTC+1 użytkownik Adam Górski napisał:
    > > On 2015-03-21 19:32, s...@g...com wrote:
    > > > W dniu piątek, 20 marca 2015 14:19:06 UTC+1 użytkownik J.F. napisał:
    > > >
    > > >
    > > >>
    > > >> A predko tam ?
    > > >> Bo z tego co piszesz to gdzies po drodze mogloby byc 30-80MB
    > > >> zmagazynowane - a to na pewno nie FT2232, i pewnie nie w FPGA, tylko
    > > >> gdzies w komputerze.
    > > >
    > > > No może nie aż tyle, bo cały mój "frame" zbierania danych to zaledwie 16KB.
    > > > Z tych zaledwie 16KB muszę zrobić kupę postprocessingu i wyświetlić to jako
    wykres, obraz 2D, cokolwiek... Natomiast układ akwizycji może śmigać na 20MHz, ale
    cały "obraz" akwizycji mogę odebrać zgodnie z portokołem USB (1ms scheduling).
    Podejrzewam, że drajwery FTDI buforują dane na f=60MHz z sobie jedynie znanych
    powodów.
    > > >
    > > >>
    > > >>
    > > >> Na konwerterze RS-USB mozna sie chyba spodziewac opoznien o pare ms -
    > > >> raz, ze jesli dobrze udaja 16550, to staraja sie same zbuforowac
    > > >> troche znakow wejsciowych a nie meczyc systemu przerwaniami, dwa, ze
    > > >> USB w podstawowym trybie jest przegladane co 1ms ..
    > > >>
    > > >
    > > > A cóż to takiego "tryb podstawowy"? Nie ma nic takiego! Czy ja coś pisałem o
    konwerterze RS-USB? Chyba nie. Protokół USB to nie przerwania! Odpytuje jednak co 1ms
    chęć dostępu do urządzenia/transmisji. Jest to tzw. scheduled protocol, czy jak kto
    woli "planowany". W moim przypadku czas tworzenia kompletnego zestawu danych (16KB),
    to aż 60ms. Dodając do tego 1ms na "dobicie się" do transmisji mamy 61ms, co daje 16
    obrazów/s. Czas postprocessingu i samej transmisji jest pomijalny na byle jakim
    pececie. I faktycznie tak jest! Ale owego "przesunięcia fazowego" za cholerę nie
    rozumiem... Podejrzewam drajwery FTDI, a z tym już nic nie jestem w stanie
    nakombinować. Chyba trza będzie zastosować inne kostki. Tylko jakie, coby nie mieć
    tej samej checy ?
    > > >
    > > >
    > > >
    > > Czyli jeśli dobrze rozumiem robiąc np. "ping" PC->device->PC (albo
    > > device ->PC-> device ) dostajesz odpowiedź mierzoną w sekundach ? No
    > > to jakieś jaja by były.
    > >
    > > Gdybyś tak zechciał zmierzyć czas tego "ping" to coś by się dało
    > > powiedzieć. Dziwnie 16kB co 60ms i taka latencja ... hm dziwne.
    > >
    >
    > Źle mnie zrozumiałeś. 60ms to nie latencja, lecz czas akwizycji danych. Praw fizyki
    nie zmienię. Natomiast po zakończeniu akwizycji,
    transmisja+postprocessing+wyświetlenie tego na ekranie powinno być szybkie jak
    cholera, coby rozpocząć kolejny cykl akwizycji. I tak w koło Macieju...
    > Czyli powinienem mieć jakieś 16 obrazów/s (1/60ms). I faktycznie tyle mam!
    > Problem w tym, że jak warknę do swojego badziewia "Hallo", to owo badziewie czysto
    i wyraźnie mi odpowiada "Hallo", ale z opóźnieniem 1-2s. Ot takie "przesunięcie
    fazowe". Przeczytaj jeszcze raz główny wątek. Przykład panienki z TV chyba najlepiej
    to obrazuje.
    >

    Upsss... Chyba jednak mnie dobrze zrozumiałeś. To ja nie załapałem Twojej
    odpowiedzi. Wniosek: po wybudzeniu należy najpierw wypić kawę i dopiero wtedy czytać
    i odpowiadać.

    Ano masz rację!! To są jaja!! Podejrzewam, że drajwery FTDI są jakie są, buforują
    dane i wypluwają je zgodnie z jakąś tam kolejnością. Albo coś przeoczyłem w
    dokumentacji softwarowej, albo te drajwery są o kant poopy rozbić.

    Bo cały mój hardware już normalnie "oddycha".

    Aha!! Ciekawy przykład:

    1) Podpinam sygnał wejściowy do mojego badziewia.
    2) Na swoim sofcie klikam guzik "START". Pojawia się obraz po 1-2s, ale zasuwa dalej
    z prędkością ok. 16obr./s.
    3) Naciskam guzik "STOP" i odpinam sygnał wejściowy. Idę se zrobić kawę...
    4) Wracam, naciskam guzik "START" i jeszcze przez 1-2s widzę stare dane wejściowe na
    ekranie.


  • 7. Data: 2015-03-28 11:08:25
    Temat: Re: Opóźnienie w transmisji USB
    Od: Marek Borowski <m...@n...com>

    On 2015-03-28 08:40, s...@g...com wrote:
    > W dniu sobota, 28 marca 2015 07:45:19 UTC+1 użytkownik s...@g...com napisał:
    >> W dniu piątek, 27 marca 2015 16:30:06 UTC+1 użytkownik Adam Górski napisał:
    >>> On 2015-03-21 19:32, s...@g...com wrote:
    >>>> W dniu piątek, 20 marca 2015 14:19:06 UTC+1 użytkownik J.F. napisał:
    >>>>
    >>>>
    >>>>>
    >>>>> A predko tam ?
    >>>>> Bo z tego co piszesz to gdzies po drodze mogloby byc 30-80MB
    >>>>> zmagazynowane - a to na pewno nie FT2232, i pewnie nie w FPGA, tylko
    >>>>> gdzies w komputerze.
    >>>>
    >>>> No może nie aż tyle, bo cały mój "frame" zbierania danych to zaledwie 16KB.
    >>>> Z tych zaledwie 16KB muszę zrobić kupę postprocessingu i wyświetlić to jako
    wykres, obraz 2D, cokolwiek... Natomiast układ akwizycji może śmigać na 20MHz, ale
    cały "obraz" akwizycji mogę odebrać zgodnie z portokołem USB (1ms scheduling).
    Podejrzewam, że drajwery FTDI buforują dane na f=60MHz z sobie jedynie znanych
    powodów.
    >>>>
    >>>>>
    >>>>>
    >>>>> Na konwerterze RS-USB mozna sie chyba spodziewac opoznien o pare ms -
    >>>>> raz, ze jesli dobrze udaja 16550, to staraja sie same zbuforowac
    >>>>> troche znakow wejsciowych a nie meczyc systemu przerwaniami, dwa, ze
    >>>>> USB w podstawowym trybie jest przegladane co 1ms ..
    >>>>>
    >>>>
    >>>> A cóż to takiego "tryb podstawowy"? Nie ma nic takiego! Czy ja coś pisałem o
    konwerterze RS-USB? Chyba nie. Protokół USB to nie przerwania! Odpytuje jednak co 1ms
    chęć dostępu do urządzenia/transmisji. Jest to tzw. scheduled protocol, czy jak kto
    woli "planowany". W moim przypadku czas tworzenia kompletnego zestawu danych (16KB),
    to aż 60ms. Dodając do tego 1ms na "dobicie się" do transmisji mamy 61ms, co daje 16
    obrazów/s. Czas postprocessingu i samej transmisji jest pomijalny na byle jakim
    pececie. I faktycznie tak jest! Ale owego "przesunięcia fazowego" za cholerę nie
    rozumiem... Podejrzewam drajwery FTDI, a z tym już nic nie jestem w stanie
    nakombinować. Chyba trza będzie zastosować inne kostki. Tylko jakie, coby nie mieć
    tej samej checy ?
    >>>>
    >>>>
    >>>>
    >>> Czyli jeśli dobrze rozumiem robiąc np. "ping" PC->device->PC (albo
    >>> device ->PC-> device ) dostajesz odpowiedź mierzoną w sekundach ? No
    >>> to jakieś jaja by były.
    >>>
    >>> Gdybyś tak zechciał zmierzyć czas tego "ping" to coś by się dało
    >>> powiedzieć. Dziwnie 16kB co 60ms i taka latencja ... hm dziwne.
    >>>
    >>
    >> Źle mnie zrozumiałeś. 60ms to nie latencja, lecz czas akwizycji danych. Praw
    fizyki nie zmienię. Natomiast po zakończeniu akwizycji,
    transmisja+postprocessing+wyświetlenie tego na ekranie powinno być szybkie jak
    cholera, coby rozpocząć kolejny cykl akwizycji. I tak w koło Macieju...
    >> Czyli powinienem mieć jakieś 16 obrazów/s (1/60ms). I faktycznie tyle mam!
    >> Problem w tym, że jak warknę do swojego badziewia "Hallo", to owo badziewie czysto
    i wyraźnie mi odpowiada "Hallo", ale z opóźnieniem 1-2s. Ot takie "przesunięcie
    fazowe". Przeczytaj jeszcze raz główny wątek. Przykład panienki z TV chyba najlepiej
    to obrazuje.
    >>
    >
    > Upsss... Chyba jednak mnie dobrze zrozumiałeś. To ja nie załapałem Twojej
    odpowiedzi. Wniosek: po wybudzeniu należy najpierw wypić kawę i dopiero wtedy czytać
    i odpowiadać.
    >
    > Ano masz rację!! To są jaja!! Podejrzewam, że drajwery FTDI są jakie są, buforują
    dane i wypluwają je zgodnie z jakąś tam kolejnością. Albo coś przeoczyłem w
    dokumentacji softwarowej, albo te drajwery są o kant poopy rozbić.
    >
    > Bo cały mój hardware już normalnie "oddycha".
    >
    > Aha!! Ciekawy przykład:
    >
    > 1) Podpinam sygnał wejściowy do mojego badziewia.
    > 2) Na swoim sofcie klikam guzik "START". Pojawia się obraz po 1-2s, ale zasuwa
    dalej z prędkością ok. 16obr./s.
    > 3) Naciskam guzik "STOP" i odpinam sygnał wejściowy. Idę se zrobić kawę...
    > 4) Wracam, naciskam guzik "START" i jeszcze przez 1-2s widzę stare dane wejściowe
    na ekranie.
    >
    >
    A jak wygłada klient ? Ktos juz napisal, ze wygłada to na buforowanie
    danych, ktore nie są odbierane. Być może jest jakis antyvirus ktory ma
    interakcje w API z ktorego korzysta aplikacja.


    Pozdrawiam

    Marek


  • 8. Data: 2015-03-28 11:21:22
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu sobota, 28 marca 2015 11:08:30 UTC+1 użytkownik Marek Borowski napisał:
    > On 2015-03-28 08:40, s...@g...com wrote:
    > > W dniu sobota, 28 marca 2015 07:45:19 UTC+1 użytkownik s...@g...com napisał:
    > >> W dniu piątek, 27 marca 2015 16:30:06 UTC+1 użytkownik Adam Górski napisał:
    > >>> On 2015-03-21 19:32, s...@g...com wrote:
    > >>>> W dniu piątek, 20 marca 2015 14:19:06 UTC+1 użytkownik J.F. napisał:
    > >>>>
    > >>>>
    > >>>>>
    > >>>>> A predko tam ?
    > >>>>> Bo z tego co piszesz to gdzies po drodze mogloby byc 30-80MB
    > >>>>> zmagazynowane - a to na pewno nie FT2232, i pewnie nie w FPGA, tylko
    > >>>>> gdzies w komputerze.
    > >>>>
    > >>>> No może nie aż tyle, bo cały mój "frame" zbierania danych to zaledwie 16KB.
    > >>>> Z tych zaledwie 16KB muszę zrobić kupę postprocessingu i wyświetlić to jako
    wykres, obraz 2D, cokolwiek... Natomiast układ akwizycji może śmigać na 20MHz, ale
    cały "obraz" akwizycji mogę odebrać zgodnie z portokołem USB (1ms scheduling).
    Podejrzewam, że drajwery FTDI buforują dane na f=60MHz z sobie jedynie znanych
    powodów.
    > >>>>
    > >>>>>
    > >>>>>
    > >>>>> Na konwerterze RS-USB mozna sie chyba spodziewac opoznien o pare ms -
    > >>>>> raz, ze jesli dobrze udaja 16550, to staraja sie same zbuforowac
    > >>>>> troche znakow wejsciowych a nie meczyc systemu przerwaniami, dwa, ze
    > >>>>> USB w podstawowym trybie jest przegladane co 1ms ..
    > >>>>>
    > >>>>
    > >>>> A cóż to takiego "tryb podstawowy"? Nie ma nic takiego! Czy ja coś pisałem o
    konwerterze RS-USB? Chyba nie. Protokół USB to nie przerwania! Odpytuje jednak co 1ms
    chęć dostępu do urządzenia/transmisji. Jest to tzw. scheduled protocol, czy jak kto
    woli "planowany". W moim przypadku czas tworzenia kompletnego zestawu danych (16KB),
    to aż 60ms. Dodając do tego 1ms na "dobicie się" do transmisji mamy 61ms, co daje 16
    obrazów/s. Czas postprocessingu i samej transmisji jest pomijalny na byle jakim
    pececie. I faktycznie tak jest! Ale owego "przesunięcia fazowego" za cholerę nie
    rozumiem... Podejrzewam drajwery FTDI, a z tym już nic nie jestem w stanie
    nakombinować. Chyba trza będzie zastosować inne kostki. Tylko jakie, coby nie mieć
    tej samej checy ?
    > >>>>
    > >>>>
    > >>>>
    > >>> Czyli jeśli dobrze rozumiem robiąc np. "ping" PC->device->PC (albo
    > >>> device ->PC-> device ) dostajesz odpowiedź mierzoną w sekundach ? No
    > >>> to jakieś jaja by były.
    > >>>
    > >>> Gdybyś tak zechciał zmierzyć czas tego "ping" to coś by się dało
    > >>> powiedzieć. Dziwnie 16kB co 60ms i taka latencja ... hm dziwne.
    > >>>
    > >>
    > >> Źle mnie zrozumiałeś. 60ms to nie latencja, lecz czas akwizycji danych. Praw
    fizyki nie zmienię. Natomiast po zakończeniu akwizycji,
    transmisja+postprocessing+wyświetlenie tego na ekranie powinno być szybkie jak
    cholera, coby rozpocząć kolejny cykl akwizycji. I tak w koło Macieju...
    > >> Czyli powinienem mieć jakieś 16 obrazów/s (1/60ms). I faktycznie tyle mam!
    > >> Problem w tym, że jak warknę do swojego badziewia "Hallo", to owo badziewie
    czysto i wyraźnie mi odpowiada "Hallo", ale z opóźnieniem 1-2s. Ot takie
    "przesunięcie fazowe". Przeczytaj jeszcze raz główny wątek. Przykład panienki z TV
    chyba najlepiej to obrazuje.
    > >>
    > >
    > > Upsss... Chyba jednak mnie dobrze zrozumiałeś. To ja nie załapałem Twojej
    odpowiedzi. Wniosek: po wybudzeniu należy najpierw wypić kawę i dopiero wtedy czytać
    i odpowiadać.
    > >
    > > Ano masz rację!! To są jaja!! Podejrzewam, że drajwery FTDI są jakie są,
    buforują dane i wypluwają je zgodnie z jakąś tam kolejnością. Albo coś przeoczyłem w
    dokumentacji softwarowej, albo te drajwery są o kant poopy rozbić.
    > >
    > > Bo cały mój hardware już normalnie "oddycha".
    > >
    > > Aha!! Ciekawy przykład:
    > >
    > > 1) Podpinam sygnał wejściowy do mojego badziewia.
    > > 2) Na swoim sofcie klikam guzik "START". Pojawia się obraz po 1-2s, ale zasuwa
    dalej z prędkością ok. 16obr./s.
    > > 3) Naciskam guzik "STOP" i odpinam sygnał wejściowy. Idę se zrobić kawę...
    > > 4) Wracam, naciskam guzik "START" i jeszcze przez 1-2s widzę stare dane wejściowe
    na ekranie.
    > >
    > >
    > A jak wygłada klient ? Ktos juz napisal, ze wygłada to na buforowanie
    > danych, ktore nie są odbierane. Być może jest jakis antyvirus ktory ma
    > interakcje w API z ktorego korzysta aplikacja.
    >
    Sprawdzę jutro na CZYSTYM kompie/dysku. Dzięki za info!


  • 9. Data: 2015-03-28 18:59:10
    Temat: Re: Opóźnienie w transmisji USB
    Od: Mario <m...@...pl>

    W dniu 2015-03-28 o 11:21, s...@g...com pisze:

    >>>
    >>> 1) Podpinam sygnał wejściowy do mojego badziewia.
    >>> 2) Na swoim sofcie klikam guzik "START". Pojawia się obraz po 1-2s, ale zasuwa
    dalej z prędkością ok. 16obr./s.
    >>> 3) Naciskam guzik "STOP" i odpinam sygnał wejściowy. Idę se zrobić kawę...
    >>> 4) Wracam, naciskam guzik "START" i jeszcze przez 1-2s widzę stare dane wejściowe
    na ekranie.
    >>>
    >> >
    >> A jak wygłada klient ? Ktos juz napisal, ze wygłada to na buforowanie
    >> danych, ktore nie są odbierane. Być może jest jakis antyvirus ktory ma
    >> interakcje w API z ktorego korzysta aplikacja.
    >>
    > Sprawdzę jutro na CZYSTYM kompie/dysku. Dzięki za info!
    >

    Sprawdź na kompie ze sprzętowym UARTem.

    --
    pozdrawiam
    MD


  • 10. Data: 2015-03-28 22:47:37
    Temat: Re: Opóźnienie w transmisji USB
    Od: s...@g...com

    W dniu sobota, 28 marca 2015 18:59:14 UTC+1 użytkownik Mario napisał:
    > W dniu 2015-03-28 o 11:21, s...@g...com pisze:
    >
    > >>>
    > >>> 1) Podpinam sygnał wejściowy do mojego badziewia.
    > >>> 2) Na swoim sofcie klikam guzik "START". Pojawia się obraz po 1-2s, ale zasuwa
    dalej z prędkością ok. 16obr./s.
    > >>> 3) Naciskam guzik "STOP" i odpinam sygnał wejściowy. Idę se zrobić kawę...
    > >>> 4) Wracam, naciskam guzik "START" i jeszcze przez 1-2s widzę stare dane
    wejściowe na ekranie.
    > >>>
    > >> >
    > >> A jak wygłada klient ? Ktos juz napisal, ze wygłada to na buforowanie
    > >> danych, ktore nie są odbierane. Być może jest jakis antyvirus ktory ma
    > >> interakcje w API z ktorego korzysta aplikacja.
    > >>
    > > Sprawdzę jutro na CZYSTYM kompie/dysku. Dzięki za info!
    > >
    >
    > Sprawdź na kompie ze sprzętowym UARTem.
    >

    To nic nie da w chwili obecnej, bo korzystam z trybu synchronicznego. Nie mniej
    jednak mogę zrobić czarymary w FPGA i zaimplementować tryb asynchroniczny. Tylko
    najpierw muszę poczytać jaka jest prędkość transmisji i czy w ogóle ma to sens. Bo
    np. w trybie "processor bus emulation mode" prędkość transmisji po USB, to zaledwie
    8KB/s, co dawałoby mi 1 obraz/2s. Ale przynajmniej w tym trybie nie ma żadnej
    latencji.Empirycznie sprawdzone. Szczerze powiedziawszy, ta kostka FT2232H zaczyna
    mnie już wku...ć. Razem z jej drajwerami. Kręcę się w tym temacie już zbyt długo. Jak
    g.... w przerębli.

strony : [ 1 ] . 2 ... 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: