Форум myROBOT.ru » Шаг за шагом » С чего начать? » Синхронизация программы компьютера и работы оборудования.

Страниц (2): [1] 2 »
 

1. maxika - 19 Февраля, 2015 - 09:31:46 - перейти к сообщению
Подскажите пожалуйста!!!
Как правильно синхронизировать, поступающие данные на порт PCI
и считывание данных из порта.
Двоичные данные поступают на порт PCI с оборудования, с определенной частотой.
Стоит на доли секунды, эти данные считывать в программу компьютера с другой частотой,
то естественно, через промежуток времени, нарушается синхронность, поступающих данных и их считывания.
Подскажите пожалуйста, как правильно решить эту проблему.
2. Predator - 19 Февраля, 2015 - 09:51:57 - перейти к сообщению
ЭЭЭЭ а PCI-ная железяка FIFO содержит? прерывания вызывать умеет?
Это вообще железо-самоделка, академический интерес или попытка собрать конфетку из специфического материала?
3. maxika - 19 Февраля, 2015 - 12:21:31 - перейти к сообщению
PCI-ная плата ЛА-48ДPCI сделана фирмой Руднев-Шиляев, прерывания делать может.
На порт-А платы, с оборудования - (омметр измеряет сопротивления резисторов с определенной частотой) данные поступают на плату.
Моя программа считывает с порта-А, эту поступающую информацию (каждое измерение резистора, это 8-разрядов на порт), моя программа считывает эти 8-разрядов.
Но частота поступающей информации на порт, в доли секунд отличается от частоты считывания информации из порта. В результате хаос.
Как синхронизировать поступающую и считываемую информацию...................... .....
4. Predator - 19 Февраля, 2015 - 12:54:25 - перейти к сообщению
ну для начала эта плата может писать в свой буфер по стробу (режим 1), может-ли ваш омметр выдавать строб или нет - вопрос отдельный. Если есть - стробируйте, будете иметь такую цепочку: сигналы+строб->сигналы защелкиваются в буфер->плата выставляет прерывание->ваша программа считывает.
Если будет не успевать считывать (до следующего строба).... тогда выкините эту плату на помойку и сделаете свою с буферизацией данных в FIFO, DMA каналами и т.д.
5. cjA - 27 Февраля, 2015 - 11:00:34 - перейти к сообщению
maxikaе слушайте Предатр, умный чувак, н иногда импульсивен. Если арифметике Вас не учили в шкле, т и икт е смжет вам бъяснить как пересчитывать делители МК, а если Вы уже и без ас умеете, т в чем впрс?
(Добавление)
offtop: begin --а зачем синхронезирвать? потомки нас не поколотят палками за т чт --------------"синхрнезирвали"
--А?
--Считываете ба значеия и стрите красивый рафик.
;
end offtop;
6. Predator - 27 Февраля, 2015 - 15:07:47 - перейти к сообщению
да не, плата реально говно. Я-бы такую не покупал, а купил-бы маааленькую плисину за 20 убитых енотов и вытравил (тут не ЛУТом, а фоторезистом) самопальную плату. А в ПЛИСине уже нормальную ФИФУ и прерывание по заполнению половины и синхронизацию внешних клоков с PCI-ными (через фифу) и....
7. cjA - 28 Февраля, 2015 - 00:35:18 - перейти к сообщению
Predator иногда заваривается. Это детский сайт, тут не все и п лиии умеют, а ты СУМОО!, СУМО!
(Добавление)
maxika, раз сказали овно, зачит в, забудь
8. maxika - 24 Марта, 2015 - 07:11:53 - перейти к сообщению
То есть, основной принцып заключается в том, что:
данные с оборудования поступают в буфер платы с одной скоростью,
а я их программой считываю из буфера с более быстрой скоростью
(чтобы буфер не переполнился) до момента, пока не будет прочитан строб.
Потом опять обращаюсь в буфер, опять читаю данные до строба.
При этом скорость считывания, должна быть быстрее скорости подачи данных.

Скажите пожалуйста, я правильно понимаю метод синхронизации???
9. Predator - 25 Марта, 2015 - 12:02:29 - перейти к сообщению
maxika пишет:
Скажите пожалуйста, я правильно понимаю метод синхронизации???

Да, это описание работы с FIFO, ну иногда еще добавляют сигналы о наполнении половины буфера, заполнения полностью и освобождения.

Только я уже забыл о вашей плате: есть там FIFO или нет.
10. maxika - 25 Марта, 2015 - 15:40:39 - перейти к сообщению
Спасибо за подсказки:-)) я сам еще не разобрался до конца с платой,
вот разбираюсь и делаю программу, вот вопросы и возникают)))
11. cjA - 27 Марта, 2015 - 00:34:47 - перейти к сообщению
Да не за что. Если PCI фирменная, то к ней должен и диск с драйвирами идти, а сли вы сами ее сделали или кто из друзей, то вот вопрос к ним. Забейте и начните снова, PCI скоро умрет.
12. maxika - 31 Марта, 2015 - 11:48:53 - перейти к сообщению
Плата ЛА-48Д PCI фирмы Руднев-Шиляев.

Посмотрел документацию к плате и не нашел на ней никакой буферной памяти.
Это значит, что метод FIFO , нужно реализовать непосредственно в ОЗУ компьютера.
Сделав буфер, для поступления и считывания данных в "очередь" FIFO,
либо при помощи структуры, либо массива.

Скажите пожалуйста, я правильно понимаю, процесс ?
13. Predator - 31 Марта, 2015 - 14:21:41 - перейти к сообщению
у этой платы есть буфер на 1 запись.
с помощью этой платы метод FIFO вы в ОЗУ компьютера не реализуете (нужен DMA-канал).
всё, что вы можете сделать - это "прикрутить" строб от омметра и загнать плату в режим 1 (см. датащит на плату)
и далее будете иметь такую цепочку: сигналы+строб->сигналы защелкиваются в буфер->плата выставляет прерывание->ваш обработчик прерываний считывает и кладет в выделенный буфер-> ваша программа берет из буфера
14. Петр Киселев - 31 Марта, 2015 - 19:14:18 - перейти к сообщению
Мне интересен вопрос подсоединения оборудования с LED-матрицами к ПК с целью увеличения памяти. Малахов Ваня запустил бегущую строку на 4 матрицы, но уперся в реализацию длинных фраз.

Возможно ли подключившись к ПК использовать его память?

Если "Да!", то как?
15. Predator - 31 Марта, 2015 - 20:42:25 - перейти к сообщению
Петр Киселев пишет:
Мне интересен вопрос подсоединения оборудования с LED-матрицами к ПК с целью увеличения памяти. Малахов Ваня запустил бегущую строку на 4 матрицы, но уперся в реализацию длинных фраз.

Возможно ли подключившись к ПК использовать его память?

Если "Да!", то как?

да легко:
включаете в свой скетч для дуины элементы примера communications/SerialCallRespons e и шлете в виртуальный ком-порт (который дуина) то, что вам надо.
слать в ком-порт можно чем угодно, навскидку гипертерминал виндузовый стандартный