Входное устройство
Схема входного устройства приведена на рис.3. Измеряемый сигнал через входное гнездо и конденсатор С1 подается на компаратор на выходе которого будет лог. «1», если сигнал положительный, либо лог. «0», если сигнал отрицательный. Конденсатор С1 служит для устранения постоянной составляющей измеряемого сигнала. Рис. 4. Входное устройство
В качестве компаратора использована микросхема К554СА3А. Питание микросхемы осуществляется двухполярным источником напряжением 15В. Конденсатор С1 – 0,1 мкФ, резистор R0 – 500 Ом.
Схема выделения фронта
Для осуществления задержки между записью в регистр и обнуления счетчика применена схема выделения фронта (см. рис.4). При подаче импульса конденсатор С2 начинает заряжаться и при достижении порогового уровня на выходе DD3.2 устанавливается уровень логического нуля. Таким образом на выходе DD2.2 формируется положительный импульс длительность которого приблизительно равна R2C2.
Принимаем R2=430 Ом, С2=1 мкФ. Рис. 5. Схема выделения фронта.
Дешифратор
Специальные дешифраторы предназначены для преобразования двоичного кода в семисегментный код и управления полупроводниковыми семисегментными и жидкокристаллическими индикаторами. Рассмотрим дешифратор К176ИД2.
Рис.6. Условное обозначение дешифратора К176ИД2.
Входы D0 – D3 информационные входы, a-g – выходы на семисегментный индикатор. При подаче на вход S высокого уровня – разрешение преобразования двоичного кода в семисегментный код, при подаче низкого уровня – “защёлка”. Высокий уровень на входе М определяет подключение семисегментного индикатора с общим анодом, низкий уровень – с общим катодом. При наличии “единицы” на входе К все сегменты индикатора гаснут, низкий уровень разрешает индикацию.
При подключении дешифратора необходимо на входы К и М подать логический ноль (земля), а на вход S напряжение питания +9В.
Максимальное прямое напряжение на сегменте индикатора равно 3,6 В. Наша задача – понизить напряжение выхода дешифратора (+8,2 В) до напряжения 1,6 В.
В качестве индикаторных устройств наибольшее применение находят полупроводниковые и жидкокристаллические семисегментные индикаторы.
При пропускании прямого тока через светодиод полоска (сегмент) начинает излучать свет красного, зеленого или желто-зеленого цвета. Определенное сочетание светящихся сегментов индицирует цифру или букву и при применении специальных дешифраторов создается возможность вывода цифровой и буквенной информации, отражающей состояние управляющих и вычислительных устройств.
Рис. 7. УГО семисегментного индикатора АЛС321А.
Наиболее удобочитаемым, является индикатор АЛС321А с общим катодом. Высота знака у этого индикатора 7,5 мм, цвет свечения жёлто–зелёный. Ток потребления каждого сегмента равен 0,002 (А), напряжение питания одного сегмента 3,6 (В). Для ограничения напряжения будем использовать резисторы 3,5кОм
Разработка принципиальной схемы
Для реализации принципиальной схемы были задействованы два 8-ми разрядных регистра сдвига, включенных каскадно для увеличения разрядности передаваемых данных. Для контроля четности используем микросхему К155ИП2. Таким образом, формат потока данных будет соответствовать асинхронной передаче. В начале подается старт-бит, затем 8 бит данных, бит паритета и стоповые биты. Уровни напряжения ТТЛ-логики и интерфейса RS-232 имеют различные значения. Для RS232: нулю соответствует напряжение от +5В до +15В, единице от -15В до -5В, от -5В до +5В считается неопределённым состоянием. Для TTL: нулю соответствует напряжение до 0,4В, единице от 2,5В. Поэтому подключение напрямую может просто "пожечь" TTL логику, а выходы TTL будут держать неопределённость на COM порте, поэтому использовать преобразователь, выполненный на микросхеме MAX232.
В качестве регистров сдвига выбираем микросхемы К555ИР10, имеющие по восемь разрядов.
Рис. 8. Цоколевка микросхемы К555ИР10
Микросхема К555ИР10 - восьмиразрядный сдвигающий регистр с возможностью синхронной параллельной записи и последовательным считыванием. Микросхема имеет вход D0 для подачи информации при последовательной записи, восемь входов D1 - D8 для подачи информации при параллельной записи, два равноправных входа для подачи тактовых импульсов (выводы 6 и 7), вход параллельной записи EL и прямой выходы последнего разряда сдвигающего регистра. Переключение триггеров регистра происходит по спаду импульсов отрицательной полярности на любом из входов С при лог. 0 на другом. Подача лог. 1 на любой из входов запрещает переключение триггеров при подаче импульсов на второй вход. Режим работы регистра определяется сигналом, поданным на вход EL - при лог. 1 на нем по спадам импульсов на входе С происходит сдвиг информации, поступающей на вход D0, выходам 8, при лог. 0 на входе EL происходит параллельная запись информации со входов D1 - D8 в триггеры регистра. Микросхема имеет вход R для сброса всех триггеров регистра в нулевое состояние. Сброс производится при подаче лог. 0 на вход R, запись - спадом импульса отрицательной полярности на входе С при лог. 0 на входе E
Микросхема К155ИП2 представляют собой восьмиразрядную схему контроля четности. Корпус К155ИП2 типа 201.14-1, масса не более 1 г., КМ155ИП2 типа 201.14-8, масса не более 2,2 г.
Рис. 9. Цоколевка микросхемы К155ИП2.
1 - вход I6; 2 - вход I7;
3 - вход PE; 4 - вход P0;
5 - выход FE; 6 - выход F0;
7 - общий; 8 - вход I0;
9 - вход I1; 10 - вход I2;
11 - вход I3; 12 - вход I4;
13 - вход I5; 14 - напряжение питания
Микросхема MAX232.
Рис. 10. Схема включения ИМС MAX232CPE.
MAX232 - интегральная схема, преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах на базе ТТЛ или КМОП технологий. MAX232 работает приемопередатчиком и преобразует сигналы RX, TX, CTS и RTS.
Функциональность и цоколевка микросхемы стала стандартом де-факто и ее аналоги (с другой маркировкой) выпускаются множеством производителей полупроводников.
Схема обеспечивает уровень выходного напряжения, используемый в RS-232 (приблизительно ± 7.5 В), преобразуя входное напряжение + 5 В при помощи внутреннего зарядового насоса на внешних конденсаторах. Это упрощает реализацию RS-232 в устройствах, работающих на напряжениях от 0 до + 5 В, так как не требуется усложнять источник питания только для того, чтобы использовать RS-232.
Входное напряжение от RS-232, которое может достигать ± 25 В, понижается до стандартных 5 В, используемых в транзисторно-транзисторной логике. Входы имеют средний порог 1.3 В и средний гистерезис 0.5 В.
Модификация MAX232A обратно совместима с MAX232, но может работать на более высоких скоростях (см. Бод), и использовать внешние конденсаторы меньшей емкости – 0.1 μF вместо конденсаторов на 1.0 μF, используемых с оригинальной схемой.
Последняя модификация - MAX3232 - также обратно совместима с предыдущими, но работает в диапазоне напряжений от 3 до 5.5В.
Полезно понимать, что происходит с уровнями напряжения. Когда схема MAX232 получает на вход логический "0" от ТТЛ, она преобразует его в напряжение от +3 до +15В, а когда получает логическую "1" - преобразует её в напряжение от -3 до -15В, и по тому же принципу выполняет обратные преобразования от RS-232 к ТТЛ. Вас может удивить, что в RS-232 напряжение, используемое для логических состояний при передачи данных, противоположно напряжению, которое используется для тех же логических состояний при передаче команд управления.
Описание COM – порта
После́довательный порт (англ. Serial port), серийный порт или COM-порт (произносится «ком-порт», от англ. Communication port) — двунаправленный последовательный интерфейс, предназначенный для обмена битовой информацией.
Последовательным данный порт называется потому, что информация через него передаётся по одному биту, бит за битом (в отличие от параллельного порта). Хотя некоторые другие интерфейсы компьютера — такие как Ethernet, FireWire и USB — также используют последовательный способ обмена, название «последовательный порт» закрепилось за портом, имеющим стандарт RS-232C, и предназначенным изначально для обмена информацией с модемом.
Стандарт RS-232
RS-232 — интерфейс передачи информации между двумя устройствами на расстоянии до 15 метров. Информация передается по проводам с уровнями сигналов, отличающимися от стандартных 5 В, для обеспечения большей устойчивости к помехам. Асинхронная передача данных осуществляется с установленной скоростью при синхронизации уровнем сигнала стартового импульса.
Интерфейс RS-232-C был разработан для простого применения, однозначно определяемого по его названию: «Интерфейс между терминальным оборудованием и связным оборудованием с обменом по последовательному двоичному коду».
По структуре это обычный асинхронный последовательный протокол, то есть передающая сторона по очереди выдает в линию 0 и 1, а принимающая отслеживает их и запоминает.
Данные передаются пакетами по одному байту (8 бит).
Вначале передаётся стартовый бит, противоположной полярности состоянию незанятой (idle) линии, после чего передаётся непосредственно кадр полезной информации, от 5 до 8-ми бит.
Увидев стартовый бит, приемник выжидает интервал T1 и считывает первый бит, потом через интервалы T2 считывает остальные информационные биты. Последний бит — стоповый бит (состояние незанятой линии), говорящий о том, что передача завершена. Возможно 1, 1.5, 2 стоповых бита.
В конце байта, перед стоп битом, может передаваться бит четности (parity bit) для контроля качества передачи. Он позволяет выявить ошибку в нечетное число бит (используется, так как наиболее вероятна ошибка в 1 бит).
Ассоциация электронной промышленности (EIA) развивает стандарты по передаче данных. Стандарты EIA имеют префикс «RS». «RS» означает рекомендуемый стандарт, но сейчас стандарты просто обозначаются как «EIA» стандарты. RS-232 был введён в 1962 году. Стандарт развивался, и в 1969 г. представлена третья редакция (RS-232C). Четвёртая редакция была в 1987 (RS-232D, известная также под EIA-232D). RS-232 идентичен стандартам МККТТ (CCITT) V.24/V.28, X.20bis/X.21bis и ISO IS2110. Самой последней модификацией является модификация «Е», принятая в июле 1991 г. как стандарт EIA/TIA-232E. В данном варианте нет никаких технических изменений, которые могли бы привести к проблемам совместимости с предыдущими вариантами этого стандарта.
На практике, в зависимости от качества применяемого кабеля, требуемое расстояние передачи данных в 15 метров может не достигаться, составляя, к примеру, порядка 1,5 м на скорости 115200 бод для неэкранированного плоского или круглого кабеля. Для преодоления этого ограничения, а также возможного получения гальванической развязки между узлами, можно применить преобразователи RS-232—RS-422 (с сохранением полной программной совместимости) или RS-232—RS-485 (с определёнными программными ограничениями). При этом расстояние может быть увеличено до 1 км на скорости 9600 бод и использовании кабеля типа «витая пара» категории 3.
Разъёмы COM – порта
Устройства для связи по последовательному каналу соединяются кабелями с 9-ю или 25-ю контактными разъёмами типа D-sub. Обычно они обозначаются DB-9, DB-25, CANNON 9, CANNON 25.
Первоначально в RS-232 использовались DB-25, но, поскольку многие приложения использовали лишь часть предусмотренных стандартом контактов, стало возможно применять для этих целей 9-штырьковые разъёмы DB-9 (D-subminiature), которые рекомендованы стандартом RS-574.
Рис. 8 9-контактный разъём COM-порта.
Рис. 9 9-контактная вилка типа DB-9M
Нумерация контактов со стороны штырьков
Направление сигналов указано относительно хоста (компьютера)
Контакт |
Сигнал |
Направление |
Описание |
1 |
CD |
Вход |
Обнаружена несущая |
2 |
RXD |
Вход |
Принимаемые данные |
3 |
TXD |
Выход |
Передаваемые данные |
4 |
DTR |
Выход |
Хост готов |
5 |
GND |
- |
Общий провод |
6 |
DSR |
Вход |
Устройство готово |
7 |
RTS |
Выход |
Хост готов к передаче |
8 |
CTS |
Вход |
Хост готов к передаче |
9 |
RI |
Вход |
Обнаружен вызов |
Рис.10. 25-контактная вилка типа DB-25M.
Нумерация контактов со стороны штырьков
Направление сигналов указано относительно хоста (компьютера)
Контакт |
Сигнал |
Направление |
Описание |
1 |
SHIELD |
- |
Экран |
2 |
TXD |
Выход |
Передаваемые данные |
3 |
RXD |
Вход |
Принимаемые данные |
4 |
RTS |
Выход |
Хост готов к передаче |
5 |
CTS |
Вход |
Устройство готово к приему |
6 |
DSR |
Вход |
Вход |
7 |
GND |
- |
Общий провод |
8 |
CD |
Вход |
Обнаружена несущая |
9 |
- |
- |
Резерв |
10 |
- |
- |
Резерв |
11 |
- |
- |
Не используется |
12 |
SCD |
Вход |
Обнаружена несущая #2 |
13 |
SCTS |
Вход |
Устройство готово к приему #2 |
14 |
STXD |
Выход |
Передаваемые данные #2 |
15 |
TRC |
Вход |
Тактирование передатчика |
16 |
SRXD |
Вход |
Принимаемые данные # |
17 |
RCC |
Вход |
Тактирование приемника |
18 |
LLOOP |
Выход |
Локальная петля |
19 |
SRTS |
Выход |
Хост готов к передаче #2 |
20 |
DTR |
Выход |
Хост готов |
21 |
RLOOP |
Выход |
Внешняя петля |
22 |
RI |
Вход |
Обнаружен вызов |
23 |
DRD |
Вход |
Определена скорость данных |
24 |
TRCO |
Выход |
Тактирование внешнего передатчика |
25 |
TEST |
Вход |
Тестовый режим |
Электрические характеристики
Логические уровни передатчика: "0" – от +5 до +15 Вольт, "1" – от -5 до -15 Вольт.
Логические уровни приемника: "0" – выше +3 Вольт, "1" – ниже -3 Вольт.
Максимальная нагрузка на передатчик: входное сопротивление приемника не менее 3 кОм.
Данные характеристики определены стандартом как минимальные, гарантирующие совместимость устройств, однако реальные характеристики обычно существенно лучше, что позволяет, с одной стороны, питать маломощные устройства от порта (например, так спроектированы многочисленные самодельные data-кабели для сотовых телефонов), а с другой – подавать на вход порта инвертированный TTL-уровень вместо двуполярного сигнала.
Описание основных сигналов интерфейса
CD – Устройство устанавливает этот сигнал, когда обнаруживает несущую в принимаемом сигнале. Обычно этот сигнал используется модемами, которые таким образом сообщают хосту о обнаружении работающего модема на другом конце линии.
RXD – Линия приема хостом данных от устройства. Подробно описана в разделе "Протокол обмена данными".
RXD – Линия передачи хостом данных к устройству. Подробно описана в разделе "Протокол обмена данными".
DTR – Хост устанавливает этот сигнал, когда готов к обмену данными. Фактически сигнал устанавливается при открытии порта коммуникационной программой и остается в этом состоянии все время, пока порт открыт.
DSR – Устройство устанавливает этот сигнал, когда включено и готово к обмену данными с хостом. Этот и предыдущий (DTR) сигналы должны быть установлены для обмена данными.
RTS – Хост устанавливает этот сигнал перед тем, как начать передачу данных устройству, а также сигнализирует о готовности к приему данных от устройства. Используется при аппаратном управлении обменом данными.
CTS – Устройство устанавливает этот сигнал в ответ на установку хостом предыдущего (RTS), когда готово принять данные (например, когда предыдущие присланные хостом данные переданы модемом в линию или есть свободное место в промежуточном буфере).
RI – Устройство (обычно модем) устанавливает этот сигнал при получении вызова от удаленной системы, например при приеме телефонного звонка, если модем настроен на прием звонков.
Протокол обмена данными
В протоколе RS-232 существуют два метода управления обменом данных: аппаратный и программный, а также два режима передачи: синхронный и асинхронный. Протокол позволяет использовать любой из методов управления совместно с любым режимом передачи. Также допускается работа без управления потоком, что подразумевает постоянную готовность хоста и устройства к приему данных, когда связь установлена (сигналы DTR и DSR установлены).
Аппаратный метод управления реализуется с помощью сигналов RTS и CTS. Для передачи данных хост (компьютер) устанавливает сигнал RTS и ждет установки устройством сигнала CTS, после чего начинает передачу данных до тех пор, пока сигнал CTS установлен. Сигнал CTS проверяется хостом непосредственно перед началом передачи очередного байта, поэтому байт, который уже начал передаваться, будет передан полностью независимо от значения CTS. В полудуплексном режиме обмена данными (устройство и хост передают данные по очереди, в полнодуплексном режиме они могут делать это одновременно) снятие сигнала RTS хостом означает его переход в режим приема.
Программный метод управления заключается в передаче принимающей стороной специальных символов остановки (символ с кодом 0x13, называемый XOFF) и возобновления (символ с кодом 0x11, называемый XON) передачи. При получении данных символов передающая сторона должна соответственно остановить передачу или возобновить ее (при наличии данных, ожидающих передачи). Этот метод проще с точки зрения реализации аппаратуры, однако обеспечивает более медленную реакцию и соответственно требует заблаговременного извещения передатчика при уменьшении свободного места в приемном буфере до определенного предела.
Синхронный режим передачи подразумевает непрерывный обмен данными, когда биты следуют один за другим без дополнительных пауз с заданной скоростью. Этот режим COM-портом не поддерживается.
Асинхронный режим передачи состоит в том, что каждый байт данных (и бит контроля четности, в случае его наличия) "оборачивается" синхронизирующей последовательностью из одного нулевого старт-бита и одного или нескольких единичных стоп-битов. Схема потока данных в асинхронном режиме представлена на рисунке 9.
Рис. 11. Схема потоков данных в асинхронном режиме.
Один из возможных алгоритмов работы приемника следующий:
Ожидать уровня "0" сигнала приема (RXD в случае хоста, TXD в случае устройства).
Отсчитать половину длительности бита и проверить, что уровень сигнала все еще "0"
Отсчитать полную длительность бита и текущий уровень сигнала записать в младший бит данных (бит 0)
Повторить предыдущий пункт для всех остальных битов данных
Отсчитать полную длительность бита и текущий уровень сигнала использовать для проверки правильности приема с помощью контроля четности (см. далее)
Отсчитать полную длительность бита и убедиться, что текущий уровень сигнала "1".
Вернуться к ожиданию начала следующего байта данных (шаг 1)
Протокол имеет ряд переменных параметров, которые должны быть приняты одинаковыми на стороне приемника и на стороне передатчика для успешного обмена данными:
Скорость обмена данными задается в битах в секунду, определяя длительность одного бита, выбирается из ряда стандартных значений (300, 1200, 2400, 4800, 9600, 19200, 38400, 57600), но могут быть и нестандартными, если поддерживаются обеими сторонами;
Количество бит данных может быть от 4 до 8;
Контроль четности может быть четным ("even", когда общее число единичных битов в принятых данных, включая сам бит четности, должно быть четным), нечетным ("odd", когда общее число единичных битов в принятых данных, включая сам бит четности, должно быть четным) или вообще отсутствовать;
Длина стоп-бита может составлять одну, полторы или две длительности бита.
