Одна из возможных проблем при работе с RS232
В этом топике я хотел бы поделиться своим опытом «борьбы» с одним китайским девайсом. На работе поступил приказ и было принято поменять старые кардридеры на новые. Суть в том, что старые ридеры были активные, т.е. в бесконечном цикле пытались считать карту, а вот новые уже были пассивными — работать не будут, пока не подашь на них команду. Модель аппарата CR501AU V3 (вдруг кому пригодиться). Китайский девайс, документации никакой нет (только на китайском). И всё что у меня было на руках это коробочка с этикеткой модели и кое-какой исходник. Исходник, к слову, был из другого нашего отдела, который был написан на 1С. Но, так как штат программистов у нас в конторе обновился, не осталось тех людей, которые работали над этими старыми исходниками, поэтому пришлось разбираться. Поначалу всё было просто. В исходный код 1С был вставлен кусок скрипта на Visual Basic, который отвечал полностью за работу с ридером. Ничего под рукой для работы с VB не было, поэтому воспользовался Excel-евский компилятором.
Не так уж и сложно. Но проблема заключалась в том, что этот код на VB мне нужно было перенести на Pascal в MS-DOS. Несколько дней бился с этим, но скармливая эти команды в Com-порт ридер не подавал признаков жизни. Тогда я решил сначала реализовать это на своём «родном» языке — C#. Так же пришлось попотеть, но в итоге понял в чем кроется разгадка!
Код выше неправильный. Я какое-то время над ним экспериментировал, но он никак не хотел работать. И кавычки убирал. И .ToString() добавлял. И посимвольно писал в порт. Ничего. И потом как вдруг дошло:
И всё заработало! Осталось только перенести это в паскаль:
Код выше заставляет ридер «пикнуть». Дальше переделать всё под себя очень просто.
Источник
COM порт глазами ремонтника. Ремонт, настройка, диагностика. Часть 2, диагностика на компьютере.
Статья вторая «COM порт – глазами ремонтника. Ремонт, настройка, диагностика».
Рассматриваем вопросы диагностики COM порта со стороны компьютера.
Начнем с самого простого, найдем на компьютере COM порт визуально.
Рис. 1. Пример расположения COM порта на задней планке материнской платы.
Однако на привычном месте может не оказаться разъема COM порта, это не беда. Заходим в диспетчер устройств, и смотрим в нем наличие COM порта.
Рис.2 Проверяем наличие COM порта на компьютере при помощи диспетчера устройств.
В данном примере всего один COM порт, на самом деле их может быть два или вообще не быть. Этот факт не является дефектом, просто стандарт на обязательное присутствие COM порта был отменен в далеком 1999г. Однако это повод задуматься при выборе материнской платы для нового компьютера — если Вы собираетесь активно эксплуатировать COM порт, то желательно остановить свой выбор на материнской плате в которой есть хотя бы один COM порт. Отсутствие COM порта на компьютере не является серьезной проблемой. На рынке достаточно устройств при помощи которых, эту проблему можно решить, но об этом чуть попозже.
Итак COM порт обнаружен программно, а физически его не видно, он расположен на материнской плате и для его физической реализации нужна планка (посмотреть), которую придется либо сделать самостоятельно, либо купить в магазине.
Рис. 3 Вид разъемов COM порта для реализации под планку. На фото, материнская плата с двумя COM портами.
После подключения планки COM порта остается только проверить работоспособность COM порта.
С планками все не так просто, на самом деле планок существует два типа. Оба имеют место быть, но предназанечены для работы на разных материнских платах.
Рис. 4 Внешний планок для работы на разных материнских платах.
Планки не взаимонезаменяемые, чаще всего встречался вариант I.
| |
Рис. 5 Вариант I распайки кабеля планки COM порта | Рис.6 Вариант II распайки кабеля планки COM порта |
Нет связи компьютера с подключаемым устройством.
| |
Рис. 11 Программа Commtest обнаружила технологическую перемычку на COM порту. | Рис. 12 Программа Commtest не обнаружила технологическую перемычку на COM порту. Порт COM1 неисправен, либо заглушка установлена на другом порту |
Если COM портов несколько, то необходимо перебрать все COM порты которые присутствуют в диспетчере устройств, есть вероятность, что при открытии другого порта — связь появится. Таким образом Вы получаете номер порта на который установлена заглушка.
Внимание! Данная проверка проверяет только канал Rx-Tx и не является 100% гарантией того, что порт исправен, однако хотелось бы обратить внимание что 90% устройств работают именно только по этим проводам. |
Внимание! Проверка на другом компьютере связь есть, проверка на проверяемом компьютере связи нет. Не является гарантией того, что COM порт неисправен. Пример кабель от ККМ Fprint-03К |
Комплексная проверка COM порта на стороне компьютера.
Принцип такой проверки очень похож на рассмотренную выше проверку по каналу Rx-Tx, суть та же, с передатчика сигнал должен прийти в приемник, если сигнал прошел, то можно считать, что пара исправна. Из оставшихся 7 контактов,1 контакт это земля его мы не проверяем.
Остается 6 контактов, из них два передатчики (DTR, RTS) и четыре приемники (DCD, DSR, CTS, RI). Правило тут простое — передатчик должен прийти на приемник, логично предположить, что на один передатчик следует нагрузить по два приемника. Хотя можно и на один передатчик повесить три приемника, а на второй предатчик посадить только один приемник, как делать дело Ваше . Самое удобное, в плане изготовления это 4->1,9 и 7->6,8 проводов получается по минимуму.
| |
Рис. 13 Технологическая заглушка для проверки COM порта, вид со стороны контактов. | Рис. 14 Технологическая заглушка для проверки COM порта, вид со стороны пайки. |
На рисунке для удобства синим цветом выделены передатчики.
Все в той же программе CommTest, но уже в другой части окна взводим флажок передатчика DTR и(или) RTS и смотрим, как изменяются соответствующие флажки приемника.
При изменении флажка DTR — должны взвестись флажки DCD и Ring, при сбросе флажка DTR – должны сбросится флажки DCD и Ring.
| |
Рис. 15 Флажок DTR сброшен | Рис. 16 Флажок DTR взведен, в примере не смотря на перемычку флажок Ring не взвелся, можно судить о не исправности приемника Ring |
При изменении флажка RTS — должны взвестись флажки DSR и CTS, при сбросе флажка RTS – должны сбросится флажки DSR и CTS.
| |
Рис. 17 Флажок DSR сброшен | Рис. 18 Флажок DSR взведен |
|
Рис. 19 Флажок DSR и DTR взведен |
Как проверить передатчик – приемник Tx-Rx рассмотрено немного ранее.
Если данные события происходят можно считать, что COM порт стандарта RS232 со стороны компьютера полностью исправен.
Источник
Com rs232 не работает
Вкратце:
- Адаптер на микросхеме, залитой компаундом, — китайское барахло;
- Адаптер на микросхеме с ножками — нормальный.
Инфа 100%
Если у вас первый случай, это всё объясняет. Выясните строение вашего адаптера.
Если второй случай, надо думать дальше.
P.S.
Оба адаптера на фотографии в системе определяются одинаково, как PL-2303: USB VendorID=067B и ProductID=2303. Это можно посмотреть в свойствах виртуального COM-порта в диспетчере устройств Windows.
Глюк относится именно к этой модели.
Узнайте VID и PID вашего адаптера.
Пользователь сказал cпасибо: |
Пользователь сказал cпасибо: |
Если у вас первый случай, это всё объясняет. Выясните строение вашего адаптера. Если второй случай, надо думать дальше. |
Постаралась рассмотреть сквозь полупрозрачный корпус (т.к. переходник не разбирается, сделан монолитом). Не совсем так, как на картинке, но тем не менее больше сходств с 1-ой картинкой
Значит по-любому новый адаптер нужен?
P.S.А почему он тогда с одним ноутом все-таки работал, как такое может быть?
«Китайцы» в 2007 где-то году скопировали PL-2303 как чёрный ящик, заточили этот самопальный чип под работу с тогдашними драйверами и забили на техподдержку.
Prolific же продолжает выпускать корпусные микросхемы PL-2303 (только корпусные), обновляет драйвера по мере устранения ошибок в микросхеме и в самих драйверах.
- Подделка может работать с комплектными драйверами, уже не подходящими под современные OS.
- С новыми драйверами подделка глючит конкретно. Если не ошибаюсь, именно в этом случае в диспетчере устройств жёлтый восклицательный знак выводится, так можно определить подделку.
- Оригинальный PL-2303 со старыми драйверами тоже не очень дружит.
VID и PID, по которым можно опознать PL-2303 (и оригинал, и подделку), в Windows просматривается в диспетчере устройств:
Источник