Jump to content

    

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

Да, я согласен поиметь что-нибудь попроще. Но будет ли отказ от буферного ОЗУ упрощением? Не уверен. High speed USB потребует себе соответствующий драйвер (речь о софте а не контроллере). Тут я с ходу не могу ничего сказать, т.к. предполагал использовать Full speed USB 12 Mbit, т.е. мне нужно время, чтобы изучить вопрос.
Почитайте соответствующий раздел форума, там много полезной инфы. От себя скажу, что работа с Full-Speed и High-Speed драйверами для Вас не будут различаться вовсе (все отличия реализованы на уровне "железа"). Ессно, скорость приёма данных будет разная, это надо учитывать.

 

...Еще я предполагал сделать защиту входа перед контроллером. В жизни всяко бывает, если на щуп попадет высокое напряжение, рискуем спалить комп. Вопрос о гальванической развязке как раз сегодня изучал на форуме. Есть устройства, но для High speed они не годятся...
Думаю, не так страшен чёрт, как Вы его малюете. Воросы же конструктивной реализации лучше пока не рассматривать.

 

...Вообще мне непонятно, для чего буфер размером в мегабайты. Если мы изучаем некий периодический сигнал, то нам достаточно запомнить несколько периодов, отправить их в комп и нарисовать график. В следующем цикле все повторяется. Тут уже писали о том, что картинка на экране обновляется с частотой 60-70 Гц, но есть еще инерция человеческого глаза (или мозга, я знаю...). Возьмите какой-нибудь "осцилограф", работающий от звуковой карточки и подуйте в микрофон. Увидите 2-3 линии развертки, хотя на самом деле она одна. Остальные есть результат инерции глаза. Нужен ли нам риал-тайм длинее 1000 сэмплов? Я думаю, нет.
Буфер в режиме осциллографа нужен, и даже очень. Только я предлагаю создавать его в компе, а не в устройстве. Размер его должен быть достаточно большим, чтобы делать эффективное масштабирование захваченной осциллограммы, а также для того, чтобы "ползать" по ней туда-сюда относительно точки синхронизации.

 

...С логическим анализатором дело обстоит иначе. Тут провалы недопустимы. Каким должен быть разумный объем буфера? Как по мне, достаточно 4К. Имейте в виду, что этот буфер кольцевой, непрерывно переписывается после сигнала запуска. Но после остановки, мы имеем вагон времени, чтобы отправить записаное в комп для неспешного анализа человеком. Человек, вот кто главный "тормоз".
То же, что и выше. Памяти надо больше, но основной буфер нужно делать в компе. Задача реал-тайм перегонки данных в комп без потерь решается на уровне контроллера USB. Дело в том, что зачастую достаточно только однократно записать осциллограмму, а потом неспешно её изучать.

 

...И в заключение. Если хотите посмотреть на мою софтину, сообщите свое мыло, вышлю.
Послал в личку.

 

...Если на вашем компе есть звуковая карточка, сможете полюбоваться "осцилограмой". В логическом анализаторе работает только "генератор выходных цифер", можно повводить числа и увидеть изменения на графиках, можно рисовать графики мышкой. Все как в оригинальном OSC2, вплоть до рисунков на кнопках. Спектрографа нет, но допишу, если нужен.
Сдаётся, над софтом ещё придётся поработать. Ведь интересно не только (и не столько) реал тайм наблюдение, сколько возможность детального анализа содержимого кольцевого буфера.

Если есть возможность, ознакомьтесь с осциллками LeCroy. Он представляет собой обычный комп, работающий под WinXP, только с платой захвата. Я не призываю совершать подвиг и пытаться реализовать все функции данного прибора, но, повертев ручки и понаблюдав сигнал с генератора, быстро понимаешь, что именно нужно в первую очередь.

Кстати, большинство современных "крутых" осциллографов имеют... всего 8-битный АЦП, поэтому, на мой взгляд, измерительными приборами могут называться лишь с большой натяжкой. В части НЧ измерений есть реальный шанс посрамить грандов!

Share this post


Link to post
Share on other sites
Сдаётся, над софтом ещё придётся поработать. Ведь интересно не только (и не столько) реал тайм наблюдение, сколько возможность детального анализа содержимого кольцевого буфера.

Если есть возможность, ознакомьтесь с осциллками LeCroy. Он представляет собой обычный комп, работающий под WinXP, только с платой захвата. Я не призываю совершать подвиг и пытаться реализовать все функции данного прибора, но, повертев ручки и понаблюдав сигнал с генератора, быстро понимаешь, что именно нужно в первую очередь.

Софтину а ля LeCroy и даже круче и красивше можно написать за 2-3 дня под NI Labview - будет екзешник 1мВ + рантайм около 30мВ. Там есть и FFT и все мыслимые виды обработки. Нужна только только интефейсная часть, корректно работающая под XP. Labview под это дело специально заточена.

Share this post


Link to post
Share on other sites

Привет всем.

Как-то делал плату ввода с АЦП на 50 МГц от Analog Devices через USB на CY68013 и Spartan 2s50e, на двухслойной плате. В качестве буферной памяти - Block RAM Spartan. Драйвер простенький на 32 мБ/сек работал на встроенном в чипсет USB, для USB через PCI - 16 МБ/сек. Наверное, дороговато для народного осциллографа, но подумать можно.

Share this post


Link to post
Share on other sites
Софтину а ля LeCroy и даже круче и красивше можно написать за 2-3 дня под NI Labview - будет екзешник 1мВ + рантайм около 30мВ. Там есть и FFT и все мыслимые виды обработки. Нужна только только интефейсная часть, корректно работающая под XP. Labview под это дело специально заточена.
Нэ кажы гоп, докы нэ пэрескочив. На моём рабочем месте стоит недавно полученный WaveRunner Xi. По богатству рулёжки он далеко оставляет позади все приборы, используемые в нашей фирме (а она весьма богата на агилент, хьюлетт и тектроникс). Уверен, что с Вашим подходом не удастся сделать ничего даже отдалённо похожего.

Share this post


Link to post
Share on other sites

Богатство рулежки виртуальных приборов под Labview ограничено только фантазией. Ни героизма ни даже особого напряга тут не требуется. Проверено многолетней практикой.

Share this post


Link to post
Share on other sites
Привет всем.

Как-то делал плату ввода с АЦП на 50 МГц от Analog Devices через USB на CY68013 и Spartan 2s50e, на двухслойной плате. В качестве буферной памяти - Block RAM Spartan. Драйвер простенький на 32 мБ/сек работал на встроенном в чипсет USB, для USB через PCI - 16 МБ/сек. Наверное, дороговато для народного осциллографа, но подумать можно.

Ваш опыт очень может быть полезен. Это почти то, что нужно (исключая PCI, ессно). И, главное, - это возможно.

Конечно, фолькс-проект нужно делать максимально доступным по цене/себестоимости. И для этого следует изыскать все возможности.

Вы бы согласились в нём поучаствовать?

Share this post


Link to post
Share on other sites
Богатство рулежки виртуальных приборов под Labview ограничено только фантазией. Ни героизма ни даже особого напряга тут не требуется. Проверено многолетней практикой.
Не спорю. Однако, делать хорошую систему на Labview я бы не стал - тормозА страшные. Тут хороший кодер рулит...

Share this post


Link to post
Share on other sites
]Не спорю. Однако, делать хорошую систему на Labiew я бы не стал - тормозА страшные. Тут хороший кодер рулит...

Осцил - игрушка для глаз, чаще чем 10 раз в секунду экран обновлять не надо. А инфа из скоростного буфеара никуда не денется(тем более что USB далеко не реалтайм). Так что тормоза не страшны. А преимущества остаются. Слишком крутой нужен кодер для реализации и отладки полнофункционального прибора, да и времени уйдет немало, а ужесли что изменить.... А в Labview все просто красиво и надежно, кстати и стандартные DLLки она потребляет - если хочется побыстрей.

Хотя, конечно, дело вкуса.

Share this post


Link to post
Share on other sites
Осцил - игрушка для глаз, чаще чем 10 раз в секунду экран обновлять не надо.
10 раз в секунду - маловато.

...А инфа из скоростного буфеара никуда не денется(тем более что USB далеко не реалтайм).
Почему? Я предлагаю использовать USB именно как реал-тайм. И надеюсь, что такой подход найдёт понимание.

...Так что тормоза не страшны. А преимущества остаются. Слишком крутой нужен кодер для реализации и отладки полнофункционального прибора, да и времени уйдет немало, а ужесли что изменить.... А в Labview все просто красиво и надежно, кстати и стандартные DLLки она потребляет - если хочется побыстрей.

Хотя, конечно, дело вкуса.

Может, Вы и правы... Не в смысле качества продукта, а в смысле простоты его реализации. Этот вопрос тоже надо бы обсудить.

Share this post


Link to post
Share on other sites
Богданов В

 

Написал Вам в личку, хочу посмотреть софтину

Share this post


Link to post
Share on other sites
Привет всем.

Как-то делал плату ввода с АЦП на 50 МГц от Analog Devices через USB на CY68013 и Spartan 2s50e, на двухслойной плате. В качестве буферной памяти - Block RAM Spartan. Драйвер простенький на 32 мБ/сек работал на встроенном в чипсет USB, для USB через PCI - 16 МБ/сек. Наверное, дороговато для народного осциллографа, но подумать можно.

Ваш опыт очень может быть полезен. Это почти то, что нужно (исключая PCI, ессно). И, главное, - это возможно.

Конечно, фолькс-проект нужно делать максимально доступным по цене/себестоимости. И для этого следует изыскать все возможности.

Вы бы согласились в нём поучаствовать?

Поучавствовать можно, правда проект делал три года назад, уже плохо помню, что там к чему. Cypress можно купить по 12-14 евро, а вот Spartan устарел, выгоднее использовать Spartan 3, тоже по 14 евро, там и память побольше и esd защита по входам есть (для триггер входа, или лог. анализатора).

Share this post


Link to post
Share on other sites
Осцил - игрушка для глаз, чаще чем 10 раз в секунду экран обновлять не надо.
10 раз в секунду - маловато.

Согласен такой игрушкой - зрение подпортить можно без проблем... Еще два века назад при изобретении синематографа стало ясно, что минимальная частота кадра 24 раза в секунду которое воспринимает зрение без ощущения мерцания. А для подсветки оптимально - 60 Гц.

Share this post


Link to post
Share on other sites
Согласен такой игрушкой - зрение подпортить можно без проблем... Еще два века назад при изобретении синематографа стало ясно, что минимальная частота кадра 24 раза в секунду которое воспринимает зрение без ощущения мерцания. А для подсветки оптимально - 60 Гц.

Здесь, я так понял, речь о другом. Регенерация монитора происходит с заданной в его установках частотой, как и всегда. Так что мерцания не будет. Речь идёт о перерисовке кривой. Это как частота развёртки у осциллографа. При "медленной" развёртке можно режим самописца применить.

Но всё же для режима "реал-тайм", наверное, 10 Гц - маловато.

Share this post


Link to post
Share on other sites

Доброго всем.

 

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

 

Станиславу

 

Вашу концепцию я понял и с ней согласен. Переделать нужно и можно. Много времени это не займет, софтина выписана достаточно модульно. Связавшись со звуковой карточкой, я был вынужден подчиняться Винде, точнее функциям API драйвера звуковой карточки. Потому все работает в цикле "наполни буфер - нарисуй график". Но можно сделать и по другому, можно даже сделать ввод в отдельном потоке. Соббсно звуковая карточка нужна была только для отладки, как источник данных.

Есть у меня еще мысли об организации совместной работы, но это потом. Пойду отдыхать.

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