Перейти к содержанию
    

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

10 разрядов АЦП хватит. На частоту выборок больше 100-120 МГц расчитывать не стоит - во-первых сами АЦП на такие частоты достаточно дороги, во-вторых ПЛИС с таким грейдом также недешевы. Как вариант (о чем я уже писал) - поставить два АЦП по 50-60 MSPS, к каждому из них по своему чипу SRAM на 128 КБ. Так можно сделать два канала по 50 MSPS или один канал на 100 MSPS. Опять же, этот вариант даст масштабируемость - можно впаивать оба АЦП, можно только один, ограничиваясь при этом только одним каналом на 50 MSPS. При этом заливать соответствующую прошивку ПЛИС.

Отладка коммуникационных протоколов может вестись в режиме самописца, ограничиваясь скоростью работы контроллера и пропускной способностью канала. Все равно, как правило, частоты там не превышают одного-двух мегагерц (я не беру в расчет высокоскоростные протоколы, то отдельная песня, выходящая за пределы обсуждаемого девайса). Ну а в отдельных случаях придется смириться с ограниченным объемом буферной памяти - 128 или 256 КБ, этого в большинстве случаев должно хватать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте не сводить тему к пропускной способности USB, а то тоже будет 100 страниц в теме, как на ИХБТ. :-(

Считаем полосу пропускания- два канала по 8 бит с частотой семплирования 105 МГц (АЦП-AD9218). Получаем 210 Мегабайт в секунду. Если ставить новые АЦП от Linear Technology (LTC2251), то и 250 мег в секунду может потребоватся. Разрядность считывания с АЦП -10 -12 бит (12 бит- для продвинутых в шумодавлении гуру). В FPGA выборки масштабируются до 8 бит в соответствии с выбранным пределом измерения. Теперь выбор памяти- 1 вариант: внутренняя память ПЛИС- быстрая (до 250 мег, произвольной разрядности (1-36 бит) но короткая (10-20 кбайт). 2 вариант: SDRAM- огромный размер, нужно мало внешних ножек ПЛИС, но низкая частота (66-100 мгц) и прерывистость записи при смене страниц - в ПЛИС нужен навороченный ФИФО для выравнивания потока приходящего с АЦП и уходящего в контроллер SDRAM. 3 вариант - синхронная статическая (ZBR). Скорости до 200 Мгц, обьемы до полумега, но дорогая и требует много ножек ПЛИС. 4- обычная статика. Все тоже самое что ZBR но разогнать выше 100 МГЦ сомнительно.

Интерфейс с компом- любой. На современном этапе наверно лучше какой-то младший АРМ с USB (обычным 12 МГцовым). Желающие всегда смогут перенести софт на старший АРМ ( с эзернетом, VGA и прочими прелестями).

Размер памяти. Обычно достаточно пары экранов ( 4-8 киловыборок). Но если надо отлаживать коммуникационные протоколы, то и 128 к маловато будет. Поэтому использование только внутренней памяти ПЛИС врядли оправдано. Разрядность шины - 16 бит.

Выбор ПЛИС. Альтера или Зайлинкс - практически без разницы. Только корпус нужен TQFP208, иначе ножек на два канала нехватит. С очень большим трудом можно упихнутся в 144 ногий корпус, но это ценой уменьшения разрядности памяти до 8 бит и соответственным уменьшением частоты выборок до 30-40 Мгц.

 

...В общем то почти все верно..., только такие приборы уже есть и производятся серийно, например,

достаточно неплохой вариант:

http://www.rudshel.ru/production/data_acqu...s/la-n4usb.html

но, ЦЕНА? - а попробуйте сами сделать... будет не сильно дешевле...

 

Разговор о том, что бы сделать НЕДОРОГОЙ осциллограф (приставку) с полосой под 10-20МГц...

 

...ну, и до кучи... USB1.1, например, нам удавалось передавать в среднем темпе до 0.9МБайт/сек реально, таким образом при выкачивании буфера 128к у Вас задержка чуть меньше 0.2сек,- наплевать и забыть.

 

По поводу объема памяти - не мелочитесь, по опыту скажу - 128к - это мало.

 

АЦП 12 бит, и более резко поднимают планку стоимости, пока самый оптимум - ADC08100 от NSC.

 

Память - статика 10нс справляется с потоком 100МБайт/сек при аккуратной разводке. цена в КТЦ K6R4008V1D-TI10 порядка 3-х уё, но это 512к на 8.

 

Контроллер - только CPLD. типа XC9636ХL...

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

 

Вопрос с входной части - примерно - С1-114 +доработки... Не забывайте, хорошие реле стоят прилично... согласен, можно Г, но и в итоге получится ... то же Г.

 

Анекдот - об увеличении Г.: если к 1кг. повидла добавить 1 кг. Г., то в итоге у Вас получится 2кг. Г. :)

 

корпус, блок питания (преобразователь), наклейки и пр...

По общим прикидкам - можно влезть в 4-5тыс.руб с некоторой нормой прибыли (такой проект у нас обсуждался, но)...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У нас возникала идея создания подобного устройства. Однако дальше идеи дело не пошло по следующим причинам:

 

1. Устройство должно быть дешевым до 300-400$ иначе оно будет не нужно.

 

2. Желательно с открытым исходным кодом для улучшения продвижения его на рынке. Но при этом иметь защиту от копирования (деньги надо-же как-то зарабатывать)

 

3. Оно должно быть модульным. Модули могут быть съемными. Типичный набор модулей: осциллограф, цифровой анализатор, функциональный генератор цифровой и аналоговый.

 

4. Устройству необходимы хорошие пробники

 

Планировалось делать устройство на USB 2.0 с внутренней буферной памятью типа SDRAM в объеме от 16 до 64MB. Планировалась продажа только железа, а софт постепенно будет дописываться и выкладываться в Internet.

 

У нас есть группа разработчиков состоящая из четырех человек: электронщик FPGA-разарботчик и программист МК, FPGA-разработчик и писатель драйверов(системный программист), разводчик плат любой сложности, программист для написания интерфейсов. Почти весь проект мы можем поднять собственными силами кроме входной и выходной аналоговой части.

 

Мы все еще носимся с этой идеей, так что если кому-то интересно можем скооперироваться. Но до сих пор не ясно стоит-ли овчинка выделки. Делать эту вещь только для личного пользования не интересно, проще купить готовое. А если делать как коммерческий продукт, то какое количество можно продать - не ясно. :ninja:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но, ЦЕНА? - а попробуйте сами сделать... будет не сильно дешевле

Ну, не знаю... http://www.rudshel.ru/production/data_acqu.../la-n10usb.html - 100 МГц за 600 с лишним долларов... Не думаю, что там делают наценку всего на 20-30% :).

таким образом при выкачивании буфера 128к у Вас задержка чуть меньше 0.2сек

А в режиме осциллографа передавать потребуется всего по 4-8 КБ на кадр :).

По поводу объема памяти - не мелочитесь, по опыту скажу - 128к - это мало

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

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

 

Вопрос с входной части - примерно - С1-114 +доработки... Не забывайте, хорошие реле стоят прилично... согласен, можно Г, но и в итоге получится ... то же Г.

Тут слово тем, кто разбирается :).

корпус, блок питания (преобразователь), наклейки и пр...

Нафиг :). Корпус каждый подберет по своему вкусу/разумению, то же самое с блоком питания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делать эту вещь только для личного пользования не интересно, проще купить готовое.

Я, например, могу потратить максимум 5000 руб. Где можно купить за 5000 руб. цифровой осциллограф с частотой дискретизации хотя бы 20 МГц?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У нас возникала идея создания подобного устройства. Однако дальше идеи дело не пошло по следующим причинам:

Можете предложить свое виденье цифровой части? И продемонстрировать максимальную скорость заливки длинного блока данных в ОЗУ с двух имитаторов АЦП? Потому что с SDRAMom у нас получался бурст длиной в одну страницу, а потом задержка на переключение страниц. Есть ли возможность сделать скоростной контроллер памяти типа чтение-модификация-запись?

 

Есть идеи по поводу аппаратной реализации DPO (digital phosphore), но с доступными IP cores контроллеров памяти оно работает неудовлетворительно медленно. Если получится больше 100мегасемплов в секунду, то с аналоговой частью поможем. Входной усилок до 150 Мгц есть, есть триггер и схема ВАП (ТДС). Цифровую часть ТДС прийдется аккуратно разводить в ПЛИСе (вылизывать задержки).

 

Пока есть проблемы с коммутацией каналов - было желание сделать возможность одноканальной работы с удвоенной частотой семплирования двумя АЦП в интерливе. Это работает, но наблюдается кроссталк между каналами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но, ЦЕНА? - а попробуйте сами сделать... будет не сильно дешевле

Ну, не знаю... http://www.rudshel.ru/production/data_acqu.../la-n10usb.html - 100 МГц за 600 с лишним долларов... Не думаю, что там делают наценку всего на 20-30% :).

таким образом при выкачивании буфера 128к у Вас задержка чуть меньше 0.2сек

А в режиме осциллографа передавать потребуется всего по 4-8 КБ на кадр :).

По поводу объема памяти - не мелочитесь, по опыту скажу - 128к - это мало

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

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

 

Вопрос с входной части - примерно - С1-114 +доработки... Не забывайте, хорошие реле стоят прилично... согласен, можно Г, но и в итоге получится ... то же Г.

Тут слово тем, кто разбирается :).

корпус, блок питания (преобразователь), наклейки и пр...

Нафиг :). Корпус каждый подберет по своему вкусу/разумению, то же самое с блоком питания.

 

Пойдем, как из стека, командами POP AX :) (извините, за каламбур, с зада на перед)

 

...еще раз - делаем схему+прошивки+открытый код драйверов... или все таки устройство...

 

4-8к и 128к - разница в цене вопроса практически=0., зато ..., я предлагаю 512к... и убить всех зайцев, и осциллограф, и анализатор спектра...

 

...а отвергать можно только на этапе после "совместно утвержденного ТЗ", но здравый смысл должен быть всегда, на любом этапе. :)

 

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

 

...Ну, господа, начнем составлять ТЗ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Еше , как насчет дуал порт рам ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Еше , как насчет дуал порт рам ?

Ног ПЛИС нехватит на две микросхемы памяти. Или хотите связыватся с ПЛИС в BGA корпусах?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можете предложить свое виденье цифровой части?

 

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

 

И продемонстрировать максимальную скорость заливки длинного блока данных в ОЗУ с двух имитаторов АЦП? Потому что с SDRAMom у нас получался бурст длиной в одну страницу, а потом задержка на переключение страниц. Есть ли возможность сделать скоростной контроллер памяти типа чтение-модификация-запись?

 

Такой контроллер памяти мы уже сделали для другого проекта. Мы постарались его написать максимально производительным и при проверке получили около 97% КПД. Он умеет перекрывать запись/чтение данных и открытие/закрытие активных страниц. Поэтому даже небольшое FIFO на одном модуле внутренней памяти может выровнять скорость со входа и скорость записи/чтения во внешнюю SDRAM. При ширине шины памяти 32разряда и частотой ~133MHz пропускная способность памяти составляет ~515MB/s. Если учесть, что вычитка в USB более 45MB/s не потребуется, то для записи может использоваться 470MB/s. И таким образом мы можем получить два канала АЦП по 235MHz, при условии что выход канала - 8 бит. Если колиство бит больше - либо снижать скорость АЦП, либо увеличивать разрадность шины данных SDRAM.

 

Есть идеи по поводу аппаратной реализации DPO (digital phosphore)

Подробнее пожалуйста.

 

Цифровую часть ТДС прийдется аккуратно разводить в ПЛИСе (вылизывать задержки).

За это можете не переживать, опыт работы на высоких частотах как внутри ПЛИС так и снаружи у нас имеются.

 

Пока есть проблемы с коммутацией каналов - было желание сделать возможность одноканальной работы с удвоенной частотой семплирования двумя АЦП в интерливе. Это работает, но наблюдается кроссталк между каналами.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ног ПЛИС нехватит на две микросхемы памяти. Или хотите связыватся с ПЛИС в BGA корпусах?

Можно BGA - это нас не пугает. А можно поставить DDR или DDR-2, тогда ног потребуется меньше. Правда контроллер для DDR еще мы не написали. :blink:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цифровая часть выглядит до смешного просто.

Теорию то все знают, главное, чтобы оно работало в железе.

 

Такой контроллер памяти мы уже сделали для другого проекта. Мы постарались его написать максимально производительным и при проверке получили около 97% КПД. Он умеет перекрывать

А что такое КПД в данном случае, можно расшифровать?

Какая микросхема памяти используется и сколько ног это отъедает? Какой степпинг кристалла ПЛИС?

Раз у вас есть опыт в разработке цифры, давайте утрясем эту часть проекта. И сколько такая платка будет стоить?

 

>Есть идеи по поводу аппаратной реализации DPO (digital phosphore)

Подробнее пожалуйста.

Рассчет картинки производится аппаратно. В памяти выделяется двумерный массив по размеру экрана. Напрмер 512 на 256. Один элемент- 4 бита (16 градаций). При сборе данных ( очередной запуск развертки) собирается короткий скан (512 точек). Для каждой точки известна амплитуда и временное положение (считанная с ВАПа задержка между запуском развертки и клоком АЦП). Для каждой точки рассчитывается двумерная координата на экране, вычитывается содержимое соответствующей ячейки памяти по этому адресу и инкрементируется (если значение меньше 15). Раз в 10-20 миллисекунд содержимое памяти вычитывается процессором и отправляется на хост. При этом содержимое всех ненулевых ячеек декрементируется. Получаем цифровой фильтр с "послесвечением" в десятки миллисекунд, как у аналогового скопа. Как это показывать (техническим цветом или яркостью)- можно решить потом.

 

Давайте прикинем цену такой платы, а то отладка аналога остановилась в связи с отсутствием цифры.

Кроме памяти и процессора (желателен LPC2148) и входа от двух АЦП на плате должна быть прецизионный (с малым джиттером) VCO (например MAX2606), четырехканальный ЦАП (установка смещения каналов и порогов триггеров). Его можно сделать на ЦАПе АРМа и аналоговом ключе с аналоговыми запоминающими элементами (цена вопроса 1 бакс), ВАП (схему подкину позднее- два транзистора, генератор тока на операционнике и один из каналов АЦП LPC2148 или аналоговый компаратор и подсчет импульсов внутри ПЛИС). Два входа от триггеров. Триггера с полностью дифференциальным входом и дифференциальным смещением. Незнаю, как их лучше сделать- по компаратору на каждый канал и коммутировать в цифре или внешний мультиплексор и один компаратор. Еще есть желание поставить в качестве дополнительного триггера СВЧ прескалер (например mc12034), чтобы было легко синхронизироваться с сигналами выше максимальных частот ПЛИС, тем более, что АЦП от linear тянут чуть ли не до гига.

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

В каком месте лучше разделить платы на аналоговую и цифровую ( до или после АЦП) пока неясно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рассчет картинки производится аппаратно. В памяти выделяется двумерный массив по размеру экрана. Напрмер 512 на 256. Один элемент- 4 бита (16 градаций). При сборе данных ( очередной запуск развертки) собирается короткий скан (512 точек). Для каждой точки известна ...

Для такой обработки нужна статическая память. Динамическая память может рассматриваться хотя бы для небольших последовательных доступов. Можно построить запись в память каждого отсчета отдельно, а при передаче его на компьютер уже вычитывать все интересующие выборки и суммировать на внутренней памяти ПЛИС. В этом случае мы имеем последовательный доступ к памяти SDRAM и получаем DPO.

А что такое КПД в данном случае, можно расшифровать?

При произвольных обращениях к памяти с размером bulk 4 слова пропускная способность памяти используется полностью кроме времени refresh'a.

Какая микросхема памяти используется и сколько ног это отъедает?

Если ставить Micron MT48LC8M32B2 то объем 32MB ширина шины данных - 32 шина адреса - 12 и самая необходимая шина управления - 6. Итого получаем - 50 пинов.

Какой степпинг кристалла ПЛИС?

Можно использовать например Altera EP2C5F256C8

Раз у вас есть опыт в разработке цифры, давайте утрясем эту часть проекта. И сколько такая платка будет стоить?

Пишите в личку. Отвечу, правда, не ранее среды 03.05.06.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В каком месте лучше разделить платы на аналоговую и цифровую ( до или после АЦП) пока неясно.
АЦП относятся к аналоговой части платы ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...