информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеЗа кого нас держат?Все любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hardware
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Комментирую... 06.04.04 16:43  Число просмотров: 1989
Автор: leo <Леонид Юрьев> Статус: Elderman
Отредактировано 06.04.04 17:10  Количество правок: 2
<"чистая" ссылка>
Комментирую, с запозданием (только вот заметил), но может еще пригодиться.

1)
На ISA-шиненельзяпосадить дваразныхISA-устройства на одно IRQ по электрическим "причинам".
Если все-же это сделать, то при первом-же прерывании будет ситуация когда TTL-выход с логическим '0' будет соединен с другим TTL-выходом с логическим '1'. Сигналы как минимум "задавятся", и в худшем случае TTL-вентиль устройства выставившего прерывания (лог 0) может перегореть. Хотя иногда "задавленного" уровня может хватить для срабатывания триггера на контроллере шины/прерываний, и тогда все может работать и даже "предсказывать" погоду :).
Реально обычно ничего не горит, но и не работает.

2)
Некоторые мультипортовые ISA-платы могут соединяться между собой специальным шлейфом, при этом обеспечивается синхронность изменения TTL-уровня на IRQ. Т.е. все соединенные платы выставляют IRQ одновременно и синхронно.

3)
Некоторые IO-контроллеры (ISA-карты на борту которых COM-порты, LPT, возможно IDE и т.д.) имеют логику "объединения" IRQ между своими устройствами, и поэтому, при наличии нормальных драйверов такие COM-порты могут работать на одном IRQ.

4)
Интегральные IO-чипсеты (все в одном чипе), как для ISA, так и для PCI, либо имеют логику объединения IRQ, либо не допускают установку одного IRQ для своих устройств. Но не все из чипов имеют "на борту" интерфейс к шине компьютера и при этом могут выдавать IRQ от каждого устройства на отдельном выводе.

5)
Внутренности плюшевых Win95/98/Me я знаю очень плохо, могу только предположить что WDM (98, Me) работает примерно также как Win2K/XP.
Win2K/XP не позволяет драйверам штатно разделать IRQ для ISA-устройств. Но можно сказать, что если системе "известно", что эти устройства "дружат" по IRQ между собой, и если их драйвера "захотят" разделать IRQ, то все будет работать. На самом деле все несколько сложнее, может быть несколько шин ISA, несколько шин PCI, и несколько процессоров... В конечном счете все будет решаться арбитром шины + HAL и драйверами.

Мой драйвер (SerialXp.sys) может работать в режиме разделения IRQ для ISA, системный Serial.sys тоже может, но его часто просто невозможно заставить это сделать. И конечно, независимо от драйвера, разделение IRQ на ISA должно не вызывать конфликтов на аппаратном уровне.

6)
В Windows для устройств предусмотрена возможность "псевдо"-разделения IRQ. При этом логическое подключение к IRQ производиться только при задействовании устройства (открытии handle к COM-порту), соответственно в каждый момент времени только одно из устройств разделяющих IRQ может быть активно. На аппаратном уровне это должно поддерживаться динамическим отключением/подключением устройств от/к линии IRQ (например через ISA-PNP).

7)
Вот еще забыл написать. На ISA-шине прерывание фиксируется контроллером прерываний по фронту (но можно перепрограммировать). Поэтому, перед выходом из обработчика прерываний и перед подачей контролеру команды "End Of Interrupt" (mov al, 20h; out al, 20h) необходимо убедиться, что с момента фиксации прерывания (TTL_IRQ 1->0) был момент (такт) когда линия IRQ была неактивна (TTL_IRQ = 1), иначе контроллер больше "не заметит" новых прерываний. Это также затрудняет разделение IRQ на ISA между разными устройствами, которые обслуживаются разными драйверами.

Ну прямо FAQ получилось :-)
Удачи!

SerialXp.sys
<hardware>
Один комп и два модема кто-нить пробовал ? 10.03.04 23:05  
Автор: Sandia Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Есть два варианта пользования инетом :
1. обычный модем и диалап
2. мобильник с GPRS
кто-то пробовал использовать одновременно оба соединения ?
А что, собственно, смущает? 10.03.04 23:40  
Автор: JINN <Sergey> Статус: Elderman
<"чистая" ссылка>
Но как ? 11.03.04 01:15  
Автор: Sandia Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Стандартными средствами ХР этого не сделать.
Есть ли проги какие .. вот что интересует ..
гхм 11.03.04 01:34  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
> Стандартными средствами ХР этого не сделать.
> Есть ли проги какие .. вот что интересует ..
а чем эти стандартные средства ХР мешают вставить в системник еще один модем, подключить к нему еще одну линию, установить в системе еще одни дрова для него (особенности реализации дров для винмодемов рассматривать не буду, там всякие глюки бывают). Ксттаи чтоб аппаратные модемы могли работать одновременно на современных нужно чтоб они не висели на одном IRQ (те варианты COM1+COM3 и COM2+COM4 не совместимы.
Почему? 11.03.04 14:17  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> всякие глюки бывают). Ксттаи чтоб аппаратные модемы могли
> работать одновременно на современных нужно чтоб они не
> висели на одном IRQ (те варианты COM1+COM3 и COM2+COM4 не
> совместимы.
Почему? Что мешает? Кривые руки программистов? Так Микрософтовцы заявили?
не знаю 11.03.04 16:18  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
> > всякие глюки бывают). Ксттаи чтоб аппаратные модемы
> могли
> > работать одновременно на современных нужно чтоб они не
> > висели на одном IRQ (те варианты COM1+COM3 и COM2+COM4
> не
> > совместимы.
> Почему? Что мешает? Кривые руки программистов? Так
> Микрософтовцы заявили?

сколько не подключал аппаратных модемов на один порт толком ничего не работало. Те в то время когда открыт например COM1 c COM3 который висит на том же irq работать невозможно - те порт открывается но передача данных тормозит до невозможности. Было и под 9х и под 2к.
Я вроде как знаю ;-) 12.03.04 15:56  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Когда два порта сидят на одном прерывани, система не может определить, сколько и от какого устройства пришло прерывание, если их активировали два устройства одновременно. Вот контроллер прерываний можно настроить на два метода работы с линиями прерываний — LEVEL и EDGE. Первый метод (самый старый) работает по уровню — т.е. если он активен, то прерывание пришло. Теперь представим, что в этот момент другое устройство, которое "сидит" на этой линии IRQ, тоже хочет поднять прерывание. Но обламывается, т.е. оно думает, что оно его подняло, но на самом деле оно не будет "замечено" системой, поскольку уровень линии IRQ уже был активен. А второй тип (EDGE) работает по изменению уровня. Т.е. если устройство хочет поднять прерывание, оно инвертирует состояние линии, это замечается контроллером прерываний на 100%.
Короче шина ISA использует использует тип прерываний LEVEL, и, соответственно, контроллеры com-портов, будучи на этой шине, глючат, если пытаться использовать одновременно два com-порта на одном прерывании.
Re: Я вроде как знаю ;-) 06.04.04 17:01  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
> Короче шина ISA использует использует тип прерываний LEVEL,
> и, соответственно, контроллеры com-портов, будучи на этой
> шине, глючат, если пытаться использовать одновременно два
> com-порта на одном прерывании.

Наоборот, на ISA по фронту, на PCI по уровню. Но при большом желании можно перепрограммировать.
Позвольте с Вами не согласиться. 15.03.04 11:17  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 15.03.04 11:22  Количество правок: 1
<"чистая" ссылка>
У меня мышка и модем сидели на одном прерывании (СОМ1 - мышка, СОМ3 - модем, поскольку СОМ2 тоже как-то использовался или отключать не хотелось). Естественно все не работало. Посадил модем на СОМ4 - заработало.
Меня очень поначалу удивила неработоспособность СОМ1+СОМ3. Причем не работало оно в Виндовсе и в ДОСе (драйвер мышки + терминалка). Вроде как разные терминалки пробовал и разные драйвера мышки. Ну я бы понял, когда каждый из обработчиков терял бы свои прерывания/байты. Там же был такой развал! Под ДОСом я имею в виду. У меня сложилось впечатление, что просто хреново написаны обработчики. Не учтено, что на одном прерывании может висеть несколько устройств (что изначально было запрещено разработчиками ИСА шины). Однако одновременность работы нескольких устройств на одном прерывании имеет место быть. Путаница с СОМ портами решается легко - у них есть регистрик, при помощи которого можно определить в обработчике прерывания, было ли оно от этого порта, которое обрабатывает этот обработчик, или от другого устройства. Просто в обработчике надо посмотреть на этот битик и соответственно либо сделать что нужно и завершить обработку, либо передать управление на тот вектор прерывания, который был до того, как этот новый обработчик сел на это прерывание.
Потом, помнится, попробовал под Линуксом - все работало. А я уж начал бояться, что "железо" кривое, раз уж ни в Виндовсе ни в ДОСе не работает.
> Когда два порта сидят на одном прерывани, система не может
> определить, сколько и от какого устройства пришло
> прерывание, если их активировали два устройства
Для СОМ портов точно можно!
> одновременно. Вот контроллер прерываний можно настроить на
> два метода работы с линиями прерываний — LEVEL и EDGE.
> Первый метод (самый старый) работает по уровню — т.е. если
> он активен, то прерывание пришло. Теперь представим, что в
> этот момент другое устройство, которое "сидит" на этой
> линии IRQ, тоже хочет поднять прерывание. Но обламывается,
> т.е. оно думает, что оно его подняло, но на самом деле оно
> не будет "замечено" системой, поскольку уровень линии IRQ
> уже был активен. А второй тип (EDGE) работает по изменению
> уровня. Т.е. если устройство хочет поднять прерывание, оно
> инвертирует состояние линии, это замечается контроллером
> прерываний на 100%.

Это что же, при срабатывании по фронту, по-Вашему - объединены два логических выхода, причем когда один выставляет логическую единицу (высокий уровень), второй выставляет низкий уровень или наоборот. Причем вророе устройство "побеждает" в борьбе?

> Короче шина ISA использует использует тип прерываний LEVEL,
> и, соответственно, контроллеры com-портов, будучи на этой
> шине, глючат, если пытаться использовать одновременно два
> com-порта на одном прерывании.
А вот пусть leo прокомментирует, он вроде как крутой developer по ком-устройствам ;-) 15.03.04 11:26  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Комментирую... 06.04.04 16:43  
Автор: leo <Леонид Юрьев> Статус: Elderman
Отредактировано 06.04.04 17:10  Количество правок: 2
<"чистая" ссылка>
Комментирую, с запозданием (только вот заметил), но может еще пригодиться.

1)
На ISA-шиненельзяпосадить дваразныхISA-устройства на одно IRQ по электрическим "причинам".
Если все-же это сделать, то при первом-же прерывании будет ситуация когда TTL-выход с логическим '0' будет соединен с другим TTL-выходом с логическим '1'. Сигналы как минимум "задавятся", и в худшем случае TTL-вентиль устройства выставившего прерывания (лог 0) может перегореть. Хотя иногда "задавленного" уровня может хватить для срабатывания триггера на контроллере шины/прерываний, и тогда все может работать и даже "предсказывать" погоду :).
Реально обычно ничего не горит, но и не работает.

2)
Некоторые мультипортовые ISA-платы могут соединяться между собой специальным шлейфом, при этом обеспечивается синхронность изменения TTL-уровня на IRQ. Т.е. все соединенные платы выставляют IRQ одновременно и синхронно.

3)
Некоторые IO-контроллеры (ISA-карты на борту которых COM-порты, LPT, возможно IDE и т.д.) имеют логику "объединения" IRQ между своими устройствами, и поэтому, при наличии нормальных драйверов такие COM-порты могут работать на одном IRQ.

4)
Интегральные IO-чипсеты (все в одном чипе), как для ISA, так и для PCI, либо имеют логику объединения IRQ, либо не допускают установку одного IRQ для своих устройств. Но не все из чипов имеют "на борту" интерфейс к шине компьютера и при этом могут выдавать IRQ от каждого устройства на отдельном выводе.

5)
Внутренности плюшевых Win95/98/Me я знаю очень плохо, могу только предположить что WDM (98, Me) работает примерно также как Win2K/XP.
Win2K/XP не позволяет драйверам штатно разделать IRQ для ISA-устройств. Но можно сказать, что если системе "известно", что эти устройства "дружат" по IRQ между собой, и если их драйвера "захотят" разделать IRQ, то все будет работать. На самом деле все несколько сложнее, может быть несколько шин ISA, несколько шин PCI, и несколько процессоров... В конечном счете все будет решаться арбитром шины + HAL и драйверами.

Мой драйвер (SerialXp.sys) может работать в режиме разделения IRQ для ISA, системный Serial.sys тоже может, но его часто просто невозможно заставить это сделать. И конечно, независимо от драйвера, разделение IRQ на ISA должно не вызывать конфликтов на аппаратном уровне.

6)
В Windows для устройств предусмотрена возможность "псевдо"-разделения IRQ. При этом логическое подключение к IRQ производиться только при задействовании устройства (открытии handle к COM-порту), соответственно в каждый момент времени только одно из устройств разделяющих IRQ может быть активно. На аппаратном уровне это должно поддерживаться динамическим отключением/подключением устройств от/к линии IRQ (например через ISA-PNP).

7)
Вот еще забыл написать. На ISA-шине прерывание фиксируется контроллером прерываний по фронту (но можно перепрограммировать). Поэтому, перед выходом из обработчика прерываний и перед подачей контролеру команды "End Of Interrupt" (mov al, 20h; out al, 20h) необходимо убедиться, что с момента фиксации прерывания (TTL_IRQ 1->0) был момент (такт) когда линия IRQ была неактивна (TTL_IRQ = 1), иначе контроллер больше "не заметит" новых прерываний. Это также затрудняет разделение IRQ на ISA между разными устройствами, которые обслуживаются разными драйверами.

Ну прямо FAQ получилось :-)
Удачи!

SerialXp.sys
Опять меня не поняли 11.03.04 08:38  
Автор: Sandia Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Похоже меня никак не поймут.
Оба тех модема прекрасно работают оба, но не одновременно !!!
Я бы хотел их использовать именно ОДНОВРЕМЕННО, чтобы инет был в два канала, от двух провайдеров одновременно .
Надеюсь теперь понятна суть вопроса.
фича эта называется PPP multilink support 12.03.04 14:39  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
использование двух каналов как один, с распределением нагрузки
к сожалению как решается данная проблема для win систем не знаю
но вот что по запросу (ppp multilink support winxp) говорит гугля:
http://homepage.macomb.com/support/connections/multilink/winXP/
У знакомого одного была прога под 98-е, но он ее потерял и... 12.03.04 22:16  
Автор: Sandia Статус: Незарегистрированный пользователь
<"чистая" ссылка>
У знакомого одного была прога под 98-е, но он ее потерял и название не помнит .. вот и хочется найти что-то подобное для ХР .. а вдруг кто-то да сделал ..
линк смотрел? 15.03.04 12:20  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
там же расписывалось как сделать это под XP и никакие проги не нужны
смотрел 16.03.04 00:58  
Автор: Sandia Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я же говорю .. два РАЗНЫХ провайдера и два СОВЕРШЕННО РАЗНЫХ способа подключения ..
как там написано я уже давно пробовал ..
мне нужно двух РАЗНЫХ провайдеров в один поток слить ..
А протокольчики у модемов какие? Если V90 то никак 11.03.04 10:46  
Автор: jiZo <Александр> Статус: Member
<"чистая" ссылка>
Ну , а если отключить V90, тогда как и чем ? 11.03.04 22:06  
Автор: Sandia Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Что ты имеешь в виду, говоря отключить... 12.03.04 10:42  
Автор: jiZo <Александр> Статус: Member
<"чистая" ссылка>
Такое подключение (какое ты имеешь в виду) поддерживается модемами с V92 протоколами (точнее протокол поддерживает работу с нескольких модемов), но эти модемы не дешевые (хотя в зависимости от твоей зарплаты :) ). Правда я сам такого подключения не делал.

На сколько я знаю в ХР заложена возможность распаралеливания потока. Но, тебе нужно будет 2 модема, 2 линии + провайдер, разрешающий многократный вход на модемный пул под одним и тем-же именем и паролем, а где ты такого найдешь, тем более, что у тебя один через GPRS.
Именно , что нужно двух разных провов объединить .. про два... 12.03.04 22:13  
Автор: Sandia Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> На сколько я знаю в ХР заложена возможность
> распаралеливания потока. Но, тебе нужно будет 2 модема, 2
> линии + провайдер, разрешающий многократный вход на
> модемный пул под одним и тем-же именем и паролем, а где ты
> такого найдешь, тем более, что у тебя один через GPRS.

Именно , что нужно двух разных провов объединить .. про два захода на одного и того же прова я знаю как и чем , пробовал уже(это сама ХР позволяет делать), а вот на двух разных одновременно и их потоки объединить.
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach