Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » устройство на COM порту, драйвер

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почитал я и не понял: зачем именно драйвер? Почему нельзя обойтись пользовательским уровнем? Еще я не понял под какую ОС все это планируется писать?

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 19:00 10-09-2004
odl455



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rustam_Koviazin
 
Если речь о Win32 то для работы с LPT или USB-устройствами понадобятся драйвера. С COM-устройством можно работать при помощи Win32 API, если устроит производительность.

Всего записей: 659 | Зарегистр. 26-08-2002 | Отправлено: 20:29 10-09-2004
OldGopher



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
odl455
В принципе, через функции ReadFile, DeviceIoControl и прочая, можно работать и с LPT. Правда - хреново получится.  
 
ИМХО, надо писать драйверы двух уровней: нижние будут ложиться поверх драйверов COM, LPT или в качестве устройства USB, и выдавать некий внутренний протокол - один на всех.
Второй драйвер будет вешаться поверх любого из трех или всех в любом наборе и, пользуясь согласованным протоколом, абстрагировать нижний уровень от приложений.
 
Нижний драйвер может быть универсальным, но могут возникнуть приколы с инсталляцией.
 
Как с клавиатурами: есть драйверы разных типов клавиатур, а сверху на них вешается драйвер класса "Клавиатура"...


----------
Женщина - это такая баба, с которой хочется заняться сексом немедленно... (с) 2006

Всего записей: 3803 | Зарегистр. 25-10-2001 | Отправлено: 21:16 10-09-2004
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
odl455
Для USB не всегда нужен драйвер - для HID-устройств в Win уже есть драйвер с которым можно работать через API.

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 23:26 10-09-2004
Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
odl455
Я под драйвером физического интерфейса (COM, LPT и т.п.) понимаю то, что выполняется на уровне ядра, а не пользовательское приложение, способное выдавать/принимать некий протокол по этому физическому интерфейсу. Вот о чем у меня вопрос.

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 00:33 11-09-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rustam_Koviazin
 

Цитата:
под какую ОС  

driverstudio предпологает Win.
 А вопрос в том, как настроить стек драйверов для такого случая.
и вопрос второго порядка, как нстроить все это для нескольких объектов устройств в одном драйвере.

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 10:33 13-09-2004
Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtSh

Цитата:
driverstudio предпологает Win.  

Это слишком расплывчато. Драйвера под win95 - это совсем не драйвера для winxp.
 

Цитата:
 А вопрос в том, как настроить стек драйверов для такого случая.  

А в чем проблема? Видел как выглядит tcp/ip? Ну сделай по подобию (не до самого верха, конечно). Будет у тебя несколько уровней: канальный, сетевой. Обычно в для контроллеров выше сетевого угровня уже не требуется. Посмотри, например, реализацию opentcp. Там, конечно, не последовательный канал, но там стек tcp/ip в исходниках.
 

Цитата:
и вопрос второго порядка, как нстроить все это для нескольких объектов устройств в одном драйвере.

честно говоря из описания:
 

Цитата:
Прибор модульный  - всего 3 модуля и шлюз между внутренней шиной (CAN) и внешней.  
Предполагается что интерфейс прибора может поменятся в процессе эксплуатации, как и программа реализующая интерфейс с пользователем, а драйвер менятся будет редко.  
 
Кроме того если будет использоватся версия с LPT интерфейсом, то управление обзательно должно происходить из режима ядра(в этом случае часть управляющих сигналов фотоприемника будет генерировать компьютер, благодаря этому можно будет достигнуть проведения измерения в реальном времени).

 
я не понял в чем роль ПК и кто с ним будет связываться по последовательному каналу.

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 11:17 13-09-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rustam_Koviazin
WDM модель.  
Примера написанного с помощью driverstudio я к сожалению не нашел.
Роль ПК в том чтобы найти прибор, настроить его, получить данные и обработать их.

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 15:22 14-09-2004
Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtSh
И почему работу с последовательным каналом нельзя сделать на прикладном уровне? CreateFile, ReadFile, WriteFile и коммуникационные ф-ции.

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 16:24 14-09-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rustam_Koviazin
Смотри выше.

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 10:09 20-09-2004
Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtSh
просмотрев выше...
 

Цитата:
Это спектрофотометр, предполагаются разные его варианты с LPT, COM или USB интерфейсом. Желательно, что это был один драйвер, а не 3.  

из перечисленных интерфейсов разве что для USB придется писать драйвер. В любом случае у него будет некий wrapper на прикладном уровне. Для двух других интерфейсов все останется только на прикладном уровне, т.к. драйвера COM и LPT в WDM есть. Суть драйвера COM не сильно отличается отличается от непосредственной работы с микросхемой 8250. Сделать драйвер лучше стандартного... не стоит. Чем один драйвер всего лучше трех, но каджый для своего - не понятно.
 

Цитата:
в этом случае часть управляющих сигналов фотоприемника будет генерировать компьютер, благодаря этому можно будет достигнуть проведения измерения в реальном времени

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

----------
I live in Russia. I wear the fufaika, valenoks and the shapka-ushanka with the red star. I drink vodka right from the samovar, and my riding bear plays on the balalaika.

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 10:58 20-09-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rustam_Koviazin
Блогодарая непосредственному обращению к регистрам вполне реально для Win получить промежуток времени с точностью до 1 мс. Этого вполне достаточно.

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 16:12 21-09-2004 | Исправлено: ArtSh, 17:21 21-09-2004
Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtSh

Цитата:
Блогодарая непосредственному обращению к регистрам

К регистрам чего? Процессора, 8250?
 

Цитата:
вполне реально для Win получить промежуток времени с точностью до 1 мкс

это не есть критерий real-time
 

Цитата:
Этого вполне достаточно.

ни ты, ни ОС не гарантируют, что каждую мкс твоему драйверу будет передано управление

----------
I live in Russia. I wear the fufaika, valenoks and the shapka-ushanka with the red star. I drink vodka right from the samovar, and my riding bear plays on the balalaika.

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 16:44 21-09-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtSh

Цитата:
Блогодарая непосредственному обращению к регистрам вполне реально для Win получить промежуток времени с точностью до 1 мкс. Этого вполне достаточно.

Наверно я не правильно сформулировал.
Благодаря непосредственному доступу к регистрам процессора можно использовать нестандартные протоколы обмена с периферией, а при управлении данным устройством, важно чтобы сигналы с порта приходили с точногстью прибл. 1мс. Такую точность Win волне обеспечивает.

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 17:19 21-09-2004
Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtSh

Цитата:
Благодаря непосредственному доступу к регистрам процессора можно использовать нестандартные протоколы обмена с периферией

Что за нестандартные протоколы обмена с периферией? Когда ты работаешь с COM через CreateFile, ReadFile, ты что, обмениваешься с микросхемой по какому-то особому протоколу? Почитай описание 8250. В общем ты с нее можешь получать/передавать байты по опросу, по прерыванию. Большего, чем в ней есть, из нее не вытащить. И стандартные драйвера все это умеют. Может ты думаешь, что программа Hyperterminal, умеющая передавать/принимать файлы по протоколу Zmodem, а также включающая много других вкусностей, работает с COM в обход стандартного драйвера?
 
Если ты хочешь общаться с 8250 через порты, то на прикладном уровне это у тебя получится разве что под Win9X. В других Win32 системах тебя встретил HAL и подставиться вместо микросхемы. Ты будешь работать только с ним.
 

Цитата:
важно чтобы сигналы с порта приходили с точногстью прибл. 1мс.

Этого можно добиться и на прикладном уровне, если ограничить процессы, выполняющиеся в системе, задрать производительность. В общем случае никто не гарантирует тебе этой милисекунды ни на уровне ядра, ни на прикладном уровне. Ну не ОСРВ это!

----------
I live in Russia. I wear the fufaika, valenoks and the shapka-ushanka with the red star. I drink vodka right from the samovar, and my riding bear plays on the balalaika.

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 17:34 21-09-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rustam_Koviazin
Если почитать выше, то станет ясно, что не стандартно я общаюсь с LPT портом.
 
На прикладном уровне это точно не получиться, попробуй!
Масимум, что можно выжать это 1МКС.
А в режиме ядра на уровне DISPATCH_LEVEL уже можно это сделать, не говоря о более высоких.

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 18:17 21-09-2004
Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtSh
интересно такая скорость стандартна или это вам так повезло с контроллером LPT/кабелем?

----------
I live in Russia. I wear the fufaika, valenoks and the shapka-ushanka with the red star. I drink vodka right from the samovar, and my riding bear plays on the balalaika.

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 18:23 21-09-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rustam_Koviazin
Я пробовал на кабелях до 3 метров, обычных китайских и более длинных экранированных. А в протоколе LPT интерфейса написана скорость 2 мб/с. Так что это не предел.

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 18:26 21-09-2004
Rustam_Koviazin



Питерский Батыр
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtSh
Тормоза работы с LPT (как и с COM) вероятно были из-за желания на прикладном уровне работать с микросхемами LPT (соответственно COM).  Поскольку HAL перехватывает все эти обращения, то обрабатывает их прграммно, из-за этого и тормоза. Если же с этими устройствами работать стандартными средствами как с файлами, то все должно быть быстрее.

----------
I live in Russia. I wear the fufaika, valenoks and the shapka-ushanka with the red star. I drink vodka right from the samovar, and my riding bear plays on the balalaika.

Всего записей: 1242 | Зарегистр. 02-07-2002 | Отправлено: 18:32 21-09-2004
ArtSh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rustam_Koviazin
HAL НЕ перехватывает их( трудно перехватить ч-л в кольце защиты 0), и тормозов никаких нет. Просто нужно сделать то что написано, т. к. драйвер LPT уже давно работает.

Всего записей: 92 | Зарегистр. 30-03-2004 | Отправлено: 18:35 21-09-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » устройство на COM порту, драйвер


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru