Драйвер линии кто это
Как уважаемый хабрапользователь наверняка знает, «драйвер устройства» — это компьютерная программа управляющая строго определенным типом устройства, подключенным к или входящим в состав любого настольного или переносного компьютера.
Основная задача любого драйвера – это предоставление софтового интерфейса для управления устройством, с помощью которого операционная система и другие компьютерные программы получают доступ к функциям данного устройства, «не зная» как конкретно оно используется и работает.
Обычно драйвер общается с устройством через шину или коммуникационную подсистему, к которой подключено непосредственное устройство. Когда программа вызывает процедуру (очередность операций) драйвера – он направляет команды на само устройство. Как только устройство выполнило процедуру («рутину»), данные посылаются обратно в драйвер и уже оттуда в ОС.
Любой драйвер является зависимым от самого устройства и специфичен для каждой операционной системы. Обычно драйверы предоставляют схему прерывания для обработки асинхронных процедур в интерфейсе, зависимом от времени ее исполнения.
Любая операционная система обладает «картой устройств» (которую мы видим в диспетчере устройств), для каждого из которых необходим специфический драйвер. Исключения составляют лишь центральный процессор и оперативная память, которой управляет непосредственно ОС. Для всего остального нужен драйвер, который переводит команды операционной системы в последовательность прерываний – пресловутый «двоичный код».
Как работает драйвер и для чего он нужен?
Основное назначение драйвера – это упрощение процесса программирования работы с устройством.
Он служит «переводчиком» между хардовым (железным) интерфейсом и приложениями или операционными системами, которые их используют. Разработчики могут писать, с помощью драйверов, высокоуровневые приложения и программы не вдаваясь в подробности низкоуровневого функционала каждого из необходимых устройств в отдельности.
Как уже упоминалось, драйвер специфичен для каждого устройства. Он «понимает» все операции, которые устройство может выполнять, а также протокол, с помощью которого происходит взаимодействие между софтовой и железной частью. И, естественно, управляется операционной системой, в которой выполняет конкретной приложение либо отдельная функция самой ОС («печать с помощью принтера»).
Если вы хотите отформатировать жесткий диск, то, упрощенно, этот процесс выглядит следующим образом и имеет определенную последовательность: (1) сначала ОС отправляет команду в драйвер устройства используя команду, которую понимает и драйвер, и операционная система. (2) После этого драйвер конкретного устройства переводит команду в формат, который понимает уже только устройство. (3) Жесткий диск форматирует себя, возвращает результат драйверу, который уже впоследствии переводит эту команду на «язык» операционной системы и выдает результат её пользователю (4).
Как создается драйвер устройства
Для каждого устройства существует свой строгий порядок выполнения команд, называемой «инструкцией». Не зная инструкцию к устройству, невозможно написать для него драйвер, так как низкоуровневые машинные команды являются двоичным кодом (прерываниями) которые на выходе отправляют в драйвер результат, полученный в ходе выполнения этой самой инструкции.
При создании драйвера для Линукса, вам необходимо знать не только тип шины и ее адрес, но и схематику самого устройства, а также весь набор электрических прерываний, в ходе исполнения которых устройство отдает результат драйверу.
Написание любого драйвера начинается с его «скелета» — то есть самых основных команд вроде «включения/выключения» и заканчивая специфическими для данного устройства параметрами.
И чем драйвер не является
Часто драйвер устройства сравнивается с другими программами, выполняющими роль «посредника» между софтом и/или железом. Для того, чтобы расставить точки над «i», уточняем:
- Драйвер не является интерпретатором, так как не исполняется напрямую в софтовом слое приложения или операционной системы.
- Драйвер не является компилятором, так как не переводит команды из одного софтового слоя в другой, такой же.
Ну и на правах рекламы – вы всегда знаете, где скачать новейшие драйвера для любых устройств под ОС Windows.
Хочу рассказать о том, какие бывают адаптеры для диагностики автомобилей, что они собой представляют, в чем их отличие, и какой адаптер нужен для выполнения каких задач. Я расскажу о 3-х типах адаптеров, указанных в заголовке статьи. В природе могут существовать и другие типы адаптеров, которые являются производными от данных. Могут также существовать адаптеры, предназначенные для работы с какой-то конкретной программой, но речи о них в этой статье не будет.
Самый простой адаптер, который стоит особняком — это Kline адаптер. Его назначение — преобразование уровней сигнала между компьютером и автомобилем, никаких вычислительных функций данный адаптер не производит, его основная задача — простое преобразование сигнала. В пору компьютеров с COM портами Kline адаптер можно было собрать на нескольких транзисторах. В эре USB, Kline стали делать на микросхеме USB — COM преобразователя. Для этих целей используют 2 типа микросхем от разных производителей — FT232 (дорогая) и CP2102 (дешевая). Т.к. диагностика авто работает на нестандартных скоростях COM порта, то для микросхемы CP2102 в необходима дополнительная настройка в Реестре Windows, иначе ничего не будет работать. FT232 не требует никакой дополнительной настройки и там все будет работать "из коробки". Проблема с микросхемами FT232 только в том, что в последнее время их начали активно подделывать китайцы. Компания FTDI начала бороться с этим, и теперь в последних драйверах, при использовании подделки слетает PID у USB устройства, в результате чего адаптер перестает работать, а для восстановления адаптера придется пошаманить (в сети можно найти инструкции по восстановлению).
Для выходного каскада адаптера могут использоваться транзисторы (китайцы именно их и используют в своих VAG-COM 409 шнурках) или микросхема L9637D или ее аналог. Самый правильный Kline адаптер — это адаптер на оригинальной FT232 от FTDI и L9637D (или ее аналоге). По крайней мере такую связку предпочитают те, кто использует Kline адаптер в повседневной работе.
Что можно посмотреть с помощью Kline адаптера? Как правило им можно посмотреть относительно старые машины (в новых вместо К Линии используется CAN шина) с помощью программ, которые заточены именно под Kline адаптер (протоколы ISO9141, ISO14230). Например, это такие программы как Chevrolet Explorer, OpenDiagFree и т.д.
Однако, сама по себе К Линия не совсем надежна в плане передаче данных и имеет относительно низкую скорость обмена (максимум — 57600 бит в секунду). Поэтому производители автомобильной электроники придумали более надежные и быстрые способы передачи данных. Протоколов передачи данных и самих физических способов передачи данных становилось все больше и для того, чтобы сделать одно устройство, которое сможет покрыть все протоколы и способы передачи данных придумали ELM327 и J2534 устройства.
ELM327 и J2534 это уже мультипротокольные устройства (поддержка протоколов ), которые в отличии от Kline адаптера производят вычислительные операции для преобразования данных. Поэтому на транзисторах такое устройство уже не собрать, тут уже как минимум нужен микроконтроллер.
Целями создания ELM327 было создание диагностического адаптера для частного использования. В последнее время, в связи с бумом на ELM327 появляется много продавцов, которые преподносят этот адаптер, как СТО в кармане помогающее решить любую проблему. Но это не так. Ни один нормальный сервис не будет использовать ELM327 как основное средство для диагностики автомобилей. ELM327 — это как медицинский градусник, который может только показать болен пациент или нет. А для окончательного диагноза может понадобиться более глубокая диагностика, которую в домашних условиях не сделаешь.
Однако, некоторые умудряются выжать из ELM327 по максимуму, например программа ForScan.
Некоторые считают, что внутри ELM327 адаптера стоит специальная микросхема ELM327. Но это не так. Микросхемой ELM327 называется самый обычный PIC контроллер, прошитый специальной прошивкой. В виду того, что используется довольно слабенький PIC, для всех задач по работе с автомобильными ЭБУ он однозначно не подойдет ввиду своей медленной скорости работы, маленьким объемом ОЗУ и не совсем оптимального способа передачи данных между ПК и адаптером.
Фактически ELM327 заменяет собой Kline адаптер, но проблема в том, что нужный софт может быть рассчитан только на работу Kline или только ELM327. В общем, со своей основной задачей — а именно проведение диагностики в домашних условиях адаптер справляется. С тем, с чем не справится ELM327 справится J2534 адаптер и соответствующий софт.
J2534 устройства создавались изначально для обновления прошивок ЭБУ автомобилей. Обновления имеются ввиду те, которые предоставляются заводом изготовителем авто, т.е. чтобы по бюллетеню обновить в прошивку мог не только официальный дилер, а и неофициальный сервис (таковы законы США, откуда собственно и взяли начало J2534 адаптеры). J2534 на самом деле — это название стандарта, а устройства, которые ему отвечают, называют J2534 устройствами или сокращенно — J2534, так уж повелось. В последнее время многие производители дилерского оборудования отказываются от разработки специализированного "железа", а фокусируются на создании софта, который будет работать с J2534 устройствами. Примерами такого делийского софта могут быть Techstream для дилерской диагностики Toyota, Lexus и GDS2 для дилерской диагностики GM группы (Opel, Chevrolet).
Стоимость J2534 может очень сильно различаться — от сотен до тысяч долларов (я не говорю о клонах). Причина различии в цене — различные технические характеристики, но детально о причине такого большого разброса цен лучше написать отдельную статью.
Ввиду того, что "железо" стандартизировано, в последнее время становится популярным доступ к дилерской диагностике по подписке. Человек оплачивает необходимый ему срок работы с программой (от 1 дня до года) и фактически получает те же возможности у себя, что и дилер (могут буть кое-какие ограничения при перепривязке ключей).
Я рассказал об адаптерах, которые наиболее широко распространены и стандартизированы. Именно благодаря стандартизации производители программного обеспечения могут не разрабатывать с нуля свой адаптер, а использовать уже имеющийся от стороннего производителя. Именно по этому пути сейчас идет большинство автопроизводителей для дилерской диагностики своих авто.
Читайте также: