Chcę zbudować oscyloskop USB. Czytałem o różnych typach transferu USB . Jaki rodzaj transferu najlepiej przenieść zebrane próbki ADC z oscyloskopu USB na komputer?
Poniżej kilka moich ustaleń. Proszę mnie poprawić, a także byłoby dobrze, gdyby ktokolwiek mógł zasugerować dobry typ transferu.
- Transfer izochroniczny - możliwa utrata danych. Nie jest to dobre dla oscyloskopu, ponieważ każdy element danych jest cenny. Ile danych można utracić?
- Tryb przerwania - nie mam pojęcia, czy spowoduje to zalanie połączenia USB
- Tryb zbiorczy - wydaje mi się najlepszy, ponieważ nie ma utraty danych
- Transfer kontrolny - nieodpowiedni, ponieważ nie jest przeznaczony do przesyłania danych
usb
oscilloscope
robomon
źródło
źródło
Odpowiedzi:
Przesyłanie zbiorcze nie powoduje utraty danych, ale nie ma gwarantowanej minimalnej przepustowości. (Z drugiej strony mogą osiągać wyższe prędkości, ponieważ są w stanie wykorzystać całą szerokość pasma, która nie jest faktycznie wykorzystywana przez żadne inne transfery).
Co się stanie, gdy transfery danych Twojego oscyloskopu zostaną opóźnione (z powodu błędów lub z powodu innych urządzeń), a nowe dane się gromadzą? Czy zatrzymujesz urządzenie, dopóki stare dane nie zostaną przesłane, czy wyrzucasz stare dane, aby móc przesyłać bieżące dane?
Transfery izochroniczne są zaprojektowane dla danych „w czasie rzeczywistym”. Nie masz wyboru odnośnie obsługi błędów, ale twoja przepustowość jest zarezerwowana na magistrali.
źródło
Pytanie jest prawie całkowicie niezależne od twojego zastosowania jako oscyloskopu i jest całkowicie regulowane przez rodzaje komunikacji, o które pytasz USB. Na przykład:
Gdy dowiesz się, jaki rodzaj przesyłanych danych oraz warunki jakości usługi (QoS), na podstawie których dane muszą dotrzeć, możesz zdecydować, który mechanizm transferu USB zrobić. Będziesz wiedział, że jesteś gotowy podjąć te decyzje, gdy słowo „oscyloskop” nie jest już wymagane do opisania potrzebnych danych i QoS. Wtedy wiesz, że jest wystarczająco obiektywny, aby zacząć rozwiązywać te problemy.
źródło
W przypadku oscyloskopu przepustowość transferu jest parametrem, który chcesz zmaksymalizować. Przesyłanie masowe zostało zaprojektowane specjalnie z myślą o dużej przepustowości, więc jest to właściwy wybór. Chociaż transfery izochroniczne i przerywające ograniczają opóźnienia, są one przeznaczone tylko dla strumieni danych o niskiej i średniej przepustowości.
źródło
Po prostu użyj przelewów masowych. Oscyloskop nie jest tak naprawdę urządzeniem o dużej szybkości przesyłania danych. O ile nie planujesz wykonać cyfrowego projektu typu luminofor, oscyloskop jest tak naprawdę tylko oknem na bardzo małą część kształtu fali. Załóżmy na przykład, że chcesz wyświetlić 1000 poziomych pikseli i odświeżyć ekran przy częstotliwości około 30 Hz. Jeśli próbki są 8-bitowe (jest to typowe) i istnieją dwa kanały, patrzysz tylko na 60 000 bajtów / sekundę. Pełna prędkość USB może wykonać około 1 000 000 bajtów / s, więc zużywasz mniej niż 6% przepustowości magistrali. Daje to dużo czasu, aby pozwolić trybowi przesyłania zbiorczego wykonać swoje zadanie (skorygować błędy, obejść inny ruch autobusowy) i jest mało prawdopodobne, że kiedykolwiek napotkasz rzeczywistą konfigurację magistrali, która nie będzie w stanie przydzielić ci wystarczającej przepustowości za tak dużo danych.
źródło