Пояснительная записка (1230175), страница 3
Текст из файла (страница 3)
В основе данного последовательного порта передачи данных лежит микросхема Intel 16550. Это универсальный асинхронный приемо-передатчик (UART - Universal Asynchronous Receiver Transmitter). Микросхема содержит несколько интерфейсов RS-232 и соответствующее количество внутренних регистров, предназначенных для управления работой портами ввода/вывода.
Микросхема 16550 включает в себя регистры передатчика и приемника данных. При своей передаче байта он записывается в буферный регистр передатчика, из него затем переписывается в сдвиговый регистр передатчика. Байт «движется» из сдвигового регистра по битам. Аналогично исполняются сдвиговый и буферный регистры приемника.
Программный доступ можно использовать только к буферным регистрам, копирование информации в сдвиговые и другие регистры, и процесс сдвига выполняется микросхемой 16550 автоматически.
Внешние устройства подключаются к порту ввода/вывода через разъем DB25P (имеющий 25 выводов, рисунок 2.3) или DB9P (имеющий 9 выводов, рисунок 2.4). В табл. 2.1 приведена разводка разъема последовательной передачи данных DB25P и DB9P.
Рисунок 2.3 - Разъем DB25P
Рисунок 2.4 - Разъем DB9P
Пример обмена сигналами информации между сторонами интерфейса RS232 устройством и ПК:
Компьютер после подачи питания дает сигнал готовности DTR, который постоянно находится в активном состоянии. Если устройство включено и исправно и все данные в нормальном состоянии, оно отвечает компьютеру сигналом DSR. Этот сигнал служит подтверждением того, что DTR принят, и информирует компьютер об ответе о готовности устройства к приему информации;
Если компьютер получил сигнал DSR и согласен передать данные он выставляет сигнал RTS;
Если устройство готово принять данные, он отвечает сигналом CTS. C этого момента адаптер компьютера может бит за битом передавать информацию по линии TD;
Получив определенное количество данных, устройство может сбросить свой сигнал CTS, давая информацию компьютеру о необходимости «остановиться» передачу следующего байта, например, из-за заполнения свободного места внутреннего буфера;
Программа компьютера, вследствие сброса CTS, прекращает передачу данных, находясь в ждущем режиме повторного появления CTS.
Когда данному устройству снова необходимо передать данные в компьютер он отправляет сигнал DCD. Программа компьютера, принимающая данные, увидевшая этот сигнал, читает приемный регистр, в который сдвиговый регистр «собрал» биты, полученные по линии приема данных RD. Если для связи используются только линии TD, RTS и DTR (от компьютера к устройству), то компьютер может не попросить данное устройство «повременить» с передачей следующего байта. В этом, существует опасность переопределения, помещенного ранее в регистре, байта данных вновь «собранным» байтом.
В итоге при приеме информации компьютер должен очень быстро освобождать приемный регистр адаптера в полном наборе сигналов RS-232 есть линии, которые могут аппаратно «приостановить» устройство передачи данных.
Таблица 2.1 Описание сигналов интерфейса RS-232
| Обозначение цепи RS-232 | Номер контакта | Направление передачи Вход/выход | Назначение сигнала | |
| DB-9P | DP-25P | |||
| PG | - | 1 | - | Protected Ground. Защитное заземление, соединяется с корпусом устройства и экраном кабеля |
| SG | 5 | 7 | - | Signal Ground. Сигнальная земля уровень напряжения относительно которого действуют уровни сигналов. |
| TD | 3 | 2 | выход | Transmit Data. Последовательные данные выход передатчика |
| RD | 2 | 3 | вход | Receive Data. Последовательные данные вход приемника. |
| RTS | 7 | 4 | выход | Request To Send. Выход запроса передачи данных. Состояние «включено» уведомляет о наличии у терминала данных для передачи. |
| CTS | 8 | 5 | вход | Clear To Send разрешение терминалу передавать данные. Состояние «выключено» запрещает передачу. |
| DSR | 6 | 6 | вход | Data Set Read. Готовность устройства на другой стороне канала к обмену данными |
| Продолжение таблицы 2.1 | ||||
| Обозначение цепи RS-232 | Номер контакта | Направление передачи Вход/выход | Назначение сигнала | |
| DB-9P | DP-25P | |||
| DTR | 4 | 20 | выход | Data Terminal Ready. Готовность к обмену данными. |
| DCD | 1 | 8 | вход | Data Carrier Detected. Вход сигнала обнаружения несущей удаленного модема |
| RI | 9 | 22 | вход | Ring Indicator. Вход вызова (звонка). В коммутируемом канале этим сигналом модем сигнализирует о принятии вызова. |
2.1.1 Концепция построения
На данном этапе есть довольно сложная проблема и довольно сложный протокол обмена, интерфейсом USB можно оборудовать и периферийные устройства индивидуальной разработки и уже разработанных устройств. Для этого выпускается довольно широкий ассортимент разных модификаций микросхем, со стороны USB эти устройства различаются скоростями обмена (LS, FS или HS), числом и вероятностью возможностями конечных точек, число или тип передач, размер буфера. Функциональное назначение этих микросхем разнообразно. С данным портом USB выпускаются и приспособленные микроконтроллеры на ядре MCS51, М68НС05, М68НС11 или RISC-архитектуры. Микроконтроллеры различаются объемом памяти: оперативной и энергонезависимой, производительностью, питанием, потреблением. В микроконтроллерах могут использовать встроенные устройства АЦП/ЦАП, дискретные линии ввода-вывода специального назначения, последовательные и параллельные порты различных типов и модификаций. Данные микроконтроллеры можно использовать для подключения устройств с любыми даже самыми медленными интерфейсами, сигнальных процессоров и тому подобных устройств. Из предоставленного разнообразия можно выбрать подходящую микросхему, на базе которой разрабатываемое устройство будет внедрено с минимальным числом дополнительных элементов и затрат. К микроконтроллерам прилагаются и средства разработки их встроенного программного обеспечения (firmware) — самой сложной частью такого устройства. Имеются микроконтроллеры с USB интерфейсом, способные работать и без программирования, эти контролеры используются с энергонезависимой памятью; микроконтроллеры серии EzUSB фирмы Cypress Semiconductor имеют и загружают свою программу в оперативно запоминающие устройство по шине USB из хост-компьютера в процессе подключения к устройству. Но, такая гибкость нужна не постоянно, и до подключения к компьютеру устройство остается невидимым и неопознанным.
Имеются периферийные микросхемы — порты USB, подключаемые к микроконтроллерам параллельной 8/16-битной шиной данных с стандартным набором управляющих сигналов (CS#, RD#, WR#...), линией запроса прерывания или остановки, и даже возможно, сигналами канала DMA. Применяются и специализированные преобразователи интерфейсов USB в последовательный (RS-232, RS-422/485) и параллельный, не требующие программирования. Как следствие нужно лишь записать в EEPROM идентификатор устройства, и оно определится. Все варианты не перечислить, из-за того, что все время изобретаются новые микросхемы. Неотъемлемая часть разработки собственных устройств — программное обеспечение для хост-компьютера, которое передает и доносит до пользователя всю пользу данного устройства. В большинстве случаев удается воспользоваться готовыми драйверами такими как драйвером виртуального СОМ-порта для преобразователя интерфейса. В других случаях программное обеспечение для данного устройства нужно разработать самостоятельно.
2.1.2 Аппаратная часть и алгоритм работы
Тестирование любых портов последовательных или параллельных, начинается с проверки их опознавания операционной системой. Список адресов установленных портов обычно приводится в таблице, выводимой BIOS перед загрузкой компьютера. Данный список можно посмотреть с помощью тестовых программ или прямо в BIOS Data AREA с помощью отладчика.
Программа может обнаруживать меньше портов, чем установлено физически, из этого следует, что двум портам присвоен один адрес или установлен не идентичный адрес какого-либо порта. Чаще всего проблемы могут возникать с адресами портов COM3 и COM4: не все версии BIOS будут искать порты по альтернативным адресам 3E0h, 338h, 2E0h и 238h; иногда не производится поиск по адресам 3E8h и 2E8h. Номера найденных портов, отображаемые в заставке, могут вводить в заблуждение: если установлены два порта с адресами 3F8h и 3E8h, в заставке они могут называться СОМ1 и COM2, и по этим и названиям к ним можно обратится. Но те же порты в заставке могут называться СОМ1 и COM3 это связанно с тем что 3E8h является штатным адресом для COM3), но попытка подключится к порту COM3 будет неудачной, поскольку в данном случае адрес 3E8h будет находиться в ячейке 0:402h BIOS Data Area, соответствующей порту COM2, а в ячейке порта COM3 (0:404h) будет нуль — признак отсутствия такового порта. "Объяснить" системе, где какой порт, можно вручную с помощью любого отладчика, занеся правильные значения базовых адресов в ячейки BIOS Data Area (это придется делать каждый раз после перезагрузки Операционной системе перед использованием "потерянного" порта). Существуют тестовые утилиты, позволяющие находить порты (например, мониторинг).
Даже если двум портам назначен один и тот же адрес; тестовая программа обнаружит ошибки порта только с помощью внешней заглушки (ExternalLoopBacK). Программное тестирование порта без заглушки не покажет ошибок, поскольку при этом включается диагностический режим. Конфликтующие по отдельности исправные порты будут работать параллельно, обеспечивая совпадение считываемой информации. В "реальное время" нормальная работа конфликтующих портов невозможна. Разбираться с конфликтом адресов удобно благодаря мониторингу портов, последовательно устанавливая порты и наблюдая за адресами, появляющимися в списке.
Когда физически установлен только один порт и его не обнаруживает BIOS, причины те же, что с LPT-портом: либо он отключен при конфигурировании, либо вышел из строя. Неисправность может устраниться при вынимании/вставке платы адаптера в слот системной шины. При работе с СОМ-портом задействуются соответствующие аппаратные прерывания их используют при подключении модема, мыши и других устройств ввода. Неработоспособность этих устройств может быть вызвана некорректной настройкой запроса прерывания. Здесь возможны как конфликты с другими устройствами, так и несоответствие номера прерывания адресу порта [6]
В первом приближении СОМ-порт можно проверить диагностической программой (Checklt) без использования заглушек. Этот режим тестирования проверяет микросхему UART (внутренний диагностический режим) и вырабатывание прерываний, но не входные и выходные буферные микросхемы, которые являются более частыми источниками неприятностей. Если тест не проходит, причину следует искать или в конфликте адресов/прерываний, или в самой микросхеме UART.
Для более достоверного тестирования рекомендуется использовать внешнюю заглушку, подключаемую к разъему СОМ-порта. В отличие от LРТ-порта у СОМ-порта количество входных сигналов превышает количество выходных, что позволяет выполнить полную проверку всех цепей быстрее и качественней. Заглушка соединяет выход приемника с входом передатчика. Обязательная для всех схем заглушек перемычка RTS-CTS позволяет работать передатчику — без нее символы не смогут передаваться. Выходной сигнал DTR обычно используют для проверки входных линий DSR, DCDnRI.
Рисунок 2.5 - Заглушка для проверки СОМ -портов (Loopback для
Chicklet и Norton Diagnostics)















