Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 03.07.2007, 13:31  
ant_
Прописка
 
Регистрация: 21.09.2006
Сообщений: 195
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ant_ на пути к лучшему
По умолчанию


Вот как раз здесь стык "канального" и "сетевого" уровней.
Все дело в том, что Вы описываете работу ДРАЙВЕРА.
Данные, которые Вы посылаете командой out(byte,$REG) - это данные, улетающие в ЛИНИЮ. Они могут представлять собой и пользоват. данные и адрес устройства.
Вот например:
1. out(AA,0x37- отправляем адрес нужного устр-ва
2. out(03,0x37-отправляем число перед. байт
3. if _receive=AA_ok then DEVICE_found - ответ устр-ва
4. while not (eof) out(data_byte,0x347.-передаем данные.
Ясно?
Реклама:
ant_ вне форума  
Непрочитано 03.07.2007, 13:32  
VVK
Частый гость
 
Регистрация: 10.12.2004
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
VVK на пути к лучшему
По умолчанию

Сообщение от Faworit
Добрый день. Передавать и принимать по ШД в 1 байт это тривиальная задача и была неоднократно описана в различной литературе. Покопайтесь и сами удивитесь. Что касается адресации устройств, тут можно применять различные варианты, ну например использовать РТ-шки. Прошиваете код по принципу обычного дишифратора. У меня в разработке было так: на ШД комп выставляет адрес(использовал 5 бит старшие, но это не важно какие биты использовать), схема дишифрации запрашивает устройство и формирует сигнал для компа (вроде как "готов"), комп выставляет на ШД уже теперь данные и ждет снятия сигнала "готов" от устройства(не от дишифратора). Снятие готовности дает компу сигнал о принятии данных устройством. Для обмена данными комп-устройство-комп, в ЛПТ достаточно выводов для организации практически любого алгоритма работы. А количество внешних устройств, 20 не предел ( у меня было 32). VVK, если не сможете сами найти или нарисовать схему, пишите на майл(kryhtin2005@mail.ru), постараюсь Вам помочь
Спасибо Faworit, я написал мылом (если нетрудно ответьте там поподробнее)
VVK вне форума  
Непрочитано 03.07.2007, 13:43  
VVK
Частый гость
 
Регистрация: 10.12.2004
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
VVK на пути к лучшему
По умолчанию

Сообщение от ant_

Вот как раз здесь стык "канального" и "сетевого" уровней.
Все дело в том, что Вы описываете работу ДРАЙВЕРА.
Данные, которые Вы посылаете командой out(byte,$REG) - это данные, улетающие в ЛИНИЮ. Они могут представлять собой и пользоват. данные и адрес устройства.
Вот например:
1. out(AA,0x37- отправляем адрес нужного устр-ва
2. out(03,0x37-отправляем число перед. байт
3. if _receive=AA_ok then DEVICE_found - ответ устр-ва
4. while not (eof) out(data_byte,0x347.-передаем данные.
Ясно?
ну что Вы!..полный ступор (я же драйвера сроду не писал)..в глазах рябит и в ушах свистит. Ну ничего, стакан зелёного чая и буду собирать мысли в пучок, пока не разберусь.
VVK вне форума  
Непрочитано 03.07.2007, 13:49  
ant_
Прописка
 
Регистрация: 21.09.2006
Сообщений: 195
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ant_ на пути к лучшему
По умолчанию

Брр!
Никакого ступора!
Пишу на мнемоническом языке.(по-русски):
1. прд.в_порт_LPT(адрес_у-ва,адрес_порта_LPT);
2. прд.в_порт_LPT(число_польз_байт,фдрес_порта_LPT);
3. ждем_чего_нить_на_приеме_LPT_порта;
4. приняли_из_порта(адрес_порта_LPT)=ответ_устройства =›устройство_найдено;
5. пока_данные_не_закончились
прд.в_порт_LPT(данные,адрес_порта_LPT).
Так понятней?
ant_ вне форума  
Непрочитано 03.07.2007, 14:09  
VVK
Частый гость
 
Регистрация: 10.12.2004
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
VVK на пути к лучшему
По умолчанию

Сообщение от ant_
Брр!
Никакого ступора!
Пишу на мнемоническом языке.(по-русски):
1. прд.в_порт_LPT(адрес_у-ва,адрес_порта_LPT);
2. прд.в_порт_LPT(число_польз_байт,фдрес_порта_LPT);
3. ждем_чего_нить_на_приеме_LPT_порта;
4. приняли_из_порта(адрес_порта_LPT)=ответ_устройства =›устройство_найдено;
5. пока_данные_не_закончились
прд.в_порт_LPT(данные,адрес_порта_LPT).
Так понятней?
ага, только не пойму откуда компьютер узнает что такое AA (устройство) и какой у него адрес
VVK вне форума  
Непрочитано 03.07.2007, 14:17  
VVK
Частый гость
 
Регистрация: 10.12.2004
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
VVK на пути к лучшему
По умолчанию

Сообщение от ant_

Вот как раз здесь стык "канального" и "сетевого" уровней.
Все дело в том, что Вы описываете работу ДРАЙВЕРА.
Данные, которые Вы посылаете командой out(byte,$REG) - это данные, улетающие в ЛИНИЮ. Они могут представлять собой и пользоват. данные и адрес устройства.
Вот например:
1. out(AA,0x37- отправляем адрес нужного устр-ва
2. out(03,0x37-отправляем число перед. байт
3. if _receive=AA_ok then DEVICE_found - ответ устр-ва
4. while not (eof) out(data_byte,0x347.-передаем данные.
Ясно?
А ведь если написать

out(AA,0x37

компилятор просто выдаст error message, что нибудь вроде AA: unknown

В общем, сначала...вот у меня есть устройства (штук 20) с 8 битными линиями, которые я присоединяю к параллельному порту. У порта есть адрес известный компьютеру, а у устройств своих адресов нет - на всех на них есть только один адрес который точно такой же как и у порта. Как же мне их адресовать? Наверно нужно написать драйвер для каждого из устройств?
VVK вне форума  
Непрочитано 03.07.2007, 14:51  
ant_
Прописка
 
Регистрация: 21.09.2006
Сообщений: 195
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ant_ на пути к лучшему
По умолчанию

Нет. АА-это переменная, может быть любым идентификатором. Например, если Вы хотите обратиться к устр-ву 15, Вы пишете
out(0x0F,0x37;
Т.о, в линию отправится посл-сть 0b00001111.
Некое уст-во, имеющее на входе дешифратор, получит это число, сравнит его со своим, если совпадает, отправит ответ в виде заранее известного байта. Комп получит этот байт и поймет, что устро-во откликнулось.
ant_ вне форума  
Непрочитано 03.07.2007, 14:53  
ant_
Прописка
 
Регистрация: 21.09.2006
Сообщений: 195
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ant_ на пути к лучшему
По умолчанию

А если не секрет, что Вы задумали?
Нарисуйте хотя бы примерную схему- что сие за система?
ant_ вне форума  
Непрочитано 03.07.2007, 15:57  
ajborman
Частый гость
 
Регистрация: 18.02.2005
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ajborman на пути к лучшему
По умолчанию

Я ни когда не работал с параллельными портами, восновном с последовательными, но скажем если используются EPP или ECP режимы то при выводе данных там стробируется низким AUTOFEED сигналом, а вывод адреса стробируется низким SELECT IN сигналом !
Если поствить внешнее устройство(контролер),которое могло отлавлвать адрес, и взависимоти от него комутировать AUTOFEED и BUSY на нужные девайсы !
Извеняюсь если лезу с глупыми предложениями !
ajborman вне форума  
Непрочитано 03.07.2007, 16:46  
ant_
Прописка
 
Регистрация: 21.09.2006
Сообщений: 195
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ant_ на пути к лучшему
По умолчанию

Сообщение от ajborman
Я ни когда не работал с параллельными портами, восновном с последовательными, но скажем если используются EPP или ECP режимы то при выводе данных там стробируется низким AUTOFEED сигналом, а вывод адреса стробируется низким SELECT IN сигналом !
Если поствить внешнее устройство(контролер),которое могло отлавлвать адрес, и взависимоти от него комутировать AUTOFEED и BUSY на нужные девайсы !
Извеняюсь если лезу с глупыми предложениями !
Нет, предложения не пустые, Вы правы. Просто автор вопроса не имеет представления ни об адресации, ни тем более о режимах ECP и т.д. Все это существует и работает. Только автору надо подключить аж 20 устройств. А в стандартных режимах мы сможем обработать запросы только от четырех...
ant_ вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с толком использовать б/у компрютерное? Electric75 Делимся опытом 87 15.02.2013 10:05
как читать внешние +5V LPT-портом? digitest Микроконтроллеры, АЦП, память и т.д 4 19.04.2009 14:05
Attiny15 - как ее использовать в CVAVR? IOPA4 Микроконтроллеры, АЦП, память и т.д 6 10.03.2009 19:41
Как использовать PCMCIA? dimmich Микроконтроллеры, АЦП, память и т.д 0 08.10.2007 04:05
Управление параллельным портом vova456 Микроконтроллеры, АЦП, память и т.д 5 26.05.2005 23:33


Часовой пояс GMT +4, время: 07:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot