Jump to content

    

USB Осциллограф-анализатор

Основная проблема - пропускная способность USB

Эта проблема решается накоплением выборок в оперативке самой приставки и последующей отдачей их (уже на любой скорости) в комп.

Share this post


Link to post
Share on other sites

Ну, если есть желание, и впрямь можно этим заняться. :)

Есть только два момента, которые не мешало бы уяснить.

Во-первых, задача создания хорошей измерительной USB системы не так проста, как может показаться на первый взгляд. Хотя бы потому, что она комплексная, потребуются специалисты в различных областях электроники и программирования. Одному человеку в разумные сроки её не осилить. Ничего, однако, неразрешимого здесь нет. Поэтому, энтузиастам можно посоветовать для начала запастись терпением.

Во-вторых, для подобных открытых проектов не может идти никакой речи об авторских правах. Т.е., разработку вправе использовать и тиражировать любой, кто имеет доступ к необходимой информации.

 

Если это приемлемо, нужно для начала чётко представить себе, что же именно мы хотим создать. Речь пока не идёт о ТЗ, нужно только сформировать "образ" системы.

Например, что-нибудь вроде этого:

- два канала А/Ц преобразования с хорошими метрологическими характеристиками;

- high-speed USB устройство, с питанием от USB кабеля, утилизация пропускной способности канала - возможно более полная;

- режимы непрерывного захвата данных и осциллографа;

- удобный пользовательский интерфейс для РС под WInXP;

- возможно более низкая цена комплектухи (напр., 200-250 уёв).

Конечно, могут быть и другие варианты.

После этого, становится более-менее понятным, какой должна быть команда разработчиков. :)

После обсуждения и фиксации концептуального образа, можно приступать к формированию команды и подготовке ТЗ.

Edited by Stanislav

Share this post


Link to post
Share on other sites

Для более-менее "осциллографичного" вида приставки понадобятся знания ПЛИС, ARM и очень хорошие знания аналога :). Меня всегда останавливало последнее, хотя я и давно уже подумываю собрать такую штуку.

Далее - не нужно ставить астрономические цели типа частоты оцифровки не меньше 400 МГц, канала пропускания не менее 1 ГГц и т.д. :) Думаю, что для "домашнего" осциллографа достаточно частоты оцифровки 40-50 МГц и полосы пропускания до 100 МГц. Подобие Агилента не собрать в любом случае и стремиться к этому не надо :).

Share this post


Link to post
Share on other sites
Для более-менее "осциллографичного" вида приставки понадобятся знания ПЛИС, ARM и очень хорошие знания аналога :) . Меня всегда останавливало последнее, хотя я и давно уже подумываю собрать такую штуку.

Далее - не нужно ставить астрономические цели типа частоты оцифровки не меньше 400 МГц, канала пропускания не менее 1 ГГц и т.д. :) Думаю, что для "домашнего" осциллографа достаточно частоты оцифровки 40-50 МГц и полосы пропускания до 100 МГц. Подобие Агилента не собрать в любом случае и стремиться к этому не надо :) .

Мне кажется, не стоит торопиться обсуждать детали, пока не будет ясности по общим вопросам. Если можно, сформулируйте свою концепцию устройства.

Share this post


Link to post
Share on other sites

Мою? :)

Да я тут мимо проходил... Но в общих чертах обрисую то, что обдумывал в свое время.

1. Входная аналоговая часть - от нее требуется высокое входное сопротивление, минимум искажений при усилении входного сигнала в 100-200 раз, возможность электронной (неручной) коммутации пределов и входов. Ее я себе никак не представляю, т.к. в аналоге я в общем-то ноль без палочки :).

2. АЦП. Состоит из собственно АЦП, ПЛИС и SDRAM. Плис выполняет функцию буфера между SDRAM и АЦП, между SDRAM и контроллером, между АЦП и контроллером. В ПЛИС находится контроллер SDRAM и небольшой контроллер, управляющий АЦП и управляемый в свою очередь от центрального контроллера. Центральный контроллер дает на ПЛИС команду начала измерения и ПЛИС начинает тактовать АЦП и помещать результаты от АЦП в SDRAM. По окончании измерения (скажем, после 1 млн выборок) ПЛИС рапортует центральному контроллеру об окончании измерения и начинает по запросам от центрального контроллера отдавать ему содержимое SDRAM. При необходимости ПЛИС переключается в режим прозрачного буфера между АЦП и центральным контроллером, если контроллеру захотелось поработать с АЦП напрямую (непрерывное измерение). Возможны вариации - два АЦП, тактирующиеся попеременно (для удвоения частоты выборок) SRAM вместо SDRAM и т.п.

3. Центральный контроллер - достаточно скоростной и многоногий АРМ со встроенным USB-контроллером. Например - AT91RM9200 :). Он общается с хостом (компьютером), управляет аналоговой частью (входа, делители), рулит ПЛИС-кой - дает команды на начало измерения и в дальнейшем забирает результаты. Забирать может как в свою SDRAM (бОльшего объема) для накопления результатов 10-16 измерений, так и непосредственно в шину связи с хостом.

Share this post


Link to post
Share on other sites

Такую штуку больше года создавали на одном из форумов ixbt (жаль потерял ссылку) - сотни постов, читается как роман, но так ничем и не закончилось.

Share this post


Link to post
Share on other sites

Именно по мотивам иксбити я и советовал не углубляться в сверхпараметры :). Там хотели собрать ну очень хороший девайс, по параметрам приближающийся к мировым лидерам :). Естессно, влезли в глубокие дебри, где и потерялись...

Share this post


Link to post
Share on other sites

Чуть-чуть подправлю ТЗ. Два входа со стандартным входным сопротивлением 1MOm, если делать полосу более 100-150 Мгц то необходим переключатель импеданса входа на 50 Ом. Т.к современные АЦП имеют полную полосу гораздо больше частоты Котельникова\Найквиста, то необходимо предусмотреть аналоговый триггер и модуль время-амплитудного конвертора или интерполятора для реализации RIS (random interval sampling), что позволит регистрировать повторяющиеся сигналы с гораздо большей точностью. Ну а в качестве примера входной части - кусок схемы от VC-5430 и GOS-6150

post-1741-1146084200_thumb.jpg

post-1741-1146084387_thumb.jpg

Share this post


Link to post
Share on other sites

Если желаете реализовать много функций , то имеет смысл делать модульно. Допустим можно отдельно реализовать гигагерцовый семплинг(хотя он иногда делается и как приставка) и нормальный реал тайм. Если фпга будет ставится - может еше отдельный VGA выход сделать без компютера , чтобы с потерь не было а через усб просто контроль сделать. Можно также выход видеокарты от компютера в осциллограф - то есть сигнал на монитор будет переключаться - или от осциллоскопа или от компютера (по усб).

 

Модульность позволит разделить дизайн и уменьшить затраты на доводку - меньше деталей меньше вероятности системных ошибок и недорасчетов , или же легко сделать апгрейд заменив какой либо модуль более производительным.

 

Небезызвестная тема от edaboard :

http://edaboard.com/ftopic41841-0.html

 

P.S. Думаю также что авторские права должны быть или в стиле GPL или в более протекционном виде . А принадлежать права должны форуму .

Share this post


Link to post
Share on other sites
Мою? :)

Да я тут мимо проходил...

Ну, здесь надо решить: или делаем, или "мимо".

...Но в общих чертах обрисую то, что обдумывал в свое время.

1. Входная аналоговая часть - от нее требуется высокое входное сопротивление, минимум искажений при усилении входного сигнала в 100-200 раз, возможность электронной (неручной) коммутации пределов и входов. Ее я себе никак не представляю, т.к. в аналоге я в общем-то ноль без палочки :) .

2. АЦП. Состоит из собственно АЦП, ПЛИС и SDRAM. Плис выполняет функцию буфера между SDRAM и АЦП, между SDRAM и контроллером, между АЦП и контроллером. В ПЛИС находится контроллер SDRAM и небольшой контроллер, управляющий АЦП и управляемый в свою очередь от центрального контроллера. Центральный контроллер дает на ПЛИС команду начала измерения и ПЛИС начинает тактовать АЦП и помещать результаты от АЦП в SDRAM. По окончании измерения (скажем, после 1 млн выборок) ПЛИС рапортует центральному контроллеру об окончании измерения и начинает по запросам от центрального контроллера отдавать ему содержимое SDRAM. При необходимости ПЛИС переключается в режим прозрачного буфера между АЦП и центральным контроллером, если контроллеру захотелось поработать с АЦП напрямую (непрерывное измерение). Возможны вариации - два АЦП, тактирующиеся попеременно (для удвоения частоты выборок) SRAM вместо SDRAM и т.п.

3. Центральный контроллер - достаточно скоростной и многоногий АРМ со встроенным USB-контроллером. Например - AT91RM9200 :) . Он общается с хостом (компьютером), управляет аналоговой частью (входа, делители), рулит ПЛИС-кой - дает команды на начало измерения и в дальнейшем забирает результаты. Забирать может как в свою SDRAM (бОльшего объема) для накопления результатов 10-16 измерений, так и непосредственно в шину связи с хостом.

Понятно. Позволю себе, однако, покритиковать Ваше видение решения задачи по существу.

Во-первых, не следует браться за серьёзный проект, основываясь на очевидных (для Вас, по крайней мере), готовых решениях. Мне кажется, более правильный подход состоит в определении того, что же мы хотим получить в случае его (проекта) успешного завершения. И здесь любые пожелания полезны.

Во-вторых, Ваша концепция сложна как в проектировании, так и в реализации (поясню ниже). Кроме того, в доступные для большинства участников форума ценовые рамки она вряд ли впишется.

В-третьих, не нужно ограничивать себя изначально и ссылаться на мировых производителей. У их менеджмента только доллары перед глазами маячат; здесь же есть возможность изготовить вещь "для себя", и получше. Повторюсь: это вполне реально.

Теперь, хоть и рановато, о тех. стороне вопроса. Мне кажется, для удешевления системы стоит отказаться от буферного ОЗУ вообще (то есть, использовать только память USB контроллера). Современные USB хосты уверенно держат 35-40 Мбайт/с (на форуме было сообщение о 46 Мбайт/с!). USB девайсы от Cypress или Philips также поддерживают данную скорость, поэтому есть смысл вываливать данные из АЦП прямо в буфер контроллера, а он уже будет гнать их в комп по мере заполнения.

Отдельный процессор также вряд ли потребуется: USB девайс контроллеры уже содержат его на кристалле (51-й, однако), шина наружу торчит. Без ПЛИС обойтись, понятное дело, не получится - нужна растактовка всех узлов и обеспечение режимов синхронизации в режиме осциллографа. Но для этого можно применить чип малой ёмкости (и стоимости).

Усиление 100-200 при высокоомном входе сделать, конечно, можно, но учтите, что все помехи в широком диапазоне частот также будут усилены в пропорциональное число раз. Поэтому, на мой взгляд, предварительное усиление нужно получать на выносных активных пробниках, а сам девайс должен иметь 3-4 коммутируемых к-та усиления (не более 10 раз), но с высокой точностью (термостабильностью). Можно, как и предлагают, сделать также 50-омный вход для дискретизации полосовых сигналов с частотой в сотни мегагерц, но целесообразность этого подлежит обсуждению.

Вообще-то, аналоговую часть и модуль АЦП также нужно проектировать с учётом минимальных затрат на комплектуху при сохранении хороших метрологических характеристик в широком диапазоне частот.

Share this post


Link to post
Share on other sites
Если желаете реализовать много функций , то имеет смысл делать модульно. Допустим можно отдельно реализовать гигагерцовый семплинг(хотя он иногда делается и как приставка) и нормальный реал тайм. Если фпга будет ставится - может еше отдельный VGA выход сделать без компютера , чтобы с потерь не было а через усб просто контроль сделать. Можно также выход видеокарты от компютера в осциллограф - то есть сигнал на монитор будет переключаться - или от осциллоскопа или от компютера (по усб).

 

Модульность позволит разделить дизайн и уменьшить затраты на доводку - меньше деталей меньше вероятности системных ошибок и недорасчетов , или же легко сделать апгрейд заменив какой либо модуль более производительным.

Боюсь, нереально совершить такой подвиг силами энтузиастов. Для этого серьёзная организация нужна, с соответствующим финансированием. А здесь нужно учесть, что времени этому проекту разработчики (буде такие найдутся) смогут уделять немного.

 

Небезызвестная тема от edaboard :

http://edaboard.com/ftopic41841-0.html

 

P.S. Думаю также что авторские права должны быть или в стиле GPL или в более протекционном виде . А принадлежать права должны форуму .

По-моему, здесь возникнут проблеммы юридического характера (например, каким лицом считать форум?). Думаю, что этими вопросами лучше вообще не заморачиваться.

 

2 khach

Ух, ё... :)

Share this post


Link to post
Share on other sites

Давайте опредилимся с тем что можно легко сделать. Чувстыительность и пределы входной части, скорость передачи на компьютер ( цифры приводили красивые, но насколько это реально? конфигурация компа для такой скорости?), кол-во каналов (думаю 2 как минимум. логические пробники хорошо, но насколько это усложнит проект?), разрешение АЦП (по мне и 8 битовое ацп подойдет, можно 10 битовое и игнорировать младшие 2 бита), полоса... в основном вожусь с цифровыми девайсами на которых выше 10 МГц только задающий генератор. будет полоса больше - хорошо.

У кого есть опыт, опишите параметры приставки, которые можно получить не углубляясь в дебри. Тогда устройство будет дешевое. и его будет реально разработать и собрать (тиражировать желающими).

Share this post


Link to post
Share on other sites
У кого есть опыт, опишите параметры приставки, которые можно получить не углубляясь в дебри. Тогда устройство будет дешевое. и его будет реально разработать и собрать (тиражировать желающими).

Очень грамотно.

Share this post


Link to post
Share on other sites
Позволю себе, однако, покритиковать Ваше видение решения задачи по существу

Обязательно :)

Мне кажется, для удешевления системы стоит отказаться от буферного ОЗУ вообще (то есть, использовать только память USB контроллера). Современные USB хосты уверенно держат 35-40 Мбайт/с (на форуме было сообщение о 46 Мбайт/с!). USB девайсы от Cypress или Philips также поддерживают данную скорость, поэтому есть смысл вываливать данные из АЦП прямо в буфер контроллера, а он уже будет гнать их в комп по мере заполнения.

Это сразу привязывает нас к современным компьютерам, к свободности операционной системы и т.п. А если у человека третий пень без второго ЮСБ? Тогда как? Если ЮСБ-контроллер не успел отправить хосту предыдущее содержимое буфера, то все последующие сэмплы пойдут коту под хвост, т.к. теряется целостность всего измерения. Мне, например, такой девайс не нужен даже за очень дешево :).

Отдельный процессор также вряд ли потребуется: USB девайс контроллеры уже содержат его на кристалле (51-й, однако), шина наружу торчит.

Так же очень жесткое ограничение в возможностях. Шина-то торчит, но успеет ли этот контроллер принимать и складировать (даже в буфферном ОЗУ) сэмплы, следующие с частотой, скажем, 50 МГц? Да и лишние выводы у более мощного контроллера можно пустить на входы логического анализатора...

По аналоговой части я уже сказал, что совершенно не компетентен в этих вопросах, что бы что-то высказать или предложить :). Я просто исходил из того, что чувствительность у осциллографов обычно начинается от миливольт, а входной сигнал у АЦП должен быть в максимуме 1,5-3,0 вольта. Но оставлю эту часть людям, разбирающимся в этом вопросе :).

 

В основном же я согласен с Вами - должно быть как можно дешевле. Но дешевизна не должна очень уж ограничивать возможности. Нужно найти оптимум :).

Если фпга будет ставится - может еше отдельный VGA выход сделать без компютера , чтобы с потерь не было а через усб просто контроль сделать

Думаю, не имеет смысла. Не настолько востребовано, что бы заморачиваться этим. Как уже сказал Stanislav:

Боюсь, нереально совершить такой подвиг силами энтузиастов. Для этого серьёзная организация нужна, с соответствующим финансированием. А здесь нужно учесть, что времени этому проекту разработчики (буде такие найдутся) смогут уделять немного.

Я абсолютно согласен с ним.

если делать полосу более 100-150 Мгц

Не надо делать больше :).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this