Parhom1
Jul 11 2006, 15:04
Читал много про RS232 и связь через COM порт, есть следующие исходные данные:
Старенький ноут без COM, но с LPT, необходимо организовать управление МК из компа через LPT, а также получать на комп определенные данные.
Вопрос: как?
Спасибо.
Цитата(Parhom1 @ Jul 11 2006, 14:04)
Читал много про RS232 и связь через COM порт, есть следующие исходные данные:
Старенький ноут без COM, но с LPT, необходимо организовать управление МК из компа через LPT, а также получать на комп определенные данные.
Вопрос: как?
Спасибо.
Во-первых, вам надо определиться, какая ОС будет в ноутбуке, от этого зависит, какой драйвер вам придется писать. Во-вторых, надо определиться, нужна ли вам параллельная передача или последовательная.
Для начала посмотрите
старенькое, но понятное описание, а затем более строгое описание
стандарта IEEE-1284 .
Попробуйте с помощью LPT сформировать программно протокол RS-232, если скорости небольшие.
halfdoom
Jul 11 2006, 16:17
Можно изобразить на компьютере SPI мастера подключив его через что-то похожее на ByteBlaster. Имеет смысл задействовать линю ~SS для выделения начала пакетов.
Atashi
Jul 11 2006, 18:27
можно организовать и параллельный обмен по 8-ми линиям (побайтно), если перевести LPT порт в расширенный режим. работает, понятно, быстро, - но обычно жалко столько линий занимать...
Nanobyte
Jul 12 2006, 07:23
В корпусе разъёма LPT прекрасно разместится проеобразователь LPT-COM, на той-же AVR-ке. Три года назад делал преобразователь Ethernet-LPT, ничего особо сложного, для COM будет гораздо проще. Правда, остаётся открытым вопрос насчёт драйверов.
rezident
Jul 12 2006, 08:01
Еще одно решение: LPT<->I2C на PCF8584. Когда-то участвовал в тестировании проекта такого стыка, который предназначался для мониторинга шины I2C и ISP м/с 24Cxx в компьютеных мониторах. Предупреждаю сразу, что программистом проекта был не я, так что мне вопросы по программированию PCF8584 и LPT задавать не нужно
http://monitor.elite-games.ru/port3.shtmlP.S. для реализации типового протокола общения с PCF8584 LPT-порт работал в режиме EPP.
Parhom1
Jul 12 2006, 12:25
Спасибо за ответы.
Что-то все как-то сложно...
Требования к скорости минимальны, т.е. все может происходить медленно.
Передача данных устраивает как параллельная, так и последовательная.
Вобщем подумал я и решил, что самый оптимальный вариант - создание своего простенького протокола обмена данными.
Через $379 программа передает инфе на КМ,
через $378 -получает данные от МК
через $37A рулит процессом (чтение/запись)
Думаю так будет легче всего в моем конкретном случае, т.к. поток данных небольшой:
- передать номер устройства
- проверить правильность передачи
- передать код действия
- проверить переданный код
- получить отзыв о том, что МК выполнил действия
- получение компьютером данных с измерительных приборов и статуса остальных приборов (вкл/выкл) для проверки.
rezident
Jul 12 2006, 12:42
Цитата(Parhom1 @ Jul 12 2006, 18:25)
Думаю так будет легче всего в моем конкретном случае, т.к. поток данных небольшой:
- передать номер устройства
- проверить правильность передачи
- передать код действия
- проверить переданный код
- получить отзыв о том, что МК выполнил действия
- получение компьютером данных с измерительных приборов и статуса остальных приборов (вкл/выкл) для проверки.
Гм. Вообще-то вам описывали варианты реализации физических интерфейсов для связи через LPT, а вы про протокольный уровень оказывается спрашивали? ТщательнЕе надо вопросы формулировать.
forever failure
Jul 12 2006, 12:46
Только наоборот:
0х378 - восемь ТТЛ выходов
0х379 - пять входов
0х37а - четыре выхода с ОК с тороых тоже можно входные уровни снимать.
(эт обычный ЛПТ, работает везде)
Есть в основном такой момент при использовании LPT порта - наличие операционной системы на ПК. Все выше перечисленные способы использования LPT непосредственно(0х378, 0х379, 0х37а), характеризуют наличие DOS. Для Windows необходим программный драйвер что бы корректно работь с LPT.
Способы передачи данных могут быть различны как - параллельно, так и последовательно (программно эмулируя стандарт последовательной передачи данных, например - RS232 или SPI и т.д.)
Parhom1
Jul 12 2006, 14:38
Простите, не сильно я силен в железе и протоколах передачи данных, ибо не сталкивался я с этим никогда, а теперь вот надо.
Суть была вот в чем:
Думалось мне, что используя како-то хитрый протокол типа RS232 можно будет облегчить разработку программ как для МК, так и для компа, ну, типа, записал последовательно несколько чисел из МК, преобразовалися они, отправились на комп, а в компе с программы получил эти данные и использую не волнуясь о том, что где-то что-то потерялось или изменилось. Но, как я понимаю дело обстоит иным образом и самостоятельно реализованный протокол будет легче.
А задача у меня такая:
есть ноутбук (с ОС я еще не определился, возможно DOC, возможно Linux, но я с ним никогда не работал), есть аквариум с различным оборудованием и вот мне нужно девайс собрать, который будет, получив команду от ПК, включить/выключить/изменить режим работы определенного оборудования, после чего девайс должен проверить, была ли выполнена команда правильно и передать соответствующее подтверждение ПК.
Также девайс будес измерять температуру воды и передавать в ПК.
И еще будет выполняться переодический опрос оборудования и сообщаться его статус ПК (выкл/вкл/режим и т.д.).
Вот такой вот девайс!!!
forever failure
Jul 12 2006, 16:37
Если некритично по скорости - лучше SPI или SPI-подобный протокол - с проводами возни меньше. Можно полубайтами обмениваться - больше проводов, но программная реализация чуть проще и быстрее обмен будет.
Насчёт ОС - как под DOS так и под Linux - это почти одинаково легко - не надо никакого драйвера писать - обычное пользовательское приложение - выбор тут определяется ресурсами машины - если они очень скромные - то лучше под доску это делать.
SasaVitebsk
Jul 12 2006, 17:01
Цитата(Parhom1 @ Jul 12 2006, 15:25)
Спасибо за ответы.
Что-то все как-то сложно...
Требования к скорости минимальны, т.е. все может происходить медленно.
Передача данных устраивает как параллельная, так и последовательная.
Вобщем подумал я и решил, что самый оптимальный вариант - создание своего простенького протокола обмена данными.
Через $379 программа передает инфе на КМ,
через $378 -получает данные от МК
через $37A рулит процессом (чтение/запись)
Думаю так будет легче всего в моем конкретном случае, т.к. поток данных небольшой:
- передать номер устройства
- проверить правильность передачи
- передать код действия
- проверить переданный код
- получить отзыв о том, что МК выполнил действия
- получение компьютером данных с измерительных приборов и статуса остальных приборов (вкл/выкл) для проверки.
Могу дать прогу с исходниками DELFI + ASM AVR. Правда только для SPP (стандартный LPT). EPP у меня почему-то не заработал.
Если надо, то пиши.
ОС 98/ME/XP/2000.
А еще чтобы работать с ЛПТ в операционках XP 200 и может быть Vista нужен драйвер который называется dlportio или просто portio... Ибо винда не позволяет рулить напрямую портом.
SasaVitebsk
Jul 13 2006, 20:43
Цитата(ps1x @ Jul 12 2006, 23:04)
А еще чтобы работать с ЛПТ в операционках XP 200 и может быть Vista нужен драйвер который называется dlportio или просто portio... Ибо винда не позволяет рулить напрямую портом.
У меня есть SmallPort. Позволяет обращаться к портам напрямую из любой операционки.
Просившему всё отправил на мыло. Есть у меня приблуда такая. ч/з порт принтера данные передаю из стенда и в файл складываю
А ещё у меня есть прога, думаю кому пригодится, позволяет просматривать файл в виде осциллографа многоканального. Выбирается всё. Есть поиск. Я ей пользуюсь.
Вот стану "своим" сброшу на FTP.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.