Форум: Техническая поддержка

Тема: E20-10 регистр цифрового ввода

Вы не вошли.

 Поиск | Регистрация | Вход 

23.08.2019 17:05:55
#1

Участник
Здесь с 02.04.2018
Сообщений: 205

E20-10 регистр цифрового ввода

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

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

23.08.2019 21:48:09
#2

Сотрудник "Л Кард"
Здесь с 05.04.2019
Сообщений: 571

Re: E20-10 регистр цифрового ввода

Здравствуйте, Алексей.
Сформулированная Вами цель "постоянно отслеживать состояние нескольких низкоскоростных логических линий .... на фоне сбора данных АЦП, не прерывая основной сбор данных" достижима  с помощью штатной функции E20-10 асинхронного ввода-вывода цифровых линий (по USB Control Pipe) на фоне синхронного сбора данных АЦП (по USB Bulk).
А сделать ввод синхронным по остальным цифровым входам (кроме SYNC, START) невозможно в данной реализации E20-10, поскольку эти цифровые входы не заходят на FPGA, и никакой прошивкой FPGA эти возможности не могут быть добавлены. Вышеупомянутый асинхронный ввода-вывод с цифровых линий (по USB Control Pipe) осуществляется без участия FPGA.
С другой стороны, для того, чтобы реализовать Ваш вариант логики E20-10, нужно изменять аппаратную реализацию E20-10. Вряд ли для этого найдутся серьёзные основания...

23.08.2019 22:58:28
#3

Участник
Здесь с 02.04.2018
Сообщений: 205

Re: E20-10 регистр цифрового ввода

Инженер пишет:

поскольку эти цифровые входы не заходят на FPGA

Понятно (из описания отсутствие физического электрического соединения с FPGA было не вполне очевидным).

Прошу уточнить, есть ли готовый пример программы под linux, реализующий асинхронное взаимодействие на фоне синхронного.
Возможен ли технически опрос цифрового регистра с частотой около 10 Гц на фоне сбора данных на максимальной частоте (10 МГц)?
Или же это приведёт к исчерпанию пропускной способности USB и потерям данных?

("с частотой около 10 Гц" - имеется ввиду с интервалами опроса не более 1/10 с, причём стабильность интервалов и информация об их точной длительности не требуется; требуется только узнать с разрешением порядка 1/10 с, какие биты появились раньше, а какие - позже.)

24.08.2019 10:24:43
#4

Сотрудник "Л Кард"
Здесь с 05.04.2019
Сообщений: 571

Re: E20-10 регистр цифрового ввода

Алексей. В руководстве пользователя E20-10, начиная с титульного листа, сказано про асинхронный цифровой ввод-вывод.  Согласно объяснению общепринятого термина (по последней приведённой ссылке), при асинхронным вводе и выводе не сохраняются интервалы времени (периодичность) передачи отсчётов на ввод или на вывод, поэтому о частоте и о разрешении по времени здесь можно говорить только в усреднённом смысле за большой интервал времени.
В E20-10 медленный асинхронный ввод-вывод (интервал опроса с верхнего программного уровня 1/10 с вполне реален) обязан работать на фоне синхронного ввода до 20 MB/s без потерь данных.
Надеюсь, коллеги приведут пример программирования E20-10 под Linux асинхронного ввода-вывода на фоне синхронного.

24.08.2019 23:47:02
#5

Участник
Здесь с 02.04.2018
Сообщений: 205

Re: E20-10 регистр цифрового ввода

А может ли (есть ли техническая возможность) FPGA получить информацию о состоянии регистра цифрового ввода из контроллера AVR, которым этот регистр обслуживается?

25.08.2019 00:30:36
#6

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,254

Re: E20-10 регистр цифрового ввода

Можно представить себе например режим ввода, когда AVR постоянно опрашивает цифровые линии и записывает результат в регистр ПЛИС, а уже ПЛИС передает содержимое этого регистра в данных какого-то специального дополнительного логического канала. Конечно это не такой быстрый процесс, но уж сильно быстрее 10 Гц. Если AVR будет читать по прерыванию, то интервал опроса будет близок к фиксированному, правда моменты скорее всего не будут точно привязаны к моментам начала преобразования АЦП, но неопределенность с интервалом опроса с верхнего уровня пропадет.
Но это пока как предложение способа, возможность реализации еще должна быть оценена инженером....

25.08.2019 12:20:28
#7

Сотрудник "Л Кард"
Здесь с 05.04.2019
Сообщений: 571

Re: E20-10 регистр цифрового ввода

FPGA находится в адресном пространстве SPI-регистров AVR и свободные адреса имеются, поэтому потенциально имеется возможность усложнять взаимодействие между AVR и FPGA. Но усложнять можно только так, чтобы новый функционал этого взаимодействия оставался очень низкоприоритетным по отношению к основным задачам AVR (обслуживание DMA между USB-контроллером и FPGA, обслуживание прерываний от USB-контроллера), иначе производительность передачи данных по USB может упасть.
Исходя из постановки задачи выше, чтобы при частоте 10 МГц АЦП иметь отдельный логический канал медленного ввода 10 Гц (без значительного занижения частоты основных каналов), нужно вводить либо Индивидуальный коэффициент деления частоты канала, как это сделано в L-791, см. http://www.lcard.ru/download/l791_users_guide.pdf , п. 5.3.12., либо как-то метить данные медленного канала...
С другой стороны, мне непонятно в принципе: за что бороться? Получившийся таким сложным способом квазисинхронный медленный канал сбора данных будет тоже ненормированным по частоте сбора данных, с потенциально меньшими асинхронными задержками, по сравнению с получением данных по Control Pipe, но неясно: каким численным критериям в исходной постановки задачи он должен удовлетворять? Ведь, судя по описанию задачи, асинхронная работа по Control Pipe тоже удовлетворяет (пока никто не показал обратного)? И, в любом случае, этот штатный вариант следует сначала испытать (заданный выше вопрос про примеры программирования актуален)...

Отредактировано Инженер (25.08.2019 13:08:51)

26.08.2019 15:02:26
#8

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: E20-10 регистр цифрового ввода

касательно асинхронного ввода на фоне синхронного

ASYNC_PAR pp;
pp.s_Type = L_ASYNC_TTL_INP;
pI->IoAsync(&pp);
//cout << (USHORT)pp.Data[0] << endl; // в Data[0] данные с цифровых линий

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

27.08.2019 12:40:04
#9

Участник
Здесь с 02.04.2018
Сообщений: 205

Re: E20-10 регистр цифрового ввода

Уточните, пожалуйста, как осуществляется вывод на асинхронные линии ТТЛ и ЦАП.
(Чтобы провести первоначальный этап тестирования, используя их как источник сигнала,
без использования основного экспериментального оборудования.)

27.08.2019 12:48:38
#10

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: E20-10 регистр цифрового ввода

Аналогично. через вызов IoAsync с заполненной структурой. в manual.pdf или хелпе все есть в разделе "Как можно..."

28.08.2019 11:53:12
#11

Участник
Здесь с 02.04.2018
Сообщений: 205

Re: E20-10 регистр цифрового ввода

Уточните, пожалуйста, где взять упомянутый файл manual.pdf.

На страничке E20-10 в разделе «Документация» ссылки на файл с таким названием нет:
http://www.lcard.ru/products/external/e … =5#qt-ltab

28.08.2019 12:03:16
#12

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: E20-10 регистр цифрового ввода

в Windows он при установке lcomp.exe появляется. в linux в архиве lcomp_linux.tgz лежит.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск