Как использовать протокол rs232 а ноутбук его

от admin

Проблемы при «прошивке» ресиверов. Отсутствие COM порта. Использование ноутбука

В большинстве «старых» компьютеров и ноутбуков, приобретенных более 5 лет назад, всегда было несколько COM портов (RS-232). По крайней мере, всегда был хотя бы один разъем «RS-232».

Рис. 15.1.1. Разъем на корпусе компьютера

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

В современных компьютерах разъем «RS-232» нередко отсутствует. Тут и возникают проблемы, зачастую весьма неприятные. В большинстве ресиверов нет иных способов «прошивки» кроме использования «RS-232». И «USB» вход для подключения внешнего флешь-накопителя есть не у всех ресиверов.

А иногда имеется и другая проблема: ноутбук имеет «COM» порт, но с ресиверами одной модели он работает, а с другими — нет. Это связано с нарушением производителем ноутбука стандарта передачи данных «RS-232». На это они идут в целях экономии энергии заряда аккумуляторной батареи. Если производитель ресивера был технически щепетилен и точен, то в ресивере будет установлена специальная микросхема для «COM» порта. Благодаря этой микросхеме ресивер будет работать и с ноутбуком, и с компьютером. Но установка микросхемы увеличивает общую стоимость изделия, а в последнее время производители экономят даже на этих мелочах! Поэтому и возникает проблема несовместимости ноутбуков и большинства ресиверов.

При использовании компьютера проблема отсутствия необходимых портов «RS-232» решается просто: необходимо приобрести дополнительный модуль с «COM» портами. Это плата, устанавливаемая в компьютер, называется «PIC—COM» или просто «плата СОМ портов».

Рис. 15.1.2. Плата PCI для компьютера с двумя «COM» портами

Если вы не сильны в компьютерах и ранее никогда не имели дело с установкой дополнительного оборудования в компьютер, то обратитесь к специалисту! Иначе можете «умертвить» дорогостоящее оборудование.

После установки платы в компьютер операционная система «Windows» — «ОС» присваивает новым установленным портам номер, например, «1», «2»…«25».

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

Рис. 15.1.3. Плата для ноутбука с «COM» портом

И тут есть подвох: в «старых» и «новых» ноутбуках два разных стандарта для дополнительного оборудования! Перед приобретением сверьтесь с инструкцией к вашему ноутбуку!

Если же вы не могли приобрести плату на компьютер или ноутбук, то остается один выход: «USB». Практически во всех современных моделях компьютеров имеется «USB» выход, как минимум два, а то и все восемь! В продаже имеются различные преобразователи «USB — COM».

Рис. 15.1.4. Преобразователь «USB — COM»

Т.е. в свободные разъем «USB» ноутбука подключается вход такого «преобразователя», с диска из комплекта устанавливается драйвер (программа управления) и в системных настройках появляется виртуальный COM порт с присвоенным порядковым номером.
Тут нас поджидают первые проблемы: во-первых, ОС могла присвоить виртуальному порту слишком большой номер, например, «25». А программа для «прошивки» ресивера позволяет работать с номерами портов от одного до четырех. Во-вторых, не все преобразователи «USB — COM» могут работать с программой для «прошивки» и самим ресивером. Причина в том, что производители оборудования по-разному изготовили свои изделия и программы к ним. Проверять все преобразователи необходимо индивидуально под вашу программу и ваш ресивер. Часто бывает, что с одним оборудованием преобразователь работает, а с другим — нет.

Если первая проблема устраняется изменением номера порта в настройках ОС, то проблему совместимости оборудования, программы и преобразователя устранить нельзя.

Для изменения присвоенного ОС номера необходимо изменить его вручную. Для этого необходимо войти в «Диспетчер устройств»: «Пуск» — «Настройка» — «Панель управления» — «Система».

Рис. 15.1.5. «Панель управления»

В появившемся окне выбрать вкладку «Оборудование» и щелкнуть по кнопке «Диспетчер устройств». Откроется окно «Диспетчер устройств». В появившемся окне в древовидном списке выбрать строчку «Порты (COM и LPT). В раскрывшемся списке вы увидите все порты, имеющиеся в вашем компьютере. Выберите ваш виртуальный порт: «преобразователь «USB — COM». У меня преобразователь модели «Prolific».

Рис. 15.1.6. Список имеющихся портов

Щелкните по этой строчке ПРАВОЙ кнопкой мыши, в открывшемся окне выберите стройку «Свойства».

Рис. 15.1.7. Настройка выбранного порта

В появившемся окне выберите вкладку «Параметры порта». В строчке «Скорость» выберите «115200», затем щелкните по кнопке «Дополнительно».

Рис. 15.1.8. Настройка параметров порта

В нижней части открывшегося окна найдите вкладку «Номер COM порта».

Рис. 15.1.9. Изменение номера COM порта

Щелкните по вкладке и выберите необходимый номер COM порта.

Обратите внимание, что некоторые номера порта могут быть заняты уже имеющимся оборудованием, например, встроенным модемом. Использовать одновременно один порт нельзя!

После завершения настройки нажмите «ОК» для сохранения внесенных изменений и полностью выйдите из режима настроек, закрыв все ранее открытые окна. После этого перезагрузите компьютер для внесения необходимых изменений. Если же вы изменяли номер «COM» порта «USB — COM» преобразователя, то достаточно просто вынуть его из разъема компьютера и заново подключить.

Связь микроконтроллера с компьютером через RS232

Почти все микроконтроллеры имеют на борту последовательный порт — UART . Работает он по стандартному последовательному протоколу, а значит его можно без проблем подключить к компу на COM порт. Но есть тут одна проблема — дело в том, что комповый RS232 он за логические уровни принимает +/- 12 вольт, а UART работает на пятивольтовых уровнях. Как их совместить? Для этого существует несоколько вариантов схем преобразователей уровня, но самая популярная это все же на специальном преобразователе RS232-TTL . Это микросхема MAX232 и ее аналоги.
Практически каждая фирма делает свой преобразователь, так что тут сгодится и ST232 , и ADM232 , и HIN232 . Схемка простая как три копейки — вход, выход, питание и обвязка из пяти конденсаторов. Конденсаторы обычно ставятся 1uF электролиты, но в некоторых модификациях ставится 0.1uF керамика. Я везде впаивал 0.1uF керамику и обычно этого хватало. 🙂 Работает как часы. Если же на высоких скоростях будет глючить, то надо будет повышать емкость.

Кстати, существует еще и MAX3232 это то же самое, но на выходе у него не 5вольт TTL, а 3.3 вольта TTL. Её используют для низковольтных контроллеров.

Я себе сделал один такой универсальный шнурочек, чтобы к контроллерам цепляться было удобно по UART . Для общей компактности всю схему запихал прям в разъем, благо у меня были ST232 в soic корпусе. Получилась платка не больше рублевой монеты. Так как под рукой не было мелких SMD конденсаторов, то пришлось напаять кондеры сверху, кто во что горазд. Главное работает, хоть и не очень красиво вышло.

Плата снизу

Если сомневаешься, что у тебя получится столь мелкий монтаж, то я тебе развел плату на стандартный PDIP корпус. Размером она будет со спичечный коробок, зато мельчить не надо.

Плата сверху

После сборки проверяется просто:
Втыкается в разъем COM порта. Подается 5 вольт питания на схему, а затем замыкаешь Rx на Tx (у меня это зеленый и желтый провода).

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

Если работает, то дальше все просто. Тот провод который идет от ножки 9 микросхемы MAX232 это передающий вывод , его заводи на ногу RxD контроллера. А тот который с ножки 10 — принимающий , его смело сажай на вывод TxD контроллера.

В собранном виде

Плата сделана была методом ЛУТ, в одном месте по моему недосмотру толщина просвета оказалась 0.05мм, протравилась, но со спайками, пришлось процарапывать. А в целом с первого раза ать и никаких проблем. Аж сразу захотелось сделать что нибудь маленькое маленькое, нафаршированное нафаршированное 🙂

Печатная плата. Тонер не смыт.

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

Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.

165 thoughts on “Связь микроконтроллера с компьютером через RS232”

Актуальнее уже про USB 2 serial рассказывать…

Парадокс однако, последовательные порты в писюках пропадают. А потребители последовательных портов множатся =)

Будет! Когда найду где купить эту гребанную FT232 а заказывать за 3 цены из Москвы совершенно не хочется.

USB — это только провод, и не более 2-3м… И 500 Мбит.сек -оно роботу надо? Видеосигнал гнать — проще камеру со встроенным радиоканалом поставить. (У нас в Алма-ате их в каждом магазине полно, от 10$). Зато с RS232 — хоть через ИК, хоть по простейшему радиоканалу — без проблем. Для управления и телеметрии даже 9600 за глаза, а ведь можно и более 100 кбод обеспечить. Так что у кого нет COM, проще купить переходник USB-RS232 и не морочить голову себе и роботу.
Купить звонок с радиокнопкой за 3-5$, сейчас их полно, вот тебе и командная радиолиния на 430 МГц, если лень самому приемник с передатчиком делать, а подцепить их к USART и COM -не проблема.

Да COM у меня гдет в глубине, а USB на морде. ПЛюс на ноуте нет СОМ порта, а хочется 🙂

А чо за камеры за 10 баксов да еще с RS232? Чтот не верится.

Нет, в камере радиоканал 1100-1200МГц, на одном транзисторе, а из камеры торчит проводок сантиметров 5-6. Приемник размером с пачку сигарет, видео выход — стандартный, на тюльпанчике. Питание 9-12в,
камера с полспичечного коробка, что чб, что цветная. Цены в зависимости от сложности и качества от 1200 тенге до 6500 и выше.
(Курс = 120 тенге за доллар). Типов — десятки. Например, есть в полусфере, на потолок, поворачивается дистанционно. Большинство имеют встроенную ИК подсветку разной мощности. Китайцы много всего наделали, а Китай от нас рядом, (180км), «Челноки» на автобусе ездят.

Классно, у нас таких цен нет 🙁 Все везут сначала в Москву, а потом только к нам. Выходит раз в 5-10 дороже.

У нас тоже много везут из Москвы, но чаще — с Китая, Тайваня, Турции или Эмиратов. У нас и копьютерное железо заметно дешевле, чем в Москве. И любая валюта свободно ходит, обменники на каждом углу. Полно всяких барахолок, оптовок, магазинчиков. В общем, все есть, были бы деньги…

Не смогли бы вы скинуть фотку платы видеопередатчика описываемого выше?

«Купить звонок с радиокнопкой за 3-5$, сейчас их полно, вот тебе и командная радиолиния на 430 МГц» — не все звонки одинаково полезны. Покупал недавно — так там тупая микрушка, с которой кроме как «подал питание на передатчик — активировался выход на приемнике» никак и не поработаешь.

Много надо?
Могу прислать сколько-нибудь.

В приставки спутниковой антенны, она там стоит для прошивки приставки.

Мож сразу по блютусу будем контроллеры пошивать? ИМХО старый добрый ком ничего не заменит! Пропадают последовательные порты на писюках? Радиолюбители… Спаяй переходник USBtoCOM и никаких тебе проблем.

Сейчас проще уже сразу Obdev AVR-USB использовать, а в пару ему загрузчик BootloadHID. Лишь бы кварц не меньше 12 МГц был.

А как с этим Obdev AVR общатсья с компом? Он виртуальный COM порт открывает?

Сколько памяти в кристалле сжирает код USB?

Какой стандарт выберешь, так и будет общаться. 😉 Я использую USB HID — и Windows на стандартный драйвер подхватывает, и утилита есть простейшая для отладки — SimpleHIDWrite.

Можно и CDC (вирт. COM), но тут AVR’ке приходится притворяться Full-speed девайсом — уходит очень много процессорного времени:
«Consumes ca. 90% or more of the AVR’s CPU time because bulk endpoints are polled aggressively by the host. Real-time applications on the AVR are close to impossible.»
Чаще используют на 8 Кбайтовых восьминогих tiny, чтобы сэкономить на FT232.

Можно напрямую, но тогда — пиши свой драйвер для NT. Под *nix можно и без драйвера. 🙂 Ещё, как я понимаю, можно воспользоваться libusb-win32.

Драйвер памяти кушает

1.5 Кб, зависит от конфигурации. На tiny2313 точно влезало, даже ещё место под свой код оставалось.

HIDBoot кушает 2 Кбайта.

Вопрос: какую набольшую длину кабеля можно сделать от платы с MAX232 до выводов контроллера ? и какая наибольшая длина может быть у кабеля от MAX232 до COM порта, если делать девайс на стороне контроллера ?

У меня от МАХ232 до контроллера 1.5 метра, от MAX232 до порта тоже было 1.5 метра, работало без сбоев. ПОдозреваю, что можно и много больше, по крайней мере раза в два три точно. Но тут уже от скорости передачи зависит.

«RS-232 — интерфейс передачи информации между двумя устройствами на расстоянии до 20 м.» (С)Wikipedia

Это чистый 12В рс232. Поэтому от МАкс до контроллера сильно лучше не удалять.

Я писал про случай Макс-COM.

У меня где-то было описание стандарта RS232. Помнится, при скорости 50 бод — до 1,5 км. Чем быстрее, тем меньше. Точно табличку не помню, но, думаю, что метров до 5 по витой паре и 115кбод — не проблема. А зачем роботу большая скорость? Я 20 лет проработал в лаборатории телеграфа. Основная скорость на сети была 50 бод, 1знак передавался за 150 мсек. 6 знаков в сек. При скорости 200 бод уже еле — еле успеваешь читать теуст, распечатываемый на телетейпе. Что толку выплюнуть знак в линию за микросекунду, а потом несколько секунд ждать следующего? Я думаю, роботу и 9600 — за глаза, а на такой скорости хоть через ИК или простейший радиоканал гони. Не будет же робот на проводке сидеть, ему надо хотя бы по комнате бегать. А режим отладки для него не главное, можно и по шнурку.

На быстром обмене можно не заморачиваться на создание буффера и слать посимвольно. На медленной скорости будет тупить вся прога на передаче =)

Так ведь длина сообщений вряд ли будет больше одного — двух десятков байт за раз. Кинул в очередь на передачу, поставил флажок наличия данных для выдачи, а отдельная подпрограммка в главном цикле проверяет готовность передатчика, кидает ему очередной байт, сдвигая курсор на следующий знак, после последнего — сбрасывает флажок наличия данных для передачи, выставляя флаг, что передача окончена. Большинство стандартных сообщений заложено в ПЗУ с программой, буфер — только для переменной части сообщения, может быть всего байт на 8. Когда — то я таким образом еще на 1816ВЕ35 выдавал челез заданные интервалы времени или при обнаружении нарушений накопленную статистику на телетайп на 200 бод, не прекращая при этом отслеживать и обсчитывать несколько точек. Быстродействие же современных контроллеров куда выше, да и UART уже встроенный. А посимвольно все равно ждать придется, за время передачи одного байта даже на 128 Кбод примерно 78мкс пройдет, а это при тактовой даже 8 МГц

625 команд! Зато быстрый канал потребует довольно жесткого кабеля, и по радио или ИК его передать будет куда сложнее.
Да и от буфера все равно не избавитесь, надо же где-то сообщение формировать в любом случае. Если брать только из ПЗУ, то тогда и в моем варианте буфер не нужен. Достаточно знать адрес первого байта и длину. Если концом сообщения будет спецсимвол (например, ВК), то и длину знать не надо.

Гдето давно схемка была датакабеля для симена с25,на мах232 дак там и питание от ком порта было и вся схема с микрой в дипе в пластмассовый корпус разъёма влезала

Действительно, лучше уж сразу про USB статью делать. Простейший пример я в ЖЖ постил.

А зачем роботу USB? Что по нему гнать? Где взять столько информации? Опять же, для USB — только кабель, и то короткий. Уж больно жесткие нормы на задержки. Как я понял, пока что изучение идет с привязкой к роботу. Да и по USB в интернете статей валом, как программному, начиная с 2313, так и аппаратному, встроенному. Кто уж вышел на такой уровень, найдет без труда. При таком подходе проще на робот ноутбук шпагатом привязать, там и USB уже есть, и много чего еще. Лучше больше места в программе уделить функциональности, «интеллекту» робота, чем тратить килобайты кода, чтобы передать сотню байтов в час.

Иногда без USB просто никак. Например знакомые просят сделать им кое какие девайсы, а COM портов на их компах нету… Вот и приходится извращаться.

Извращаться — это как раз делать устройства под благополучно вымерший COM-порт.
USB рулит 🙂

Да он еще столько же проживет. Может и не на пользовательских компах, но вот в промышленных решениях точно!

FT232 спасет отца русской демократии 🙂

Да гораздо проще купить за несколько баксов переходник USB — COM, их везде полно, и не расходовать ресурсы контроллера на избыточный для него интерфейс. Все равно ведь чаще всего в компе ему приходится COMом прикидываться… А ставить дорогого монстра с кучей мелких ног ради USB туда, где и Меги 8 или PIC16F873 за глаза — вообще западло… А UART почти в каждом контроллере нахаляву уже есть. И программируется в десяток байт кода.

Скажи это будущим пользователям твоих устройств, им возиться с переходниками не понравится. А COM’ом прикидываться смысла нет… Воткнул устройство в комп, винда увидела HID устройство, и софт сразу начинает с ним работать. Вообще красота.
А монстров ставить и не обязательно, ATMEGA8 софтварно с USB отлично работает.

Ага, и четверть ПЗУ, и процентов 80 производительности- на обслугу этой хрени…

Если, например, в «Умном доме» с компом будет общаться с десяток устройств, шнурков не напасешься… Да и как их разместить в доме, при ограничении на длину 2-3 метра? Робот на такой веревке тоже далеко не убежит. В радиоканал или ИК USB не засунешь (задержки!). А прицепи к COM порту передатчик на одном транзисторе, да приемник на одной микросхеме, и 50-150м на улице или 20-25м в бетонном доме тебе обеспечены.

Всё зависит от случая. Иногда устройство по USB только синхронизируется с компом, не выполняя в этот момент своих основных функций. В таком случае оно гораздо удобнее.

Открываю ГиперТерминал, выбираю подключиться через com 1, пишу текст. Что я должен увидеть?

Свой же набранный текст к тебе должен вернутся (при отключеном эхе). Если схема собрана верно и работает.

Вопрос от новичка. uF — что за приставка микро, мили, нано :(). Что брать в магазине?

Еще вопросик. В печатной плате. номерация площадок для приклеивания разьема RS232 с лево на право 1,2. 5. Когда начал прикладывать разем к спаеной плате получилось, что цифры не на разьеме и на плате не совпадаю. 1(RS232) напротив 5 (плата), 2(RS232) напротив 4 (плата) и т.д. это так и задумывалось? или на печатной плате в электронном виде перепутан порядок цифр?

Если рисунок получившейся платы точно повторяет фотку — то значит на чертеже перепутаны номера контактов. Т.к. я помню, что вначале плату сделал на DIP и лишь потом отзеркалил. Номера контактов перевернуть мог и забыть :))

Нет, все нормально. Это я маму с папой перепутл. Когда взяд маму все цифры совпали :). Тока еще вопрос есть. если нумерация ног начинается от метки с возростанием номера ноги против часовой стрелко, то как Тх и Rx попали на 7 и 8 ногу Мах232. Должны наверно быть 15 и 16 (в тексте статьи)

Читать:
Как зарядить электрошокер 6 6 9 тайп

да кстати. про ноги тоже заметил, только не 15,16 а 9,10.

Хотел купить микруху MAX232, а её в прайсе нет, но есть другие, какую брать? Самую дешёвую? 😉 И чем они отличаются?

MAX232AEJE 127.65руб.
MAX232AEPE+ 71.63руб.
MAX232AESE 63.86руб.
MAX232AESE+ 58.64руб.
MAX232AEWE 56.11руб.
MAX232AMJE 223.67руб.
MAX232CPE 22.12руб.
MAX232DR PBF 9.83руб.
MAX232ECDW PBF 21.07руб.
MAX232EEPE 56.53руб.

ST232ABDR PBF 22.42руб.
ST232ACDR PBF 11.59руб.
ST232BDR PBF 12.64руб.
ST232BN PBF 16.22руб.
ST232CDR PBF 11.24руб.
ST232CN PBF 11.59руб.

Разница только в производителе и в типе корпуса. Еще в температурном диапазоне.

Бери любой в DIP корпуспе (продавцы знают) для большой версии или в SOIC для малой. SOIC правда бывает двух видов — широкий и узкий. Моя плата нарисована для узкого (широкий встречается реже). Так что это тоже надо учитывать.

В любом случае, какую бы ты не купил — подойдет. В худшем случае перерисуешь плату по новой. Цоколевка выводов у них у всех одинаковая.

Подключение Компютера к RS232(фото в комплекте)

С помощью чего подключить ноут, к устоновке c rs232 разьемом? что купить и как называется?

у ноута это не RS232, а VGA посчитайте по количеству контактов, не сходится =)
вам нужен USB-com переходник ,

Вам нужен USB to Com контроллер приобрести.
Провод будет подключаться к USB порту ноутбука и включаться в rs-232 платы.

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

Обзор стандарта RS-232

RS232 — популярный протокол, применяемый для связи компьютеров с модемами и другими периферийными устройствами. В данном обзоре представлен комплект полезной и справочной информации, представлена распиновка стандартных разъемов, описано что такое квитирование (HANDSHAKING) и применение микросхем MAX232 фирмы MAXIM.

Что это такое RS-232

RS-232 — интерфейс передачи информации между двумя устройствами на расстоянии до 20 м. Информация передается по проводам с уровнями сигналов, отличающимися от стандартных 5В, для обеспечения большей устойчивости к помехам. Асинхронная передача данных осуществляется с установленной скоростью при синхронизации уровнем сигнала стартового импульса.

Интерфейс RS-232-C был разработан для простого применения, однозначно определяемого по его названию «Интерфейс между терминальным оборудованием и связным оборудованием с обменом по последовательному двоичному коду». Каждое слово в названии значимое, оно определяет интерфейс между терминалом (DTE) и модемом (DCE) по передаче последовательных данных.

Устройства для связи по последовательному каналу соединяются кабелями с 9-ю или 25-ти контактными разъемами типа D. Обычно они обозначаются DB-9, DB-9, CANNON 9, CANNON 25 и т.д. Разъемы типов розетки и штырей. Каждый вывод обозначен и пронумерован. Расположение выводов представлено ниже.

Ассоциация электронной промышленности (EIA) развивает стандарты по передаче данных. Стандарты EIA имеют префикс «RS». «RS» означает рекомендуемый стандарт, но сейчас стандарты просто обозначаются как «EIA» стандарты. RS-232 был введен в 1962. Стандарт развивался и в 1969 представлена третья редакция (RS-232C). Четвертая редакция была в 1987 (RS-232D, известная также под EIA-232D). RS-232 идентичен стандартам МККТТ (CCITT) V.24/V.28, X.20bis/X.21bis и ISO IS2110.

В RS-232 используются два уровня сигналов: логические 1 и 0. Логическую 1 иногда обозначают MARK, логический 0 — SPACE . Логической 1 соответствуют отрицательные уровни напряжения, а логическому 0 — положительные. Соответствующие значения напряжений представлены в таблице.

Уровни сигналов данных

Уровень Передатчик Приемник
Логический 0 От +5 В до +15 В От +3 В до +25 В
Логический 1 от-5 В до -15 В От -3 В до -25 В
Не определен От -3 В до +3 В

Уровни управляющих сигналов

Сигнал На выходе устр-ва (Driver) На входе устр-ва (Terminator)
«Off» От -5 В до -15 В от -3 В до -25 В
«On» От 5 В до 15 В от 3 В до 25 В

Сигналы после прохождения по кабелю ослаюляются и искажаются. Ослабление растет с увеличением длины кабеля. Этот эффект сильно связан с электрической емкостью кабеля. По стандарту максимальная нагрузочная емкость составляет 2500 пФ. Типичная погонная емкость кабеля составляет 130 пФ, поэтому максимальная длина кабеля ограничена примерно 17 м.

Дополнительная информация в разделе Кабели и Длина проводов.

Проблемы с источником питания

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

Контакты разъемов

DB25 Розетка (мама)
Контакт Обозн. Направление Описание
1 SHIELD Shield Ground — защитная земля, соединяется с корпусом устройства и экраном кабеля
2 TXD —> Transmit Data — Выход передатчика
3 RXD Request to Send — выход запроса передачи данных
5 CTS Data Terminal Ready — выход сигнала готовности терминала к обмену данными
21 N/C
22 RI Transmit Data
4 DTR —> Data Terminal Ready
5 GND System Ground
6 DSR Request to Send
8 CTS Data Terminal Ready
4 GND System Ground
5 RxD Transmit Data
7 CTS Request to Send

Соединения коннектора RJ-45 не стандартизовано. Данный вариант один из возможных.

Кабели подключения

Нуль модемные кабели RS-232

Рассмотрим сначала DSR сигнал (конт.6). Этот вход сигнала готовности от аппаратуры передачи данных. В схеме соединений вход замкнут на выход DTR (конт.4). Это означает, что программа не видит сигнала готовности другого устройства, хотя он есть. Аналогично устанавливается сигнал на входе CD (конт.1). Тогда при проверке сигнала DSR для контроля возможности соединения будет установлен выходной сигнал DTR.

Это соответствует 99% коммуникационного программного обеспечения. Под этим подразумевается, что 99% программного обеспечения с этим нуль-модемным кабелем примут проверку сигнала DSR.

Аналогичный трюк применяется для входного сигнала CTS. В оригинале сигнал RTS (конт.7) установливается и затем проверяется CTS (конт.8). Соединение этих контактов приводит к невозможности зависания программ по причине неответа на запрос RTS.

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

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

Контакты 2 и 3 на 9-ти выводном разъеме D типа противоположны этим же контактам на 25-ти контатном раземе. Поэтому, если соединить контакты 2-2 и 3-3 между разъемами D25 и D9, получится коммуникационный кабель. Контакты сигнальной земли Signal Ground (SG) также должны быть подключены между собой. См. таблицу ниже.

5-проводный с управлением потоком

Можно найти или изготовить много типов кабелей для связи по интерфейсу RS-232. В этом нуль- модемном кабеле используется только 5 проводов: сигналы данных TXD, RXD, сигнал GND и управляющие сигналы RTS CTS для управления потоком.

Все DTE-DCE кабели прямого соединения, контакты соединяются один к одному. Кабели DTE-DTE и DCE-DCE кросс-кабели.

  1. DTE — DCE называется ‘прямой кабель’
  2. DTE — DTE называегся ‘нуль-модемный кабель’
  3. DCE — DCE называется ‘Tail Circuit Cable’

Описание полного нуль-модемного кабеля

Соединение D9- D9

DB9-1 DB9-2
Receive Data 2 3 Transmit Data
Transmit Data 3 2 Receive Data
Data Terminal Ready 4 6+1 Data Set Ready + Carrier Detect
System Ground 5 5 System Ground
Data Set Ready + Carrier Detect 6+1 4 Data Terminal Ready
Request to Send 7 8 Clear to Send
Clear to Send 8 7 Request to Send
DB25-1 DB25-2
Receive Data 3 2 Transmit Data
Transmit Data 2 3 Receive Data
Data Terminal Ready 20 6+8 Data Set Ready + Carrier Detect
System Ground 7 7 System Ground
Data Set Ready + Carrier Detect 6+8 20 Data Terminal Ready
Request to Send 4 5 Clear to Send
Clear to Send 5 4 Request to Send
DB9 DB25
Receive Data 2 2 Transmit Data
Transmit Data 3 3 Receive Data
Data Terminal Ready 4 6+8 Data Set Ready + Carrier Detect
System Ground 5 7 System Ground
Data Set Ready + Carrier Detect 6+1 20 Data Terminal Ready
Request to Send 7 5 Clear to Send
Clear to Send 8 4 Request to Send

Заглушка тестирования RS-232

Заглушка для эмуляции терминала

Данный соединитель RS-232 может быть использован для проверки последовательного порта кмпьютера. Сигналы данных и управления соединены. В этом случае передаваемые данные сразу возвращаются. Компьютер проверяет собственный поток. Это может быть использовано для проверки функционирования порта RS-232 со стандартным терминальным программным обеспечением.

Кабель контроля (мониторинга) RS-232

Контроль связи по RS-232 между двумя устройствами с помощью компьютера возможен при помощи кабеля, изображенного на рис. Два разъема подключаются к устройствам, а третий подключается к наблюдающему компьютеру. Этот кабель принимает информацию от двух источников только на один приемный порт RS-232. Поэтому, если оба устройства начнут одновременную работу, контролируемая информация на входе компьютера будет нарушена. В большинстве случаев связь осуществляется в полудуплексном режиме. Для этих режимов этот кабель будет работать без проблем.

Расстояния передачи

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

Максимальная длина кабеля

Скорость [бод] Макс. длина [футы] Макс. длина [метры]
19 200 50 15
9 600 500 150
4 800 1000 300
2 400 3000 900

Скорость передачи данных

Скорость передачи информации по RS-232 измеряется в Бодах. Эта единица названа в честь Эмиля Бодо (Jean Maurice-Emile Baudot) (1845-1903), французского инженера по телеграфии, изобретателя первого печатающего устройства для телеграфа (телепринтера) , представленного на Международной Телеграфной конференции в 1927. Максимальная скорость согласно стандарту 20000 Бод. Однако современное оборудование может работать значительно быстрее. Не имеет значения на сколько быстрое (медленное) ваше соединение — максимальное число чтения за секунду можно установить с помощью используемого программного обеспечения.

Контроль четности

Четность в RS-232 (Parity)

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

Для обеспечения контроля четности компьютер и устройство должны одинаково производить подсчет бита четности. То есть, определиться устанавливать бит при четном (even) или нечетном (odd) числе единиц. При контроле на четность биты данных и бит четности всегда должны содержать четное число единиц. В противоположном случае соответствует для контроля на нечетность.

Mark и Space биты четности

Часто в драйверах доступны еще две опции на четность: Mark и Space. Эти опции не влияют на возможность контроля ошибок. Mark означает, что устройство всегда устанавливает бит четности в 1, а Space — всегда в 0.

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

В этом примере показана структура передаваемых данных со синхронизирующим тактовым сигналом. В этом примере используется 8 бит данных, бит четности и стоп бит. Такая структура также обозначается 8Е1.

Примечание: Тактовый сигнал — для асинхронной передачи это внутренний сигнал

Сигнальная линия может находится в двух состояниях: включена и выключена. Линия в состоянии ожидания всегда включена. Когда устройство или компьютер хотят передать данные, они переводят линию в состояние выключено — это установка Старт бита. Биты сразу после Старт бита являются бюитами данных.

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

Установка Стоп бита

Стоп бит не просто один бит минимального интервала времени в конце каждой передачи данных. На компьютерах обычно он эквивалентен 1 или 2 битам, и это должно учитываться программе драйвера. Хоя, 1 стоп бит наиболее общий, выбор 2 бит в худшем случае немного замедлит передачу сообщения.

(Есть возможность установки значения стоп бита равным 1.5. Это используется при передаче менее 7 битов данных. В этом случае не могут быть переданы символы ASCII, и поэтому значение 1.5 используется редко.)

Управление потоком

Управление потоком представляет управлять передаваемыми данными. Иногда устройство не может обработать принимаемые данные от компьютера или другого устройства. Устройство использует управление потоком для прекращения передачи данных. Могут использоваться аппаратное или программное управление потоком.

Аппаратное управление потоком

Аппаратный протокол управления потоком RTS/CTS. Он использует дополнительно два провода в кабеле, а не передачу специальных символов по линиям данных. Поэтому аппаратное управление потоком не замедляет обмен в отличие от протокола Xon-Xoff. При необходимости послать данные компьютер устанавливает сигнал на линии RTS. Если приемник (модем) готов к приему данных, то он отвечает установкой сигнала на линии CTS, и компьютер начинает посылку данных. При неготовности устройства к приему сигнал CTS не устанавливается.

Программное управление потоком

Программный протокол управления потоком Xon/Xoff использует два символа: Xon и Xoff. Код ASCII символа Xon — 17, а ASCII код Xoff — 19. Модем имеет маленький буфер, поэтому при его заполнении модем посылает символ Xoff компьютеру для прекращения посылки данных. При появлении возможности приема данных посылается символ Xon и компьютер продолжит пересылку данных. Этот тип управления имеет преимущество в том, что не требует дополнительных линий, т.к. символы передаются по линиям TD/RD. Но на медленных соединениях это может привести к значительному замедлению соединения, т.к. каждый символ требует 10 битов.

Преобразование уровней RS-232 в TTL уровень с помощью MAX232

Два типа устройств RS-232, 1488 и 1489, используются и сейчас. Это ранние представители этого стандарта. Устройства того времени запитывались мощными источниками питания, поскольку согласно стандарту RS-232 передатчики должны были обеспечивать минимальный +5В сигнал низкого уровня и минимальный -5В сигнал высокого уровня. Эти уровни сигналов обеспечивали устойчивость к помехам после передачи по проводам к приемнику. Но это требувало наличие двуполярного источника питания, и поэтому многие материнские платы включали в себя источник отрицательного напряжения исключительно для питания устройств типа 1488 ии 1489.

Семейство микросхем MAX220-MAX249 линейных приемо-передатчиков предназначены для интерфейсов EIA/TIA-232E и V.28/V.24, особенно в устройствах, где отсутствуют напряжения ±12В.

Альтернативная микросхема ICL232. Это сдвоенный приемо-передатчик соответсвующая спецификациям RS-232C и V.28. Для питания мс требуется только напряжение +5В. Напряжения +10В и -10В преобразуются из 5В-го при помощи двух емкостных преобразователях напряжения.

Микросхема MAX232 быстро стала индустриальным стандартом. Многие разработчики используют ее, несмотря на то, что параметры микросхем с однополярным питанием значительно улучшились со временем.

Конфигурация выводов MAX232: представлена на рис.

Структурная схема MAX232A

На структурной схеме MAX232A изображены удвоитель напряжения и инвертор напряжения +10В в -10В. Эти напряжения используются для формирования сигналов соответсвующих RS-232. MAX232A позволяет подключить два последовательных порта.

Токовая петля

До начала 1960-х в телепринтерах для связи на большие расстояния применялась токовая петля 60мА. В 1962 была представлена модель 33 телетайпа с 20мА токовой петлей. После этого этот интерфейс стал широко использоваться. На протяжении 60-х, 70-х и 80-х интерфейс 20мА токовая петля применялся во многом оборудовании. Этот интерфейс стал популярным из-за его низкой цены при использовании на больших расстояниях, а также высокой помехоустойчивостью передачи данных.

В интерфейсе токовая петля электрическим сигналом является ток, а не напряжение. Токовая петля может работать в дуплексном, полудуплексном режиме, а также в активном или пассивном режиме.

Этот стандарт позволяет передавать данны на расстояния до 600 м со скоростью до 19.2 кБод.

  • большая дальность чем у RS-232
  • помехоустойчивость передачи данных
  • расстояния до 600 м
  • скорость передачи до 19.2 кБод

Одновременная двунаправленная передача данных возможна по этой схеме. Для этого режима необходимы два генератора тока 20мА. Например, карта IBM адаптера последовательного интерфейса имеет в своем составе только один генератор тока. В этом случае для создания полного соединения второе устройство должно иметь генератор тока для создания второй токовой петли.

Полнодуплексная схема 20 mA

Симплексная схема 20 мА

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

Симплексная схема 20 mA (возможна только поочередная передача данных)

Сранение уровней сигналов RS-232 и 20мА токовой петли

На рис ниже представлены уровни сигналов интерфейса RS-232 и их соответствие с интерфейсом токовой петли 20 мА. Для токовой петли наличие тока соответствует пассивному состоянию (отсутствие передачи данных).

Сравнение уровней RS-232 и 20мА токовой петли

Схема преобразователя аналоговой токовой петли 4- 20 мА

Эта схема упоминается здесь потому, что иногда ее путают с 20мА токовой петлей. Назначение данной схемы — передача сигнала от удаленного аналогового датчика через токовой сигнал. Для передачи сигнала требуется только два провода и источник питания датчика. Для питания датчика используется источник напряжения 24В. Удаленный датчик изменяет ток в петле в соответствии с измеренным параметром. На последовательном резисторе RL этот ток преобразуется в напряжение, которое далее может быть обработано.

Схема преобразователя аналоговой токовой петли 4 — 20 мА

HART® 4 — 20 мАтоковая петля

Это другой пример комбинирования аналоговой и цифровой токовой петли схемы 4 — 20 мА. Для этой токовой петли применяется коммуникационный протокол HART®. HART® протокол используется для интеллектуальных удаленных преобразователей, совместимых с аналоговой токовой петлей 4-20 мА, а также имеющих цифровой обмен по тем же проводам. Это осуществляется за счет применения двухтонального частотного сигнала (FSK) сигнала с уровнями 4-20 мА.

Схема аналоговой токовой петли 4 к 20 мА с цифровой передачей данных по HART протоколу

Программное обеспечение

Утилита Hercules SETUP

Утилита Hercules SETUP — полезный терминал последовательного порта (RS-232 или RS-485), протоколов UDP/IP и TCP/IP (клиент или сервер). Может использоваться с оригинальными устройствами Ethernet (конвертеры Serial/Ethernet, RS-232/Ethernet буферы или контроллеры ввода/вывода) for the UDP Setup. Утилита была создана для собственных нужд, но сейчас она включает в себя много дополнительных функций и распространяется Freeware.

Основные полезные части:

  • Терминал последовательного порта — поддержка COM5 и выше
  • TCP/IP клиентский терминал
  • TCP/IP серверный терминал
  • UDP терминал
  • Не требует инсталляции, только один .EXE файл.
  • Работает с виртуальным последовательным портом, (COM12 к примеру)
  • Можно использовать простые Макро функции, включающую посылку HEX комманд. Макро функции сохраняются в регисрах, и Hercules запоминает их.
  • Терминал последовательного порта показывает состояния и может управлять сигналами модема (CTS, RTS, DTR, DSR, RI, CD)
  • Можно пересылать файлы и сохранять полученные данные в LOG файле.
  • Поддержка TEA — безопасную TCP/IP авторизацию для клиента и сервера TCP/IP, тестовых режимов..
  • Поддержка передачи данных TCP/IP в TCP/IP сервере или клиенте TCP/IP.
  • Поддержка передачи данных UDP/IP в UDP/IP терминале
  • Поддержка сетевого виртуального терминала NVT (Network Virtual Terminal) в тестовом режиме.
  • Применение Telnet дополнительно с NVT позволяет конфигурировать последовательный порт (RFC2217), проводить идентификацию устройства, подтверждение передачи данных и др.
  • Эта утилита распространяется FREEWARE, можно использовать ее и распространять без всяких ограничений!

Terminal — это простой эмулятор терминала последовательного порта (COM). Может применяться для коммуникациис различными устройствами, такитми как модемы, роутеры, GSM телефоны. Очень полезная утилита для отладки приложений для соединений по последовательному каналу.

  • Маленький размер файла small .exe 246k
  • Простая посылка файла
  • Счетчик символов
  • До 6 com портов
  • Скорость обмена до 256кБит/c
  • Запись в log файл (hex & string)
  • Передача макросов

Tera Term (Pro) — свободно распространяемый эмулятор терминаладля MS-Windows. Поддерживает эмуляцию VT100, telnet соединение,соединение по последовательному порту и т.д.

Похожие публикации