реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Работа с прерываниями на WIN машинах..., Кто работал и с какой freq прерываний ?
Tommyknocker
сообщение Jun 27 2005, 08:05
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 6-04-05
Из: г. Москва
Пользователь №: 3 901



Стоит задача обслуживать PCI устройство на Windows-машине. Рассматриваемая плата представляет собой некоторое многоканальное устройство цифровой обработки сигнала, рабоющее пока (на стадии отработки всего программно-алгоритмического обеспечения) под управлением ПК. Устройство генерирует ~500 мкс прерывания. Обслуживание заключается в чтении данных с устройства и запись управляющих воздействий, вычисленных на базе считанных данных, обратно в устройство (Схемы сопровождения за фазой несущей сигнала и задержкой прихода, замыкаемые через процессор). Размер считываемых данных со всех каналов на каждом прерывании порядка 3 Кб. Пропуск одного прерывания равносилен потере работы всего устройства (срыв сопровождения сигнала). ТО есть за 500 мкс нужно гарантированно считать данные, их обработать и замкнуть обратную связь, послав в устройство величины ошибок, полученных в дискриминаторе, реализованном программно.

Пытался найти какой-либо материал по работе с прерываниями на WIN машинах, на подобие: (п. 4.2) http://www.cniil.org/QNX_NEUTRINO_RTOS_V6_2_0.html#4_2 , но пока безрезультатно. Возможно кто-то обладает таким опытом (написания драйверов для устройств подобного класса). Буду благодарен за любую информацию (литературу, материалы) по данному вопросу.
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Jun 27 2005, 08:22
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Драйверами под PCI не занимался, но занимался драйверами под Win. 2000 прерываний в секунду - не слишком большая частота для работы по прерываниям в среде Win. Однако, я бы предусмотрел накопление результатов в некотором буффере если система все же не будет успевать.

Документа, подобного описанию на QNX на Win вы не найдете, потому как Win не OS с гарантированным временем отклика. Время отклика Win сильно зависит от факта работы CD/DVD-ROM приводов, общей загрузки системы пользовательскими приложениями и т.п. Как результат, ваше устройство может периодически пропускать прерывания и сбиваться.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
Tommyknocker
сообщение Jun 27 2005, 09:02
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 6-04-05
Из: г. Москва
Пользователь №: 3 901



Цитата(v_mirgorodsky @ Jun 27 2005, 11:22)
Время отклика Win сильно зависит от факта работы CD/DVD-ROM приводов, общей загрузки системы пользовательскими приложениями и т.п. Как результат, ваше устройство может периодически пропускать прерывания и сбиваться.
*

Соверешенно верно. Именно понимая всю теоретическую недетерминированность Win хотелось бы послушать, если удастся, тех кто непосредственно проверял данное обстоятельство Win машин на практике.

На этапе разработки выбор на Вин падает в виду наличия большого количества собственно инструментов для разработки. Большого и уже в какой-то мере так или иначе изученного аппарата представления и визуализации результатов работы устройств.
Go to the top of the page
 
+Quote Post
Old Nick
сообщение Jun 27 2005, 23:55
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 133
Регистрация: 27-05-05
Пользователь №: 5 445



Цитата(Dsurkov @ Jun 27 2005, 12:02)
Цитата(v_mirgorodsky @ Jun 27 2005, 11:22)
Время отклика Win сильно зависит от факта работы CD/DVD-ROM приводов, общей загрузки системы пользовательскими приложениями и т.п. Как результат, ваше устройство может периодически пропускать прерывания и сбиваться.
*

Соверешенно верно. Именно понимая всю теоретическую недетерминированность Win хотелось бы послушать, если удастся, тех кто непосредственно проверял данное обстоятельство Win машин на практике.

На этапе разработки выбор на Вин падает в виду наличия большого количества собственно инструментов для разработки. Большого и уже в какой-то мере так или иначе изученного аппарата представления и визуализации результатов работы устройств.
*



Огромное количество устройств успешно работает под WINxx с куда более частыми прерываниями, однако только до тех пор, пока что-либо не случится smile.gif
Практический опыт: 4096 в секунду под 95 на 486. При этом параллельно запускался Word и что-то набивалось. Надеюсь, убедительно.
Поэтому, если срыв "срыв сопровождения" из-за непредвиденных обстоятельств (например, порчи HDD) не приведет к какому-либо существенному ущеребу, может оказаться вполне достаточно лишь обеспечить такие условия, при коих машина не "впадает в ступор" из-за дисков/сети и пр.


--------------------
Зачем скоту свобода мысли?
Go to the top of the page
 
+Quote Post
Andrew2000
сообщение Jun 28 2005, 09:14
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



Цитата(Dsurkov @ Jun 27 2005, 12:05)
Стоит задача обслуживать  PCI устройство на Windows-машине
*


Ну не пользуйтесь "отложенными прерываниями", а делайте свою математику в обработчике прерывания, только есс-но все остальные прерывания будут на это время подвисать.
Go to the top of the page
 
+Quote Post
Tommyknocker
сообщение Jun 28 2005, 17:38
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 6-04-05
Из: г. Москва
Пользователь №: 3 901



Цитата(Andrew2000 @ Jun 28 2005, 12:14)
Цитата(Dsurkov @ Jun 27 2005, 12:05)
Стоит задача обслуживать  PCI устройство на Windows-машине
*


Ну не пользуйтесь "отложенными прерываниями", а делайте свою математику в обработчике прерывания, только есс-но все остальные прерывания будут на это время подвисать.
*


smile.gif Ну спасибо за глубокое пожелание. То есть Вы таким образом уже пробовали очень сильно насыщать код ISR да еще на высоких IRQL да еще с плавающей точкой, т.е. задействовать сопроцессор и особо все это не откладывая для DpcForIsr()... и так не менее 2000 раз в секунду? Буду очень признателен, если сочтете возможным поделиться подобным опытом, своими впечатлениями или наблюдениями, какими-то подводными камнями.
Go to the top of the page
 
+Quote Post
Andrew2000
сообщение Jun 29 2005, 13:30
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



Цитата(Dsurkov @ Jun 28 2005, 21:38)
smile.gif Ну спасибо за глубокое пожелание. То есть Вы таким образом уже пробовали очень сильно насыщать код ISR да еще на высоких IRQL ...
*


Пробовал, но не сильно smile.gif, была задача, где от PCI карточки сыпались прерывания (кажется 1ms), в ISR небольшая математика, а если что-то шло не так - тогда в отложенные прер.
Я думаю все это можно опытным путем (объем Вашей математики я не знаю), да и от мощи проца это сильно будет зависеть.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 07:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016