WinDriver – инструмент разработки драйверов для устройств – PCI/USB/PCIe
WinDriver™ – инструмент, который позволяет просто и элегантно разрабатывать драйвера для PCI, PCIe и USB устройств на оперционных системах Windows и Linux.
Используя WinDriver, вся работа будет происходить в режиме пользователя, при этом не требуется иметь знания в программировании, в режиме ядра. За вас это сделает WinDriver!
Кому подходит использование WinDriver?
Разработчики оборудования – Использование Driver-Wizard для быстрого тестирования вашего оборудования
Разработчики програмного обеспечения – Использование Driver-Wizard для генерирования кода драйвера вашего устройства и управления им. Использовать инструменты WinDriver для тестирования и отладки кода драйвера.
Консультация нв русском языке:
Либо позвоните по телефону: +1-408-600-0851
Платформы Windows поддерживаемые WinDriver:
Основные функции WinDriver
Оптимизация производительности: используйте технологию WinDriver Kernel Plugin для разработки вашего драйвера в режиме пользователя, а затем выполните критические разделы производительности в режиме ядра (Ring 0) для достижения оптимальной производительности.
Продукты WinDriver сопровождаются подробными техническими рекомендациями, которые помогут вам на разных этапах процесса разработки. Если вы только начали оценивать или использовать WinDriver – вы можете найти наш Quick Start Guide. Если вам требуется более подробная информация или вы хотите узнать больше о технических аспектах WinDriver – обратитесь к нашему онлайн-руководству. Для других технических ресурсов, таких как часто задаваемые вопросы и технические документы, см. Страницу поддержки WinDriver
Партнеры
WinDriver предлагает набор готовых библиотек и функций доступа к элементам электронных устройств, которые обеспечивают расширенную поддержку нашим PCI / PCI Express и USB- партнерам электронных устройств
STM32 и USB. Часть 2. Немного о драйверах и софте.
В прошлой части я рассказал как примерно должен выглядеть проект-заготовка для Keil девайса с USB, дал ссылку на мой проект и рассказал как его настроить под практически любую плату с STM32.
В проекте был реализован интерфейс с двумя bulk-ендпойнтами (in и out), с моим «кастомным» протоколом, при помощи которого можно включать, выключать и заставлять светоиоды мигать с нужными временами горения/не горения.
Ну и выложил небольшую программу для всего этого:
Пользователь Vga в комментариях справедливо заметил, что разработка своего драйвера под Windows — задача далеко не тривиальная, и что проще реализовать стандартный класс, например HID, под который драйверы есть.
В этой статье я проведу небольшой обзор средств, которыми можно воспользоваться, чтобы сильно упростить себе жизнь.
Итак, у нас на повестке следующие варианты:
1) Написать драйвер самому. Задача сложная, неблагодарная, долгая. Тут сразу можно отсылать, например к Windows Driver Foundation. Есть куча примеров, которые можно расковырять и адаптировать под свои задачи.
Несомненный плюс этого варианта — решение получится красивое и компактное. Но стоит ли это потраченного времени…
Извините, если разочаровал тех, кто полагал, что я опишу именно этот вариант 🙂
2) Реализовать на девайсе один из стандартных классов, например тот же HID.
Но давайте предположим что мы вот буквально вчера наконец-то заставили наш девайс определяться по USB как самостоятельное устройство, и все что мы умеем — это читать и писать в ендпойнты. Нам нужно что-то еще проще.
3) Использовать готовые средства. Вот на этом «варианте для начинающих и не только» мы остановимся.
Но вначале небольшое отступление.
Как Windows опознает наши USB-устройства?
В большинстве случаев это «зашитые» в девайс VID (Vendor ID) и PID (Product ID). Есть исключения, например HID и Mass Storage, там Windows опознает класс устройства и подсовывает уже приготовленный драйвер.
Есть, конечно, и более хитрые варианты, но мы на них пока останавливаться не будем.
Наши VID и PID можно подсмотреть в файле usb_desc.c проекта. И обязательно прочтите комментарий 😉
Итак, встречаем: libusb-win32 и Jungo WinDriver.
Jungo WinDriver
Весьма удобная штука.
Запускаем Wizard, выбираем по VID-PID наш девайс:
Генерим inf-файл, сохраняем, устанавливаем тут же драйвер, и вуаля. Вот они наши два bulk-ендпойнта + управляющий, нулевой ендпойнт:
А вот наш девайс определился в диспетчере устройств:
Но и это не все. Жмем на волшебную кнопку Generate Code:
И получаем воистину огромный набор вариантов на любой вкус:
Генерим проект, запускаем. Вот — готовая программа для работы с нашим девайсом: 
Можем отправлять данные в ендпойнты и читать их оттуда.
Например, отправка пакета на скриншоте согласно моему протоколу зажжет светодиод номер два. (См protocol.txt в проекте Keil)
Я сгенерил проект для C# (.NET) и мне он выдал солюшен с двумя проектами: Собственно сама программа и либа для работы с девайсом по USB. В последней есть все необходимое, вплоть до событий подключения-отключения девайса. А вообще если не заморачиваться, то все можно свести к обычному чтению-записи в ендпойнты.
Дальше сами справитесь? 😉
Ну а теперь поговорим о недостатках.
1) Jungo WinDriver — штука очень уж платная. Кто хочет расстроиться — цены лежат тут.
2) У некоторых USB-девайсов бывает несколько конфигураций. Такое встречается редко, но встречается.
WinDriver с такими работать не умеет, а функция смены конфигурации помечена как Not Implemented Yet.
libusb-win32
Распаковываем и в папочке bin лежит программка inf-wizard.exe. Тоже визард для генерации инф-файла, а заодно и всех остальных файлов, необходимых для установки драйвера.
Запускаем, выбираем наш девайс, сохраняем inf и прочее в отдельную папочку:
Ну и сразу инсталлируем.
Теперь, чтобы создать свой проект, необходимо собрать все нужные от libusb файлы в папках lib, include, подсмотреть как работать с устройством, в папке exampes. А работать — проще простого (см bulk.c)
LibUsbDotNet
Нет, вы только вдумайтесь: .NET-надстройка над библиотекой, портированной из линукса под win32!
Конечно, изврат извратом, но мне понравилось.
Именно при помощи этой либы я и написал программу из предыдущей статьи. Работать с ендпойнтами так же просто.
Ну а дальше реализуем небольшой протокол, пишем-читаем ендпойнты и радуемся мигающим светодиодам 🙂
Только не забываем одну тонкость: весь обмен с USB-девайсом происходит по инициативе хоста. Поэтому, данные не попадут в хост до тех пор пока хост сам не захочет их прочитать.
Вот и все.
Итого
Вот, в принципе, все необходимое для того чтобы создать на STM32 примитивный USB-девайс. Весь обмен сводится к чтению и записи в ендпойнты и разбору того, что же туда все-таки пришло и что с этим делать.
Лично мне кажется этот вариант проще, чем реализация на девайсе стандатного класса.
Как всегда, файлы с проектом находятся тут.
Ну а в следующий раз, когда дойдут руки, будем поднимать USB Mass Storage, причем поверх уже сделанного интерфейса для светодиодов, т.е. составное USB-устройство 🙂
Системы отслеживания состояния водителей
Автомобильные и технологические компании лихорадочно занимаются системами безопасности, которые могут обнаруживать различные объекты и избегать столкновения с ними. Но занимается ли кто-нибудь разработкой систем, которые могли бы наблюдать за водителями и отслеживать опасное рассеивание их внимания?
Да, но об этом почти никто не говорит.
Многие компании считают, что системы мониторинга водителей (DMS, Driver Monitoring Systems) устарели или неэффективны, а потому пытаются внедрять в автомобили различные функции автоматизации. Для того, чтобы решать проблему отвлечения водителей и спасать жизни, они внедряют автоматические системы безопасности и «выводят человека из игры» – что-то подобное мы видели в фильме «Военные игры».
Впрочем, люди будут оставаться в игре еще много лет, а частичная автоматизация создает ложное чувство безопасности – из-за него люди слишком сильно отвлекаются от управления автомобилем.
Многие исследования и испытания подтверждают тот вывод, который можно сделать после просмотра фильма. В этом тексте мы хотим задать два ключевых вопроса:
Собираем сведения
На прошлой неделе Страховой институт безопасности дорожного движения (IIHS) опубликовал результаты исследования, по которым видно негативное влияние автоматизации в автомобилях 1 и 2 уровня автономности.
Исследовательская группа (в которую вошли представители IIHS и Массачусетского технологического института) в течение четырех недель изучала поведение 20 добровольцев. Десять человек ездили на Range Rover Evoque c адаптивным круиз-контролем, а другие 10 – на Volvo S90 с адаптивным круиз контролем и системой Pilot Assist. Результаты исследования показали, что «чем дольше водители пользовались системами автоматизации езды, тем чаще они убирали руки с руля, пользуясь телефонами или взаимодействуя с салонной электроникой».
Тревогу в связи с этим бьет не только IIHS.
Британская компания Thatcham Research в прошлом месяце представила методику оценивания «систем помощи водителю» совместно с Euro NCAP. Согласно первым результатам испытаний, можно сделать вывод, что автоматизация езды не является панацеей для дорожной безопасности. В качества примера можно привести Tesla Model 3. Этот автомобиль обошел всех по критериям помощи и резервирования (по ним оценки выше 90), но получил 36 из 100 за вовлеченность водителя. Директор по исследованиям из Thatcham Мэтью Эйвери пояснил, что «Tesla опустилась в нашем рейтинге из-за того, что их система автопилота явно поощряла отвлечение водителей от управления».
Оценки систем помощи при вождении – октябрь 2020
Мисси Каммингс, директор лаборатории по исследованиям взаимодействия людей и систем автоматизации из Университета Дюка в прошлом месяце высказывалась о «загадках частичной автоматизации». В своем недавнем исследовании «Взаимодействие автопилота и систем мониторинга водителей в Tesla Model 3” Каммингс подчеркнула, что так называемая „совместная ответственность“ компьютеров и людей является реальной проблемой.
Ранее в этом году Национальный совет по транспортной безопасности (NTSB), расследовавший две фатальные аварии с участием автомобилей от Tesla, опубликовал итоговый отчет по этому делу. Председатель NTSB делал весьма резкие замечания о системе автопилота от Tesla: „Чрезмерное доверие водителей к автопилоту от Tesla привело к трагическим последствиям“.
Принимая во внимание все свидетельства об отвлечении водителей из-за систем автоматизации, Колин Барнден, ведущий аналитик из Semicast Research сказал, что он „просто не понимает почему мы так долго не осознавали важность систем мониторинга водителей и потребность в них“.
Барнден, который зачастую в одиночку защищает системы мониторинга водителей перед СМИ и сообществом аналитиков, имеет свое мнение по этому вопросу. Он сделал следующее заявление:
Все основные СМИ сейчас преимущественно пишут о системах беспилотной езды. Пресса склонна следить за деньгами. Так, например, рыночная капитализация Tesla составляет 460 миллиардов долларов. Mobileye была продана за 15 миллиардов. Seeing Machines (разработчик систем мониторинга водителей) стоит около 275 миллионов долларов.
Несмотря на все деньги, которые крутятся на этом рынке, у NHTSA нет никаких нормативов касательно систем мониторинга водителей. Между тем, в Европе есть две дорожные карты внедрения этих систем (Euro NCAP и общие правила безопасности в ЕС). Даже у Китая есть стратегия развития мониторинга водителей! Кажется, что все сложилось в пользу разработчиков полноценных стеков для беспилотной езды. Так уж сложилось, что все они находятся в США.
Оглядываясь назад, Барнден сказал:
Скепсис в отношении систем мониторинга водителя
В мае 2018 года Илон Маск в своем твиттере прокомментировал решение Tesla об отказе от систем мониторинга водителей на основе компьютерного зрения. В его твите говорилось, что «отслеживание направления взгляда было отброшено, поскольку эта технология неэффективна».
Внесем ясность, автопилот от Tesla оснащен датчиком, который отслеживает небольшие сдвиги положения рулевого колеса – так система контролирует, что водитель не убирает руки с руля. Как известно, эта система не идеальна, она не принимает никаких решений, пока водитель не убирает руки с руля на целых две минуты.
За последние несколько лет на рынке систем мониторинга водителей появилось множество новых компаний. Среди них можно выделить Seeing Machines (Канберра, Австралия), Smart Eye AB (Гётеборг, Швеция), Eyesight Technologies (Герцлия, Израиль), Jungo Connectivity (Нетания, Израиль), Xperi, которая приобрела FotoNation (Сан-Хосе, Калифорния) и Affectiva (Бостон).
Базовые блоки систем мониторинга водителей от Smart Eye.
Если Маск все еще считает, что системы мониторинга водителей ограничиваются отслеживанием направления взгляда, то он немного отстал. Многие системы от ведущих компаний уже не ограничиваются отслеживанием какого-то одного параметра (вроде положения головы, взгляда, лица или положения век). Эти системы отслеживают совокупность параметров для более целостного представления данных и их анализа.
«Некоторые люди думают, что системы мониторинга водителей исключительно отслеживают направление взгляда – это не так». Такой комментарий нам дал Майк Ленне, старший вице-президент по человеческому фактору и рыночной стратегии из компании Seeing Machines.
Он отметил, что «отслеживание взгляда – это минимальное требование, чтобы заниматься отслеживанием состояния водителя, и оно должно работать исключительно хорошо». На вопросы вроде «А можете ли вы распознавать визуальное или когнитивное отвлечение, сонливость, интоксикацию и т.д?» Ленне отвечает, что все сводится к «качеству применения ИИ к необработанным сигналам от систем распознавания взгляда и определению более конкретных состояний водителя на основе этих данных».
Ник ДиФоре, старший вице-президент по автомобильной промышленности из Seeing Machines, согласен с этим утверждением. «Если ваше решение не может качественно отслеживать голову, лицо и глаза, то вам не будет хватать данных». Именно эти данные позволяют распознавать более конкретные состояния водителя, пояснил он.
Также ДиФоре отметил, что раннее лидерство Seeing Machines на рынке беспилотного транспорта обусловлено не только точностью собираемых данных, но и архитектурой их решений, которая облегчила работу с сигналами и доступ к ним.
По словам ДиФоре, «оптические инструменты» (камеры, датчики изображения, линзы и технологии освещения) критически важны. Совместно с ПО и алгоритмами «они определяют надежность всей системы».
ДиФоре рассказывал, что на этапе лабораторных исследований Seeing Machines мало чем отличалась от многочисленных конкурентов. Но как только системы мониторинга водителей стали встраивать в машины, которые ездят и днем, и ночью, автопроизводителями пришлось учитывать тот факт, что люди делают «странные вещи» – надевают очки или контактные линзы. ДиФоре отметил, что это «даже не краевые случаи. Это реальный мир».
Различий между Seeing Machines и их конкурентами стало больше, когда компании на рынке систем мониторинга водителей стали применять научные сведения о человеческом факторе к собранным данным, чтобы понять что же на самом деле происходит в голове у водителя.
Модели машинного обучения, обученные на неточных и неповторяемых низкоуровневых данных и сигналах не могут быть точными. «Если вы подаете мусор на вход, то и на выходе получите мусор», сказал ДиФоре. По его словам, Seeing Machines была на шаг впереди конкурентов, потому что работала с «стабильными и надежными сигналами».
От распознавания лиц к чтению мыслей
Итак, каково будущее систем мониторинга водителей? Барнден сказал, что «сейчас индустрия стремится к разработке решений, которые будут работать с частотой 60 кадров в секунду». Он также добавил, что «У этих систем огромная пропускная способность, они работают с очень сложными процессами».
Барнден отметил, что то, что она сейчас видит похоже на то, «чего могла бы добиться Mobileye с фронтальной камерой». Он предсказывает, что DMS может помочь в создании решения, в котором будут тесно связаны микросхемы и ПО».
В области оптических технологий тоже появляется множество инноваций. «Переход от ИК-излучения на 850 нм к 940 нм» очень важен, поскольку на 940 нм гораздо меньше помех от прямого солнечного света, отметил Барнден.
Следующий этап – использование вероятностных систем ИИ для применения сведений о человеческом факторе и поведении к оценке уровне вовлеченности водителей.
Чипы и программные решения
До недавнего времени многие компании были уверены в том, что в их решениях не нужны системы мониторинга водителей, либо ограничивались обсуждением передачи ответственности между машинами и людьми в автомобилях с 3 уровнем автономности. Многие компании думали, что если они планируют перескочить третий уровень и сразу разрабатывать машины четвертого, то и системами мониторинга можно не заниматься.
Сейчас же приведены доказательства того, что частичная автономия на 1, 2 и более высоких уровнях влияет на отвлечение водителя, а потому обсуждение систем мониторинга снова стало актуальным. Россу Жату, вице-президент и генеральный директор «On Semiconductor» в своем недавнем интервью сказал, сказал, что наличие системы мониторинга водителей становится практически обязательным.
Отвечая на вопрос о автопроизводителях, которые используют в своих решениях системы мониторинга водителей, Барнден отметил, что GM в начале 2013 года представила систему мониторинга, которая позже стала Super Cruise. За ними вскоре последовали BMW, Subaru и Nissan, затем в 2017 такую систему установили в Mercedes S-Class 2017 года, а в 2018 году систему мониторинга установили в Ford F-150.
Любопытно, что Audi, Porsche и Jaguar Land Rover, похоже, быстро отказались от разработки систем мониторинга после первых попыток. Барнден сказал, что «систему мониторинга водителей невероятно легко сделать плохо»
Барнден делает ставку на Seeing Machines – отчасти ввиду их опыта и ряда их соглашений на поставку. Компания Seeing Machines гордится большими массивами данных, собранных с более чем 23 000 водителей грузовиков (к ним также нужно прибавить данные с нескольких тысяч автомобилей, собранные в рамках лицензионного соглашения с Caterpillar).
Представитель Seeing Machines отметил, что у компании уже сейчас есть девять партнерских соглашений на использование их систем в продуктах OEM-производителей.
Впрочем, в индустрии будут использовать не только решения от австралийской компании. Ранее в этом году Smart Eye объявила о 24 соглашениях с четырьмя разными OEM-производителями. В заявлении Smart Eye говорилось, «Из четырех наших партнеров двое – новые клиенты. Один – крупный американский автопроизводитель, а другой – европейский производитель автомобилей премиум-класса. Двое существующих клиентов – также европейские автопроизводители, работающие в люксовом рыночном сегменте».
DMS в железе и ПО
Как нам объяснил ДиФоре, примерно половина бизнеса Seeing Machines в области систем мониторинга водителей основана на программных решениях, а другая – на микросхемах. В области систем мониторинга давним партнером Seeing Machines является Xilinx. Благодаря своей программируемости, чип Xilinx Fovio получил признание от OEM-производителей.
Seeing Machines также предлагает OEM-производителям исключительно программные системы мониторинга, которые позволяют экономить на специфических чипах.
В качестве хорошего примера можно привести компанию Qualcomm. Она интегрировала информационно-развлекательную систему и ADAS с помощью своей платформы Snapdragon. Seeing Machines вместе с Qualcomm разработали «оптимизированный программный конвейер, который использует не только ядра ARM-процессоров, но и проприетарные ускорители от Qualcomm», пояснил ДиФоре.
Принимая во внимание тот факт, что процессоры для ADAS будут запускать не только системы мониторинга, ДиФоре сказал, что оптимизация «очень важна».
Не называя OEM-производителей, которые будут пользоваться конечными продуктами, ДиФоре отметил, что Seeing Machines уже демонстрировала работу своих систем на платформах от Nvidia, Renesas, Texas Instruments и «ряде других платформ, популярных среди OEM-производителей».
Продолжая выводить свою систему мониторинга на рынок, в сентябре Seeing Machines анонсировала движок ИИ нового поколения под названием Occula. Компания заявляет, что этот движок будет доступен как в виде ПО, так и в виде готового чипа Fovio. Occula будет обеспечивать работу систем мониторинга водителей и пассажиров следующего поколения. Seeing Machines также предоставляет поставщикам микросхем лицензию на использование своего движка в форме ASIC, что позволит «эффективно интегрировать Occula в автомобильные вычислительные платформы компаний, занимающихся полупроводниковыми технологиями».
Согласно заявлениям Seeing Machines, GM – единственный автопроизводитель, использующий систему мониторинга водителей в Cadillac CT6 (в качестве компонента системы Super Cruise). Seeing Machines добавила, что новые модели уже находятся в разработке. Seeing Machines поставляла только свое ПО GM по условиям партнерского соглашения.
Seeing Machines также выиграла контракты на поставку систем мониторинга водителей в виде чипов Fovio у двух американских автопроизводителей и одной китайской компании.
НПП ИТЭЛМА всегда рада молодым специалистам, выпускникам автомобильных, технических вузов, а также физико-математических факультетов любых других высших учебных заведений.
У вас будет возможность разрабатывать софт разного уровня, тестировать, запускать в производство и видеть в действии готовые автомобильные изделия, к созданию которых вы приложили руку.
В компании организован специальный испытательный центр, дающий возможность проводить исследования в области управления ДВС, в том числе и в составе автомобиля. Испытательная лаборатория включает моторные боксы, барабанные стенды, температурную и климатическую установки, вибрационный стенд, камеру соляного тумана, рентгеновскую установку и другое специализированное оборудование.
Если вам интересно попробовать свои силы в решении тех задач, которые у нас есть, пишите в личку.
Мы большая компания-разработчик automotive компонентов. В компании трудится около 2500 сотрудников, в том числе 650 инженеров.
Мы, пожалуй, самый сильный в России центр компетенций по разработке автомобильной электроники. Сейчас активно растем и открыли много вакансий (порядка 30, в том числе в регионах), таких как инженер-программист, инженер-конструктор, ведущий инженер-разработчик (DSP-программист) и др.
У нас много интересных задач от автопроизводителей и концернов, двигающих индустрию. Если хотите расти, как специалист, и учиться у лучших, будем рады видеть вас в нашей команде. Также мы готовы делиться экспертизой, самым важным что происходит в automotive. Задавайте нам любые вопросы, ответим, пообсуждаем.



















