Максимальная скорость у параллельного порта (вопрос про Ultralogic)
Здравствуйте! Возникла проблема при написании программы на Ultralogic'е для PC-совместимого контроллера Octagon Micro-PC 5025A. Стоит задача в опросе датчика на скорости около 100 кбод. и приеме информации с него на той же скорости через параллельный порт контроллера. При разработке программы мы столкнулись вот с чем: нужно сформировать пачку импульсов, таймерная переменная Ultralogic'a не подходит, слишком большая длительность импульса, цикл с инвертацией (при помощи логического элемента НЕ) работает, но длительность все равно велика. А вот способ с поочередным присвоением true/false, почему-то не работает Я уже и задержку вводил в виде пустого циклического счетчика, все равно на out'e порта без изменений, осциллограф ничего не кажет. Может быть железо контроллера не тянет, или какие другие блоки надо поставить? Поможите, люди добрые, кто чем может...
Скорее всего, это ошибка в Вашей программе. Вероятно, Вы не учли, что данные на выходах обновляются в конце цикла.
Тем не менее, если нужны такие скорости, лучший способ - это написать собственный модуль на ассемблере или на C.
Инженер-системотехник
+7 (916) 477 3925
Насчет Ultralogic'а ничего сказать не могу и в килободах не понимаю...но
скорость обращения к LPT порту равна скорости обращения к порту на шине ISA. Для Pentium'ов - это примерно 1микросекунда на байт. У 386/486 и original ISA - 10микросекунд, если можно крутить настройки в биосе, то можно добится 1-2микросекунд
SY,
EK
Первоначально опубликовано Максим Ананских
Скорее всего, это ошибка в Вашей программе. Вероятно, Вы не учли, что данные на выходах обновляются в конце цикла.
Тем не менее, если нужны такие скорости, лучший способ - это написать собственный модуль на ассемблере или на C.
Ну, вот, например, две программы. В первой просто инвертирующий элемент, на входе у него вых. переменная порта "out" и на выходе она же. Во второй, два блока присваивания, первый "=False", второй "=True". Первая программа генерит меандр, но частота маленькая, вторая программа молчит. В чем дело не пойму...
Я не знаю, что за датчик Вы применяете, (можете уточнить, и почему необходимо датчик именно на порт вешать?) но для большинства любых аналоговых время их отклика не превышает 200 мс. Потому увеличивать скорость опроса быстрее 200 мс попросту не имеет смысла.
С уважением,
Дмитрий Н. Милосердов mailto:dnmiloserdov@vsw.ru
Управление АСУ ТП Дирекции по ИТ ОАО ВМЗ
http www.vsw.ru
Первоначально опубликовано dmitmil
Я не знаю, что за датчик Вы применяете, (можете уточнить, и почему необходимо датчик именно на порт вешать?) но для большинства любых аналоговых время их отклика не превышает 200 мс. Потому увеличивать скорость опроса быстрее 200 мс попросту не имеет смысла.
Из-за экономии средств, у нас не совсем стандартное решение, опрос непосредственно контроллером поворотного шифратора приращений фирмы "Pepperl+Fuchs" посредством LPT, прием кода текущего положения и последующая обработка информации. Скорость опроса большая исходя из требований датчика, не менее 100 кбод, длительность каждого "опросного" бита 20+/-10 мкс. Т.к разрядность датчика 25 бит, то при скорости вращения, скажем, 1000 об/с такие требования к скорости передачи вполне объяснимы...
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме