Splc driver что это
Специальные электронные схемы – драйверы – позволяют продлевать работу светодиодов, делать их свечение равномерным и качественным. Узнаем, как работает это устройство, как правильно его выбрать и установить, а также изготовить своими руками.
Что такое драйвер и зачем он нужен?
Светодиоды очень чувствительны к изменениям параметров электросети, поэтому их подключают в сеть через драйвер – электронное устройство, контролирующее силу тока и напряжение.
Обычно драйвер к led-светильнику подбирают с запасом по мощности и с учетом диапазона выходного напряжения и тока. Если его параметры не будут подходить к светодиодному устройству, оно придет в негодность, его придется утилизировать.
Принцип работы, классическая схема и отличие от блока питания
Несмотря на то, что драйвер часто называют блоком питания, между этими двумя понятиями есть разница. Драйвер – источник тока, который поддерживает его неизменное значение для прохождения через светодиод, а блок питания поддерживает стабильное напряжение.
Рассмотрим, как работает блок питания на конкретном примере:
- Подключим к источнику на 12 В сопротивление (R) 40 Ом.
- Пусть через резистор протекает ток (I) 300 мА. При установке двух резисторов ток удвоится и станет равен 600 мА. При этом напряжение не изменится, так как оно имеет пропорциональную связь с током и сопротивлением (закон Ома I=U/R).
Теперь посмотрим, как работает драйвер:
- Пусть в цепь с драйвером на 225 мА включено сопротивление (R) 30 Ом.
- Если при напряжении (U) 12 В включить два параллельно включенных резистора по 30 Ом, ток останется прежним – 225 мА, а напряжение станет вдвое меньше – 6 В.
Драйвер в итоге обеспечивает нагрузку заданным выходным током независимо от скачков напряжения. Поэтому светодиоды, на которые будет подаваться напряжение 6 В, будут светить так же ярко, как и при источнике в 10 В, если на него будет подан ток заданного уровня.
Схема драйвера для светодиодов:
Цепь драйвера состоит из трех взаимосвязанных узлов:
- емкостного сопротивления для разделения напряжения;
- выпрямляющего модуля;
- стабилизатора.
Принцип работы схемы:
- При прохождении тока конденсатор С заряжается до полной зарядки. Чем его емкость меньше, тем быстрее он зарядится.
- Переменный ток преобразуется в пульсирующий. Первая часть волны сглаживается при прохождении через конденсатор С.
- Электролитический конденсатор, завершающий цепь, служит сглаживающим фильтром-стабилизатором.
Технические характеристики
При покупке светодиодного светильника может возникнуть потребность в покупке драйвера, если осветительное устройство не имеет преобразователя тока.
- ток на выходе, А;
- рабочая мощность, Вт;
- напряжение на выходе, В.
Выходное напряжение может меняться. Оно зависит от схемы подключения к питанию и числа светодиодов. От величины тока зависит уровень яркости и мощность.
Чтобы диоды светили ярко и не притухали, на выходе драйвера ток поддерживается на заданном уровне. Мощность преобразователя должна быть несколько выше, чем суммарное количество Вт всех диодов.
Для расчета мощности драйвера применяют формулу: P = P (led) × X где:
- P (led) – это мощность одного светодиода;
- Х – количество диодов.
Если расчетная мощность получилась 10 Вт, драйвер надо брать с запасом на 20-30 %.
Виды драйверов
Все драйвера различают по трем критериям – по способу стабилизации, конструкционным особенностям и наличию/отсутствию защиты. Рассмотрим все варианты подробнее.
Линейные и импульсные
В зависимости от схемы стабилизации тока драйверы делятся на два типа – линейные и импульсные. Они отличаются принципом работы и эффективностью.
Перед электронной схемой драйвера поставлена задача – обеспечение стабильных значений тока и напряжения, подводимых к кристаллу (светодиоду). Самый простой и дешевый вариант – включение в цепь ограничительного резистора.
Линейная схема питания:
Эта элементарная схема не способна обеспечивать автоматическое поддержание тока. При повышении напряжения он пропорционально растет и, когда превысит допустимое значение, кристалл разрушится от перегрева.
Более сложное управление осуществляется путем включения в цепь транзистора. Минус линейной схемы – снижение мощности при росте напряжения. Такой вариант допустим при работе led-источников малой мощности, но при работе мощных светодиодов такие схемы не применяют.
Плюсы линейной схемы:
- простота;
- дешевизна;
- относительная надежность.
Наряду с линейными схемами, стабилизировать ток и напряжение можно путем импульсной стабилизации:
- после нажатия кнопки заряжается конденсатор;
- после отпускания конденсатор разряжается, отдавая запасённую энергию полупроводниковому элементу (светодиоду), который начинает испускать свет;
- если напряжение растет, то время зарядки конденсатора сокращается, если падает – увеличивается.
Нажимать кнопку пользователю не приходится – за него всё делает электроника. Роль кнопочного механизма в современных источниках питания выполняют полупроводники – тиристоры или транзисторы.
Рассмотренный принцип работы называется в электронике широтно-импульсной модуляцией. За секунду может происходить десятки и даже тысячи срабатываний. КПД такой схемы достигает 95 %.
Упрощенная схема импульсной стабилизации:
Электронные, диммируемые и на базе конденсаторов
От принципа устройства драйвера зависит область его применения и эксплуатационные характеристики.
Виды драйверов по принципу устройства:
- Электронные. В их схемах обязательно используется транзистор. На выходе устанавливается конденсатор, исключающий или хотя бы сглаживающий пульсации тока. Электронные преобразователи способны стабилизировать токи до 750 мА.
Драйверы электронного типа борются не только с пульсациями, но и с электромагнитными высокочастотными помехами, наводимыми электроприборами (радио, телевизор, роутер и т. п.). Минимизировать помехи позволяет наличие специального керамического конденсатора.
Минус электронного драйвера – высокая стоимость, плюс – КПД близкий к 95 %. Их используют в мощных led-светильниках: автофарах, прожекторах, уличных фонарях. - Диммируемые. Особенность диммируемых драйверов – возможность управления яркостью светильника. Регулировка основана на изменении тока на выходе, который и определяет яркость светопотока.
Драйвер можно включать в схему двумя способами: между светильником и стабилизатором или между источником питания и преобразователем. - На основе конденсаторов. Это недорогие модели, используемые для бюджетных светодиодных светильников. Если в схеме производитель не предусмотрел сглаживающий конденсатор, то на выходе наблюдается пульсация. Другой минус – недостаточная безопасность.
Плюс подобных моделей – высокий КПД, стремящийся к 100 %, и простота схемы. Подобные драйверы легко собрать своими руками.
Драйверы на конденсаторах могут вызывать мерцание, поэтому их не рекомендуется использовать вместе с приборами, установленными внутри помещений. Мерцание вредно влияет на зрение и раздражает нервную систему.
В корпусе и без него
Драйвер может быть размещен внутри защитного корпуса, но может и не иметь его. Электронные схемы уязвимы перед многими внешними факторами, поэтому более надежным вариантом считается размещение драйвера в корпусе.
Корпус защищает электронный преобразователь от влаги, пыли, попадания прямых солнечных лучей и т. д. Бескорпусные модели обходятся дешевле, но у них меньше срок службы и хуже стабильность эксплуатации. Они больше подходят для скрытого монтажа.
Срок годности
Драйвер рассчитан примерно на 30 000 часов. Это немого меньше, чем расчетный срок службы многих светодиодных светильников. Такое уменьшение связано с неблагоприятными факторами, в которых приходится работать стабилизатору тока.
Что негативно влияет на работу драйвера:
- скачки напряжения в электросети;
- изменения температуры и/или влажности.
Если прибор мощностью 200 Вт имеет нагрузку 100 Вт, то 50 % номинального значения возвращается в сеть. Это может вызвать перегрузку и сбои питания.
Срок службы драйвера ограничен долговечностью сглаживающего конденсатора. Со временем в нем испаряется электролит, и прибор выходит из строя.
Чтобы продлить работу драйвера, его необходимо эксплуатировать в помещениях с нормальной (не повышенной) влажностью, и подключать к сети с качественным, без скачков, напряжением.
Как подобрать драйвер для светодиодного светильника?
При подключении к стабилизатору тока полупроводники получают необходимую им мощность и достигают номинальных характеристик. От того, насколько правильно будет подобран драйвер, зависит срок службы диодов.
На какие параметры обратить внимание:
- Мощность. По ней определяют максимально допустимую нагрузку, на которую рассчитан прибор. Например, маркировка (20х26)х1Вт означает, что к драйверу можно подключать одновременно от 20 до 26 светодиодов, каждый мощностью 1 Вт.
- Ток и напряжение (номинальные значения). Данный параметр производители указывают на каждом светодиоде, именно по нему подбирают драйвер. Если максимальный номинальный ток равен 350 мА, необходимо подключать источник питания на 300-330 мА.
Подобный диапазон рабочих токов позволяет обеспечивать срок годности светильника, предусмотренный производителем. - Класс защиты. От этого показателя зависит, где именно можно применять светильники – на улице или в помещении. Класс влагостойкости и герметичности обозначается буквами IP и выражается двумя цифрами.
По первой цифре судят о защите от твердых фракций (пыль, грязь, песок, лёд), по второй – от жидких сред. Класс защиты не указывает на температуру, при которой можно применять светильник. - Корпус. Драйвер может иметь открытый перфорированный металлический корпус или закрытый. Во втором случае устройство помещено в металлическую коробку. Для домашних условий подойдет негерметизированный корпус из пластика.
- Принцип работы. Ограничительный резистор не избавляет от перепадов напряжения в электросети и не защищает от импульсных помех. Малейшее изменение напряжения приводит к резким скачкам тока. Линейный стабилизаторы считаются ненадежными и низкоэффективными драйверами, предпочтение отдают импульсным схемам.
Как проверить работоспособность?
Чтобы проверить драйвер без нагрузки, достаточно подать на вход блока 220 В. Если устройство исправно, на выходе появится постоянное напряжение. Его значение будет немного больше верхнего предела, указанного в маркировке драйвера.
Если, к примеру, на стабилизаторе стоит диапазон 27-37 В, то на выходе должно быть около 40 В. Чтобы поддерживать ток в заданном диапазоне, при увеличении сопротивления нагрузки (без нагрузки оно стремится к бесконечности) напряжение также растёт до определенного предела.
Данный способ проверки прост и доступен, но не позволяет делать однозначные выводы о 100%-ной исправности устройства. Попадаются драйвера, которые после включения без нагрузки не запускаются или ведут себя непонятным образом.
Второй вариант проверки:
При поиске поломок необходимо учитывать принцип устройства схемы. В линейных и импульсных схемах поломки могут быть связаны с определенными проблемами. Возможные неисправности:
- В линейных стабилизаторах для защиты от перепадов напряжения применяют пару резисторов сопротивлением от 5 до 100 Ом. Один стоит на входе диодного моста, второй – на выходе. Чтобы уменьшить мерцание, параллельно нагрузке включают конденсатор-электролит максимальной емкости.
Неисправности линейных драйверов могут быть связаны с перегоранием одного или сразу двух защитных резисторов. - В импульсных преобразователях тока микросхемы защищены от перегрузки, перегрева и перенапряжения и по идее не могут сломаться. На деле же любая микросхема, особенно в драйверах китайского производства, может прийти в негодность.
Проблема усложняется тем, что многим китайским микросхемам трудно найти замену. Некоторые из них невозможно найти даже в интернете.
Подключение
Подключение драйвера к светодиодам не вызывает сложностей у пользователей, так как на его корпусе имеется необходимая маркировка.
Как подключить драйвер:
- На входные провода (INPUT) подайте входное напряжение.
- К выходным проводам (OUTPUT) подключите светодиоды.
При подключении соблюдайте полярность:
- Полярный вход (INPUT). Если драйвер запитывается постоянным напряжением, то вывод «+» подключите к аналогичному полюсу источника питания. Если напряжение переменное, обратите внимание на маркировку, нанесённую на входные провода. Возможны два варианта:
- «L» и «N». На вывод «L» подайте фазу (ее найдите посредством индикаторной отвертки), на «N» – ноль.
- «~», «АС» или нет маркировки – можете не соблюдать полярность.
Есть и второй вариант подключения светодиодов – параллельно включаются несколько цепочек, содержащих равное количество диодов. При последовательном подключении все элементы светятся одинаково, при параллельном варианте линии могут иметь разную яркость.
Как сделать драйвер для светодиодного светильника своими руками?
Драйвер можно изготовить из старой телефонной зарядки. Необходимо только внести небольшие изменения в микросхему. Такой самоделки хватит для питания 3 светодиодов мощностью по 1 Вт. Рассмотрим пошагово сборку драйвера из телефонной зарядки:
При выполнении работ по созданию дайвера из зарядного устройства необходимо придерживаться правил техники безопасности. Если дотронуться до оголенных частей, можно получить сильный удар током.
Драйвер можно собрать и с нуля. Для этого понадобится паяльник, тестер, провода и интегральный стабилизатор КР142ЕН12А (либо зарубежный аналог – LM317), который можно приобрести в любом специализированном магазине рублей за 20.
Параметры покупной микросхемы – напряжение 40 В и ток 1,5 А. В нем имеется встроенная защита от перегрузки, перегрева и короткого замыкания. Микросхема стабилизирует напряжение, а драйвер выравнивает ток, поэтому понадобится внести изменения в стандартную схему подключения микросхемы.
Драйвер на интегральном стабилизаторе:
В задачу микросхемы в данном случае входит регулирование, благодаря которому ток будет поддерживаться на необходимом уровне. Величина тока определяется сопротивлением резистора R1. Его номинальное значение рассчитывают по формуле: R = 1,2/I, где:
Порядок сборки драйвера:
- Соберите стабилизатор тока на 9,9 В с током 300 мА. Тогда R1 =1,2/0,3= 4 Ом. Мощность резистора – от 4 Вт. Можно взять резисторы, которые применяются в телевизорах. Их также можно купить в магазинах. Мощность этих элементов – 2 Вт, сопротивление – 1-2 Ом.
- Соедините резисторы последовательно. Их сопротивление сложится и будет равно 2-4 Ом.
- Прикрепите микросхему на радиатор и подключите к выходу драйвера цепь из последовательно соединенных диодов. Соблюдайте полярность при подключении светодиодов.
- На вход подайте постоянное напряжение 12-40 В (прибор рассчитан на 9,9 В, поэтому берём с запасом). Превышать предельное значение не стоит – микросхема может сгореть.
Подаваемое напряжение может быть не стабилизированным. Можно воспользоваться автомобильным аккумулятором, блоком питания от ноутбука или понижающим трансформатором с диодным мостом. Подключите драйвер, соблюдай полярность – работа сделана.
Благодаря драйверам удается не только улучшить работу светодиодных светильников, но и обеспечить их долгую, бесперебойную работу. Учитывая стоимость led-светильников, применение драйверов становится экономически выгодным решением.
Я устанавливаю драйверы для сетевого принтера, и в процессе установки мне предлагаются следующие опции:
был также пакет драйверов, который я мог бы загрузить с веб-сайта производителя, который установил бы драйвер XPS.
в чем разница между этими драйверами?
Какой из них следует использовать для установки?
Могу я просто проверить их все?в чем разница между этими драйверами?
PCL6 (или Командный Язык Принтера, Уровень 6), PS (или PostScript) и PPD (или Описание PostScript-Принтера) - это все способы, которыми принтер может "общаться" с вашим ПК через его драйвер и определять, как страница будет "нарисована" принтером (текст или иначе).
какой я должен использовать для моей установки? Должен Ли Я просто проверить их все?
вам придется обратиться к руководству по конкретному принтеру, который вы устанавливаете, чтобы узнать, какой драйвер конкретно использовать при печати; хотя установка всех из них ничего не повредит, вам просто нужно будет выбрать правильный драйвер при использовании принтера.
XPS или спецификация бумаги XML "открытый" стандарт водителя сделанный известным через Microsoft's XPS драйвер печати. Это еще один способ связь с принтером (если принтер понимает XPS).
если вы установите Microsoft XPS viewer (и последующие драйверы XPS), он даст вам "виртуальный принтер", который вы можете распечатать в файл (как это было бы напечатано на бумаге). Вы можете просмотреть .xps файлы с XPS viewer и физически распечатать их позже. Анекдотически, я использую XPS на моих машинах Windows, когда мне может понадобиться распечатка некоторой важной информации, которую я могу физически распечатать позже (без необходимости макулатура или если мой сетевой принтер в данный момент отключен).
также следует отметить, что поставщики часто имеют один набор программного обеспечения для всей линейки устройств с разными возможностями, поэтому вы увидите пакеты драйверов, которые могут иметь множество вариантов, даже если ваше устройство поддерживает только один или два из них.
в конце концов, вы должны быть в состоянии выбрать "все" и Windows, и принтер может определить, какой драйвер будет оптимальным использовать (или как минимум вы можете удалить неправильный драйвер).
Сегодня принтер несильно отличается от компьютера. У него есть процессор, память, операционная система и постоянная память-накопитель. Если принтер сетевой, то у него есть сетевая карта и веб-сервер, позволяющий его администрировать. Принтеры не только поддерживают разные сетевые протоколы, но и принимают задания на специфичных языках, которые описывают разметку страниц и документов. Таким образом, на крупном предприятии программные средства печати должны взаимодействать с разными аппаратными реализациями протокола печати, возможно даже неизвестными. Конфигурирование печати принтера труднее, чем кажется на первый взгляд. Пользователи воспринимают печать как должное, однако, для получения качественного результата нужно пройти не один шаг.
В этой статье предлагаю рассмотреть и сравнить технологии печати, с которыми вы сталкиваетесь, выбирая новый принтер, проводя допечатную подготовку документа или работая с электронными PDF-копиями документов. И конечно, если вы пытаетесь перехватить и проанализировать задание на печать.
О языках принтеров
Что такое задание на печать? Это программа, написанная на специальном языке программирования – Page Description Language (PDL).
Печатаемые страницы кодируются в PDL и занимают меньший размер, а значит, передаются быстрее необработанных изображений. PDL не зависят ни от самих устройств, ни от разрешающей способности. Принтеры преобразуют задания на специализированном языке в понятный для устройства формат. Это значит, что принтеры содержат языковые интерпретаторы. Также как у языков программирования «а ля Java», у этих языков не одна версия и каждая работает немного по-своему.
Преобразование PDL в растровые изображения выполняется программой-обработчиком: процессором растровых изображений, Raster Image Processor или просто RIP.
Самые известные PDL языки: Postscript, PCL5, PCL6
PostScript – самый распространённый из всех. Первоначально разработан компанией Adobe. Требует наличия лицензии для использования, поэтому на сегодняшний день используется преимущественно в высокопроизводительных устройствах верхнего ценового сегмента. Почти все программы, компонующие страницы, могут генерировать задания на PostScript. Это полнофункциональный язык программирования. Написанные программы можно просматривать с помощью текстового редактора. В них много круглых скобок, а также символов / %!
P.S. Эти символы ищутся интерпретаторами для распознавания заданий на печать.
Пример PostScript:
Также PostScript является стандартом для MAC и профессиональным стандартом.PCL – или Printer Common Language – альтернатива PostScript от Hewlett Packard (далее HP). Язык понятен принтерам других производителей, некоторые умеют работать только с ним. PCL – не язык программирования, он просто сообщает на принтер как ему следует напечатать страницы. Задания на PCL бинарные и непонятны для человека, зато короче по размеру, чем PostScript.
Существуют фильтры, преобразующие Postscript в PCL. Версии PCL разнятся не так сильно как PostScript, но достаточно, чтобы вызывать раздражение. Задания печатаются немного не так на разных моделях принтеров. Причина в диалектах со специальными командами. В отличие от PostScript, PCL изначально заточен именно на управление принтером, а не на переносимость страницы, поэтому для достижения наилучшего результата печати необходимо использовать команды под соответствующий принтер. Именно поэтому в операционной системе (ОС) указывается модель принтера, в противном случае генерируются иные PCL команды, интерпретируемые неправильно или вовсе игнорируемые.
На самом деле, вопрос не только в железе: существует так называемая эмуляция.
Эмуляция PCL – это значит, что разработчик стандарта (т.е. HP) не лицензировал или не тестировал принтер производителя на совместимость с PCL.
Эмуляция PostScript – Adobe не получал отчисления за свой интерпретатор PostScript, вместо этого некоторые вендоры написали собственный код. Политика лицензирования породила диалекты языков – схожие, но не повторяющие оригинал в точности. На практике оба могут выполняться с ошибками, но случается такое редко.
Чтобы вас окончательно запутать, HP определила два семейства языков PLC5 (5e – черно-белый, и 5c – цветной) и PCL6 (PCL/XL). Новые HP принтеры поддерживают оба. Ранее существовал и PCL4, но сейчас он слишком архаичный. Начиная с PCL5 5e, также были введены такие новшества, как: поддержка разрешения 600 dpi, двунаправленный обмен данными между принтером и компьютером и новые шрифты для Microsoft Windows.
Пример PCL5:
Пример PCL6:
PDF – еще одна разработка Adobe – Portable Document Format. Это формат документов, использующий часть возможностей PostScript, основа издательского дела и программ Office. PDF-документы не зависят от ОС и платформы. Очень часто формат используется для обмена документами с возможностью просмотра и печати. PDF – язык описания документов, а не страниц. Позволяет описывать не только страницы, но и всю структуру документа, главы, взаимосвязь текстовых столбцов друг с другом, правки и так далее. Плюс, куча возможностей мультимедиа.Есть принтеры, которые интерпретируют PDF напрямую. Есть масса программ-трансляторов и визуальных редакторов с возможностью преобразования PDF, например, в PostScript. Это преобразование даже может быть скрыто от пользователя.
XHTML – появился относительно недавно. Принтер получает поток данных на языке, описывающем XHTML-print веб-страницу, генерирует представление задания (разные принтеры формируют разные задания, также как разные браузеры отражают страницу иначе).HP-GL/2 – Hewlett-Packard Graphics Language – Служат для печати векторной графики в составе документа.
HPGL – язык поддержки плоттеров. Поддерживается почти всеми HP-принтерами.
PJL – Printer Job Language. Язык заданий для принтера, метаязык от HP, описывает какой PDL должен использоваться для задания, каким будет формат бумаги, сколько копий нужно напечатать, симплексное задание или дуплексное и так далее.
О драйверах
Драйвер принтера и поддержка – ПО, преобразующее файл в понятный для принтера. Задачи и функции драйвера отвечают на вопросы: «Что если принтер не поддерживает все языки?», «Имеется задание postscript, а принтер распознает только PCL 5E. Нужно напечатать PDF, что делать, если принтер его не интерпретирует?».
Система сможет сделать все самостоятельно (выяснить язык PDL файла, выполнить преобразования). Вы также можете преобразовать файл вручную. Браузеры умеют преобразовывать HTML в postscript или в PDF. Open Office может преобразовать .doc в PDF. Из postscript можно преобразовать почти в любой формат, в том числе PCL.
GDI – ещё задание на печать можно просматривать и интерпретировать централизованно, на ПК. Также можно отправлять готовые обработанные растровые изображения на принтер «без интеллекта». Именно так и работают многие Windows GDI-принтеры. Такие принтеры обладают весьма незначительным количеством логических инструкций и совсем не обладают интерпретаторами PDL. Вместо этого растеризацию выполняет обслуживающий компьютер. Часть информации для взаимодействия с GDI скрыта в коде Windows под патентами. Эта секретность затрудняет разработку аналогов в системах Linux, и, по сути, является преимуществом. Аналогично ситуация развивается с поддержкой новейших моделей принтеров. Впрочем, ситуация меняется благодаря существованию демона CUPS с поддержкой многих Win Printers с помощью реверс инжиниринга.
О сервере печати
В Windows печать через протокол IPP появилась, начиная с Windows 2000. На клиентах с Windows 7 и новее, поддержка протокола IPP, как правило, уже установлена. Также есть Internet Printing – windows реализация сервера печати Internet через IPP. Для его установки необходимо сначала установить службу веб сервера MS IIS
О безопасности для принтеров
Какая операционная система используется принтером? Некоторые модели имеют Linux-based дистрибутив на борту. Понять, что же установлено на принтере, либо поменять пароли по умолчанию можно лишь закопавшись в документацию производителя. Неразбериха с операционной системой усугубляется тем, что средства графического администрирования имеют тенденцию сокрытия сведений о различиях производителей.
В заключение хочу еще раз сказать, что проблемы печати многогранны, некоторые из них остались за рамками статьи. В следующий раз надеюсь рассказать о ведении журналов, PPD-файлах и форматах бумаги. О том, как попросить монохромный принтер распечатать двусторонний цветной документ в неизвестном ему формате b4, а также о всевозможных утилитах печати и командах совместимости.
В продолжение цикла популярных статей о Kyocera предлагаю материал о программах, с помощью которых можно управлять, настраивать и обслуживать офисные устройства Kyocera.
Каждое отдельное приложение достойно специальной статьи, и, может быть, в будущем так и получится, но пока — только общий краткий обзор, с ориентацией на пользователей, которые только начинают знакомиться с продукцией нашей компании и нуждаются в легком пособии для быстрого ориентирования среди многообразия фирменных названий. Первая часть посвящена сугубо пользователям: я рассматриваю в ней программы, которые касаются «потребления» возможностей техники Kyocera, а все, что касается обслуживания и настройки — пойдет во второй части статьи.
(Керамические ножи на картинке к программам управления принтерами-сканерами отношения не имеют, но зато красивые и напоминают об исторической сути компании — производство керамики)
Основой для работы со всей продуктовой линейкой печатающих устройств является Printer Driver:
- KX Driver PCL/KPDL/PDF (все в одном, так сказать)
- Mini driver PCL или KPDL (прим.: KPDL=PostScript)
- Microsoft driver PCL или KPDL
- For Windows, Macintosh and Linux printing (прим.: PPD’s используются в OSX, Linux и приложениях от Adobe)
Управление сосредоточено в стандартной панели печати Windows:
Сопутствующие программы, которые расширяют и облегчают возможности работы с драйвером:
KYOnet for clients — маленькое приложение для пользователей, которое показывает статус принтера и вашего задания на печать. В чем-то заменяет стандартный статус-монитор windows. Вы просто будете знать, что происходит с принтером и с вашей задачей на печать.
KYOnet for Direct Printing — печать PDF-документов без установки Acrobat reader.
- Комбинировать PDF-файлы в одно задание.
- Изменять последовательности файлов.
- Выбирать принтер и профиль печати.
Prescribe printer language — штука для дотошных. Буквально — редактор, в котором с помощью языка программирования Prescribe (от Kyocera) можно выполнять (или автоматизировать) задачи для принтера, которые не могут быть выполнены в других приложениях. Язык довольно простой, и после чтения руководства с примерами командовать принтером сможет любой читатель Хабра.
С основой — Printer Driver и тем, что рядом с ним, разобрались, перехожу к сканированию.
- Сканировать для приложений (TWAIN, WIA, WSD)
- Сканировать и отправлять по e-mail
- Сканировать в расшаренную папку на Samba
- Сканировать на FTP-сервер
- Поддерживать LDAP (соединяться с базой AD-серверов)
- Сканировать на встроенный диск
- Вести «Job box» для передачи заданий приложениям (TWAIN, WIA, WSD)
- Сохранять на карточки и флешки по USB
Для дополнительных удобств:
File Management Utility (FMU) — приложение для распределения файлов отсканированных документов по сети.
Вы можете указывать условия, при которых файлы будут отправляться в ту или иную сетевую папку, и, конечно, делать это для нескольких МФУ Kyocera. Условие — устройство должно иметь опцию HyPAS. Принцип работы утилиты — следить за появлением файлов в определенной указанной папке, и перекладывать их в соответствии с указанными вами правилами.
PANELPLUS — это приложение гораздо ближе к «железу» (а точнее — внутри него) и представляет собой решение на базе HyPAS для операционных панелей устройств. Позволяет использовать кнопки запуска задач по сканированию собственного изготовления.
Внешне выглядит так:
Если вы часто выполняете какие-то однотипные задачи, то удобно настроить кнопку, которая позволит запускать их в одно нажатие, а не набирать каждый раз повторяющиеся параметры.
Для «изготовления» кнопок используется приложение Panel Plus Designer:
Panel Plus Designer — как программа устанавливается на компьютере, в нем, с удобствами, вы создаете нужную вам задачу в виде наглядного workflow. Получившийся в итоге «design.xpp», импортируете на МФУ (с USB-флешки) и видите необходимую кнопку на панели устройства.
(Для работы с PPD нужна java, JRE 6.0 или свежее)
KYOcapture — полное управление процессом сканирования, десктопное приложение, суть которого лучше всего выражается вот этим скриншотом:
С помощью программы можно настроить любые процессы сканирования и последовательности работы со сканами — сканировать бумажные или электронные документы, именовать их по нужным правилам, пересылать одновременно в несколько хранилищ, выполнять операции совместно с HyPAS и т.д.
Пример захвата документов из Outlook (как иллюстрация простоты работы с приложением):
- Захват и получение файлов — «Capture» (примеры: Kyocera MFP, POP3 e-mail, AutoCapture и т.п.)
- Обработка и индексация — «Process» (примеры: ABBYY Fine Reader OCR, PDF Converter, JScript, Send to Database, XML Generator, и т.п.)
- Пересылка и хранение — «Route» (примеры: WebDAV Route, MS Exchange, LAN Fax, SharePoint и т.п.)
Для наглядности у меня есть рекламная диаграмма, демонстрирующая принцип KYOcapture — берем откуда угодно, обрабатываем и отправляем куда угодно:
С пользовательскими приложениями — пока все. (В список можно добавить мобильное клиентское приложение под Android, которое удостоилось отдельной статьи на Хабре)
В следующем материале обещаю сделать такое же быстрое описание утилит, которые будут полезны администраторам сетей, включающих в себя офисные устройства Kyocera.
В этой статье я хочу провести краткий обзор шины SPI (интерфейса, широко распространённого во встраиваемой технике, используемого для подключения различных устройств) и попытаюсь описать процесс создания драйвера протокольного уровня SPI устройства для Linux. Данный документ не претендует на роль полного руководства, а скорее преследует цель указать нужное направление. Так как статья не вошла в размер одного топика, мне пришлось разбить её на две части.
0. Вместо введения
Что это за статья?
Эта статья представляет собой компиляцию информации из различных источников, вольный перевод некоторых частей документации, а также мои собственные комментарии, дополнения и описания возникших проблем.- Что такое SPI?
- Обзор SPI подсистемы в Linux
- Разработка userspace протокольного SPI драйвера с использованием spidev
- Разработка протокольного SPI драйвера уровня ядра
- Документация
Первый подраздел описывает работу шины SPI, данная часть статьи конкретно к Linux никак не привязана, поэтому её можно читать тем, кому Linux не интересен, а нужно лишь получить информацию об этом интерфейсе.
Второй подраздел описывает структуры и механизмы лежащие в основе работы с SPI в Linux, его нужно прочесть для понимания того, о чём пойдёт речь в третьей и четвёртой частях.
Если вас не интересует мои переводы и дополнения, можете смело переходить сразу к пятой части, там можно найти информацию о том, где получить всю необходимую информацию по данному вопросу.
Если вы видите ссылки в названии какой-либо структуры или функции, можете открыть её в новой вкладке, так вы сможете попасть непосредственно на описание данной структуры/функции в официальной документации к ядру Linux.
Ошибки
Я не волшебник, я только учусь. Если найдёте какие-либо ошибки или неточности, пожалуйста, сообщите мне.1. Что такое SPI?
Аббревиатура SPI означает «Serial Peripheral Interface» или в русском варианте «последовательный периферийный интерфейс». Название говорит само за себя, данный интерфейс используется для работы с различными периферийными устройствами. Например, это могут быть различные ЦАП/АЦП, потенциометры, датчики, расширители портов ввода/вывода (GPIO), различная память и даже более сложная периферия, такая как звуковые кодеки и контроллеры Ethernet.
С технической точки зрения SPI — это синхронная четырёхпроводная шина. Она представляет собой соединение двух синхронных сдвиговых регистров, которые является центральным элементом любого SPI устройства. Для соединения используется конфигурацию ведущий/ведомый. Только ведущий может генерировать импульсы синхронизации. В схеме всегда только один ведущий (в отличие от той же шины I2C, где возможен вариант с более чем одним ведущим), количество ведомых может быть различно. В общем случае выход ведущего соединяется со входом ведомого, и наоборот, выход ведомого соединяется со входом ведущего. При подаче импульсов синхронизации на выход SCK, данные выталкиваются ведущим с выхода MOSI, и захватываются ведомым по входу MISO. Таким образом если подать количество импульсов синхронизации соответствующее разрядности сдвигового регистра, то данные в регистрах обменяются местами. Отсюда следует что SPI всегда работает в полнодуплексном режиме. А вот нужны ли нам данные, полученные от устройства при записи какого-либо параметра, это уже другой вопрос. Часто бывает что данные полученные от устройства при записи в него данных являются мусором, в таком случае их просто игнорируют, но мы их получим вне зависимости от нашего желания.
Контроллер SPI, как правило, реализуется периферийным блоком в MCU или eMPU. В большинстве чипов он может работать как в режиме ведущего, так и в режиме ведомого. Но на данный момент Linux поддерживает только режим ведущего (Master).
Существует несколько способов включения SPI устройств.
Простейший из них вы видите на рисунке выше (спасибо Wikipedia за рисунки под свободной лицензией GFDL). В данном случае к ведущему все ведомые подключаются параллельно, за исключением сигнала выбора ведомого (~CS). Для каждого ведомого необходим отдельный сигнал выбора ведомого (на рисунке они обозначены как SSx). Для сигналов выбора ведомого могут использоваться как специально предназначенные для этого выходы SPI-контроллера, так и порты ввода/вывода общего назначения (GPIO) микроконтроллера.
- MOSI — Master Output, Slave Input (выход ведущего, вход ведомого). Данный сигнал предназначен для последовательной передачи данных от ведущего к ведомому. Также может называться SDO, DO и т.п.
- MISO — Master Input, Slave Output (вход ведущего, выход ведомого). Данный сигнал предназначен для последовательной передачи данных от ведомого к ведущему. Может называться SDI, DI и т.п.
- SCK — Serial Clock (сигнал синхронизации). Используется для синхронизации при передаче данных. Также может иметь название SCLK, CLK и др.
- ~CS — Chip Select (выбор микросхемы). С помощью данного сигнала происходит активация ведомого устройства. Обычно он является инверсным, то есть низкий уровень считается активным. Иногда его называют ~SS (Slave Select, рус. «выбор ведомого»).
Частным случаем независимого подключения является вариант с одним единственным ведомым. В таком случае может возникнуть желание подтянуть сигнал ~CS к земле, чтобы устройство всегда было в активном состоянии. Но делать это крайне не рекомендуется, так как ведомое устройство может использовать сигнал CS для инициализации или для других служебных целей.
Основное неудобство при независимом подключении ведомых в том, что для каждого из ведомых необходим отдельный сигнал ~CS. Каскадная схема подключения, в зарубежной литературе называемая «daisy-chain» (можно перевести как «гирлянда»), лишена такого недостатка.
Как видно из рисунка выше, здесь используется общий сигнал выбора ведомого для всех ведомых. Выход каждого из ведомых соединяется со входом следующего. Выход последнего ведомого соединяется со входом ведущего, таким образом образуется замкнутая цепь. При таком подключении можно считать что последовательно соединённые устройства образуют один большой сдвиговый регистр. Соответственно, данные можно записать во все устройства «за один присест», предварительно собрав нужный пакет, объединяющий данные для каждого из устройств в порядке соответствующем физическому порядку соединения. Но тут есть один тонкий момент. Во-первых, все микросхемы должны поддерживать такой тип подключения; во-вторых, ядро Linux не поддерживает такой тип подключения, так что если всё же захотите его использовать, то вам придётся модифицировать существующие драйвера, либо же написать собственные.
- CPOL (Clock Polarity) — определяет начальный уровень (полярность) сигнала синхронизации.
CPOL=0 показывает, что сигнал синхронизации начинается с низкого уровня, так что передний фронт является нарастающим, а задний — падающим.
CPOL=1, сигнал синхронизации начинается с высокого уровня, таким образом передний фронт является падающим, а задний — нарастающим. - CPHA (Clock Phase) — фаза синхронизации, определяет по какому из фронтов синхронизирующего сигнала производить выборку данных.
CPHA=0 показывает что необходимо производить выборку по переднему фронту, а
CPHA=1 показывает что выборку данных необходимо производить по заднему фронту.
2. Обзор SPI подсистемы в Linux
Вторая часть — это протокольные драйверы, используемые для работы с различными ведомыми устройствами, которые подключены к шине SPI. Данные драйверы называют «протокольными», потому что они лишь отправляют и получают различные данные от ведомых устройств, при этом не работая напрямую с каким-либо оборудованием. Именно данный тип драйверов нам наиболее интересен, так как позволяет добавить поддержку интересующего ведомого устройства в систему, его то мы и рассмотрим.
Большинство протокольных драйверов представляет собой модули ядра. Например, если устройство представляет собой аудиокодек подключаемый по SPI, то драйвер будет также использовать функции предоставляемые ALSA, а программы (например, madplay) смогут работать с ним посредством символьного устройства /dev/audio, не имея ни малейшего понятия о том как он аппаратно устроен и к какой шине подключен.
Также ядро предоставляет протокольный драйвер общего назначения, называемый spidev, с интерфейсом в виде символьного устройства. Он позволяет совершать полудуплексные обращения к ведомому SPI-устройству посредством стандартных системных вызовов read() и write(), устанавливать режим работы, а также производить полнодуплексный обмен данными посредством ioctl() вызовов.
- userspace драйверы, работающие в пространстве пользователя и представляющие собой обычные программы на любом языке, работающие с SPI устройством посредством чтения/записи соответствующего символьного устройства spidev.
- драйверы, работающие в пространстве ядра и предоставляющие интерфейс для userspace посредством файлов устройств в каталоге /dev, либо с помощью атрибутов в каталоге устройства в sysfs.
tx_buf — указатель на буфер данных в пространстве памяти ядра, которые необходимо передать, либо NULL;
rx_buf — указатель на буфер данных в пространстве памяти ядра, в который данные следует считать, либо NULL;
len — размер буферов rx и tx в байтах;
tx_dma — DMA адрес tx_buf, используется если установлен параметр spi_message.is_dma_mapped;
rx_dma — DMA адрес rx_buf, используется если установлен параметр spi_message.is_dma_mapped;
speed_hz — устанавливает скорость для передачи, отличную от установленной по-умолчанию для устройства. Если данное значение равно 0, то используется скорость по-умолчанию, указанная в поле max_speed_hz структуры spi_device.
bits_per_word — устанавливает количество бит на слово, отличное от определённого по умолчанию. Если данное значение равно 0, то используется значенние по-умолчанию, указанное в поле bits_per_word структуры spi_device.
delay_usecs — время ожидания в микросекундах, после того как был отправлен последний бит передачи и перед тем как сменить состояние chipselect'а, либо начать передачу следующей передачи в очереди. Будьте крайне осторожны с данным параметром, нужно смотреть в какой части драйвера контроллера реализуется задержка. Например, для чипов серии at91 она реализована в обработчике прерывания, так что её использование чревато последствиями.При инициализации структуры spi_transfer существует очень важный момент, они обязательно должны быть выделены в области памяти доступной для DMA через kmalloc, kzalloc и иже с ними. Если master-драйер использует dma, то при использовании статически объявленных массивов драйвер будет падать при попытке передачи.
При передаче данных по SPI количество записанных бит всегда равно количеству считанных. Протокольные драйверы всегда должны предоставлять указатели на буферы tx_buf и/или rx_buf. В некоторых случаях они могут предоставлять DMA адреса для передаваемых данных.
Возможность переопределения скорости передачи данных и количества бит на слово для каждой передачи в отдельности зависит от конкретной реализации драйвера и аппаратных возможностей контроллера. Например, для контроллера SPI в чипах серии at91 возможность переопределения полей speed_hz и bits_per_word не предусмотрена, поэтому они должны быть всегда установлены в 0, иначе вы получите ошибку при попытке передачи данных.
Если указатель на tx_buf установлен как NULL, то SPI контроллер будет выталкивать нули при заполнении буфера rx_buf. В случае, когда rx_buf установлен в NULL, считываемые данные будут игнорироваться. Количество выталкиваемых (и захватываемых) байтов всегда равно len. Попытка вытолкнуть только часть слова приведёт к ошибке. (Например, при попытке выталкивании трёх байт и длине слова 16 бит или 20 бит, в первом случае будет использовано 2 байта на слово, во втором — 4 байта).
Данные для передачи всегда хранятся в порядке специфичном для данной аппаратной платформы. При отправке/считывании данных происходит автоматическое конвертирование порядка байт из специфичного для SPI (обычно big-endian, за исключением случая когда выставлен параметр SPI_LSB_FIRST) в аппаратно-специфичный порядок для данного CPU. Например, если параметр bits_per_word равен 16, то буферы будут занимать по 2N байт, и содержать по N слов с длиной 16 бит каждое, хранящемся в байтовом порядке, специфичным для данного CPU.
В том случае, если размер слова не является степенью двойки, то представление слова в памяти включает дополнительные биты. Слова, хранящиеся в памяти для протокольного драйвера всегда являются выровненными по правому краю (right-justified), так что дополнительные биты всегда будут являться старшими разрядами.
Для наглядности снова приведу осциллограмму:
В данном случае tx-буфер содержит значение 0xf98e, установленное значение bits_per_word соответствует 12 битам на слово. Устройство работает в SPI_MODE_0. На рисунке синяя линия соответствует выходу MOSI контроллера, а жёлтая — SCK. Здесь хорошо видно что при отправке пришло только 0x098e, старшие четыре бита были отброшены, так как они считаются дополнительными. Если совсем просто, то одно 12-битное слово занимает в памяти два байта, а разница между размером слова в памяти и его действительным размером составляет 2*8 — 12 = 4 бита, которые отбрасываются при передаче.SPI не поддерживает какого-либо механизма автоматического обнаружения устройств. К тому же, в большинстве случаев, SPI устройства не предусматривают горячее подключение/отключение, поэтому они, как правило, просто распаиваются непосредственно на плате. В связи с этим данные устройства считаются специфичными для конкретной платы (board-specific). Параметры для таких устройств указываются в файле платы: arch/. /mach-*/board-*.c.
Например, вот так будет выглядеть установка параметров для аудиокодека tlv320aic23b для отладочной платы SK-AT91SAM9260:где modalias – название драйвера ядра, отвечающего за обслуживание устройства (в нашем случае “tlv320aic23b”);
chip_select – номер соответсвующего chip select'а;
max_speed_hz – максимальная частота в Гц;
mode – режим SPI, определяемый константами SPI_MODE_0… SPI_MODE_3, также через операцию битового “или” могут быть добавлены флаги SPI_CS_HIGH (устанавливает активным высокий уровень для chipselect-а ), SPI_NO_CS (передача данных без активации CS в принципе). Полный список возможных флагов можно посмотреть в описании структуры spi_device;
bus_num – номер шины (как правило, соответсвует номеру SPI контроллера в даташите на MCU/eMPU).
Также структура spi_board_info содержит следующие поля, не инициализированные в примере выше:
const void *platform_data – данное поле предназначено для хранения указателя на данные специфичные для конкретного драйвера;
void *controller_data – для некоторых контроллеров необходима информация о настройке устройства, например, DMA;
int irq – зависит от подключения устройства.Все поля структуры spi_board_info устанавливают соответствующие поля структуры spi_device.
В случае необходимости установки параметров для других SPI устройств, в масив добавляются ещё аналогичые элементы.
Данные структуры хранят информацию, которая не может быть всегда определена драйверами. Информация, которая может быть определена функцией probe() драйвера (например, количество бит на слово), в данную структуру не включается.Стоит заметить, что всё же существует возможность горячего подключения ведомых SPI устройств. В этом случае используют функцию spi_busnum_to_master() для получения указателя на структуру spi_master по номеру шины SPI и дальнейшего перебора устройств на шине. Но данная тема выходит за рамки данной статьи.
Читайте также: