рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Описание COM-портов - раздел Компьютеры, Коммуникационные порты Описание Com-Портов. Коммуникационные Порты Компьютеров (Lpt И Com) Широко Ис...

Описание 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). Теперь разберёмся, как читать состояние входов. Как уже говорилось выше, порт возвращает “0”, если на входе “0”, и “N”, если на данном входе “1”. Причём в некоторых случаях (особенно, при работе с LPT) “N” может быть равно сумме кодов ножек, если “1” присутствует не на одном входе.

Осуществляется приём следующим образом: e:=port[b+n] and m; Где: e – переменная типа byte, в которую сохраняют принятое значение. b – адрес БР порта. n – номер подрегистра. m – весовой коэффициент входа (см. таблицу 1). Для проверки этой записи соединим перемычкой выход RTS(7) и вход CTS(8) и запустим приведённый ниже код: (пример 1) var aa, e:word; port, base, data:word; { } aa:=0; base:=$3F8; begin port:=base+4; data:=2; outport(port, aa, data); sleep(10); port:=base+6; e:=inport(port) and 16; port:=base+4; data:=0; outport(port, aa, data); end; Управлять конкретными выводами порта из под Дельфи можно и с помощью API. Это хоть и сложнее, зато такая программа будет работать на любом Windows, в т.ч. на NT, 2000, XP (приведённые выше пример работоспособен лишь в 95/98/МЕ). Список использованной литературы 1) Работа с коммуникационными портами (COM и LPT) в программах для Win32. http://bcb.net.ru/article/hard/index003. html 2) Коммуникационные порты персонального компьютера. http://electronics.org.ua/techinfo/lpt/l pt.htm 3) Основы программирования LPT для DOS и Win9x. http://radiopirat.h11.ru/prog/prog004.ht m 4) Примеры работы с АЦП. http://dikoy44.narod.ru/photoalbum.html 5) Вакуленко А. Программа LPTtest. – Радио, 2004, №8, с. 23,24. 6) Патрик Гёлль. Как превратить ПК в измерительный комплекс. ДМКпресс, 2002г. 7) Фаронов В.В. TurboPascal 7.0 практика программирования, учебное пособие, М изд. Нолидж, 2003 г. 8) Павловская Т.А. Паскаль.

Программирование на языке высокого уровня, учебник, П, 2003 г.

– Конец работы –

Эта тема принадлежит разделу:

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

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Описание COM-портов

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Эта работа не имеет других тем.

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги