реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Связь ATmega8 с компьютером через LPT, как это реализовать?
Parhom1
сообщение Jul 11 2006, 15:04
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 5-07-06
Пользователь №: 18 609



Читал много про RS232 и связь через COM порт, есть следующие исходные данные:

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

Вопрос: как?

Спасибо.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 11 2006, 15:46
Сообщение #2


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



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

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

Вопрос: как?

Спасибо.

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

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

Попробуйте с помощью LPT сформировать программно протокол RS-232, если скорости небольшие.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Jul 11 2006, 16:17
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Можно изобразить на компьютере SPI мастера подключив его через что-то похожее на ByteBlaster. Имеет смысл задействовать линю ~SS для выделения начала пакетов.
Go to the top of the page
 
+Quote Post
Atashi
сообщение Jul 11 2006, 18:27
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 30-04-05
Пользователь №: 4 630



можно организовать и параллельный обмен по 8-ми линиям (побайтно), если перевести LPT порт в расширенный режим. работает, понятно, быстро, - но обычно жалко столько линий занимать...
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Jul 12 2006, 07:23
Сообщение #5


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



В корпусе разъёма LPT прекрасно разместится проеобразователь LPT-COM, на той-же AVR-ке. Три года назад делал преобразователь Ethernet-LPT, ничего особо сложного, для COM будет гораздо проще. Правда, остаётся открытым вопрос насчёт драйверов.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 12 2006, 08:01
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Еще одно решение: LPT<->I2C на PCF8584. Когда-то участвовал в тестировании проекта такого стыка, который предназначался для мониторинга шины I2C и ISP м/с 24Cxx в компьютеных мониторах. Предупреждаю сразу, что программистом проекта был не я, так что мне вопросы по программированию PCF8584 и LPT задавать не нужно smile.gif
http://monitor.elite-games.ru/port3.shtml
P.S. для реализации типового протокола общения с PCF8584 LPT-порт работал в режиме EPP.
Go to the top of the page
 
+Quote Post
Parhom1
сообщение Jul 12 2006, 12:25
Сообщение #7





Группа: Новичок
Сообщений: 11
Регистрация: 5-07-06
Пользователь №: 18 609



Спасибо за ответы.
Что-то все как-то сложно...
Требования к скорости минимальны, т.е. все может происходить медленно.
Передача данных устраивает как параллельная, так и последовательная.

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

Думаю так будет легче всего в моем конкретном случае, т.к. поток данных небольшой:
- передать номер устройства
- проверить правильность передачи
- передать код действия
- проверить переданный код
- получить отзыв о том, что МК выполнил действия
- получение компьютером данных с измерительных приборов и статуса остальных приборов (вкл/выкл) для проверки.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 12 2006, 12:42
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



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

Гм. Вообще-то вам описывали варианты реализации физических интерфейсов для связи через LPT, а вы про протокольный уровень оказывается спрашивали? ТщательнЕе надо вопросы формулировать. wink.gif
Go to the top of the page
 
+Quote Post
forever failure
сообщение Jul 12 2006, 12:46
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Только наоборот:
0х378 - восемь ТТЛ выходов
0х379 - пять входов
0х37а - четыре выхода с ОК с тороых тоже можно входные уровни снимать.
(эт обычный ЛПТ, работает везде)
Go to the top of the page
 
+Quote Post
BVU
сообщение Jul 12 2006, 14:23
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Есть в основном такой момент при использовании LPT порта - наличие операционной системы на ПК. Все выше перечисленные способы использования LPT непосредственно(0х378, 0х379, 0х37а), характеризуют наличие DOS. Для Windows необходим программный драйвер что бы корректно работь с LPT.
Способы передачи данных могут быть различны как - параллельно, так и последовательно (программно эмулируя стандарт последовательной передачи данных, например - RS232 или SPI и т.д.)


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Parhom1
сообщение Jul 12 2006, 14:38
Сообщение #11





Группа: Новичок
Сообщений: 11
Регистрация: 5-07-06
Пользователь №: 18 609



Простите, не сильно я силен в железе и протоколах передачи данных, ибо не сталкивался я с этим никогда, а теперь вот надо.

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

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

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

Вот такой вот девайс!!!
Go to the top of the page
 
+Quote Post
forever failure
сообщение Jul 12 2006, 16:37
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112



Если некритично по скорости - лучше SPI или SPI-подобный протокол - с проводами возни меньше. Можно полубайтами обмениваться - больше проводов, но программная реализация чуть проще и быстрее обмен будет.
Насчёт ОС - как под DOS так и под Linux - это почти одинаково легко - не надо никакого драйвера писать - обычное пользовательское приложение - выбор тут определяется ресурсами машины - если они очень скромные - то лучше под доску это делать.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 12 2006, 17:01
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Parhom1 @ Jul 12 2006, 15:25) *
Спасибо за ответы.
Что-то все как-то сложно...
Требования к скорости минимальны, т.е. все может происходить медленно.
Передача данных устраивает как параллельная, так и последовательная.

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

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


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

Если надо, то пиши.
ОС 98/ME/XP/2000.

Сообщение отредактировал SasaVitebsk - Jul 12 2006, 17:04
Go to the top of the page
 
+Quote Post
ps1x
сообщение Jul 12 2006, 20:04
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



А еще чтобы работать с ЛПТ в операционках XP 200 и может быть Vista нужен драйвер который называется dlportio или просто portio... Ибо винда не позволяет рулить напрямую портом.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 13 2006, 20:43
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



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


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

Вот стану "своим" сброшу на FTP. smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01483 секунд с 7
ELECTRONIX ©2004-2016