Ситуация : есть внешнее очень болшьое устройство, реализующее внутри себя интеллектуальную обработку (какую — не суьб важно). Частота обмена с периферийной платой в ЭВМ — 18 и 9 кГц. Используются 2 канала по 8 бит на команды и 8 на данные. В качестве периферийной платы используется плата от Advantech с программируемыми АЦП и опторазвязкой. Информация, поступающая на и с внешнего устройства должна приниматься (через прерывания в ЭВМ) и отсылаться через плату с той же частотой 18 ил 9 кГц. Причем "коридора" при установке конкретной частоты обмена быть не может — должно быть точно 18, или, скажем, 9кГц. Необходимо сделать драйвер, который бы успевал обрабатывать прерывания с интервалами от 55 до 100 мкс, причем — НИ ОДНО прерывание не должно потеряться, и не должно происходить "налипания", т.е. сокращения времени при обработке между соседними прерываниями (но это, как мне кажется, относится уже к внутреннему фугкционированию DPC). В качестве обработки прерывания — чтение/запичь в порт.
А теперь и сам вопрос — насколько реально реализовать эту задачу 2К? В ДОС она решается без проблем — перепрограммирование таймера и обработка прерываний. Все. Все очень просто. Памятуя о длине кванта времени в 2К, сейчас я почти уверен, что обычный драйвер, конечно, с таким потком информации при сохранениии нужных интервалов квитирования просто не справится. Как я понимаю, задача должна решаться на уровне драйвера минипорта управления таймером (на уровне доступа к регистрам), причем, судя по всему, чтобы максимально сократить время на перепрограммирование таймера при переключении на другую задачу, придется реализовать все подмножество функций реального драйвера минипорта. Но это — колоссальный объем работы. Поэтому следствие вопроса — если задача реально неразрешима средствами НТ/2К, то с помощью каких ОС это можно сделать ? Только, товарищи, вещи вроде QNX не предлагайте — она свободна лишь для некоммерческого использования. Кстати, ведь CE 3.0 используется в встраиваемых микроэвм — возможно ли в ней решение задачи ?
Всем заранее спасибо за отзывы и предложения
Re: Возможно ли это?
От:
Аноним
Дата:
25.06.03 17:16
Оценка:
Здравствуйте, Аноним, Вы писали:
Как все странно — вроде залогинился — а все равно анонимом выгляжу
Здравствуйте, <Аноним>, Вы писали:
А>Ситуация : есть внешнее очень болшьое устройство, реализующее внутри себя интеллектуальную обработку (какую — не суьб важно). Частота обмена с периферийной платой в ЭВМ — 18 и 9 кГц. Используются 2 канала по 8 бит на команды и 8 на данные. В качестве периферийной платы используется плата от Advantech с программируемыми АЦП и опторазвязкой. Информация, поступающая на и с внешнего устройства должна приниматься (через прерывания в ЭВМ) и отсылаться через плату с той же частотой 18 ил 9 кГц. Причем "коридора" при установке конкретной частоты обмена быть не может — должно быть точно 18, или, скажем, 9кГц. Необходимо сделать драйвер, который бы успевал обрабатывать прерывания с интервалами от 55 до 100 мкс, причем — НИ ОДНО прерывание не должно потеряться, и не должно происходить "налипания", т.е. сокращения времени при обработке между соседними прерываниями (но это, как мне кажется, относится уже к внутреннему фугкционированию DPC). В качестве обработки прерывания — чтение/запичь в порт. А>А теперь и сам вопрос — насколько реально реализовать эту задачу 2К? В ДОС она решается без проблем — перепрограммирование таймера и обработка прерываний. Все. Все очень просто. Памятуя о длине кванта времени в 2К, сейчас я почти уверен, что обычный драйвер, конечно, с таким потком информации при сохранениии нужных интервалов квитирования просто не справится. Как я понимаю, задача должна решаться на уровне драйвера минипорта управления таймером (на уровне доступа к регистрам), причем, судя по всему, чтобы максимально сократить время на перепрограммирование таймера при переключении на другую задачу, придется реализовать все подмножество функций реального драйвера минипорта. Но это — колоссальный объем работы. Поэтому следствие вопроса — если задача реально неразрешима средствами НТ/2К, то с помощью каких ОС это можно сделать ? Только, товарищи, вещи вроде QNX не предлагайте — она свободна лишь для некоммерческого использования. Кстати, ведь CE 3.0 используется в встраиваемых микроэвм — возможно ли в ней решение задачи ? А>Всем заранее спасибо за отзывы и предложения
смотрите в сторону NT/XP embedded
по идее в WinCE решалась данная проблема и запрошенный realtime вполне реален \какая тавтология \,
но я уже лет 7 как от этих дел железячных отошел и наверное утверждать не буду
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
V>смотрите в сторону NT/XP embedded
V>по идее в WinCE решалась данная проблема и запрошенный realtime вполне реален \какая тавтология \, V>но я уже лет 7 как от этих дел железячных отошел и наверное утверждать не буду
V>посмотрите мой ответ здесь
Эхе-хе. Устройства уже есть, поэтому вопрос о проектировании спецплаты под конкретную ОС я оставляю в стороне. Теперь по существу. Для 2К я нашел пакет RTX — там как раз пошли по пути создания собственных драайверов минипортов+обычных драйверов. Однако эти товарищи опять же регламентируют СРЕДНЕЕ и ХУДШЕЕ время реакции. Короче, все опять уперлось в DPC. За пару дней я посмотрел возможности СЕ, судя по всему — это оно. Вопрос — где взять, сколько стОит, нужно ли лицензирование, есть ли для eVC соответствующий DDK и примеры разработки драйверов ?
МВС
Люди слышат только те вопросы, на которые они в состоянии найти ответ. (с)
Здравствуйте, dostap, Вы писали:
D>Здравствуйте, Аноним, Вы писали:
D>NT не OS реального времени, однако возможен след вариант: D>В ISR считываем нужные данные и помещаем в очередь. D>В DPC for ISR — окончательная обработка.
Не, дохлый номер. Я же сказал, что интервал между тактами не должен нарушаться, а кроме этого в ISR есть еще чтение/запись в порт
МВС
Люди слышат только те вопросы, на которые они в состоянии найти ответ. (с)
?
muh>Эхе-хе. Устройства уже есть, поэтому вопрос о проектировании спецплаты под конкретную ОС я оставляю в стороне.
просто замечу что контроллер под любую ОС а не конкретную а так ситуация знакома — уже готовое железо это всегда беда программиста
у нас вторая версия железки стала оснащаться выносным контроллером именно по этой причине в первую голову...
muh>Для 2К я нашел пакет RTX — там как раз пошли по пути создания собственных драайверов минипортов+обычных драйверов. Однако эти товарищи опять же регламентируют СРЕДНЕЕ и ХУДШЕЕ время реакции. Короче, все опять уперлось в DPC.
muh>За пару дней я посмотрел возможности СЕ, судя по всему — это оно. Вопрос — где взять, сколько стОит, нужно ли лицензирование, есть ли для eVC соответствующий DDK и примеры разработки драйверов ?да думаю СЕ это оно — то что я читал — там как раз пофиксали указанный недостаток дизайна НТ
в Embedded NT точно все ОК — позиционирование для промышленного оборудования в частности
про ребят с RTX и других я слышал что действительно они пошли по пути своего HAL (hardware abstraction layer) и драйверов в части работы с таймером и уже не Ваш код, а сама НТ поверх будет притормаживать если что но насколько это у них реально — не знаю, Вам виднее, раз уже смотрели инфу? знаю впрочем — народ действительно выпускал решения и на RTX (но не у нас — экзотика и дорого кажется было)
есть соотв. Embedded VC уже 4.х SP2 — около 400мб и народ вроде хвалил, насчет DDK не знаю,
кажется там все в составе включено что нужно, в т.ч. и для разработки дрйверов (пусть эксперты по CE поправят)?
по-крайней мере на сайтах для разработчиков в сети уже первые примеры драйверов для СЕ можно найти да и в MSDN уже кое-что есть
... << RSDN@Home 1.0 beta 7a >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
V>просто замечу что контроллер под любую ОС а не конкретную а так ситуация знакома — уже готовое железо это всегда беда программиста V>у нас вторая версия железки стала оснащаться выносным контроллером именно по этой причине в первую голову...
Мда. Мне остается только глубоко и затаенно вздохнуть
muh>>Для 2К я нашел пакет RTX — там как раз пошли по пути создания собственных драайверов минипортов+обычных драйверов. Однако эти товарищи опять же регламентируют СРЕДНЕЕ и ХУДШЕЕ время реакции. Короче, все опять уперлось в DPC.
muh>>За пару дней я посмотрел возможности СЕ, судя по всему — это оно. Вопрос — где взять, сколько стОит, нужно ли лицензирование, есть ли для eVC соответствующий DDK и примеры разработки драйверов ?да думаю СЕ это оно — то что я читал — там как раз пофиксали указанный недостаток дизайна НТ
V>в Embedded NT точно все ОК — позиционирование для промышленного оборудования в частности
V>про ребят с RTX и других я слышал что действительно они пошли по пути своего HAL (hardware abstraction layer) и
Насколько я понял, бегло просматривая список примененных для RTX решений, MS открыл им для использования часть своего HAL, на основе которого они и написали обертки V>драйверов в части работы с таймером и уже не Ваш код, а сама НТ поверх будет притормаживать если что но насколько это у них реально — не знаю, Вам виднее, раз уже смотрели инфу? знаю впрочем — народ действительно выпускал решения и на RTX (но не у нас — экзотика и дорого кажется было)
Да, так оно и есть — экзотика, причем в довольно изощренной форме
V>есть соотв. Embedded VC уже 4.х SP2 — около 400мб и народ вроде хвалил, насчет DDK не знаю, V>кажется там все в составе включено что нужно, в т.ч. и для разработки дрйверов (пусть эксперты по CE поправят)? V>по-крайней мере на сайтах для разработчиков в сети уже первые примеры драйверов для СЕ можно найти да и в MSDN уже кое-что есть
Да, я посмотрел материалы на сайте мелкомягких, там есть практически все — средство(а) разработки вкупе с DDK. Насчет примеров драйверов- не видел. Самое главное, что мне понравилось в СЕ — минимальное время реакции около 1.5мкс, среднее — примерно 5. Что и есть гут. Однако все опять упирается в финансовую часть. Поди докажи конструкторам, что обычные форточки для этого не подходят. Кстати, не совсем я понял и политику MS по поводу лицензирования. Просветишь ?
МВС
Люди слышат только те вопросы, на которые они в состоянии найти ответ. (с)
muh>Да, я посмотрел материалы на сайте мелкомягких, там есть практически все — средство(а) разработки вкупе с DDK. Насчет примеров драйверов- не видел. Самое главное, что мне понравилось в СЕ — минимальное время реакции около 1.5мкс, среднее — примерно 5. Что и есть гут. Однако все опять упирается в финансовую часть. Поди докажи конструкторам, что обычные форточки для этого не подходят. Кстати, не совсем я понял и политику MS по поводу лицензирования. Просветишь ?
AFAIK, политика вроде такая — выбираешь набор необходимых компонентов и строишь свою ОС — цена может быть очень разной. Тут лучше у ребят кто реально с СЕ работает уточнять.
... << RSDN@Home 1.1 alpha 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.