Определение диапазона ввода/вывода

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
Vorlon
Сообщения: 3
Зарегистрирован: 19 мар 2008, 13:28

Вобщем так. Есть плата АЦП. Winodws (или BIOS - я не знаю)автоматически назначела ей диапазон ввода/вывода. Его можно увидеть в диспетчере устройств.
Вопрос: какой функцией WinAPI или BIOS этот диапазон можно получить для дальнейшего использования в программе? Если таких функций нет, то подскажите возможные пути решения проблемы.
Заранее спасибо.
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

плата поддерживает PNP?
порты можно посмотреть в
Сведения о системе Ввод/Вывод
Vorlon
Сообщения: 3
Зарегистрирован: 19 мар 2008, 13:28

Да. плата PnP.
Где в самой Windows посмотреть диапазон портов я знаю.
Но дело в том, что программа должна работать на разных машинах, и как следствие руками порты задавать нельзя. Вот потому мне нужна функция (или алгоритм) получения диапазона.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Об этом должен сказать драйвер АЦП, особенно если плата серии PCM 37xx
It's a long way to the top if you wanna rock'n'roll
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Надо смотреть в сторону WMI: http://msdn2.microsoft.com/en-us/library/aa389273.aspx
Здесь можно скачать пример, как работать с WMI (.NET): http://www.codeproject.com/KB/system/Ge ... ation.aspx
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Многие платы ADC (DAC) имеют специальные джамперы для задания им порта, IRQ и DMA канала. Перепрограмить их можно только через ихний драйвер и WinAPI со своим редиректом портов тут не поможет.
It's a long way to the top if you wanna rock'n'roll
Vorlon
Сообщения: 3
Зарегистрирован: 19 мар 2008, 13:28

Благодарю за советы.
Однако недавно появилась еще 1 вводная: мне предстоит учиться писать СВОЙ драйвер под эту плату. В документации указаны, так сказать, смещения портов платы относительно некоего базового порта, адрес которого как-то нужно определить. Т.е. варианты завязанные на использование предоставляемого в комплекте драйвера отпадают. В этом и заключается проблема.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Для любой платы базовых адресов несколько. Следует для начала составить список возможных базовых адресов портов. Каждая плата обязана дать отклик на некий запрос. Например: вы выдаете на порт 300h число FFh, потом читаете из этого порта. Если вы прочитали 80h - то это и есть базовый адрес, если прочитали FFh - то нет. Почти каждое устройство работает примерно так. Точную информацию можете узнать из спецификации платы, обычно эта функциональность зовется как Device Detection.
It's a long way to the top if you wanna rock'n'roll
Ответить