Я читал USB Scope probe — запрос на комментарии и идеи , и это заставило меня задуматься. Чего бы я действительно хотел, так это осциллографа с очень высокими характеристиками, который стоил бы около 10 000 долларов. Наверняка многие другие люди тоже хотели бы такой. И, конечно же, с опытом, доступным на этом сайте, должно быть возможно разработать и открыть исходный код.
Вот моя идея:
Это дурацкая затея? Что мне не хватает?
Добавлено, более подробная информация в ответ на ответы:
Забрать домой очки:
Это сводится к вопросу о пропускной способности и задержке. Для простой системы предположим один датчик с полосой пропускания 100 МГц, частотой дискретизации 1 Гвыб/с и 10-битным АЦП (у меня был неудачный опыт работы с 8-битными осциллографами).
Я хочу, чтобы на ПК отображалось изображение в реальном времени с минимальным окном выборки, скажем, 10 нс — 1 цикл синусоидальной волны 100 МГц и максимальным окном (я буду щедр к вам в этом) полсекунды. Другими словами, минимальное значение времени будет примерно 1 нс/дел, а максимальное — 0,05 с/дел. Я также хочу несколько режимов напряжения - диапазон от 100 мВ до 20 В, скажем.
О каких скоростях передачи данных идет речь?
1 Гбит/с * 10 бит/выборка = 10 Гбит/с
Это не скорости USB. Отнюдь не. И я даже не принял во внимание накладные расходы. Во-первых, у вас просто нет пропускной способности. И дело не только в пропускной способности. Для вашего отображения в реальном времени вы должны быть последовательными. Вам нужно передавать 100 бит на прикладной уровень каждые 10 наносекунд. Такой согласованности не может быть с USB. Он не предназначен для обслуживания одного устройства с экстравагантными требованиями — он разработан как шина. И вы не можете контролировать, когда вы владеете шиной — устройства просто ведомые. Если хост позволяет другому устройству говорить, когда вам нужно отправить данные, ваши данные будут потеряны.
Возможно, вы возмущаетесь — зачем передавать данные в реальном времени на компьютер, когда «реальное время» для человека составляет 60 Гц? Если все, что вам нужно сделать, это обновить дисплей, вам, конечно, не нужно столько данных. За исключением вас — ваш дисплей представляет собой некую линейную комбинацию всех собранных вами образцов. Усредненная, аппроксимированная методом наименьших квадратов, интерполяция кубическим сплайном - это не имеет значения. Чтобы сделать красивое изображение, а не просто набор точек, вам понадобится большая часть всех этих данных, и вам нужно будет их постобработать. Любое срабатывание? Расчеты должны выполняться на хосте — на прикладном уровне. Независимо от того, как вы его нарезаете, для отображения в реальном времени со скоростью 1 Гвыб/с и любой ценой точности вам придется передавать на порядки больше данных, чем может обработать USB, и вы должны делать это более надежно, чем вы.
Каковы способы обойти это? Не делайте отображение в реальном времени. Некоторые осциллографы USB предлагают только триггерные режимы. Триггер обрабатывается на устройстве, и когда триггер найден, данные собираются в буфере. Когда буфер заполняется, USB-прицел медленно передает его приложению, а затем приложение отображает его. Этого достаточно для большого количества областей применения, но это не в реальном времени. И перевод - это тоже требует времени. Это неудобно. И обычно водители хреновые. Вы можете сказать, что у меня был плохой опыт.
Я всегда задавался вопросом, почему Firewire не использовался для прицелов. Это позволяет избежать некоторых головных болей USB. Это одноранговая сеть, предлагает изохронные (согласованные по времени) режимы и имеет относительно высокую пропускную способность. Возможно, вы сможете сделать 10-мегагерцовый прицел в реальном времени или около того.
Чтобы решить ваши вопросы после редактирования:
Удобство использования прицела значительно возрастает с ценой. Когда вы совершаете переход от USB-прицела за 200 долларов даже к отдельному прицелу за 500 долларов, вы получаете огромное увеличение возможностей и базовой функциональности. Зачем тратить всего 200 долларов, если за немного больше можно получить настоящий прицел? Теперь, когда Китай открыл шлюзы дешевых, эффективных прицелов, нет особых причин хотеть сэкономить 300 долларов, которые потом просто разочаруют вас. «Навороченные» прицелы с такими характеристиками сегодня стоят дешево.
Да, ограничение передачи данных только для предоставления согласованных данных с частотой около 60 Гц будет проще с USB, но это все же не то, что вы хотите делать. Не забывайте о своих классах DSP - только захват определенных данных из потока равнозначен прореживанию. Когда вы прореживаете, вы должны добавить фильтры сглаживания. Когда вы это делаете, вы теряете пропускную способность. Это делает ваш прицел менее полезным - он ограничит вашу пропускную способность на дисплее в реальном времени (и только для реального времени - триггерные режимы будут в порядке) намного меньше, чем пропускная способность вашего аналогового внешнего интерфейса. Управление аспектами обработки сигналов осциллографа — сложная задача.
Четкий отзывчивый дисплей? ПК? Не последовательно. Независимо от того, как вы это делаете, вам необходимо буферизовать данные. Как я уже говорил, USB не гарантирует, когда ваши данные будут доставлены. Скажу по-другому: USB не предназначен для жесткой передачи данных в реальном времени. Конечно, для достаточно небольших объемов данных с большими интервалами вы можете получить хорошую производительность, но не стабильную производительность. Вы будете использовать буферизацию и время от времени будете пропускать своевременную передачу буфера. Затем ваш дисплей пропускает, данные устаревают и т. д. и т. д. Четкие и отзывчивые дисплеи в реальном времени требуют жестких ссылок на данные в реальном времени, и точка.
Простой запуск — опять же, мы возвращаемся к стоимости, сложности и скорости отклика. Чтобы выполнять запуск на устройстве для обнаружения переходных процессов, ваше устройство не может быть просто тупым каналом данных, который безответственно передает образцы через USB. Вы должны буферизовать, буферизовать, буферизовать сэмплы на устройствепока вы не увидите свое условие триггера. Это означает, что вам нужна память и интеллект на вашем устройстве — либо большой FPGA, либо большой микроконтроллер. Это увеличивает размер и пространство. Если вы используете FPGA, вы должны сбалансировать количество логики запуска с вашей потребностью в большом количестве оперативной памяти для буферного пространства. Таким образом, ваш буфер меньше, чем вам хотелось бы. Это означает, что вы получаете незначительное количество данных вокруг вашей триггерной точки. Разве что внешнюю память добавить - тогда можно и больше. Однако это увеличивает размер и стоимость вашего устройства — это, конечно, не будет просто датчик с подключенным к нему USB-кабелем.
Вам повезет, если вы получите полосу пропускания 100 МГц — обычно 10-кратная частота дискретизации считается минимальным ограничением пропускной способности. Так что, если у вас частота дискретизации 1 Гвыб/с, едва ли вы получите полосу пропускания 100 МГц. Вы не можете получить больше - прямоугольная волна 200 МГц будет выглядеть как синусоида 200 МГц. Это отстой. Это глупо - это далеко не профессиональный уровень.
Ваш другой набор очков:
Вы живете и умираете своим испытательным оборудованием как инженер. Если вы не уверены, что можете доверять этому, вы тратите свое время. Учитывая отсутствие опыта, который вы продемонстрировали в области высокоскоростной связи, обработки сигналов и мощности встроенной обработки (в FPGA или микроконтроллерах), я бы не стал держать пари, что вы сами разработаете это, и никто другой, кто ответил, ничего кроме амбивалентного.
Если бы существовал более целенаправленный набор требований, отвечающих реальным потребностям сообщества, которые не были удовлетворены, и я мог бы видеть их технически выполнимыми, я был бы на борту. Но ваши расплывчатые требования не кажутся изученными. Вам нужно провести обзор доступных вариантов для любителей — какие USB-прицелы и автономные устройства используют люди, каковы их сильные и слабые стороны, и определить, не заполнены ли какие-либо ниши. В противном случае это просто фантазии.
Вы бы не хотели, чтобы он был в формате ручного зонда, так как одноканальный осциллограф не очень полезен. Дополнительные затраты на 2 канала (даже если вы мультиплексируете АЦП) составляют небольшой процент дополнительных затрат, но огромное увеличение полезности.
Если вы не хотите потреблять более 500 мА, нет причин использовать батарею, поскольку у вас может быть изолированный преобразователь постоянного тока. Однако получение высокой пропускной способности через изолирующий барьер нетривиально.
Ну, здесь есть пара проблем. Если мы возьмем в качестве эталона аналоговый осциллограф с частотой 1 ГГц (например, хороший Tektronix), то предлагаемый осциллограф пострадает следующим образом:
1) ASD5010 — 8-битный преобразователь. 8 бит недостаточно, чтобы конкурировать с хорошим аналоговым прицелом.
2) Не путайте частоту дискретизации с аналоговой пропускной способностью. Для выбранного вами чипа эквивалентная аналоговая полоса пропускания, вероятно, будет намного ближе к 100 МГц, чем к 1 ГГц.
Это не означает, что невозможно построить такой прицел, очевидно, что его можно купить в коммерческих целях. Достичь полосы пропускания 1 ГГц непросто, и потребуются специальные инженерные решения и более качественные детали.
8-битные АЦП довольно распространены в осциллографах, однако техника использования АЦП немного отличается. Как я видел внутренности некоторых осциллографов, в общем случае используется 4 микросхемы АЦП, каждая из которых работает с шагом фазы 90 градусов, поэтому вы получаете 4-кратные выборки за один такт, и поэтому частота clk довольно низкая, но пропускная способность данных в приоритете. В любом случае, такой проект выльется в большую трату денег, чем покупка нового прицела :-) Тем не менее, это может быть хорошей практикой для самообучения. OTOH, подумайте об аналоговой стороне прицела. Эта часть чертовски сложна и очень сложна в исполнении.
Другие вопросы:
защита : точно не хотите, чтобы он сломался при первой ошибочной подаче на вход 20-30 В;
калибровка : даже при 8-битной точности вам все равно придется контролировать ошибку в пределах 1/256 = 0,4% в целом; нетривиально со стандартными компонентами;
фильтрация шума : он должен быть экранирован и отфильтрован, и этого недостаточно, потому что также FPGA, вероятно, будет генерировать шум, поэтому вам необходимо разделить аналоговую и цифровую области.
Во всяком случае, по поводу USB-подключения, я думаю, что более функциональнее обрабатывать данные внутри, и подключать их непосредственно к дисплею.
Фотон
клабаккио
Соларски
пользователь17819
MDMoore313
MDMoore313