Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Связь ATmega8 с компьютером через LPT
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Parhom1
Читал много про RS232 и связь через COM порт, есть следующие исходные данные:

Старенький ноут без COM, но с LPT, необходимо организовать управление МК из компа через LPT, а также получать на комп определенные данные.

Вопрос: как?

Спасибо.
=GM=
Цитата(Parhom1 @ Jul 11 2006, 14:04) *
Читал много про RS232 и связь через COM порт, есть следующие исходные данные:

Старенький ноут без COM, но с LPT, необходимо организовать управление МК из компа через LPT, а также получать на комп определенные данные.

Вопрос: как?

Спасибо.

Во-первых, вам надо определиться, какая ОС будет в ноутбуке, от этого зависит, какой драйвер вам придется писать. Во-вторых, надо определиться, нужна ли вам параллельная передача или последовательная.

Для начала посмотрите старенькое, но понятное описание, а затем более строгое описание стандарта IEEE-1284 .

Попробуйте с помощью LPT сформировать программно протокол RS-232, если скорости небольшие.
halfdoom
Можно изобразить на компьютере SPI мастера подключив его через что-то похожее на ByteBlaster. Имеет смысл задействовать линю ~SS для выделения начала пакетов.
Atashi
можно организовать и параллельный обмен по 8-ми линиям (побайтно), если перевести LPT порт в расширенный режим. работает, понятно, быстро, - но обычно жалко столько линий занимать...
Nanobyte
В корпусе разъёма LPT прекрасно разместится проеобразователь LPT-COM, на той-же AVR-ке. Три года назад делал преобразователь Ethernet-LPT, ничего особо сложного, для COM будет гораздо проще. Правда, остаётся открытым вопрос насчёт драйверов.
rezident
Еще одно решение: LPT<->I2C на PCF8584. Когда-то участвовал в тестировании проекта такого стыка, который предназначался для мониторинга шины I2C и ISP м/с 24Cxx в компьютеных мониторах. Предупреждаю сразу, что программистом проекта был не я, так что мне вопросы по программированию PCF8584 и LPT задавать не нужно smile.gif
http://monitor.elite-games.ru/port3.shtml
P.S. для реализации типового протокола общения с PCF8584 LPT-порт работал в режиме EPP.
Parhom1
Спасибо за ответы.
Что-то все как-то сложно...
Требования к скорости минимальны, т.е. все может происходить медленно.
Передача данных устраивает как параллельная, так и последовательная.

Вобщем подумал я и решил, что самый оптимальный вариант - создание своего простенького протокола обмена данными.
Через $379 программа передает инфе на КМ,
через $378 -получает данные от МК
через $37A рулит процессом (чтение/запись)

Думаю так будет легче всего в моем конкретном случае, т.к. поток данных небольшой:
- передать номер устройства
- проверить правильность передачи
- передать код действия
- проверить переданный код
- получить отзыв о том, что МК выполнил действия
- получение компьютером данных с измерительных приборов и статуса остальных приборов (вкл/выкл) для проверки.
rezident
Цитата(Parhom1 @ Jul 12 2006, 18:25) *
Думаю так будет легче всего в моем конкретном случае, т.к. поток данных небольшой:
- передать номер устройства
- проверить правильность передачи
- передать код действия
- проверить переданный код
- получить отзыв о том, что МК выполнил действия
- получение компьютером данных с измерительных приборов и статуса остальных приборов (вкл/выкл) для проверки.

Гм. Вообще-то вам описывали варианты реализации физических интерфейсов для связи через LPT, а вы про протокольный уровень оказывается спрашивали? ТщательнЕе надо вопросы формулировать. wink.gif
forever failure
Только наоборот:
0х378 - восемь ТТЛ выходов
0х379 - пять входов
0х37а - четыре выхода с ОК с тороых тоже можно входные уровни снимать.
(эт обычный ЛПТ, работает везде)
BVU
Есть в основном такой момент при использовании LPT порта - наличие операционной системы на ПК. Все выше перечисленные способы использования LPT непосредственно(0х378, 0х379, 0х37а), характеризуют наличие DOS. Для Windows необходим программный драйвер что бы корректно работь с LPT.
Способы передачи данных могут быть различны как - параллельно, так и последовательно (программно эмулируя стандарт последовательной передачи данных, например - RS232 или SPI и т.д.)
Parhom1
Простите, не сильно я силен в железе и протоколах передачи данных, ибо не сталкивался я с этим никогда, а теперь вот надо.

Суть была вот в чем:
Думалось мне, что используя како-то хитрый протокол типа RS232 можно будет облегчить разработку программ как для МК, так и для компа, ну, типа, записал последовательно несколько чисел из МК, преобразовалися они, отправились на комп, а в компе с программы получил эти данные и использую не волнуясь о том, что где-то что-то потерялось или изменилось. Но, как я понимаю дело обстоит иным образом и самостоятельно реализованный протокол будет легче.

А задача у меня такая:

есть ноутбук (с ОС я еще не определился, возможно DOC, возможно Linux, но я с ним никогда не работал), есть аквариум с различным оборудованием и вот мне нужно девайс собрать, который будет, получив команду от ПК, включить/выключить/изменить режим работы определенного оборудования, после чего девайс должен проверить, была ли выполнена команда правильно и передать соответствующее подтверждение ПК.
Также девайс будес измерять температуру воды и передавать в ПК.
И еще будет выполняться переодический опрос оборудования и сообщаться его статус ПК (выкл/вкл/режим и т.д.).

Вот такой вот девайс!!!
forever failure
Если некритично по скорости - лучше SPI или SPI-подобный протокол - с проводами возни меньше. Можно полубайтами обмениваться - больше проводов, но программная реализация чуть проще и быстрее обмен будет.
Насчёт ОС - как под DOS так и под Linux - это почти одинаково легко - не надо никакого драйвера писать - обычное пользовательское приложение - выбор тут определяется ресурсами машины - если они очень скромные - то лучше под доску это делать.
SasaVitebsk
Цитата(Parhom1 @ Jul 12 2006, 15:25) *
Спасибо за ответы.
Что-то все как-то сложно...
Требования к скорости минимальны, т.е. все может происходить медленно.
Передача данных устраивает как параллельная, так и последовательная.

Вобщем подумал я и решил, что самый оптимальный вариант - создание своего простенького протокола обмена данными.
Через $379 программа передает инфе на КМ,
через $378 -получает данные от МК
через $37A рулит процессом (чтение/запись)

Думаю так будет легче всего в моем конкретном случае, т.к. поток данных небольшой:
- передать номер устройства
- проверить правильность передачи
- передать код действия
- проверить переданный код
- получить отзыв о том, что МК выполнил действия
- получение компьютером данных с измерительных приборов и статуса остальных приборов (вкл/выкл) для проверки.


Могу дать прогу с исходниками DELFI + ASM AVR. Правда только для SPP (стандартный LPT). EPP у меня почему-то не заработал. sad.gif

Если надо, то пиши.
ОС 98/ME/XP/2000.
ps1x
А еще чтобы работать с ЛПТ в операционках XP 200 и может быть Vista нужен драйвер который называется dlportio или просто portio... Ибо винда не позволяет рулить напрямую портом.
SasaVitebsk
Цитата(ps1x @ Jul 12 2006, 23:04) *
А еще чтобы работать с ЛПТ в операционках XP 200 и может быть Vista нужен драйвер который называется dlportio или просто portio... Ибо винда не позволяет рулить напрямую портом.


У меня есть SmallPort. Позволяет обращаться к портам напрямую из любой операционки.
Просившему всё отправил на мыло. Есть у меня приблуда такая. ч/з порт принтера данные передаю из стенда и в файл складываю
А ещё у меня есть прога, думаю кому пригодится, позволяет просматривать файл в виде осциллографа многоканального. Выбирается всё. Есть поиск. Я ей пользуюсь.

Вот стану "своим" сброшу на FTP. smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.