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

Частота LPT

Вс мар 13, 2011 20:02:45

Подскажите пожалуйста max значение частоты, с котрой можно выдавать управляющие импульсы, а так же считывать (если их скорость не одинакова).

Re: Частота LPT

Вс мар 13, 2011 21:36:07

Ну как бы многозадачность ОС не позволит точно формировать и считывать данные.
Лучше связка МК - PC.

Re: Частота LPT

Вс мар 13, 2011 23:06:18

Ввиду многообразия чипсетов и их настроек, точное значение максимальной скорости обмена по Centronics не скажет никто.
Во времена MS-DOS, я написал простейший скоростемер 8, 16 и 32-х битных операций ввода-вывода с произвольным портом. По моему опыту однобайтные пересылки (in al,dx и out dx,al) в порт данных LPT в режиме SPP дают скорость от 200 до 800 тыс. байт/с в зависимости от конфигурации "железа". Такой разброс наблюдался повсеместно, начиная от ISA мультикарт в PC AT до современных SuperIO чипов. Если для первых скорость определялась частотой шины и числом дополнительных тактов ожидания, то для последних - целой кучей совершенно других факторов, включая такую экзотику, как обработка SMI для поддержки USB-Legacy устройств до загрузки операционной системы.
ИМХО, ориентироваться можно на предел в 1 мкс на байтовый ввод-вывод или 1 Мбайт/с.

Re: Частота LPT

Пн мар 14, 2011 00:36:04

Максимальная скорость обмена через порт LPT достигается в режиме ECP и достигает 2.5 МБ/с. Этот предел устанавливается возможностями 8-битного контроллера прямого доступа к памяти IBM PC (именно он используется в этом режиме). Больше не получится - расплата за совместимость с ранними моделями семейства.

Re: Частота LPT

Пн мар 14, 2011 08:37:07

только говорить о "частоте" не стоит, т.к. передача всегда ведется пакетами, т.е. будут неизбежно паузы от 10 мкс до 50 мс и более.

Re: Частота LPT

Пн мар 14, 2011 09:10:06

Согласен. ECP вряд ли применим в случае, когда требуется лишь управлять с определённой ритмичностью отдельными сигналами порта или наоборот, определять их состояние. ECP - протокол блочного обмена, к тому же с аппаратным квитированием, буферированием и, при необходимости, однобайтной RLE компрессией.

Re: Частота LPT

Пн мар 14, 2011 15:38:17

только говорить о "частоте" не стоит, т.к. передача всегда ведется пакетами, т.е. будут неизбежно паузы от 10 мкс до 50 мс и более.


Получается, что если я буду опрашивать какое-либо устройство с периодом например 10мкс, то если будут задержки, и считав на 3-м шаге значение 125, из-за задережек (например 100мкс), я буду получать это же значение до 13 шага ?

Re: Частота LPT

Пн мар 14, 2011 18:38:28

[km]REX писал(а):
только говорить о "частоте" не стоит, т.к. передача всегда ведется пакетами, т.е. будут неизбежно паузы от 10 мкс до 50 мс и более.


Получается, что если я буду опрашивать какое-либо устройство с периодом например 10мкс, то если будут задержки, и считав на 3-м шаге значение 125, из-за задережек (например 100мкс), я буду получать это же значение до 13 шага ?

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

Re: Частота LPT

Пн мар 14, 2011 18:39:09

[km]REX писал(а):буду опрашивать какое-либо устройство с периодом например 10мкс
Для многозадачных ОС это фантастика!
Вам нужно что-то типа MS-DOS для этого.

Re: Частота LPT

Вт мар 15, 2011 01:56:42

Мурик писал(а):
[km]REX писал(а):буду опрашивать какое-либо устройство с периодом например 10мкс
Для многозадачных ОС это фантастика!
Вам нужно что-то типа MS-DOS для этого.

QNX?

Re: Частота LPT

Ср мар 23, 2011 08:52:58

Полностью согласен со сказанным по поводу нестабильности.
Небольше добаления:

Да, раньше цикл обращения к LPT занимал, как правило, от 1.2 до 2.5 мкс в зависимости от чипсета и настроек материнской платы (настроек ISA). Процессор от 286 до пентиумов на это мало влиял. А вот настройки ISA в биосе влияли, на некоторых платах уавалось добиться 0.8мкс для LPT (и 8-битных обращений на ISA, а для 16-битных -- до 0.5мкс).

Даже в тех мамках, где ISA уже не была выведена для плат расширения, она была на самой плате для MIO-чипа. Но там настроить уже ничего было нельзя. Позже кое-где MIO-чипы и LPT с ними сели на LPC (LowPinCount) - это такой себе 33-мегагерцовый, но 4-битный урезанный аналог PCI. Пока оно передаст в несколько тактов сначала адрес, потом данные, как раз на обычную скорость ISA и выходит, только менее, чем по десятку проводов. Итого -- привычные 1.1-1.3мкс на обращение LPT, зависящие уже от того, где сидит чип (сколько PCI-мостов в системе?)

PCI-LPT платы изначально имеют бо́льшую скорость обмена. Тут тоже есть зависимость от того, насколько навороченная мамка и за сколькими мостами оказались на ней слоты PCI. Имеем 0.3-0.7 мкс на обращение (именно поэтому avreal через PCI-LPT шьёт AVR-ки быстрее, чем все soft-USB программаторы и часть имеющих аппаратный USB-COM конвертор).

Re: Частота LPT

Пн фев 06, 2017 23:34:28

Вопрос к опытным котам:
Нужно сделать вывод сигнала через PCI шину с привязкой к тактовой частоте шины. Там она 33 или 66 МГц. Система предназначена для управления станком с шаговыми двигателями с обратной связью, т.е. по сути нужно сделать сервопривод на базе шагового двигателя и датчика типа TTL; размножить его на сколько это получится и засунуть на одну плату.
Предполагается использовать процессор AMD 4 ядра по 4 ГГц и соответственно мать для него. В процессорах Интел есть функция Intel Virtualization Technology. Даёт возможность виртуальным машинам получать доступ к аппаратным ресурсам. Если это будет необходимо, выбор платформы будет пересмотрен в пользу Intel.
Станок будет использоваться для товарной обработки и нарезания резьбы. Нужны такие функции как круговая, линейная интерполяция, старт прохода с нулевой меткой шпинделя (для многопроходного нарезания резьбы).
Алгоритм работы примерно такой: моделируется процесс работы станка, в соответствии с введенной программой (в G-кодах). С частотой 33 МГц/16 высчитывается положение для каждой из задействованных осей. Положение сравнивается с реальным, которое было вычислено по датчиками и хранится в оперативной памяти. В соответствии с отставанием вычисленного положения от реального на ось выдаётся определённая широта импульса. Для двухполюсных шаговых двигателей в каждом из возможных 1000 положений (по датчику) соответствует один их 4-х вариантов подачи напряжения: обмотка А +; обмотка Б+; обмотка А-; обмотка Б-.
Это ещё не все. Для подключения внешних сервоприводов с платы выведена шина, 2 провода. Совместимость с rs485 приветствуется, хотя и не обязательна. Частота шины - 1 МГц. Формат передачи данных: первый байт стартовый 11111111. Далее следует 2 байта адреса, затем 2 байта данных, затем 4 бит пауза. Она же используется ведомым устройством для запроса прерывания, если это необходимо. Далее следует 2 байта обратной связи, далее 4 бит пауза. После этого цикл повторяется сначала. Таким образом мы имеем: полный кадр, со всеми паузами и т.д., занимает 64 бит. При частоте 1МГц -1000000:64 = 15 655 кадров в секунду. Этого хватит для того, чтобы, допустим, управлять одновременно 15-ю сервоприводами с частотой 100 Гц.
Для чего это нужно:
Все приводы, подключенные напрямую и через последовательную шину, синхронизированы в одном устройстве, в одном процессе компьютера.
Суть вопроса: реализовать в железе.

Re: Частота LPT

Вт фев 07, 2017 10:02:30

Ну и какова цена вопроса ?

Re: Частота LPT

Вт фев 07, 2017 19:26:36

Цена вопроса полсотни.

Re: Частота LPT

Ср фев 08, 2017 09:30:59

Надеюсь, не $ - рублей ? А то не так смешно было бы .

Re: Частота LPT

Чт фев 09, 2017 16:11:42

Анекдот:
Одинокий мужчина ...

Убрал, не по теме. Предупреждение. FAKIR.

Re: Частота LPT

Чт фев 09, 2017 17:46:52

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

Re: Частота LPT

Сб фев 25, 2017 20:24:03

Corvet C6 писал(а):... Система предназначена для управления станком с шаговыми двигателями с обратной связью, т.е. по сути нужно сделать сервопривод на базе шагового двигателя и датчика типа TTL; размножить его на сколько это получится и засунуть на одну плату...


Описанная вами система с преобразованием G кодов в перемещение по координатам с помощью компьютера существует.
например широко распространена MACH3.
LPT плата от $5

https://www.aliexpress.com/w/wholesale- ... eedQuery=n

USB от $30..40

https://www.aliexpress.com/item/mach3-4 ... 038f19d4bc

Есть вариант, когда компьютер только передает(проигрывает) файлы с G кодами в станок а станок сам пересчитывает шаги и координаты.
Например GRBL.
За $60 можно купить плату + 3 драйвера+ 3 мотора
https://www.aliexpress.com/item/Diy-3-a ... 0a48a8ae5a


GRBL - открытый проект, можно подправить под свои задачи.

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

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