Czytałem sondę zakresu USB - prośbę o komentarze i pomysły , i to sprawiło, że pomyślałem. To, co naprawdę chciałbym, to bardzo wydajny oscyloskop, który kosztowałby około 10000 USD. Z pewnością wielu innych też by tego chciał. I z pewnością, dzięki wiedzy dostępnej na tej stronie, powinno być możliwe zaprojektowanie i open-source.
Oto mój pomysł:
- Byłaby to ręczna sonda z wychodzącym przewodem USB.
- Zasilanie bateryjne w celu odizolowania go od zasilania USB.
- Stopień wejściowy to szybki wzmacniacz operacyjny , taki jak THS3201DBVT ?
- ADC przypomina coś w rodzaju ASD5010 , który ma przepustowość wejściową 1 Gs / si 650 MHz.
- FPGA do obsługi wychodzących danych 32-bitowych, uruchom wyzwalanie i spakuj je na USB.
- Oprogramowanie typu open source do uruchomienia na komputerze PC.
Czy to jest głupota? czego mi brakuje?
Dodano więcej szczegółów w odpowiedzi na odpowiedzi:
- Ten zakres nie byłby w stanie konkurować z fantazyjnymi drogimi celownikami. Głównym celem jest posiadanie czegoś, co pozwoliłoby badać sygnały o dużej prędkości, a koszt wytworzenia przez kogoś mniej niż 200 USD.
- Przepustowość USB: To nie jest zakres analogowy ani fantazyjny LeCroy . Jednak USB jest w stanie przesłać 2k próbek przy 60 Hz. To wciąż czyni go niezwykle użytecznym, chociaż może nie być w stanie uchwycić przejściowych zdarzeń pomiędzy tymi ramkami.
- Wyraźny, responsywny wyświetlacz. Cóż, monitor komputera jest z pewnością czysty. Lepszy niż prawie wszystkie lunety na rynku. Tak więc przejrzystość i rozmiar nie stanowią problemu. Czuły? Tak długo, jak ekran można aktualizować przy częstotliwości 60 Hz, myślę, że jest to dość responsywne.
- Wyzwalanie: wyobrażałem sobie proste wyzwalanie poziomu na urządzeniu. Ponownie nie będzie w stanie konkurować z fantazyjnymi zakresami, ale pamiętaj: to ma być urządzenie o wartości 200 USD.
- To nie powinno mieć przepustowości 1 GHz. Gdzie to powiedziałem? Ale na pewno może mieć przepustowość ponad 100 MHz?
Zabierz punkty do domu:
- To urządzenie za 200 USD.
- Głównym celem urządzenia jest umożliwienie oglądania sygnałów wysokiej prędkości bez wydawania 10000 USD.
- Byłoby wiele rzeczy, których nie byłby w stanie zrobić.
- Z pewnością coś takiego przydałoby się tutaj ludziom.
- Z pewnością dzięki wiedzy dostępnej na tej stronie możemy to zrobić?
usb
oscilloscope
high-frequency
Rocketmagnet
źródło
źródło
Odpowiedzi:
Sprowadza się to do kwestii przepustowości i opóźnień. Dla prostego systemu załóżmy jedną sondę o szerokości 100 MHz z częstotliwością próbkowania 1GS / s i 10-bitowym przetwornikiem A / D (miałem złe doświadczenia z 8-bitowymi zakresami).
Chcę wyświetlać w czasie rzeczywistym na komputerze PC z minimalnym oknem próbkowania, powiedzmy 10ns - 1 cykl fali sinusoidalnej 100 MHz i maksymalnym oknem (będę hojny dla ciebie w tym momencie) pół sekundy. Innymi słowy, najniższe ustawienie czasu będzie takie jak 1ns / div, a najwyższe to .05s / div. Chcę też kilka trybów napięcia - powiedzmy, zakres 100 mV do 20 V.
Jakiego rodzaju szybkości przesyłania danych to dotyczy?
1 Gs / s * 10 bitów / próbka = 10 Gbit / s
To nie są prędkości USB. Daleko stąd. I nawet nie wziąłem pod uwagę kosztów ogólnych. Po pierwsze, po prostu nie masz przepustowości. I to nie tylko przepustowość. Aby wyświetlać w czasie rzeczywistym, musisz być spójny. Musisz przenieść 100 bitów do warstwy aplikacji co 10 nano sekund. Tego rodzaju spójności nie można uzyskać z USB. Nie jest przeznaczony do obsługi jednego urządzenia o ekstrawaganckich wymaganiach - jest zaprojektowany jako autobus. Nie możesz kontrolować, kiedy jesteś właścicielem magistrali - urządzenia są tylko niewolnikami. Jeśli host pozwala innemu urządzeniu mówić, kiedy trzeba wysłać dane, dane zostaną utracone.
Możliwe, że płaczesz - po co przesyłać dane w czasie rzeczywistym do komputera, gdy „czas rzeczywisty” dla danej osoby wynosi 60 Hz? Jeśli wszystko, co musisz zrobić, to zaktualizować wyświetlacz, na pewno nie potrzebujesz tak dużo danych. Z wyjątkiem tego, że robisz - wyświetlacz jest liniową kombinacją wszystkich zebranych próbek. Uśredniona, przybliżona do średniej kwadratowej interpolacja splajnu sześciennego - to nie ma znaczenia. Aby stworzyć ładny, ładny wyświetlacz, który nie jest tylko zbiorem kropek, potrzebujesz wszystkich tych danych i musisz je przetworzyć. Jakieś wyzwalanie? Obliczenia należy wykonać na hoście - w warstwie aplikacji. Bez względu na to, w jaki sposób możesz to pokroić, w przypadku wyświetlania w czasie rzeczywistym z szybkością 1 GS / s dla dowolnej dokładności wartej cholery, musisz przesyłać rzędy wielkości więcej danych niż USB może obsłużyć i musisz to robić bardziej niezawodnie niż „
Jakie są na to sposoby? Nie rób wyświetlania w czasie rzeczywistym. Niektóre zakresy USB oferują tylko tryby wyzwalania. Wyzwalanie jest obsługiwane na urządzeniu, a po znalezieniu wyzwalacza dane są gromadzone w buforze. Gdy bufor się zapełni, zakres USB powoli przenosi go do aplikacji, a następnie aplikacja wyświetla. To wystarcza do wielu zastosowań zakresu, ale nie jest to w czasie rzeczywistym. I transfer - to też zajmuje trochę czasu. To niewygodne. I zwykle kierowcy są do dupy. Możesz powiedzieć, że miałem złe doświadczenia.
Zawsze zastanawiałem się, dlaczego Firewire nie był używany do celowników. Pozwala to uniknąć niektórych problemów związanych z USB. Jest peer-to-peer, oferuje tryby izochroniczne (spójne taktowanie) i ma stosunkowo dużą przepustowość. Dzięki temu możesz być w stanie wykonać zakres czasu rzeczywistego 10 MHz.
Aby zająć się punktami po edycji:
Użyteczność lunety ogromnie wzrasta wraz z ceną. Po przejściu z lunety USB o wartości 200 USD na samodzielną nawet 500 USD otrzymasz olbrzymi wzrost funkcji i podstawowej funkcjonalności. Po co wydawać zaledwie 200 USD, skoro za trochę więcej można uzyskać prawdziwy zasięg? Teraz, gdy Chiny otworzyły wrota tanich, skutecznych lunet, nie ma powodu, aby chcieć zaoszczędzić 300 USD, co tylko frustruje cię później. „Fantazyjne” lunety posiadające te funkcje są obecnie tanie.
Tak, ograniczenie transferu danych, aby zapewnić tylko spójne dane o wartości około 60 Hz, będzie łatwiejsze dzięki USB, ale nadal nie jest to coś, co chcesz zrobić. Nie zapomnij o swoich klasach DSP - tylko pobieranie określonych danych ze strumienia sprowadza się do zdziesiątkowania. Po zdziesiątkowaniu musisz dodać filtry antyaliasingu. Kiedy to robisz, tracisz przepustowość. To sprawia, że twój zakres jest mniej przydatny - ograniczy twoje pasmo na wyświetlaczu w czasie rzeczywistym (i tylko w czasie rzeczywistym - tryby uruchomione byłyby w porządku) do znacznie mniejszej niż przepustowość twojego analogowego interfejsu. Zarządzanie aspektami przetwarzania sygnału oscyloskopu to trudna sprawa.
Wyraźny responsywny wyświetlacz? PC? Nie konsekwentnie. Niezależnie od tego, jak to robisz, musisz buforować dane. Jak powiedziałem wcześniej, USB nie gwarantuje, że Twoje dane zostaną przesłane. Powiem inaczej: USB nie jest przystosowane do twardego przesyłania danych w czasie rzeczywistym. Jasne, w przypadku wystarczająco małych ilości danych w dużych odstępach czasu możesz uzyskać dobrą wydajność, ale nie stałą wydajność. Użyjesz buforowania i raz na jakiś czas BĘDZIESZ spóźniał się z przesłaniem bufora w odpowiednim czasie. Następnie ekran przeskakuje, dane są nieaktualne itp. Itp. Przejrzyste i responsywne wyświetlacze w czasie rzeczywistym wymagają twardych łączy danych w czasie rzeczywistym, kropka.
Proste wyzwalanie - znów wracamy do kosztu vs. złożoności vs. responsywności. Aby uruchomić urządzenie w celu wykrycia stanów nieustalonych, urządzenie nie może być po prostu głupim potokiem danych, który nieodpowiedzialnie przesyła próbki przez USB. Musisz buforować, buforować, buforować próbki na urządzeniudopóki nie zobaczysz warunku wyzwalania. Oznacza to, że potrzebujesz pamięci i inteligencji urządzenia - dużego FPGA lub dużego mikrokontrolera. To zwiększa rozmiar i przestrzeń. Jeśli używasz FPGA, musisz zrównoważyć ilość logiki wyzwalania z potrzebą dużej ilości pamięci RAM na miejsce w buforze. Twój bufor jest mniejszy, niż byś chciał. Oznacza to, że masz niewielką ilość danych wokół punktu wyzwalania. Chyba że dodasz pamięć zewnętrzną - możesz zrobić więcej. To jednak zwiększa rozmiar i koszt urządzenia - z pewnością nie będzie to tylko sonda z podłączonym do niej kablem USB.
Miałbyś szczęście uzyskać przepustowość 100 MHz - zwykle 10 razy częstotliwość próbkowania jest uważana za minimalną wartość graniczną dla przepustowości. Więc jeśli masz częstotliwość próbkowania 1GS / s, która ledwo daje ci przepustowość 100 MHz. Nie można uzyskać więcej - fala prostokątna 200 MHz będzie wyglądać jak fala sinusoidalna 200 MHz. To jest do bani. To głupie - nie jest to poziom profesjonalny.
Twój inny zestaw punktów:
Żyjesz i umierasz na swoim sprzęcie testowym jako inżynier. Jeśli nie jesteś pewien, możesz mu zaufać, marnujesz swój czas. Biorąc pod uwagę brak ekspertyzy na temat szybkiej komunikacji, przetwarzania sygnałów i mocy wbudowanego przetwarzania (w układach FPGA lub mikrokontrolerach), nie postawiłbym na to, że sam to zaprojektujesz i nikt inny, kto udzielił odpowiedzi, jest niczym inne niż ambiwalentne.
Gdyby istniał lepiej ukierunkowany zestaw wymagań, które zaspokajałyby rzeczywistą potrzebę w społeczności, która nie została zaspokojona, to dostrzegłbym technicznie wykonalność, byłbym na pokładzie. Ale twoje niejasne wymagania nie wydają się zbadane. Musisz zrobić przegląd dostępnych opcji dla hobbystów - jakie lunety USB i standalony używają ludzie, jakie są ich mocne i słabe strony, i ustal, czy jakieś nisze nie są wypełnione. W przeciwnym razie to tylko fantazjowanie.
źródło
Nie chciałbyś, aby był to ręczny format sondy, ponieważ zakres pojedynczego kanału nie jest zbyt przydatny. Dodatkowy koszt 2 kanałów (nawet jeśli zmiksujesz ADC) to niewielki procent dodatkowego kosztu, ale ogromny wzrost użyteczności.
O ile nie chcesz pobierać więcej niż 500 mA, nie ma powodu, aby używać baterii, ponieważ możesz mieć izolowany konwerter DC-DC. Jednak uzyskanie wysokiej przepustowości przez barierę izolacyjną nie jest łatwe.
źródło
Jest tu kilka problemów. Jeśli weźmiemy jako nasz wzorzec odniesienia zakres analogowy 1GHz (jak dobry Tektronix), wówczas proponowany zakres będzie ucierpiał w następujący sposób:
1) ASD5010 jest 8-bitowym konwerterem. 8 bitów nie wystarczy, aby móc konkurować z dobrym zakresem analogowym.
2) Nie myl częstotliwości próbkowania z pasmem analogowym. W przypadku wybranego układu równoważna szerokość pasma analogowego prawdopodobnie byłaby znacznie bliższa 100 MHz niż 1 GHz.
Nie oznacza to, że nie można zbudować takiego zakresu, można wyraźnie kupić taki spełniający wymagania komercyjne. Osiągnięcie przepustowości 1 GHz nie jest trywialne, a wymagane będą specjalne rozwiązania techniczne i lepsze części.
źródło
8-bitowe przetworniki ADC są dość powszechne w oscyloskopach, jednak technika ich używania jest nieco inna. Jak widziałem niektóre wewnętrzne podzespoły, częstym przypadkiem jest użycie 4 układów ADC, każdy z taktowaniem z przyrostem fazowym 90 stopni, więc otrzymujesz 4x próbki na jeden cykl zegara i dlatego częstotliwość clk jest dość niska, ale przepustowość danych jest wysoko. W każdym razie taki projekt skończy się większym marnotrawstwem pieniędzy niż zakupem nowego zakresu :-) Jednak może to być dobra praktyka do samodzielnego uczenia się. OTOH, pomyśl o analogowej stronie zakresu. Ta część jest cholernie trudna i bardzo trudna do wykonania.
źródło
Inne sprawy:
ochrona : na pewno nie chcesz, aby przerwała pierwszy raz, gdy błędnie podłączyłeś 20-30 V do wejścia;
kalibracja : nawet przy 8-bitowej dokładności nadal musisz kontrolować błąd w zakresie 1/256 = 0,4% ogółem; nie jest trywialny w przypadku standardowych komponentów;
filtrowanie szumów : musi być ekranowane i filtrowane, a to nie wystarczy, ponieważ FPGA prawdopodobnie będzie generować szum, więc musisz oddzielić domenę analogową i cyfrową.
W każdym razie, jeśli chodzi o połączenie USB, myślę, że bardziej funkcjonalne jest przetwarzanie danych wewnętrznie i podłączanie ich bezpośrednio do wyświetlacza.
źródło