COM порт глазами ремонтника. Ремонт, настройка, диагностика. Часть 3, протокол, кабель, подключение.

26 июля 2013 3150 просмотров

Статья третья «COM порт – глазами ремонтника. Ремонт, настройка, диагностика».

Рассматриваем вопросы диагностики COM порта в разрезе - протокол подключения внешних устройств.

Устройства по протоколу RS232 подключатся к компьютеру на программном уровне тремя способами.

  1. По протоколу низкого уровня (аппаратное подключение).
  2. Подключение по специализированному протоколу.
  3. Подключение через API Windows.

Протокол низкого уровня (аппаратное подключение).

Весь протокол работает на железном уровне, описанном стандартом RS232,  то есть работу протокола  обслуживают только  специализированные микросхемы.  Достаточно просто отправить данные в  COM порт, на второй стороне данные примутся автоматически.  Устройства, работающие на таком протоколе - это термопринтера, сканеры штрих-кода, считыватели магнитных карт.

Специализированный протокол.

Для работы требуется специализированный протокол, который подходит только для данного вида устройств. Протокол имеет свои особенности, обычно добавляется набор специфичных команд. И хотя обмен идет по протоколу высокого уровня, на самом деле оборудование общается с компьютером на низком уровне. Установленный  драйвер занимается преобразованием из удобных команд высокого уровня в  аппаратный протокол (протокол низкого уровня).  Отличительным  признаком этого типа протокола, после установки драйверов – устройство не появляется как Windows устройство.  Теоретически наличие специализированного протокола делает устройства  кроссплатформенными,   однако на практике таковыми не является. Представителем таких устройств это  ККМ, весы.

Подключение через API Windows.

После установки драйверов устройство появляется в системе и с ним можно работать из стандартных программ.  Просто выбираем устройство и отправляем на печать, в случае если подключаемое устройство – принтер.

Порядок настройки и проверки работы устройств с интерфейсом RS232 .

Сканер штрих кодов, устройство чтения карт с магнитной полосой.

Рассматриваемые устройства, в самом простом случае общаются по двум проводам (третий провод нужен для программирования и есть не у всех). Устройства работают на выдачу данных. Обмен данными идет по протоколу низкого уровня.  Настройка заключается в установке одинаковых параметров  обмена  на  компьютере и на сканере штрих кода (устройство чтения карт с магнитной полосой).  Пример параметров обмена (9600 8N1 – самая распространенная комбинация параметров обмена  для таких устройств):

Скорость -  9600,

количество бит – 8 бит,

наличие стоп бита - нет

количество стоп бит - 1.

На компьютере необходимо выставить такие же параметры,  и добавочно указать номер порта, к которому подключен сканер (чтения карт с магнитной полосой).  Проконтролировать правильность обмена можно при помощи программ: Commtest (скачать) или драйверов торгового оборудования (ДТО) Скачать.  Удобнее всего проверять в  ДТО, там все делается автоматически. Считываем штрих код (сканер) или карту с магнитной полосой (устройство чтения карт с магнитной полосой) и смотрим в программе результаты считывания, в нашем случае это будет набор цифр или букв.

Как правило скорость обмена сканера - выставляется путем сканирования специальных программирующих штрих кодов.

Термопринтер (не принтер штрих кодов).

Устройство, которое работает на прием. Однако для работы требуется уже три провода. Для нормальной работы требуется такие же настройки, как для сканера (чаще всего встречались параметры 19200 8N1). Для проверки достаточно  оправить набор символов  - и на печать должно выйти то, что отправили. Желательно отправлять  за один раз не менее 1000 символов, что бы переполнился буфер сом порта, и гарантированно распечаталось хотя бы что то (в случае использования программы  Commtest). Если отправить  мало символов есть шанс, что строка распечатается только после отправления символа перевода строки. Что бы не заморачиваться этими, проще переполнить буфер и символы гарантированно отпечатаются. Так же желательно отправлять  на печать символ, который во всех кодовых таблицах читается однозначно и именно цифры от 1 до 9. Оптимальным вариантом является цифра 5, так как ее двоичное представление  0101b то есть при передачи данных мы получим самый жесткий режим. Можно проверить принтер и в драйвере торгового оборудования, однако быстрее в программе  Commtest.

Часто возникающая ситуация.  При печати вместо текста выходят вопросительные знаки или бессмысленный набор знаков. Причина такого поведения - несовпадение скорости обмена на компьютере и на на принтере.

Как правило скорость обмена термопринтера (не принтер штрих кода) - выставляется на аппаратном уровне,  DIP переключателями или перемычками.

Специализированный протокол.

Для некоторых типов устройств нужна гарантия того, что мусор или попытка управлять устройством из программы прямого доступа к COM порту, не заставят работать устройство ни при каком условии, если это не специально отправленная программа. К таким устройствам относятся например ККМ, весы с термопечатью этикеток, что бы не отправлялось в COM порт устройство не оживет. Для таких устройств важно, что бы данные приходили именно в том формате, который описан в протоколе обмена, для избегания ложных ситуаций.

Теоретически можно заставить работать ККМ из программы прямого доступа к COM порту для этого надо соблюсти все условия, а именно отправить данные согласно протокола обмена. Рассматривать это вариант управления мы не будем так как это довольно неудобно.

Например, несовпадение протокола или скорости обмена делают обмен между ККМ и компьютером невозможным. На практике это выглядит так,

- установлен драйвер Штрих-М и используется ККМ на протоколе Штрих, обмен будет только при соответствии скоростей установленных в драйвере и в ККМ.

- установлен драйвер Штрих-М и используется ККМ на протоколе Атол, обмена не будет ни при каком условии

Есть универсальные драйвера, например Атол, которые поддерживают большинство применяемых протоколов. В рамках данного материала эти особенности рассматривать не будем.

Драйвера, как правило прилагаются на CD диске идущем в комплекте с новым ККМ, однако драйвера на ККМ можно скачать с сайта производителя.

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

В большинстве своем подключение таких устройств не представляет собой ни чего сложного. Однако есть небольшие нюансы. Для того, что бы изменить скорость обмена на устройстве надо подключится к устройству, так как в общем случае в таких устройствах скорость меняется при помощи драйвера. Производители решают эту проблему следующими способами.

- В драйвер добавляется клавиша автоматического поиска оборудования.

- В ККМ добавляется функции сбрасывания скорости обмена на стандартную скорость.

Подключение через API Windows.

Тут все намного проще. Устанавливаем принтер, указываем порт к которому подключен принтер. И печатаем из любой Windows программы, например Microsoft Word . Следует учесть тот факт, стандартный формат печати в Microsoft Word это формат A4. Поэтому необходимо  добавить свой формат, например у вас этикетка 57мм*40мм, то и формат надо добавить 57*40, и только тогда можно будет печатать этикетку из под Microsoft Word.

 

Теги: COM порт, RS232