Nuvoton communications port что это такое
Перейти к содержимому

Nuvoton communications port что это такое

  • автор:

nuvoton communications port что это такое

Одна из немногих вещей, дошедших до нас в неизменном виде с начала 80-х годов, когда только начала зарождаться архитектура IBM PC совместимых компьютеров, это 2 последовательных порта. Даже параллельный порт, и тот модифицировался, практически ни на одном из современных PC вы не увидите «чистого» SPP порта — это будет его либо EPP, либо ECP модификация. Не найдете вы на последних материнских платах и привычного разъема для клавиатуры — его заменило компромиссное решение — 2 PS/2 порта. Таким образом, — единственное, что осталось неизменным в течение вот уже почти 20 лет — это два COM порта на материнской плате. Но 20 лет — это гигантский срок для развивающегося стремительными темпами PC, представляющего собой вихрь непрерывно рождающихся и умирающих архитектур.

Со временем, недостатки последовательного порта все ярче проявлялись для пользователей, а значит и для производителей. В конце концов меры надо было принимать загодя, и в 1995 году семь компаний выдвинули инициативу универсальной последовательной шины — USB. Героев надо знать в лицо: Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom — краса и гордость, ниспровергатели авторитетов и выдвигатели инициатив.

Зачем понадобилась USB? Причин, если вдуматься, более чем достаточно. В принципе, если свести характеристики претендентов на звание внешнего интерфейса в одну таблицу, большинство из ограничений COM портов будет видно как на ладони:

Интерфейс Возможность «горячей замены» Количество поддерживаемых устройств Пропускная способность Возможность подключения по цепочке Макс. длина кабеля
Последовательный порт Нет 1 112.5 Кбит/с Нет 1 м
Параллелльный порт Нет 1 600 Кбит-1.5 Мбит/с Нет 4 м
USB Да 127 1.5-12 Мбит/c Да 5 м
FireWire Да 63 100 — 400 Мбит/c Да 4.5 м
Стандартный PC обычно имеет два последовательных и один параллелльный порт. Можно использовать разветвители, но все равно, к каждому порту в одно время может быть подключено только одно устройство. Кроме того, чаще всего один из COM портов уже занят мышью.

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

Особенно остро встает проблема нехватки COM портов по мере того, как периферия набирается интеллекта. Так, например, джойстику с Force Feedback, помимо обычного порта для джойстика, требуется еще и COM порт, найти который, на машине с мышью и модемом, мягко выражаясь сложновато. И подобных устройств, претендующих на постоянное или временное подключение к компьютеру, постепенно становится все больше.

Так что USB в этой ситуации весьма и весьма пришлась ко двору. Однако, рождение ее легким не назовешь — достаточно сказать, что спецификация 0.9 вышла еще аж в ноябре 95 года. Вроде бы, при таких то семи няньках, дитя должно быть весело и счастливо. Однако, судьба распорядилась несколько иначе.

Беда была в отсутствии четкого взаимодействия между производителями аппаратного обеспечения и производителем программного. �� Сложился замкнутый круг: производители периферии ждали, пока Microsoft обеспечит надежную работу Windows и USB, а Microsoft, не желая утруждать себя лишней работой по написанию драйверов для экзотического оборудования, предпочитала подождать, пока наберется критическая масса оборудования.

В результате, несмотря на то, что Intel, как один из создателей USB, встроил контроллер USB еще аж в 430VX и 430HX, внешне на компьютерах это практически никак не сказалось. Производители материнских плат в более-менее массовом порядке начали выводить USB порты «на поверхность» только с появлением TX, а в качестве стандартной принадлежности два USB коннектора появились в группе разъемов материнской платы только с появлением ATX.

С ее выходом положение резко изменилось: полная поддержка USB применялась Microsoft в качестве одного из аргументов в необходимости перехода с Windows 95 на Windows 98. (Да мы все еще помним тот эпизод, с повисшей при демонстрации Биллом Гейтсом, бета версии Windows 98. В тот момент как раз демонстрировалось подключение «на лету» USB сканера уже почившей с миром фирмы Storm Technology.)

Разогнавшись, Microsoft даже одной из первых представила варианты своих периферийных устройств, «портированные» на USB: Natural Keyboard и Intellimouse. Впрочем ради этих двух продуктов огород городить никак не стоило — в 98 году PC были готовы к USB, как на аппаратном, так и на программном уровне. Дело оставалось за разработчиками периферии.

На сей раз, подкрепленные поддержкой с обеих сторон, производители с удовольствием откликнулись. Весь 98 год либо новые продукты сразу шли с интерфейсом USB, либо предлагались варианты старых моделей с этим интерфейсом. Если конкретнее, то только с момента выхода Windows 98 было выпущено или анонсировано более 60 устройств, использующих эту шину. Причем, за счет гораздо большей пропускной способности (12 Мбит/c на все) в сторону нового интерфейса начали поглядывать те, кто еще недавно презрительно посматривал на 112 Кбит/c СOM портов: принтеры, сканеры, видеокамеры, внешние накопители данных.

Хотя, если нагрузить на каждый порт столько, сколько он по максимуму способен тянуть (127 устройств), то получится ситуация, напоминающая известный анекдот: «А теперь со всем этим попробуем взлететь». Легко прикинуть, что если одна только видеокамера потребляет в среднем 4.5 Мбит/с. А ведь есть еще USB колонки, получающие через шину цифровой аудиопоток, есть принтер, тоже не отличающийся малым аппетитом, модем и т.д. В общем, в качестве более-менее оптимальной цифры, скорее можно назвать четыре-пять устройств.

К тому же, помимо ограниченной пропускной способности USB (хотя, при всей своей ограниченности, просто несравнимой с COM портом), есть еще вопрос с питанием. Теоретически, как мышь или клавиатура, USB устройства получают питание непосредственно с интерфейса. Однако, так же, как и пропускная способность, мощность, предоставляемая USB конечна, хотя в данном случае легко можно обойти это затруднение за счет использования USB концентраторов с питанием от сети.

Вполне в духе современной тенденции к упрощению пользования PC и чуть ли не придания ему статуса собрата видеомагнитофона, выполнена процедура подключения USB периферии. Все происходит «на лету», при включенном PC, сразу после подключения периферии, в Windows 98 сразу, без необходимости запуска New Hardware Wizard, появляется примерно вот такое окошко, после чего устройство сразу готово к работе. Первый раз система просит вставить компакт или диск производителя, в последующем же при подключении/отключении устройства, соответствующие изменения в списке устройств будут происходить мгновенно.

nuvoton communications port что это такое

Схема выполняемых в этом случае действий довольно проста. При подключении устройства, USB-контроллер чувствует скачок напряжения в цепочке, и запрашивает вновь подключившееся устройство о его типе, производителе, назначении и требуемой пропускной способности. Также устройству при этом назначается уникальный идентификационный номер. Когда процесс определения завершен, соответствующий драйвер загружается в операционную систему. Вся настройка подключенных устройств выполняется контроллером и работающим с ним программным обеспечением. Никаких вопросов об IRQ, адресах портов и DMA больше не будет.

Что интересно, в данном примере, при подключении клавиатуры, в ветви Keyboard Device Manager’a, появляется некое многоэтажное сооружение, обеспечивающее для приложений, в каком-то смысле «призрак» обычной клавиатуры. Верхний лист (а на деле наоборот — обеспечивающий низкоуровневое взаимодействие с контроллером USB) — это член класса «Human Interface Device», в который в Windows попадают и USB колонки, и мониторы, да практически все что угодно, использующее USB. Чайник, управляемый через USB, тоже может в принципе считаться HID-устройством.

nuvoton communications port что это такое

Что забавно, USB стала истинной преемницей Com-порта, на новом уровне возродив старый способ связи между PC. Возьмем, для примера EZ-Link от Anchor Chips. Так же как и при связи через Com-порты не надо возиться с настройкой сетевых карт, точно также достаточно всего лишь подключить кабель на двух PC. Только при использовании не надо перезагружать компьютеры, скорость связи составляет 3 Мбит/с против максимум 112 Кбит/с. И вместо не совсем, скажем так, удобного протокола связи Com-портов используется стандартный Ethernet, то есть, сеть будет видеть любая современная программа или игра. Все вышеперечисленные отличия не являются чем то грандиозным, скорее их можно выразить во фразе «Мелочь, а приятно».

Более того, пожалуй, эту же характеристику можно отнести и к самой шине USB. В большинстве случаев вряд ли вы захотите без какой то дополнительной причины менять, скажем, свою PS/2 мышь на ее USB вариант — в принципе, без большого труда можно обойтись без всех мелких удобств, предоставляемых шиной USB. Вряд ли это все стоит лишних хлопот и траты денег. С другой стороны, при вызванной каким либо другим фактором необходимости замены периферии, следует без колебаний предпочесть модель с интерфейсом USB. В этой технологии хватает положительных черт, складывающихся во вполне симпатичный облик.

Nuvoton Communications Port — что это такое?

nuvoton communications port что это такоеNuvoton Communications Port — коммуникационный порт (COM).

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

Nuvoton это производитель. Если вы под таким названием видите драйвера, а компьютер у вас старый — то их устанавливать нужно при условии, что вы собираетесь к компьютеру подключать устройство по LPT или COM. Хотя на самом деле сама операционка Windows должна спокойно установить такой драйвер, единственная причина, по которой возможно не сможет поставить — это производитель Nuvoton, о котором она не знает.

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

Параллельный порт или LPT — используется для подключения оборудования, которое воспринимает информацию в виде параллельного кода, это в основном принтеры, сканеры. Портов может быть несколько, они могут называться например LPT1, LPT2 и так далее. Вот как выглядит LPT:

nuvoton communications port что это такое

Последовательный порт — это уже для оборудования, которые принимают данные в виде последовательного кода, например терминал, модем, мышка. Порты называются COM1, COM2 и так далее. Вот как выглядит порт COM:

nuvoton communications port что это такое

То есть это зелененький порт, который присутствует и на предыдущей картинке выше, возле синего (который кстати является VGA-портом и служит для подключения монитора).

Собственно думаю что по этой картинке станет все понятно:

nuvoton communications port что это такое

Да ребята, это LPT и COM порты. Особо они в современном компьютерном мире уже не нужны, почему? Потому что пришла эра USB. Если у вас есть устройство, которое вы подключаете по LPT или COM — тогда да, нужно чтобы были установлены драйвера, которые обычно ставит сама операционка.. а если такого устройства нет — забудьте и все))

Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч друзья!

COM-порт (последовательный порт)

Почему порт назвается последовательным? Потому, что вся информация по этому порту передается шагом равным одному биту. В нем данные передаются бит за битом, в отличие от параллельного порта.

Несмотря на то, что в некоторых других интерфейсах как, например, в Ethernet, FireWire и USB, применяется последовательный обмен данными, название «последовательный порт» закрепилось за портом, обладающим стандартом RS-232C.

Данный порт, в сравнении с другими «последовательными» технологиями, обладает отличительной особенностью: в нем отсутствует какое-либо временное требование между 2 байтами. Временные требования существуют только между битами одного байта. Величина, обратная временной паузе между битами одного байта, носит название «baud rate» (скорость передачи). Кроме того, в данной технологии нет такого понятия, как «пакет». Другие технологии «последовательной» передачи данных (X.25, USB или Ethernet), используют «пакеты», также в них существуют и жесткие временные требования между битами одного пакета.

В части протоколов связи с индустриальным оборудованием имеются жесткие временные требования между байтами последовательного порта. Реализация в многозадачных операционных системах со слабой поддержкой реального времени этих протоколов очень сложна. К этим системам относятся и Windows. Вот почему для работы с этими протоколами зачастую применяют MS-DOS или более устаревшее программное обеспечение.

Довольно популярный в свое время в IBM-совместимых ПК последовательный порт, сегодня уже морально устарел. Однако, следует отметить, что он еще нередко используется в промышленном и узкоспециальном оборудовании, а также на некоторых современных компьютерах. Последовательный порт активно вытесняется интерфейсом USB и FireWire.

Однако имеются специальные стандарты эмуляции последовательного порта над USB и над Bluetooth. Кстати, любопытно, но именно Bluetooth-технология проектировалась разработчиками в качестве беспроводной версии последовательного порта. Программная эмуляция порта широко используется и по сей день. Так, практически все мобильные телефоны сегодня эмулируют внутри себя COM-порт и модем, с целью реализации тетеринга (доступа компьютера к сети Интернет через GPRS/EGDE/3G). А вот непосредственно для физического подключения к компьютеру применяется USB, Bluetooth или Wi-Fi технологии.

Кроме того, программная эмуляция последовательного порта возможна для гостевых пользователей виртуальных машин VMWare и Microsoft Hyper-V. Основной целью данной процедуры является подключение отладчика уровня ядра Windows к гостевому клиенту.

Достоинства COM-порта

Главное преимущество данной технологии состоит в простоте подключения.

Недостатки COM-порта

Главными недостатками данного порта являются его низкая скорость, большие размеры разъемов, а также высокие требования к времени отклика операционной системы. Также, в данном стандарте наблюдается высокое количество прерываний (одно прерывание на каждые 8 байт).

Разъемы

Самыми распространенными разъемами стандарта являются 9-ти и 25-ти контактные (DB-9 и DB-25, соответственно), которые были стандартизированы в 1969 году. Это D-образные разъемы. Помимо них использовались и другие, но из этого же семейства: DB-31 и круглые восьмиконтактные DIN-8.

Максимальная скорость передачи (в обычном исполнении) достигает 115 200 бод.

Аппаратура

Разъем обладает следующими контактами:

В нуль-модемном кабеле применяются две перекрещенные пары: TXD/RXD и RTS/CTS.

Nuvoton communications port что это такое

Many hardware names are usually named after the chip model, and each chip model has its own dedicated driver, so as long as you know the chip model used by the hardware, you can find the right driver. For example, if your graphics card is named: «AMD Radeon RX 580», while actually the core chip model used is: «Radeon RX 580», then enter «Radeon RX 580» or «RX 580» to find the driver.

If you have a laptop or an all-in-one PC, you can also use the product name to search, and then go to the download page which has all the drivers for this machine (including: graphics card, network card, sound card, etc.). For example, if your laptop product name is: «Dell A6-9220e Inspiron Flagship», then type «Dell A6-9220e» to find all the drivers for this laptop.

1. Enter a keyword in the input box and click the «Search» button

2. In the query results, find the driver file you need, and click the download button

• Can’t find the required driver files?
• Don’t know how to find driver files?
• Unable to download driver files due to unstable network?
You can try using this driver file finder. The method of use is very simple. The program will automatically list all the driver files available for your current system. You can install drivers for devices that do not have drivers installed, and you can also upgrade drivers to the latest driver version for devices that have already installed drivers. Click here to download the driver finder.

nuvoton communications port что это такое

If you have any questions, please leave a message. We will seriously reply to every question.

COM порт глазами ремонтника. Ремонт, настройка, диагностика. Часть 1, теория.

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

Данный раздел содержит только теоретические данные и для практики имеет малое значение, однако именно на этот раздел будет ссылаться остальной материал, поэтому обойти стороной этот материал не удастся. Однако тем, кто знаком с принципом работы COM порта, данный раздел желательно пропустить.

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

Данный раздел содержит только теоретические данные и для практики имеет малое значение, однако именно на этот раздел будет ссылаться остальной материал, поэтому обойти стороной этот материал не удастся. Однако тем, кто знаком с принципом работы COM порта, данный раздел желательно пропустить.

nuvoton communications port что это такоеОписание и принцип работы.

nuvoton communications port что это такоеРазъемы интерфейса COM порта.

nuvoton communications port что это такое nuvoton communications port что это такое nuvoton communications port что это такое
COM порт непосредственно установленный на материнской плате COM порт на материнской плате под планку COM порта Планка COM порта

В чем отличие разъема DB-9M от DE-9M, какое обозначение правильное?

Правильное обозначение DE-9M, но есть некотороые нюансы.

Если придерживаться технической документации разъемов D-sub обойма B отличается по типоразмеру от обоймы E

nuvoton communications port что это такое

Разъём D-sub содержит два или более параллельных рядов контактов или гнёзд, обычно окружённых металлическим экраном в форме латинской D, который обеспечивает механическое крепление соединения и экранирует от электромагнитных помех. Форма разъёма в виде буквы D предохраняет от неправильной ориентации разъёма. В принятой системе обозначений буква D обозначает всю серию разъёмов D-sub, а вторая буква используется для указания размера разъёма, исходя из числа стандартных контактов, которые могут разместиться внутри D-образного экрана (A = 15 контактов, B = 25, C = 37, D = 50, E = 9), далее следует число фактически используемых контактов, и буква, обозначающая «пол» разъёма: M — male («папа»), F — female («мама»), P — plug (штепсель/«папа»), S — socket (розетка/«мама»). Например, DB25M означает разъём D-sub с экраном, вмещающим 25 контактов и фактическим числом контактов, равным 25.
Таким образом выражение DB-9M не правильное, фактически правильно будет DE-9M, однако в современных условиях, различие между этими названиями не делается, как в технической литературе, так и у поставщиков. Поэтому, как бы это не звучало странно, далее мы будем сознательно делать ошибку и разъем DE-9M называть, как DB-9M, хотя в реальности такого разъема не может быть по определению.

nuvoton communications port что это такоеРазъем DB9M (папа), внешний вид, расположение контактов (pinout).

nuvoton communications port что это такое

Назначение выводов 9 контактного (9pin) разъема DB9M COM порта со стороны компьютера по стандарту RS232C. Направление сигналов указано относительно хоста (компьютера).

nuvoton communications port что это такоеРазъем DB25M (папа), внешний вид, расположение контактов (pinout).

nuvoton communications port что это такое

Назначение выводов 25 контактного (25pin) разъема DB25M COM порта со стороны компьютера по стандарту RS232C. Направление сигналов указано относительно хоста (компьютера).

nuvoton communications port что это такоеЭлектрические характеристики COM порта (стандарт RS232C).

Полное описание можно посмотреть в документации действующего протокола ITU-T v.28 03.1993 в редакции от 1993 года (скачать).

nuvoton communications port что это такое

Эквивалентная электрическая схема RS-232C

nuvoton communications port что это такое

nuvoton communications port что это такоеОписание контактов интерфейса RS232C

nuvoton communications port что это такоеПротокол обмена данными.

В протоколе RS-232 существуют два метода управления обменом данных: аппаратный и программный, а также два режима передачи: синхронный и асинхронный. Протокол позволяет использовать любой из методов управления совместно с любым режимом передачи. Также допускается работа без управления потоком, что подразумевает постоянную готовность хоста и устройства к приему данных, когда связь установлена (сигналы DTR и DSR установлены).

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

Программный метод управления заключается в передаче принимающей стороной специальных символов остановки (символ с кодом 0x13, называемый XOFF) и возобновления (символ с кодом 0x11, называемый XON) передачи. При получении данных символов передающая сторона должна соответственно остановить передачу или возобновить ее (при наличии данных, ожидающих передачи). Этот метод проще с точки зрения реализации аппаратуры, однако обеспечивает более медленную реакцию и соответственно требует заблаговременного извещения передатчика при уменьшении свободного места в приемном буфере до определенного предела.

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

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

Протокол имеет ряд переменных параметров, которые должны быть приняты одинаковыми на стороне приемника и на стороне передатчика для успешного обмена данными:

Nuvoton communications port что такое. Устранение ошибок в портах

Serial port (серийный порт, последовательный порт или COM-порт -, communications port) — это последовательный интерфейс с двойной направленностью.

Почему порт назвается последовательным? Потому, что вся информация по этому порту передается шагом равным одному биту. В нем данные передаются бит за битом, в отличие от параллельного порта.

Несмотря на то, что в некоторых других интерфейсах как, например, в Ethernet , FireWire и USB , применяется последовательный обмен данными, название «последовательный порт» закрепилось за портом, обладающим стандартом RS-232C .

Данный порт, в сравнении с другими «последовательными» технологиями, обладает отличительной особенностью: в нем отсутствует какое-либо временное требование между 2 байтами. Временные требования существуют только между битами одного байта. Величина, обратная временной паузе между битами одного байта, носит название «baud rate» (скорость передачи). Кроме того, в данной технологии нет такого понятия, как «пакет». Другие технологии «последовательной» передачи данных (X.25, USB или Ethernet), используют «пакеты», также в них существуют и жесткие временные требования между битами одного пакета.

В части протоколов связи с индустриальным оборудованием имеются жесткие временные требования между байтами последовательного порта. Реализация в многозадачных операционных системах со слабой поддержкой реального времени этих протоколов очень сложна. К этим системам относятся и Windows. Вот почему для работы с этими протоколами зачастую применяют MS-DOS или более устаревшее программное обеспечение.

Самый распространенный для последовательного порта стандарт — RS-232C. Ранее последовательный порт применялся для подключения терминала, позднее его использовали для подключения модема или мыши. В настоящее время его применяют в качестве средства соединения с источниками бесперебойного питания, а также в качестве средства связи с аппаратными средствами разработки встраиваемых вычислительных систем, спутниковыми ресиверами, кассовыми аппаратами и приборами систем безопасности.

Благодаря COM-порту появляется возможность подключить друг к другу два ПК, применяя так называемый «нуль-модемный кабель». Данный метод использовался со времен MS-DOS в целях перекачки файлов с одного компьютера на другой. В UNIX-системах он использовался для терминального доступа к другой машине, а в операционных системах Windows — для отладчика уровня ядра.

Довольно популярный в свое время в IBM-совместимых ПК последовательный порт, сегодня уже морально устарел. Однако, следует отметить, что он еще нередко используется в промышленном и узкоспециальном оборудовании, а также на некоторых современных компьютерах. Последовательный порт активно вытесняется интерфейсом USB и FireWire.

Однако имеются специальные стандарты эмуляции последовательного порта над USB и над Bluetooth . Кстати, любопытно, но именно Bluetooth-технология проектировалась разработчиками в качестве беспроводной версии последовательного порта. Программная эмуляция порта широко используется и по сей день. Так, практически все мобильные телефоны сегодня эмулируют внутри себя COM-порт и модем, с целью реализации тетеринга (доступа компьютера к сети Интернет через GPRS/EGDE/3G). А вот непосредственно для физического подключения к компьютеру применяется USB, Bluetooth или Wi-Fi технологии.

Кроме того, программная эмуляция последовательного порта возможна для гостевых пользователей виртуальных машин VMWare и Microsoft Hyper-V. Основной целью данной процедуры является подключение отладчика уровня ядра Windows к гостевому клиенту.

Достоинства COM-порта

Главное преимущество данной технологии состоит в простоте подключения.

Недостатки COM-порта

Главными недостатками данного порта являются его низкая скорость, большие размеры разъемов, а также высокие требования к времени отклика операционной системы. Также, в данном стандарте наблюдается высокое количество прерываний (одно прерывание на каждые 8 байт).

Разъемы

Самыми распространенными разъемами стандарта являются 9-ти и 25-ти контактные (DB-9 и DB-25, соответственно), которые были стандартизированы в 1969 году. Это D-образные разъемы. Помимо них использовались и другие, но из этого же семейства: DB-31 и круглые восьмиконтактные DIN-8.

Максимальная скорость передачи (в обычном исполнении) достигает 115 200 бод.

Аппаратура

Разъем обладает следующими контактами:

  • DTR (Data Terminal Ready) — выход на ПК, вход — на модеме. Отвечает за готовность компьютера к работе с модемом. Сброс вызывает почти полную перезагрузку модема. В случае с мышью, данный провод используется для осуществления питания.
  • DSR (Data Set Ready) — вход на ПК, выход — на модеме. Отвечает за готовность модема. Если линия в нуле, то в некоторых операционных системах невозможно открыть порт в качестве файла.
  • RxD (Receive Data) — вход на ПК, выход — на модеме. Обозначает поток входящих в ПК данных.
  • TxD (Transmit Data) — выход на ПК, вход — на модеме. Обозначает поток исходящих от ПК данных.
  • CTS (Clear to Send) — вход на ПК, выход — на модеме. Компьютер должен приостановить процесс передачи данных, пока данный провод не будет выставлен в единицу. Применяется в аппаратном протоколе управления потоком в целях недопущения переполнения на модеме.
  • RTS (Request to Send) — выход на ПК, вход — на модеме. Модем должен приостановить процесс передачи данных, до тех пор, пока провод не будет выставлен в единицу. Применяется в аппаратном протоколе управления потоком в целях недопущения переполнения в оборудовании/драйвере.
  • DCD (Carrier Detect) — вход на ПК, выход — на модеме. После установления связи с модемом с той стороны возводится в единицу, сбрасывается в ноль, в случае разрыва связи. Аппаратура ПК может производить прерывание, в случае наступления подобного события.
  • RI (Ring Indicator) — вход на ПК, выход — на модеме. После детерминации вызывного сигналателефонного звонка, возводится модемом в единицу. Аппаратная часть ПК может производить прерывание, в случае наступления подобного события.
  • SG (Signal Ground) — общий сигнальный провод порта. Важно:земля — не общая . Обычно провод имеет изоляцию от корпуса ПК или модема.

В нуль-модемном кабеле применяются две перекрещенные пары: TXD/RXD и RTS/CTS.

UART 16550 — стандартная аппаратура порта. Сегодня включена в SuperIO микросхему на материнской плате. Со времен IBM PC, она оснащена аппаратной очередью байтов. Она существенно снижает число возникающих прерываний.

В последнее время последовательный способ передачи данных вытесняет параллельный.
За примерами далеко ходить не надо: появление шин USB и SATA говорит само за себя.
И действительно, параллельную шину трудно масштабировать (удлинить шлейф, увеличить частоту тактирования шины), неудивительно, что технологии поворачиваются к параллельным шинам задней частью.

Последовательные интерфейсы

На сегодня существует великое множество различных интерфейсов последовательной передачи данных.
Кроме уже упомянутых USB и SATA еще можно вспомнить как минимум два широко известных стандарта RS-232 и MIDI (он же и GamePort).
Объединяет их все то же — последовательная передача каждого бита информации, или Serial Interface.
Преимуществ у подобных интерфейсов великое множество, и самое главное из них — малое количество соединительных проводов, а следовательно, меньшая цена.

Передача данных

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

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

Асинхронная передача подразумевает использование специальных битов, маркирующих начало и конец данных – стартового (логический ноль) и стопового (логическая единица) бита.
Также возможно использование специального бита четности, который определяет четное или нечетное количество передаваемых единичных битов (в зависимости от принятого соглашения).
На принимающей стороне проводится анализ этого бита, и если бит четности не соответствует количеству единичных битов, то пакет данных пересылается снова.

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

Ну, если бы все компьютерные технологии были просты, то любая домохозяйка давно бы уже лепила параллельно с пельменями новые протоколы …
Попробуем взглянуть на процесс по-другому.
Данные передаются пакетами, примерно как IP пакеты, вместе с данными идут и информационные биты, количество этих битов может варьироваться от 2 до 3 с половиной.
С половиной?!
Да, ты не ослышался, именно с половиной!

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

Такой способ передачи подразумевает, что приемник и передатчик должны работать с одной скоростью (ну, или почти с одной), иначе пришедшие биты данных приемник будет либо не успевать обрабатывать, либо принимать старый бит за новый.
Для того чтобы этого избежать, каждый бит стробируется, то есть посылается синхронно со специальным сигналом — «стробом», формируемым внутри прибора.
Существует ряд определенных скоростей работы асинхронных устройств — 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19 200, 38 400, 57 600 и 115 200 бит в секунду.

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

Теперь пару слов о загадочном термине «пакет данных».
Под пакетом в данном случае понимается набор битов, передаваемых между стартовым и стоповым битами.
Их число может изменяться от пяти до восьми.
Можно задаться вопросом, почему именно пять-восемь бит?
Почему бы не передать сразу, скажем, килобайт данных внутри пакета?

Ответ очевиден: передавая маленькие пакеты данных, мы пусть и проигрываем, отправляя с ними три служебных бита (от 50 до 30 процентов данных), зато если при передаче пакет будет испорчен, мы легко узнаем это (помнишь про бит четности?) и быстро передадим его снова.
А вот в килобайте данных ошибку обнаружить будет уже трудно, и передавать его будет гораздо сложнее.

В качестве примера асинхронного последовательного устройства передачи данных можно привести COM-порт компьютера, любимый модем с дизайном от Труссарди и мышь, подключаемую к этому же порту, которую недалекие секретарши почему-то все время стараются засунуть в PS/2.
Работают все эти устройства по интерфейсу RS-232, вернее по асинхронной его части, поскольку в стандарте описана и синхронная передача данных.

Иногда приходится решать задачу связи электронного устройства с компьютером, будь то просто обмен данными или удалённое управление. Эта статья описывает, как это можно реализовать, используя последовательный порт. Главным его преимуществом является то, что стандартный программный интерфейс Windows (API) позволяет производить непосредственное управление выходными линиями, давая прямой контроль над ними, и имеет функцию ожидания некоторого события, связанного с COM-портом. Также стандарт RS-232, по которому выполнены COM-порты, допускает подключение и отключение кабелей во время работы устройств (hot plug).

Описание

COM-порт (последовательный порт) – двунаправленный интерфейс, передающий данные в последовательном виде (бит за битом) по протоколу RS-232. Это довольно-таки распространённый протокол, применяемый для связи одного устройства (например, компьютера) с другими посредством проводов длиной до 30м. Уровни логических сигналов здесь отличаются от стандартных: уровень логической единицы – от +5 до +15В, уровень логического нуля – от -5 до -15В, что требует дополнительных преобразований схемы, но обеспечивает хорошую помехоустойчивость.

Рассмотрим 9-пинововый разъём (DB-9M). Ниже представлена его распиновка:

nuvoton communications port что это такое
№ вывода Наименование Характер сигнала Сигнал
1 DCD Входной Data carrier detect
2 RxD Выходной Transmit data
3 TxD Входной Receive data
4 DTR Выходной Data terminal ready
5 GND Ground
6 DSR Входной Data set ready
7 RTS Выходной Request to send
8 CTS Входной Clear to send
9 RI Входной Ring indicator

Больше всего нас будут интересовать пины 2 (передача данных),3 (приём данных) и 5 (земля). Это минимальный набор для возможности двухстороннего общения приборов.

Подробно останавливаться на описании протокола не буду. Для этого есть ГОСТ’ы и т.п. Поэтому мы пойдём дальше и поговорим о том, как же управлять этим зверем.

Применение

Как уже говорилось, уровни ЛС RS-232 отличаются от стандартных уровней ТТЛ. Следовательно, нам необходимо как-то преобразовывать величины напряжений. Т.е. сделать 5В из +15В и 0В из -15В (и наоборот). Один из способов (и, наверное, самый простой) – использование специальной микросхемы MAX232. Она проста в понимании и одновременно может преобразовывать два логических сигнала.

Ниже приведена схема её включения:

Думаю, трудностей быть не должно. Это один из вариантов использования этой микросхемы: передача данных с микроконтроллера на ЭВМ и наоборот. Передаваемый сигнал поступает на ножки Tx IN с одной стороны и на Rx IN с другой. Входные сигналы снимаются с Tx OUT и Rx OUT соответственно.

Программирование

Для начала поговорим о программировании портов на низком уровне. Так будет более правильно. Я очень много нервов потратил, разбираясь с этим интерфейсом, пока не начал вникать в принцип его работы на более низком уровне, нежели простая передача символов. Если будет понятно это, значит и с языками высокого уровня проблем не будет.

Ниже представлены адреса COM-портов, с которыми нам придётся работать:

Название порта Адрес IRQ
COM 1 3F8h 4
COM 2 2F8h 3
COM 3 3E8h 4
COM 4 2E8h 3

Они могут различаться. Установить значения можно в настройках BIOS’а. Это базовые адреса. От них же и будут зависеть адреса регистров, отвечающие за работу портов:

Адрес DLAB Чтение/Запись Аббревиатура Название регистра
+ 0 =0 Write Transmitter Holding Buffer
=0 Read Receiver Buffer
=1 Read/Write Divisor Latch Low Byte
+ 1 =0 Read/Write IER Interrupt Enable Register
=1 Read/Write Divisor Latch High Byte
+ 2 Read IIR Interrupt Identification Register
Write FCR FIFO Control Register
+ 3 Read/Write LCR Line Control Register
+ 4 Read/Write MCR Modem Control Register
+ 5 Read LSR Line Status Register
+ 6 Read MSR Modem Status Register
+ 7 Read/Write Scratch Register

Первая колонка – адрес регистра относительно базового. Например, для COM1: адрес регистра LCR будет 3F8h+3=3FB. Вторая колонка – DLAB (Divisor Latch Access Bit) бит, определяющий разное назначение для одного и того же регистра.. Т.е. он позволяет оперировать 12-ю регистрами, используя всего 8 адресов. Например, если DLAB=1, то, обращаясь по адресу 3F8h, мы будем устанавливать значение младшего байта делителя частоты тактового генератора. Если же DLAB=0, то, обращаясь по тому же адресу, в этот регистр будет записан передаваемый или принятый байт.

“Нулевой” регистр

Ему соответствуют регистры приёма/передачи данных и установки коэффициента делителя частоты генератора. Как уже было сказано выше, если DLAB=0, то регистр используется для записи принимаемых/передаваемых данных, если же он равен 1, то устанавливается значение младшего байта делителя частоты тактового генератора. От значения этой частоты зависит скорость передачи данных. Старший байт делителя записывается в следующую ячейку памяти (т.е. для порта COM1 это будет 3F9h). Ниже приведена зависимость скорости передачи данных от коэффициента делителя:

Interrupt Enable Register (IER)

Если DLAB=0, то он используется как регистр управления прерываниями от асинхронного адаптера, если DLAB=1, то в нём задаётся старший байт делителя частоты тактового генератора.

Interrupt Identification Register (IIR)

Прерывание – это событие, при котором останавливается выполнение основной программы и начинается выполнение процедуры прерываний. Этот регистр определяет тип произошедшего прерывания.

Line Control Register (LCR)

Это управляющий регистр.

Бит 7 1 Divisor Latch Access Bit – задание скорости обмена данными
0 Обычнй режим (управление прерываниями, приём/передача данных)
Бит 6 Имитировать обрыв линии (посылает последовательность из нескольких нулей)
Биты 3 – 5 Бит 5 Бит 4 Бит 3 Выбор чётности
X X 0 No Parity
0 0 1 Odd Parity
0 1 1 Even Parity
1 0 1 High Parity (Sticky)
1 1 1 Low Parity (Sticky)
Бит 2 Кол-во стоп-битов
0 1 стоп-бит
1 2 стоп-бита при 6,7 или 8 бит данных или 1.5 стоп-бита при 5 битах данных.
Биты 0 And 1 Бит 1 Бит 0 Число битов данных
0 0 5 бит
0 1 6 бит
1 0 7 бит
1 1 8 бит

Проверка чётности подразумевает под собой передачу ещё одного бита – бита чётности. Его значение устанавливается таким образом, чтобы в пакете битов общее количество единиц (или нулей) было четно или нечетно, в зависимости от установки регистров порта. Этот бит служит для обнаружения ошибок, которые могут возникнуть при передаче данных из-за помех на линии. Приемное устройство заново вычисляет четность данных и сравнивает результат с принятым битом четности. Если четность не совпала, то считается, что данные переданы с ошибкой.

Стоп-бит означает окончание передачи данных.

Modem Control Register (MCR)

Регистр управления модемом.

Бит Значение
0 Линия DTR
1 Линия RTS.
2 Линия OUT1 (запасная)
3 Линия OUT2 (запасная)
4 Запуск диагностики при входе асинхронного адаптера, замкнутом на его выход.
5-7 Равны 0

Line Status Register (LSR)

Регистр, определяющий состояние линии.

Бит Значение
0 Данные получены и готовы для чтения, автоматически сбрасывается при чтении данных.
1 Ошибка переполнения. Был принят новый байт данных, а предыдущий ещё не был считан программой. Предыдущий байт потерен.
2 Ошибка чётности, сбрасывается после чтения состояния линии.
3 Ошибка синхронизации.
4 Обнаружен запрос на прерывание передачи «BREAK» – длинная строка нулей.
5 Регистр хранения передатчика пуст, в него можно записать новый байт для передачи.
6 Регистр сдвига передатчика пуст. Этот регистр получает данные из регистра хранения и преобразует их в последовательный вид для передачи.
7 Тайм-аут (устройство не связано с компьютером).

Modem Status Register (MSR)

Регистр состояния модема.

Ну вот и всё. Оперируя этими регистрами, можно напрямую общаться с COM-портом, управлять передачей и приёмом данных. Если вам не хочется возиться с памятью, можно воспользоваться уже готовыми компонентами для различных сред программирования: C++, VB, Delphi, Pascal и т.д. Они интуитивно понятны, поэтому, думаю, здесь не стоит заострять на них внимание.

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

Общее описание

Интерфейс RS-232, совсем официально называемый «EIA/TIA-232-E», но более известный как интерфейс «COM-порта», ранее был одним из самых распространенных интерфейсов в компьютерной технике. Он до сих пор встречается в настольных компьютерах, несмотря на появление более скоростных и «интеллектуальных» интерфейсов, таких как USB и FireWare. К его достоинствам с точки зрения радиолюбителей можно отнести невысокую минимальную скорость и простоту реализации протокола в самодельном устройстве.

Физический интерфейс реализуется одним из двух типов разъемов: DB-9M или DB-25M, последний в выпускаемых в настоящее время компьютерах практически не встречается.

Назначение выводов 9-контактного разъема

Назначение выводов 25-контактного разъема

Из таблиц видно, что 25-контактный интерфейс отличается наличием полноценного второго канала приема-передачи (сигналы, обозначенные «#2»), а также многочисленных дополнительных управляющих и контрольных сигналов. Однако, часто, несмотря на наличие в компьютере «широкого» разъема, дополнительные сигналы на нем просто не подключены.

Электрические характеристики

Логические уровни передатчика: «0» — от +5 до +15 Вольт, «1» — от -5 до -15 Вольт.

Логические уровни приемника: «0» — выше +3 Вольт, «1» — ниже -3 Вольт.

входное сопротивление приемника не менее 3 кОм.

Данные характеристики определены стандартом как минимальные, гарантирующие совместимость устройств, однако реальные характеристики обычно существенно лучше, что позволяет, с одной стороны, питать маломощные устройства от порта (например, так спроектированы многочисленные самодельные data-кабели для сотовых телефонов), а с другой — подавать на вход порта инвертированный TTL-уровень вместо двуполярного сигнала.

Описание основных сигналов интерфейса

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

RXD — Линия приема хостом данных от устройства. Подробно описана в разделе «Протокол обмена данными».

TXD — Линия передачи хостом данных к устройству. Подробно описана в разделе «Протокол обмена данными».

DTR — Хост устанавливает этот сигнал, когда готов к обмену данными. Фактически сигнал устанавливается при открытии порта коммуникационной программой и остается в этом состоянии все время, пока порт открыт.

DSR — Устройство устанавливает этот сигнал, когда включено и готово к обмену данными с хостом. Этот и предыдущий (DTR) сигналы должны быть установлены для обмена данными.

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

CTS — Устройство устанавливает этот сигнал в ответ на установку хостом предыдущего (RTS), когда готово принять данные (например, когда предыдущие присланные хостом данные переданы модемом в линию или есть свободное место в промежуточном буфере).

RI — Устройство (обычно модем) устанавливает этот сигнал при получении вызова от удаленной системы, например при приеме телефонного звонка, если модем настроен на прием звонков.

Протокол обмена данными

В протоколе RS-232 существуют два метода управления обменом данных: аппаратный и программный, а также два режима передачи: синхронный и асинхронный. Протокол позволяет использовать любой из методов управления совместно с любым режимом передачи. Также допускается работа без управления потоком, что подразумевает постоянную готовность хоста и устройства к приему данных, когда связь установлена (сигналы DTR и DSR установлены).

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

Программный метод управления заключается в передаче принимающей стороной специальных символов остановки (символ с кодом 0x13, называемый XOFF) и возобновления (символ с кодом 0x11, называемый XON) передачи. При получении данных символов передающая сторона должна соответственно остановить передачу или возобновить ее (при наличии данных, ожидающих передачи). Этот метод проще с точки зрения реализации аппаратуры, однако обеспечивает более медленную реакцию и соответственно требует заблаговременного извещения передатчика при уменьшении свободного места в приемном буфере до определенного предела.

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

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

Один из возможных алгоритмов работы приемника следующий:

  1. Ожидать уровня «0» сигнала приема (RXD в случае хоста, TXD в случае устройства).
  2. Отсчитать половину длительности бита и проверить, что уровень сигнала все еще «0»
  3. Отсчитать полную длительность бита и текущий уровень сигнала записать в младший бит данных (бит 0)
  4. Повторить предыдущий пункт для всех остальных битов данных
  5. Отсчитать полную длительность бита и текущий уровень сигнала использовать для проверки правильности приема с помощью контроля четности (см. далее)
  6. Отсчитать полную длительность бита и убедиться, что текущий уровень сигнала «1».

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

Последовательный порт, как и параллельный, появился задолго до появления персональных компьютеров архитектуры IBM PC. В первых персоналках COM-порт использовался для подсоединения периферийных устройств. Однако сфера его применения несколько отличалась от сферы применения параллельного порта. Если параллельный порт использовался в основном для подключения принтеров, то COM-порт (кстати, приставка COM – это всего лишь сокращение от слова communication) обычно применялся для работы с телекоммуникационными устройствами, такими, как модемы. Тем не менее, к порту можно подключить, например, мышь, а также другие периферийные устройства.

COM-порт, основные сферы применения:

    Подключение терминалов

В настоящее время сфера применения СОМ-порта значительно сократилась благодаря внедрению более быстрого и компактного, и, кстати, тоже последовательного, интерфейса USB. Почти вышли из употребления внешние модемы, рассчитанные на подключение к порту, а также «COM-овские» мыши. Да и редко кто теперь соединяет два компьютера при помощи нуль-модемного кабеля.

Тем не менее, в ряде специализированных устройств последовательный порт до сих используется. Можно найти его и на многих материнских платах. Дело в том, что по сравнению с USB COM-порт имеет одно важное преимущество – согласно стандарту последовательной передачи данных RS-232, он может работать с устройствами на расстоянии в несколько десятков метров, в то время как радиус действия кабеля USB, как правило, ограничен 5 метрами.

Принцип работы последовательного порта и его отличие от параллельного

В отличие от параллельного (LPT) порта, последовательный порт передает данные побитно по одной-единственной линии, а не по нескольким одновременно. Последовательности битов группируются в серии данных, начинающиеся стартовым битом и кончающиеся стоповым битом, а также битами контроля четности, использующимися для контроля ошибок. Отсюда происходит и еще одно английское название, которое имеет последовательный порт – Serial Port.

Последовательный порт имеет две линии, по которым передаются собственно данные – это линии для передачи данных от терминала (ПК) к коммуникационному устройству и обратно. Кроме того, существует еще несколько управляющих линий. Обслуживает Serial port специальная микросхема UART, которая способна поддерживать относительно высокую скорость передачи данных, достигающую 115 000 бод (байт/с). Правда, стоит отметить, что реальная скорость обмена информацией зависит от обоих коммуникационных устройств. Кроме того, в функции контроллера UART входит преобразование параллельного кода в последовательный и обратно.

Порт использует электрические сигналы сравнительного высокого напряжения – до +15 B и -15 В. Уровень логического нуля последовательного порта составляет +12 В, а логической единицы – -12 В. Такой большой перепад напряжений позволяет гарантировать высокую степень помехоустойчивости передаваемых данных. С другой стороны, используемые в Serial port высокие напряжения требуют сложных схемотехнических решений. Это обстоятельство также поспособствовало снижению популярности порта.

Последовательный интерфейс RS-232

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

Стандарт RS-232 был создан в 1969 г, а его последняя версия, TIA 232, вышла в 1997 г. В настоящее время RS-232 считается устаревшим, однако большинство операционных систем до сих пор его поддерживает.

В современных компьютерах разъем Serial port представляет собой 9-штырьковый разъем типа «вилка» DB-9, хотя стандарт RS-232 описывает также разъем с 25–ю контактами ­– DB-25, который часто применялся на старых компьютерах. Разъем DB-9 обычно расположен на системной плате ПК, хотя в старых компьютерах он мог находиться на специальной мультикарте, вставляемой в слот расширения.

9- штырьковое гнездо DB-9 на материнской плате

Разъем DB-9 на кабеле подключаемого к порту устройства

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

Назначение линий разъема Serial port DB-9 согласно RS-232 и их соответствие контактам разъема DB-25:

Контакт DB-9 Английское название Русское название Контакт DB-25
1 Data Carrier Detect Несущая обнаружена 8
2 Transmit Data Передаваемые данные 2
3 Receive Data Принимаемые данные 3
4 Data Terminal Ready Готовность терминала 20
5 Ground Земля 7
6 Data Set Ready Готовность передающего устройства 6
7 Request To Send Запрос на отправку данных 4
8 Clear To Send Передача данных разрешена 5
9 Ring Indicator Индикатор звонка 22

Конфигурирование и прерывания

Поскольку в компьютере может быть несколько последовательных портов (до 4), то в системе для них выделяется два аппаратных прерывания — IRQ 3 (COM 2 и 4) и IRQ 4 (COM 1 и 3) и несколько прерываний BIOS. Многие коммуникационные программы, а также встроенные модемы используют для своей работы прерывания и адресное пространство портов COM. При этом обычно применяются не реальные порты, а так называемые виртуальные порты, которые эмулируются самой операционной системой.

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

Заключение

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

Nuvoton communications port что такое. COM-порт (последовательный порт). Оптимизация последовательных портов

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

Общее описание

Интерфейс RS-232, совсем официально называемый «EIA/TIA-232-E», но более известный как интерфейс «COM-порта», ранее был одним из самых распространенных интерфейсов в компьютерной технике. Он до сих пор встречается в настольных компьютерах, несмотря на появление более скоростных и «интеллектуальных» интерфейсов, таких как USB и FireWare. К его достоинствам с точки зрения радиолюбителей можно отнести невысокую минимальную скорость и простоту реализации протокола в самодельном устройстве.

Физический интерфейс реализуется одним из двух типов разъемов: DB-9M или DB-25M, последний в выпускаемых в настоящее время компьютерах практически не встречается.

Назначение выводов 9-контактного разъема

Назначение выводов 25-контактного разъема

Из таблиц видно, что 25-контактный интерфейс отличается наличием полноценного второго канала приема-передачи (сигналы, обозначенные «#2»), а также многочисленных дополнительных управляющих и контрольных сигналов. Однако, часто, несмотря на наличие в компьютере «широкого» разъема, дополнительные сигналы на нем просто не подключены.

Электрические характеристики

Логические уровни передатчика: «0» — от +5 до +15 Вольт, «1» — от -5 до -15 Вольт.

Логические уровни приемника: «0» — выше +3 Вольт, «1» — ниже -3 Вольт.

входное сопротивление приемника не менее 3 кОм.

Данные характеристики определены стандартом как минимальные, гарантирующие совместимость устройств, однако реальные характеристики обычно существенно лучше, что позволяет, с одной стороны, питать маломощные устройства от порта (например, так спроектированы многочисленные самодельные data-кабели для сотовых телефонов), а с другой — подавать на вход порта инвертированный TTL-уровень вместо двуполярного сигнала.

Описание основных сигналов интерфейса

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

RXD — Линия приема хостом данных от устройства. Подробно описана в разделе «Протокол обмена данными».

TXD — Линия передачи хостом данных к устройству. Подробно описана в разделе «Протокол обмена данными».

DTR — Хост устанавливает этот сигнал, когда готов к обмену данными. Фактически сигнал устанавливается при открытии порта коммуникационной программой и остается в этом состоянии все время, пока порт открыт.

DSR — Устройство устанавливает этот сигнал, когда включено и готово к обмену данными с хостом. Этот и предыдущий (DTR) сигналы должны быть установлены для обмена данными.

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

CTS — Устройство устанавливает этот сигнал в ответ на установку хостом предыдущего (RTS), когда готово принять данные (например, когда предыдущие присланные хостом данные переданы модемом в линию или есть свободное место в промежуточном буфере).

RI — Устройство (обычно модем) устанавливает этот сигнал при получении вызова от удаленной системы, например при приеме телефонного звонка, если модем настроен на прием звонков.

Протокол обмена данными

В протоколе RS-232 существуют два метода управления обменом данных: аппаратный и программный, а также два режима передачи: синхронный и асинхронный. Протокол позволяет использовать любой из методов управления совместно с любым режимом передачи. Также допускается работа без управления потоком, что подразумевает постоянную готовность хоста и устройства к приему данных, когда связь установлена (сигналы DTR и DSR установлены).

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

Программный метод управления заключается в передаче принимающей стороной специальных символов остановки (символ с кодом 0x13, называемый XOFF) и возобновления (символ с кодом 0x11, называемый XON) передачи. При получении данных символов передающая сторона должна соответственно остановить передачу или возобновить ее (при наличии данных, ожидающих передачи). Этот метод проще с точки зрения реализации аппаратуры, однако обеспечивает более медленную реакцию и соответственно требует заблаговременного извещения передатчика при уменьшении свободного места в приемном буфере до определенного предела.

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

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

Один из возможных алгоритмов работы приемника следующий:

  1. Ожидать уровня «0» сигнала приема (RXD в случае хоста, TXD в случае устройства).
  2. Отсчитать половину длительности бита и проверить, что уровень сигнала все еще «0»
  3. Отсчитать полную длительность бита и текущий уровень сигнала записать в младший бит данных (бит 0)
  4. Повторить предыдущий пункт для всех остальных битов данных
  5. Отсчитать полную длительность бита и текущий уровень сигнала использовать для проверки правильности приема с помощью контроля четности (см. далее)
  6. Отсчитать полную длительность бита и убедиться, что текущий уровень сигнала «1».

Вот мы и добрались до COM порта. Но с ним все не так просто как с LPT, и его полноценное использование потребует значительно больших усилий. Главной загвоздкой является и его главное преимущество — передача данных в последовательном виде. Если в LPT байт данных передается по 8-ми линиям по биту на каждую, и состояние каждой линии можно было легко посмотреть, то в COM порту байт данных передается бит за битом по одной линии (относительно земли, конечно) и посмотреть что там передается с помощью одних светодиодов не удастся. Для этого нужно специальное устройство — преобразователь потока последовательных данных в парраллельный, т.н. USART (Universal Synchronous/Asynchronous Receiver Transmitter). Например, он есть в составе материнской платы компьютера, снабженного COM портом, в любом более мение серьезном микроконтроллере.

Надеюсь, вы еще пали духом в освоении COM порта. Все не так уж и мрачно. Некоторые результаты можно получить и без USART. Сформулируем задачу, которую реализуем на начальном этапе работы с COM портом:

«Хочу что бы к компьютеру через COM порт подключался светодиод. Запускаю программу. Далаю какое-то действие в этой программе, светодиод загорается, делаю другое — светодиод тухнет.»

Задача довольно специфичная (с учетом того, что USART не используется) и является чистой «самопальщиной», но вполне реализуема и работоспособна. Давайте приступим к ее реализации.

Опять берем системный блок вашего ПК и смотрим в тыловую часть. Примечаем там 9-ти штырьковй разъем — это и есть COM порт. Реально их может быть неколько (до 4-х). На моем ПК установлено два COM порта (см. фото).

2. Удлинитель COM порта

3. Аппаратная часть

С аппаратной частью нам тоже придется «повозиться», в том смысле что она будет сложнее чем с первым устройством для LPT порта. Дело в том что протокол RS-232 по которому идет обмен данными в COM порту, имеет несколько отличное соотношение логическое состояние — напряжение. Если обычно это логический 0 0 В, логическая 1 +5 В, то в RS-232 это соотношение следующее: логический 0 +12 В, логическая 1 -12 В.

И например, получив -12 В не сразу понятно что с этим напряжением делать. Обычно проводят преобразование уровней RS-232 в ТТЛ (0, 5 В). Самый простой вариант — стабилитроны. Но я предлагаю сделать этот преобразователь на специальной микросхеме. Называется она MAX232.

Теперь давайте посмотрим, а какие сигналы из COM порта мы можем посмотреть на светодиодах? В действительности, в COM порту есть аж 6 независимых линий, представляющих интерес для разработчика устройств сопряжения. Две из них пока для нас недоступны — линии по передаче последовательных данных. А вот оставшиеся 4 предназначены для управления и индикации процесса передачи данных и мы сможем «передалать» их под свои нужды. Две из них предназначены для управления со стороны внешнего устройства и мы их пока трогать не будем, а вот последние две оставшиеся линии мы сейчас и поиспользуем. Они называются:

  • RTS — Запрос на передачу. Линия взаимодействия, которая показывает, что компьютер готов к приему данных.
  • DTR — Компьютер готов. Линия взаимодействия, которая показывает, что компьютер включен и готов к связи.

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

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

А вот ее практичекая реализация. Я думаю вы меня простите, что я сделал ее в таком стремном макетном варианте, ибо делать плату для такой «высоко продуктивной» схемы не хочется.

4. Программная часть

Тут все попроще. Давайте создадим Windows приложение в Microsoft Visual C++ 6.0 на основе MFC для управления двумя линиями взаимодействия COM порта. Для этого создаем новый проект MFC и указываем ему имя, например, TestCOM . Далее выбираем вариант построения на основе диалога.

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

Чтобы наша программа могла упрявлять линиями COM порта, его надо сначала открыть. Напишем код, ответственный за открытие порта при загрузке программы.

HFile = CreateFile(«COM2», GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) < MessageBox("Не удалось открыть порт!", "Ошибка", MB_ICONERROR); >else

С помощью стандарной функции Win API CreateFile() открываем COM-порт COM2 . Далее проверяем успешность открытия с выводом информационного сообщения. Вот тут надо сделать важное замечание: COM2 — это в моем компьютере, а на Вашем компьютере Вы могли подключить его к другому COM порту. Соответственно, его имя нужно изменить на то, кокай порт Вы используете. Посмотреть, какие номера портов присутствуют на Вашем компьютере, можно так: Пуск -> Настройка -> Панель управления -> Система -> Оборудование -> Диспетчер устройств -> Порты (COM и LPT) .

В итоге, функция CTestCOMDlg::OnInitDialog() , расположенная в файле TestCOMDlg.cpp , класса нашего диалога должна принять вид:

BOOL CTestCOMDlg::OnInitDialog() < CDialog::OnInitDialog(); // Add "About. " menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); > > // Set the icon for this dialog. The framework does this automatically // when the application»s main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here hFile = CreateFile(«COM2», GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) < MessageBox("Не удалось открыть порт!", "Оштбка", MB_ICONERROR); >else < MessageBox("Порт успешно открыт", "Ok", MB_OK); >return TRUE; // return TRUE unless you set the focus to a control >

Теперь добавим обработчики кнопок управления линиями. Я дал им соответствующие имена: функция, которая устанавливает еденицу на линии DTR — OnDTR1(), 0 — OnDTR0(). Для линии RTS соответственно аналогичным образом. Напомню, что обработчик создается при двойном щелчке на кнопке. В итоге, эти четыре функции должны принять вид:

Поясню немного как они работают. Как видно, внитри себя они содержат вызов одной и той же Win API функции EscapeCommFunction() с двумя параметрами. Первый из них — это хэндл (HANDLE) на открытый порт, второй — специальный код действия, соответствующий необходимому состоянию линии.

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

© Иванов Дмитрий
Декабрь 2006

THRпромежуточный регистр данных передатчика (только для записи) Данные, записанные в регистр, будут пересланы в выходной сдвигающий регистр (когда он будет свободен), из которого поступят на выход при наличии разрешающего сигнала CTS . Бит 0 передается (и принимается) первым. При длине посылки менее 8 бит старшие биты игнорируются.
RBRбуферный регистр принимаемых данных (только для чтения) Данные, принятые входным сдвигающим регистром помещаются в регистр RBR , откуда они могут быть считаны процессором. Если к моменту окончания приема очередного символа предыдущий не был считан из регистра, фиксируется ошибка переполнения. При длине посылки менее 8 бит старшие биты в регистре имеют нулевое значение.
DLLрегистр младшего байта делителя частоты .
DLMрегистр старшего байта делителя частоты . Делитель определяется по формуле D=115200/V, где V — скорость передачи, бит/с. Входная частота синхронизации 1 8432 МГц делится на заданный коэффициент, после чего получается 16-кратная частота передачи данных.
IЕRрегистр разрешения прерываний . Единичное значение бита разрешает прерывание от соответствующего источника.
Назначение бит регистра IER :
* биты =0 — не используются;
* бит 3 — Mod_IЕ — по изменению состояния модема (любой из линий CTS, DSR, RI, DCD );
* бит 2 — RxL_IЕ — по обрыву/ошибке линии;
* бит 1 — TxD_IE — по завершении передачи;
* бит 0 — RxD_IЕ — по приему символа (в режиме FIFO — прерывание по тайм-ауту).
IIRрегистр идентификации прерываний и признака режима FIFO (только для чтения). Для упрощения программного анализа UART выстраивает внутренние запросы прерывания по четырехуровневой системе приоритетов. Порядок приоритетов (по убыванию): состояние линии, прием символа, освобождение регистра передатчика, состояние модема. При возникновении условий прерывания UART указывает на источник с высшим приоритетом до тех пор, пока он не будет сброшен соответствующей операцией. Только после этого будет выставлен запрос с указанием следующего источника. Ниже описано назначение бит регистра IIR .
* Биты — признак режима FIFO:
11-режим FIFO 16550A;
10 — режим FIFO 16550;
00 — обычный.
* Биты — не используются.
* Бит 3 — прерывание по тайм-ауту приема в режиме FIFO (в буфере есть символы для считывания).
* Биты — причина прерывания с наивысшим приоритетом (в обычном, не FIFO-режиме):
11 — ошибка/обрыв линии, сброс выполняется чтением регистра состояния линии;
10 — принят символ, сброс выполняется чтением данных;
01 — передан символ (регистр THR пуст), сброс выполняется записью данных;
00 — изменение состояния модема; сброс выполняется чтением регистра состояния модема.
* Бит 0 — признак необслуженного запроса прерывания (1 — нет запроса, 0 — есть запрос).
В режиме FIFO причину прерывания идентифицируют биты .
* О11 — ошибка/обрыв линии. Сброс выполняется чтением регистра состояния линии.
* 010 — принят символ. Сброс выполняется чтением регистра данных приемника
* 110 — индикатор тайм-аута (за 4-кратный интервал времени символа не передано и не принято ни одного символа, хотя в буфере имеется, по крайней мере, один). Сброс выполняется чтением регистра данных приемника.
* 001 — регистр THR пуст. Сброс выполняется записью данных.
* 000 — изменение состояния модема (CIS, DSR, RI или DCD ). Сброс выполняется чтением регистра MSR .
FCRрегистр управления FIFO (только для записи). Ниже описано назначение бит регистра FCR :
* Биты — ITL (Interrupt Trigger Level) — уровень заполнения FIFO-буфера, при котором вырабатывается прерывание:
00 — 1 байт (по умолчанию);
01 — 4 байта;
10 — 8 байт;
11 — 14 байт.
* Биты зарезервированы.
* Бит 3 — разрешение операций DMA.
* Бит 2 — RESETTF (Reset Transmitter FIFO) — сброс счетчика FIFO-передатчика (записью единицы; сдвигающий регистр не сбрасывается).
* Бит 1 — RESETRF (Reset Receiver FIFO) — сброс счетчика FIFO-приемника (записью единицы; сдвигающий регистр не сбрасывается).
* Бит 0 — TRFIFOE (Transmit And Receive FIFO Enable) — разрешение (единицей) режима FIFO для передатчика и приемника. При смене режима FIFO-буферы автоматически очищаются.
LCRрегистр управления линией (настройки параметров канала). Ниже описано назначение бит регистра LCR .
* Бит 7 — DLAB (Divisor Latch Access Bit) — управление доступом к делителю частоты.
* Бит 6 — BRCON (Break Control) — формирование обрыва линии (посылка нулей) при BRCON=1.
* Бит 5 — STICPAR (Sticky Parity) — принудительное формирование бита паритета:
0 — контрольный бит генерируется в соответствии с паритетом выводимого символа;
1 — постоянное значение контрольного бита: при EVENPAR =1 — нулевое, при EVENPAR =0 — единичное.
* Бит 4 — EVENPAR (Even Parity Select) — выбор типа контроля: 0 — нечетность, 1 — четность.
* Бит 3 — PAREN (Parity Enable) — разрешение контрольного бита:
1 — контрольный бит (паритет или постоянный) разрешен;
0 — контрольный бит запрещен.
* Бит 2 — STOPB (Stop Bits) — количество стоп-бит:
0 — 1 стоп-бит;
1 — 2 стоп-бита (для 5-битного кода стоп-бит будет иметь длину 1,5 бит).
* Биты — SERIALDB (Serial Data Bits) — количество бит данных:
00 — 5 бит;
01-6 бит;
10 — 7 бит;
11 — 8 бит.
MCRрегистр управления модемом . Ниже описано назначение бит регистра MCR .
* Биты =0 — зарезервированы.
* Бит 4 — LME (Loopback Mode Enable) — разрешение режима диагностики:
0 — нормальный режим;
1 — режим диагностики (см. ниже).
* Бит 3 — IE (Interrupt Enable) — разрешение прерываний с помощью внешнего выхода OUT2 MSR.7 :
0 — прерывания запрещены;
1 — прерывания разрешены.
* Бит 2 — OUT1C (OUT1 Bit Control) — управление выходным сигналом 1 (не используется); в режиме диагностики поступает на вход MSR.6 .
* Бит 1 — RTSC (Request To Send Control) — управление выходом RTS ; в режиме диагностики поступает на вход MSR.4 :
0 — активен (-V);
1 — пассивен (+V).
* Бит 0 — DTRC (Data Terminal Ready Control) — управление выходом DTR ; в режиме диагностики поступает на вход MSR.5 :
0 — активен (-V);
1 — пассивен (+V).
LSRрегистр состояния линии (точнее, состояния приемопередатчика). Ниже описано назначение бит регистра LSR.
* Бит 7 — FIFOE (FIFO Error Status) — ошибка принятых данных в режиме FIFO (буфер содержит хотя бы один символ, принятый с ошибкой формата, паритета или обрывом). В не FIFO-режиме всегда 0.
* Бит 6 — TEMPT (Transmitter Empty Status) — регистр передатчика пуст (нет данных для передачи ни в сдвиговом регистре, ни в буферных регистрах THR или FIFO).
* Бит 5 — THRE (Transmitter Holding Register Empty) — регистр передатчика готов принять байт для передачи. В режиме FIFO указывает на отсутствие символов в FIFO-буфере передачи. Может являться источником прерывания.
* Бит 4 — BD (Break Detected) — индикатор обрыва линии (вход приемника находится в состоянии 0 не менее, чем время посылки символа).
* Бит 3 — FE (Framing Error) — ошибка кадра (неверный стоп-бит).
* Бит 2 — РЕ (Parity Error) — ошибка контрольного бита (паритета или фиксированного).
* Бит 1 — ОЕ (Overrun Error) — переполнение (потеря символа). Если прием очередного символа начинается до того, как предыдущий выгружен из сдвигающего регистра в буферный регистр или в регистр FIFO, прежний символ в сдвигающем регистре теряется.
* Бит 0 — DR (Receiver Data Ready) — принятые данные готовы (в DHR или FIFO-буфере). Сброс — чтением приемника.
Индикаторы ошибок — биты — сбрасываются после чтения регистра LSR . В режиме FIFO признаки ошибок хранятся в FIFO-буфере вместе с каждым символом. В регистре они устанавливаются (и вызывают прерывание) в тот момент, когда символ, принятый с ошибкой, находится на вершине FIFO (первый в очереди на считывание). В случае обрыва линии в FIFO заносится только один «обрывной» символ, и UART ждет восстановления и последующего старт-бита. MSR — регистр состояния модема. Ниже описано назначение бит регистра MSR :
* Бит 7 — DCD (Data Carrier Detect) — состояние линии DCD :
0 — активна (-V);
1 — пассивна (+V).
* Бит 6 — RI (Ring Indicator) — состояние линии RI :
0 — активна (-V);
1 — пассивна (+V).
* Бит 5 — DSR (Data Set Ready) — состояние линии DSR :
0 — активна (-V);
1 — пассивна (+V).
* Бит 4 — CTS (Clear To Send) — состояние линии CTS :
0 — активна (-V);
1 — пассивна (+V).
* Бит 3 — DDCD (Delta Data Carrier Detect) — изменение состояния DCD .
* Бит 2 — TERI (Trailing Edge Of Ring Indicator) — спад огибающей RI (окончание звонка).
* Бит 1 — DDSR (Delta Data Set Ready) — изменение состояния DSR .
* Бит 0 — DCTS (Delta Clear To Send) — изменение состояния CTS .
Признаки изменения (биты ) сбрасываются по чтению регистра.
SRCрабочий регистр (8 бит), на работу UART не влияет, предназначен для временного хранения данных (в 8250 отсутствует).
В диагностическом режиме (при LМЕ=1 ) внутри UART организуется внутренняя «заглушка»:
* выход передатчика переводится в состояние логической единицы;
* вход приемника отключается;
* входы DSR, CTS, RI и DCD отключаются от входных линий и внутренне управляются битами DTRC, RTSC, OUT1C, IE ;
* выходы управления модемом переводятся в пассивное состояние (логический ноль).
Переданные данные в последовательном виде немедленно принимаются, что позволяет проверять внутренний канал данных порта (включая сдвигающие регистры) и отработку прерываний, а также определять скорость работы UART.

Ой, а что это за штучка? Зачем она нужна? Ничего, если я пальцем потрогаю? Что? Лучше не надо? Хорошо, не буду. Но мне страсть как интересно: разъём в компьютере есть, а никто ничего к нему почему-то не подключает. Как он вообще называется? Порт? Ух ты! Класс! А что это такое.

Этот порт также называется серийным (Serial port ), хотя сокращение «COM» на самом деле означает «коммуникационный»Communication port (изначально предназначен для двустороннего движения данных — настоящей коммуникации). А ещё чаще его именуют последовательным , поскольку передаёт биты строго один за другим.

Кроме последовательного, в компьютерах есть и параллельный порт, предназначенный, в основном, для подключения принтеров. Его нередко так и называют: принтерный. Там передача данных номинально односторонняя (хотя лишь номинально).

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

Разъём вставляется в гнездо с контактами и прикручивается вышеуказанными болтиками, чтобы не выпасть. Таким образом можно, к примеру, соединить напрямую два компьютера с помощью нуль-модемного кабеля. Что и делалось раньше, в эпоху первых ПК.

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

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

Нынче для коммуникации с разными устройствами всё чаще используют USB-порт (он тоже, кстати, фактически последовательный). Мобильные модемы, принтеры, адаптеры Wi-Fi — всё большее количество приборов подключается именно через USB.

Кроме того, при наличии таких технологий как Ethernet и FireWire (для Apple), соединять компьютеры проводами через COM-порты не так уж целесообразно. Ну а если вспомнить о Bluetooth (что переводится как «синий зуб»), то и вовсе можно отправлять последовательный порт в музей.

Впрочем, операционная система Windows по-прежнему называет свои каналы передачи информации не иначе как COM1, COM2 и так далее.

Почему? Потому что драйверы, к примеру, для того же Bluetooth, могут представляться системе именно как COM-порты. Мол, а вот и мы, прошу любить и жаловать, извольте назначить нам каналы для обмена данными. Ну и что, что мы как бы не совсем настоящие? Всё равно придётся нас обслуживать.

В Unix (и её разновидностях вроде Linux) тоже есть некоторые особенности по поводу отношения к подключаемым устройствам. Поскольку Unix считает всё вокруг файлами (даже оборудование!), то и держит свои последовательные порты в виде оных с именами вроде ttyS0, ttyS1, ttyS2 (если это Linux) или ttyu0, ttyu1, ttyu2 (в FreeBSD).

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

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

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

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

Иногда приходится решать задачу связи электронного устройства с компьютером, будь то просто обмен данными или удалённое управление. Эта статья описывает, как это можно реализовать, используя последовательный порт. Главным его преимуществом является то, что стандартный программный интерфейс Windows (API) позволяет производить непосредственное управление выходными линиями, давая прямой контроль над ними, и имеет функцию ожидания некоторого события, связанного с COM-портом. Также стандарт RS-232, по которому выполнены COM-порты, допускает подключение и отключение кабелей во время работы устройств (hot plug).

Описание

COM-порт (последовательный порт) – двунаправленный интерфейс, передающий данные в последовательном виде (бит за битом) по протоколу RS-232. Это довольно-таки распространённый протокол, применяемый для связи одного устройства (например, компьютера) с другими посредством проводов длиной до 30м. Уровни логических сигналов здесь отличаются от стандартных: уровень логической единицы – от +5 до +15В, уровень логического нуля – от -5 до -15В, что требует дополнительных преобразований схемы, но обеспечивает хорошую помехоустойчивость.

Рассмотрим 9-пинововый разъём (DB-9M). Ниже представлена его распиновка:

№ вывода Наименование Характер сигнала Сигнал
1 DCD Входной Data carrier detect
2 RxD Выходной Transmit data
3 TxD Входной Receive data
4 DTR Выходной Data terminal ready
5 GND Ground
6 DSR Входной Data set ready
7 RTS Выходной Request to send
8 CTS Входной Clear to send
9 RI Входной Ring indicator

Больше всего нас будут интересовать пины 2 (передача данных),3 (приём данных) и 5 (земля). Это минимальный набор для возможности двухстороннего общения приборов.

Подробно останавливаться на описании протокола не буду. Для этого есть ГОСТ’ы и т.п. Поэтому мы пойдём дальше и поговорим о том, как же управлять этим зверем.

Применение

Как уже говорилось, уровни ЛС RS-232 отличаются от стандартных уровней ТТЛ. Следовательно, нам необходимо как-то преобразовывать величины напряжений. Т.е. сделать 5В из +15В и 0В из -15В (и наоборот). Один из способов (и, наверное, самый простой) – использование специальной микросхемы MAX232. Она проста в понимании и одновременно может преобразовывать два логических сигнала.

Ниже приведена схема её включения:

Думаю, трудностей быть не должно. Это один из вариантов использования этой микросхемы: передача данных с микроконтроллера на ЭВМ и наоборот. Передаваемый сигнал поступает на ножки Tx IN с одной стороны и на Rx IN с другой. Входные сигналы снимаются с Tx OUT и Rx OUT соответственно.

Программирование

Для начала поговорим о программировании портов на низком уровне. Так будет более правильно. Я очень много нервов потратил, разбираясь с этим интерфейсом, пока не начал вникать в принцип его работы на более низком уровне, нежели простая передача символов. Если будет понятно это, значит и с языками высокого уровня проблем не будет.

Ниже представлены адреса COM-портов, с которыми нам придётся работать:

Название порта Адрес IRQ
COM 1 3F8h 4
COM 2 2F8h 3
COM 3 3E8h 4
COM 4 2E8h 3

Они могут различаться. Установить значения можно в настройках BIOS’а. Это базовые адреса. От них же и будут зависеть адреса регистров, отвечающие за работу портов:

Адрес DLAB Чтение/Запись Аббревиатура Название регистра
+ 0 =0 Write Transmitter Holding Buffer
=0 Read Receiver Buffer
=1 Read/Write Divisor Latch Low Byte
+ 1 =0 Read/Write IER Interrupt Enable Register
=1 Read/Write Divisor Latch High Byte
+ 2 Read IIR Interrupt Identification Register
Write FCR FIFO Control Register
+ 3 Read/Write LCR Line Control Register
+ 4 Read/Write MCR Modem Control Register
+ 5 Read LSR Line Status Register
+ 6 Read MSR Modem Status Register
+ 7 Read/Write Scratch Register

Первая колонка – адрес регистра относительно базового. Например, для COM1: адрес регистра LCR будет 3F8h+3=3FB. Вторая колонка – DLAB (Divisor Latch Access Bit) бит, определяющий разное назначение для одного и того же регистра.. Т.е. он позволяет оперировать 12-ю регистрами, используя всего 8 адресов. Например, если DLAB=1, то, обращаясь по адресу 3F8h, мы будем устанавливать значение младшего байта делителя частоты тактового генератора. Если же DLAB=0, то, обращаясь по тому же адресу, в этот регистр будет записан передаваемый или принятый байт.

“Нулевой” регистр

Ему соответствуют регистры приёма/передачи данных и установки коэффициента делителя частоты генератора. Как уже было сказано выше, если DLAB=0, то регистр используется для записи принимаемых/передаваемых данных, если же он равен 1, то устанавливается значение младшего байта делителя частоты тактового генератора. От значения этой частоты зависит скорость передачи данных. Старший байт делителя записывается в следующую ячейку памяти (т.е. для порта COM1 это будет 3F9h). Ниже приведена зависимость скорости передачи данных от коэффициента делителя:

Interrupt Enable Register (IER)

Если DLAB=0, то он используется как регистр управления прерываниями от асинхронного адаптера, если DLAB=1, то в нём задаётся старший байт делителя частоты тактового генератора.

Interrupt Identification Register (IIR)

Прерывание – это событие, при котором останавливается выполнение основной программы и начинается выполнение процедуры прерываний. Этот регистр определяет тип произошедшего прерывания.

Line Control Register (LCR)

Это управляющий регистр.

Бит 7 1 Divisor Latch Access Bit – задание скорости обмена данными
0 Обычнй режим (управление прерываниями, приём/передача данных)
Бит 6 Имитировать обрыв линии (посылает последовательность из нескольких нулей)
Биты 3 – 5 Бит 5 Бит 4 Бит 3 Выбор чётности
X X 0 No Parity
0 0 1 Odd Parity
0 1 1 Even Parity
1 0 1 High Parity (Sticky)
1 1 1 Low Parity (Sticky)
Бит 2 Кол-во стоп-битов
0 1 стоп-бит
1 2 стоп-бита при 6,7 или 8 бит данных или 1.5 стоп-бита при 5 битах данных.
Биты 0 And 1 Бит 1 Бит 0 Число битов данных
0 0 5 бит
0 1 6 бит
1 0 7 бит
1 1 8 бит

Проверка чётности подразумевает под собой передачу ещё одного бита – бита чётности. Его значение устанавливается таким образом, чтобы в пакете битов общее количество единиц (или нулей) было четно или нечетно, в зависимости от установки регистров порта. Этот бит служит для обнаружения ошибок, которые могут возникнуть при передаче данных из-за помех на линии. Приемное устройство заново вычисляет четность данных и сравнивает результат с принятым битом четности. Если четность не совпала, то считается, что данные переданы с ошибкой.

Стоп-бит означает окончание передачи данных.

Modem Control Register (MCR)

Регистр управления модемом.

Бит Значение
0 Линия DTR
1 Линия RTS.
2 Линия OUT1 (запасная)
3 Линия OUT2 (запасная)
4 Запуск диагностики при входе асинхронного адаптера, замкнутом на его выход.
5-7 Равны 0

Line Status Register (LSR)

Регистр, определяющий состояние линии.

Бит Значение
0 Данные получены и готовы для чтения, автоматически сбрасывается при чтении данных.
1 Ошибка переполнения. Был принят новый байт данных, а предыдущий ещё не был считан программой. Предыдущий байт потерен.
2 Ошибка чётности, сбрасывается после чтения состояния линии.
3 Ошибка синхронизации.
4 Обнаружен запрос на прерывание передачи «BREAK» – длинная строка нулей.
5 Регистр хранения передатчика пуст, в него можно записать новый байт для передачи.
6 Регистр сдвига передатчика пуст. Этот регистр получает данные из регистра хранения и преобразует их в последовательный вид для передачи.
7 Тайм-аут (устройство не связано с компьютером).

Modem Status Register (MSR)

Регистр состояния модема.

Ну вот и всё. Оперируя этими регистрами, можно напрямую общаться с COM-портом, управлять передачей и приёмом данных. Если вам не хочется возиться с памятью, можно воспользоваться уже готовыми компонентами для различных сред программирования: C++, VB, Delphi, Pascal и т.д. Они интуитивно понятны, поэтому, думаю, здесь не стоит заострять на них внимание.

RS232. Взгляд изнутри

Последовательный порт (далее ПП) удобный инструмент для общения между разными периферийными устройствами (как собранные самостоятельно на основе какого-нибудь МК, так и заводские: принтеры, осциллографы и т.д.) с одной стороны, и ПК с другой. На сегодняшний день наиболее популярные из всех ПП являются RS232 стандарт (переводится как «Recommended Standard») за его простоту и USB стандарт («Universal Serial BUS») за его резвость.
USB бесспорно вещь полезная, но жудко навороченная. Поскольку многим самодельным устройствам бешенный обмен данными с ПК неособо нужон, тогда на помощи приходит простой, надежный и многоопытный RS232 Интерфейс.

По RS232 стандарту устройства участвующие в обмене данными бывают двух типов:
Data Terminal Equipment (DTE) (устройство отдающее команды — ведущий) и
Data Circuit-Terminating Equipment (DCE) (периферия, обслуживающая хозяина — ведомый). Нередко, некоторые периферийные устройства ведут себя как DTE (например осциллографы, или наши с вами девайсы).

Типы соединения

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

В случае когда устройств только два, или есть явный ведущий которого слушаются все остальные, никакого посредника им не нужно, а это означает что к их общению больше никто не подключится, и никакого арбитра в лице модема им не надо ( в отличие от предыдущего типа соединения, когда к одному принтеру можно подключить штук 10 ПК ). Опять-же главное недопустить одновременной отправки данных — в определенный момент времени, общатся может только одна пара устройств. Такое соединение называется нуль-модемное соединение:

Типы передач данных

Минимальное количество проводков необходимое для обмена данными равно двум (этокий жадный изврат), если передача является односторонней ([Tx, GND]). В случае когда необходимо полноценное — двухстороннее общение число проводков возростает аж до трех ([Rx, Tx, GND]). Большинство периферийных устройств поддерживают одновременную передачу и прием данных — full-duplex, но если один из собеседников на такое не способен, обмен переходит в разряд неполноценных — half-duplex (пока один не закончил передачу/прием другой пляшит под его дудку).

Распиновка COM разъёма

В столбце Signal Name, DATA Terminal можно заменить на ПК (то есть Data Terminal Ready соответствует ПК готов к работе), а DATA Set на Периферия.

Как следует из предыдущей таблицы, все пины делятся на управляющие (control pins) и транспортные (Data pins). Каждый пин в определенный момент времени может находьтся только в одном из двух состояний: активном (on) или неактивном (off). Чтобы не запутатся, и както защитить данные от помех, разработчики решили что во время передачи данных они были сначало усилены (+5В –> +12В, 0В –> -12В ) а потом инвертированы, в то время как c управляющими сигналами они долго не парились и просто их усилели (тоесть положительное стало еще положительней а отрицательное — отрицательнее, относительно общего провода).

Назначение управляющих пинов ([RTS, CTS], [DTR, DSR] и [CD, RI]) сводится к следующему:

• Отслеживать состояние собеседника
• Отслеживать поток данных

Пара [RTS, CTS] — используется для обозначения готовности данной пары устройств к передачи/приему соответственно.

1. DTE устройство устанавливает RTS = on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем RTS =off.
2. DCE устройство устанавливает CTS =on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем CTS =off.

Кто каким пином будет управлять (тоесть кому быть DTE а кому DCE) решать вам. Соответственно программы управления этими устройствами должны выставить RTS(выход)/CTS (вход), или наоборот, иначе могут быть глюки.

Пара [DTR, DSR] — большинство устройств используют эти пины для сигнализирования что они подключены и готовы к работе.

1. DTE устройство устанавливает DTR=on, сообщая DCE устройству что оно готово к работе. Соответственно когда DTE устанавливает DTR=off, то оно больше не желает (или не может) общатся (положила трубку 🙂 )
2. DCE устройство устанавливает DSR=on, сообщая что оно подключено, а когда DSR=off – оно отключено.

Такой метод контроля потока данных называется – hardware handshaking (чтото вроде аппаратное управление). Пары [DTR, DSR] и [RTS, CTS] могут быть с легкостью взаимо-заменены без всякого ущерба.

Пара [CD, RI] – используется для обозначения (в тот самом случае когда один принтер на отару кампов) что в данный момент линии передачи данных кем-то заняты.
Как правило этой парой управляет модем, но не обязательно.

Photobucket

• St – Стартовый Бит (начало передачи данных) – логический ноль
• 0..8 – позиция бита (данных) в пакете (позиция «0» – LSB)
• P – бит парности (проверка успешной передачи данных)
• Sp1,Sp2 – стоп биты (завершают передачу пакета) – логическая единица
• [] – в скобках обозначены биты которые могут отсутствовать
(биты данных с 5 по 8 так или иначе будут переданы, но не рассмотрены — мусор)
• IDLE – ожидание (логическая единица)

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

Часто формат пакета обозначается следующим образом: 8-N-1 (8 бит данных, без бита проверки, один стоп бит) или 5-E-2 (5 бит данных (3 бита мусора), с проверкой на четность, два стоп бита).

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

Софт
UPD: заменил вывод cout на printf, и убрал флаги RxClear и TxClear

ПП по сути является фаилом из которого ведется чтение/запись, поэтому основные операции которые применяются над ПП можно группировать следующим способом:

Также много интересного можно узнать на следующих сайтах: Programming Serial Connections , Serial programming in win32 OS

Запихните предыдущий код в хидэр фаил, например с именем COM_INIT.h и можно использовать ПП.

Надеюсь эти скромные знания кому-то помогут. Если есть вопросы попытаюсь ответить.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *