Карма: 66
Рейтинг сообщений: 3189
Зарегистрирован: Чт сен 09, 2010 07:32:24 Сообщений: 2173 Откуда: г. Рыбинск
Рейтинг сообщения:0
Ввиду многообразия чипсетов и их настроек, точное значение максимальной скорости обмена по 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 Мбайт/с.
Максимальная скорость обмена через порт LPT достигается в режиме ECP и достигает 2.5 МБ/с. Этот предел устанавливается возможностями 8-битного контроллера прямого доступа к памяти IBM PC (именно он используется в этом режиме). Больше не получится - расплата за совместимость с ранними моделями семейства.
_________________ Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет. J. Ganssle
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Карма: 66
Рейтинг сообщений: 3189
Зарегистрирован: Чт сен 09, 2010 07:32:24 Сообщений: 2173 Откуда: г. Рыбинск
Рейтинг сообщения:0
Согласен. ECP вряд ли применим в случае, когда требуется лишь управлять с определённой ритмичностью отдельными сигналами порта или наоборот, определять их состояние. ECP - протокол блочного обмена, к тому же с аппаратным квитированием, буферированием и, при необходимости, однобайтной RLE компрессией.
только говорить о "частоте" не стоит, т.к. передача всегда ведется пакетами, т.е. будут неизбежно паузы от 10 мкс до 50 мс и более.
Получается, что если я буду опрашивать какое-либо устройство с периодом например 10мкс, то если будут задержки, и считав на 3-м шаге значение 125, из-за задережек (например 100мкс), я буду получать это же значение до 13 шага ?
только говорить о "частоте" не стоит, т.к. передача всегда ведется пакетами, т.е. будут неизбежно паузы от 10 мкс до 50 мс и более.
Получается, что если я буду опрашивать какое-либо устройство с периодом например 10мкс, то если будут задержки, и считав на 3-м шаге значение 125, из-за задережек (например 100мкс), я буду получать это же значение до 13 шага ?
нет, не так. ваша программа будет уверена, что она получает данные каждые 10 мкс, а на самом деле некоторые данные будут задержаны на неопределенный интервал. т.е. вы не можете быть уверены, что между данными у вас одно и то же время.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Полностью согласен со сказанным по поводу нестабильности. Небольше добаления:
Да, раньше цикл обращения к 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 конвертор).
_________________ Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Вопрос к опытным котам: Нужно сделать вывод сигнала через 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 Гц. Для чего это нужно: Все приводы, подключенные напрямую и через последовательную шину, синхронизированы в одном устройстве, в одном процессе компьютера. Суть вопроса: реализовать в железе.
... Система предназначена для управления станком с шаговыми двигателями с обратной связью, т.е. по сути нужно сделать ...
"По сути" - ничего не нужно делать. Всю необходимую электронику для станков с ЧПУ давно можно купить у китайцев. Выйдет на два порядка дешевле, чем разработка вашего "велосипеда".
... Система предназначена для управления станком с шаговыми двигателями с обратной связью, т.е. по сути нужно сделать сервопривод на базе шагового двигателя и датчика типа TTL; размножить его на сколько это получится и засунуть на одну плату...
Описанная вами система с преобразованием G кодов в перемещение по координатам с помощью компьютера существует. например широко распространена MACH3. LPT плата от $5
Есть вариант, когда компьютер только передает(проигрывает) файлы с G кодами в станок а станок сам пересчитывает шаги и координаты. Например GRBL. За $60 можно купить плату + 3 драйвера+ 3 мотора https://www.aliexpress.com/item/Diy-3-a ... 0a48a8ae5a
GRBL - открытый проект, можно подправить под свои задачи.
В обоих случаях(а может и во всех случаях) отслеживание истинного положения с заданным должно решаться приводом. Например превышением имеющегося момента привода над максимально требуемым моментом раза в 3.
Или созданием следящего привода. Грубо говоря, между устройством передающим шаговый импульс и приводом отрабатывающим импульс(драйвером двигателя) врезается устройство которое считает импульсы от задатчика и сравнивает их с импульсами от энкодера положения. В случае рассогласования дополнительно формирует импульсы управления.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения