Реферат: Коммуникационные порты

-.cfg, .dsk, .dof – файлы настроек компилятора, среды и проекта. Ручное редактирование этих файлов нежелательно.

-.res – файл ресурсов (создается автоматически). Включает значок программы, номер версии и т.д. Дополнять его своими ресурсами запрещается.

-.exe – исполняемый файл созданного приложения.

- ~dp, ~pa, ~df - резервные файлы проекта, модуля и формы. Создаются, если включен режим резервного копирования.

Среда Delphi оснащена мощной и удобной справочной системой. Чтобы вызвать ее, выбираем команду меню Help >Delphi Help или нажимаем клавишу F1 , установив курсор мыши на интересующем элементе.


2. Работа с коммуникационными портами

2.1 Описание COM-портов

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

В то же время в учебно-методической литературе схемотехника и методика применения портов компьютера освещена достаточно слабо. В частности не освещены новые режимы работы параллельных портов, такие как EPP и ECP, используемые в современных компьютерах.

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

Архитектура ПК.

Сначала определимся, что же такое работа на высоком и на низком уровне. Под работой на высоком уровне понимают обращение к порту через ОС и под её контролем.

Дело в том, что в Windows обращение к любому устройству аналогично обращению к одноимённому файлу. То есть, если мы хотим считать данные из порта, например, COM1, то мы должны открыть файл с именем “COM1”. Для этого используются WinAPI функции OpenFile("COM1",,,,,), ReadFile, WriteFile, CreateFile и т.д. Их описание есть в «помощи» любого языка и в соответствующей литературе, в т.ч. и в [1] , по этому мы не будем на них подробно останавливаться. Эти функции являются функциями ОС, а не языка, по этому одинаковы во всех языках программирования. Отличается лишь форма их записи.

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

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

2.2 Структура стандартного порта

Рис.1 Структура стандартного порта.

Этот макет наиболее наглядно представляет структуру стандартного порта ввода/вывода, к которым относятся COM и LPT.

Как видно, порт содержит базовый регистр – это первый этап на пути к нужной ножке из АП. Базовый регистр содержит в себе несколько подрегистров (ПР) (называемых ещё «смещением адреса»). В зависимости от их типа, связь их с БР может быть двусторонней (запись и чтение) или односторонней (запись или чтение).

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

Некоторые ПР вообще не имеют непосредственного отношения к выводам порта, т.к. являются регистрами состояния. Их используют для настройки порта. Например, некоторое количество ножек порта могут работать на передачу/приём. Для того, чтобы установить режим их работы (передача, приём или передача и приём) в соотв. ПР порта записывают определённый код. Ориентируясь на него, контроллер порта устанавливает соотв. режим работы этих ножек.

Каждой ножке в ПР соответствует весовой коэффициент в двоичном коде. Т.е. для того, чтобы выставить “1” на каком то выводе порта, нужно записать в соответствующий ей подрегистр её весовой коэффициент. Напротив, при считывании состояния входной линии порта, порт вернёт не состояние “0” или “1”, а “0” или “N”, где N – весовой коэффициент данной ножки. Возвращение портом “0” означает, что на входе “0”. Возвращение же “N” означает, что на входе “1”.

Указанные действия в языке Паскаль 7.0 выполняет процедура port[]. Формат её записи следующий: port[b+n]:=m; Где:

b – адрес БР порта.

n – номер подрегистра.

m – весовой коэффициент вывода.

Попробуем с её помощью установить “1” на выводе RTS(7) COM порта.

Для этого обратимся к таблице 1 :

Таблица 1. Назначение контактов COM порта (разъём DB-9S.)

Сигнал. Контакт разъёма DB-9S. Направление. Подрегистр. Вес.
TxD 3 Передача. Х Х
RxD 2 Приём. Х Х
DTR 4 Передача. 4 1
DSR 6 Приём. 6 32
RTS 7 Передача. 4 2
CTS 8 Приём. 6 16
DCD 1 Приём. 6 8
RI 9 Приём. 6 64
GND 5 Земля. X X

Как следует из таблицы, выводу RTS соответствует 7 контакт стандартного девятиконтактного COM порта. Он относится к 4 подрегистру и имеет в нём вес равный 2.

Адрес базового регистра, это адрес порта. Для COM1 он равен $3F8 (для COM2 - $2F8, для LPT1 - $378, LPT2 - $278).

К-во Просмотров: 305
Бесплатно скачать Реферат: Коммуникационные порты