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

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

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

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

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

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

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

 
Опции темы
Непрочитано 03.07.2007, 00:07  
VVK
Частый гость
 
Регистрация: 10.12.2004
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
VVK на пути к лучшему
По умолчанию Как использовать неск устройств с одним параллельным портом?

Здравствуйте
Мне очень нужен совет по такому вопросу. Я хочу соединить несколько самодельных цифровых устройств с одним параллельным портом и общаться с ними через программу. Например, как программировать одно устройство присоединённое к параллельному порту я знаю, но как программировать несколько устройств?
Ведь байт посланный в порт будет передаваться на все устройства присоединённые к порту, а не только в то
устройство которому он предназначен. Как различить разные устройства и добиться чтобы сигнал предназначенный например 3-му устройству только им и воспринимался?
Спасибо всем за внимание.
P.S. Всего нужно использовать примерно 20 разных устройств, таких как цифровые формирователи импульсов и разные АЦП и ЦАП. Программа пишется на C в Linux а пользовательский интефейс в Tcl/Tk.
Реклама:
VVK вне форума  
Непрочитано 03.07.2007, 01:48  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Для каждого устройства сделай по линии разрешения и пускай они их опрашивают,но 20 устройств это многовато,поставить можно дешивратор или тому подобное устройство,чтоб меньше понадобилось портов для управления устройствами.
CERGEI1982 вне форума  
Непрочитано 03.07.2007, 07:44  
ant_
Прописка
 
Регистрация: 21.09.2006
Сообщений: 195
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ant_ на пути к лучшему
По умолчанию

Я согласен с этой идеей. Но можно пойти дальше. Пусть на шине выставляется сначала адрес устройства+кол-во байт для передачи. Устройство с таким адресом откликается и принимает заявленное число байт.
Т.о., необходимости в "урезании" информационной емкости порта нет.
ant_ вне форума  
Непрочитано 03.07.2007, 07:47  
ant_
Прописка
 
Регистрация: 21.09.2006
Сообщений: 195
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ant_ на пути к лучшему
По умолчанию Re: Как использовать неск устройств с одним параллельным пор

Сообщение от VVK
Как различить разные устройства и добиться чтобы сигнал предназначенный например 3-му устройству только им и воспринимался?
Ведущий интерфейс выставляет адрес устройства, потом ждет н-ое время, потом повторяет и т.д.
А устройство, "увидевшая" шине свой адрес посылает, например, че-нибудь, что ведущим воспринимается как "занятость" линии этим устройством.
ant_ вне форума  
Непрочитано 03.07.2007, 09:44  
zelanez
Вид на жительство
 
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
zelanez на пути к лучшему
По умолчанию

Цитата:
...примерно 20 разных устройств, таких как цифровые формирователи импульсов и разные АЦП и ЦАП....
У всех этих устройств нет интеллекта. Значит каждому из них надо добавить блок, который будет распознавать вызов и отвечать на него. Сложность блока зависит от протокола, по которому он должен работать. Самый простой - схема сравнения. Блок сравнивает адрес, выставленный на шине с заданным и при совпадении подаёт сигнал CS на своё устройство и начинает обмен. А протокол может быть тоже простым - цифровой код, выставленный и удерживающийся на шине более 0,1 с - адрес. Нулевой байт в течении того же времени - конец связи. Нодо только следить, чтобы в при передаче данных информация изменялась быстее, чем 0,1 с.
zelanez вне форума  
Непрочитано 03.07.2007, 10:06  
VVK
Частый гость
 
Регистрация: 10.12.2004
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
VVK на пути к лучшему
По умолчанию

Сообщение от ant_
Я согласен с этой идеей. Но можно пойти дальше. Пусть на шине выставляется сначала адрес устройства+кол-во байт для передачи. Устройство с таким адресом откликается и принимает заявленное число байт.
Т.о., необходимости в "урезании" информационной емкости порта нет.
Спасибо. Только я не знаю как создать адрес устройства (в этих делах я новичок). Например у меня несколько устройств, как каждому из них задать свой адрес, который бы знал мой хост компьютер (откуда и ведётся всё управление)?
VVK вне форума  
Непрочитано 03.07.2007, 11:21  
Faworit
Прописка
 
Регистрация: 28.12.2006
Сообщений: 277
Сказал спасибо: 25
Сказали Спасибо 20 раз(а) в 18 сообщении(ях)
Faworit на пути к лучшему
По умолчанию

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

Сообщение от Faworit
А количество внешних устройств, 20 не предел ( у меня было 32).
Если Вы обратили внимание на мое предложение, число адресуемых устройств может достигать 255.
Ваш метод вполне прост, хоть и описали Вы его немного запутанно. Думаю, уважаемый VVK, именно по такому пути и надо двигаться.
З.Ы. VVK, адрес- тот же байт на ШД (в нашем случае), который адресуется всем устройствам, и на которое "откликается" только одно (имеющая именно этот адрес).
ant_ вне форума  
Непрочитано 03.07.2007, 13:19  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию

Сообщение от ant_
Сообщение от Faworit
А количество внешних устройств, 20 не предел ( у меня было 32).
Если Вы обратили внимание на мое предложение, число адресуемых устройств может достигать 255.
Ваш метод вполне прост, хоть и описали Вы его немного запутанно. Думаю, уважаемый VVK, именно по такому пути и надо двигаться.
З.Ы. VVK, адрес- тот же байт на ШД (в нашем случае), который адресуется всем устройствам, и на которое "откликается" только одно (имеющая именно этот адрес).
Чем то похоже на i2c шину
CERGEI1982 вне форума  
Непрочитано 03.07.2007, 13:22  
VVK
Частый гость
 
Регистрация: 10.12.2004
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
VVK на пути к лучшему
По умолчанию

Сообщение от ant_
Сообщение от Faworit
А количество внешних устройств, 20 не предел ( у меня было 32).
Если Вы обратили внимание на мое предложение, число адресуемых устройств может достигать 255.
Ваш метод вполне прост, хоть и описали Вы его немного запутанно. Думаю, уважаемый VVK, именно по такому пути и надо двигаться.
З.Ы. VVK, адрес- тот же байт на ШД (в нашем случае), который адресуется всем устройствам, и на которое "откликается" только одно (имеющая именно этот адрес).
Вот это как раз непонятный для меня момент (хотя для знающих людей это элементарно). Например, когда мне нужно послать 1 в параллельный порт, я использую адрес параллельного порта 378h принятый по умолчанию, и пишу в проге

outb(1, 0x37

а как адресовать самодельные устройства? 8O

А к как
VVK вне форума  
 

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

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

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, время: 05:07.


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