Автор: Пользователь скрыл имя, 06 Февраля 2015 в 21:39, курсовая работа
Не смотря на то, что на сегодняшний день прочно вошел в моду USB интерфейс - порт, для радиолюбительских целей LPT порт и поныне остается достаточно востребованным. Ведь на самом деле, не так уж и важно каким образом и через какой порт, будет происходить управление внешними устройствами от компьютера, важен результат.
Введение…………………………………………………………………….......... 3
Глава 1 Обзор литературных источников……………………………………… 4
1.1 Что такое LPT-порт…………..……………………………..………….... 4
1.1.1 Параллельный интерфейс: LPT-порт……………………….. 4
1.1.2 Интерфейс Centronics………………………………………… 5
1.1.3 Традиционный LPT-порт…………………………………….. 6
1.1.4 Функции BIOS для LPT-порта………………………………. 9
1.1.5 Расширения параллельного порта…………………………. 10
1.1.6 Физический и электрический интерфейс………………….. 11
1.1.7Режимы передачи данных…………………………………... 12
1.1.8 Полубайтный режим ввода — Nibble Mode……………… 13
1.1.9 Режим ЕСР………………………………………………….. 20
1.1.10 Развитие стандарта IEEE 1284……………………………. 25
1.1.11 Конфигурирование LPT-портов…………………………... 26
1.1.12 Использование параллельных портов……………………. 27
1.1.13 Неисправности и тестирование параллельных портов….. 29
Глава 2 …………………………………………………………………
Приложение ………………………………………………..
Заключение ……………………………………..
Литература …………………
Министерство образования Республики Беларусь
Учреждение образования
«Гродненский государственный университет им. Янки Купалы»
Физико-технический факультет
Специальность: 1-38 02 01 Информационно-измерительная техника
КУРСОВОЙ ПРОЕКТ
Тема: Приложение для тестирования LPT устрой
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Разработал: ____________________
Руководитель проекта: ____________________
2015
Содержание
Введение…………………………………………………………
Глава 1 Обзор литературных источников……………………………………… 4
1.1 Что такое LPT-порт…………..……………………………..………
1.1.1 Параллельный интерфейс: LPT-порт……………………….. 4
1.1.2 Интерфейс Centronics………………………………………… 5
1.1.3 Традиционный LPT-порт……………………………………..
6
1.1.4 Функции BIOS для LPT-порта……………………………….
9
1.1.8 Полубайтный режим ввода — Nibble Mode……………… 13
ведение
Не смотря на то, что на сегодняшний день прочно вошел в моду USB интерфейс - порт, для радиолюбительских целей LPT порт и поныне остается достаточно востребованным. Ведь на самом деле, не так уж и важно каким образом и через какой порт, будет происходить управление внешними устройствами от компьютера, важен результат. Почему я решил остановиться на изучении LPT порта? Ответ прост, это достаточно доступный и легко осваиваемый в плане программирования порт, для новичков, это пожалуй не плохое практическое руководство по освоению LPT, а в дальнейшем и других портов – интерфейсов. В данной статье, я постараюсь детально ознакомить начинающих радиолюбителей – программистов с принципами программирования LPT порта. Практическое программирование, будет показано опираясь на языки программирования Паскаль и Делфи. От вас требуются, базовые знания языка Паскаль и Делфи, ну и конечно же радиоэлектроники
LPT порт, это то место в компьютере,
куда подключается принтер. Но
туда можно воткнуть ещё много
чего интересного. В том числе
и придуманные вами схемы. У
меня, например, через LPT порт, включался
свет в комнате, реализовано управление
поворотным уст–вом антенны и
много было проведено других
экспериментов (измерение некоторых
параметров радиосхем с
Так выглядят разъемы на компьютере и соединительные разъемы.
Параллельный интерфейс: LPT-порт
Порт параллельного интерфейса был введен в PC для подключения принтера —LP'T-порт (Line PrinTer — построчный принтер).
Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 386h, 378h и 278h. Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов.
BIOS поддерживает до четырех LPT-портов (LPT1-LPT4) своим сервисом — прерыванием INT 17h, обеспечивающим через них связь с принтерами по интерфейсу Centronics. Этим сервисом BIOS осуществляет вывод символа, инициализацию интерфейса и принтера, а также опрос состояния принтера.
Интерфейс Centronics
Понятие Centronics относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему, устанавливаемому на принтерах. Назначение сигналов приведено в табл. 1.
Таблица 1.
Сигналы интерфейса Centronics
Сигнал |
I/O* |
Контакт |
Назначение |
Strobe |
I |
1 |
Строб данных. Данные фиксируются по низкому уровню сигнала |
Data [0:7] |
I |
2-9 |
Линии данных. Data 0 (контакт 2) — младший бит |
Actt |
0 |
10 |
Acknowledge — импульс подтверждения приема байта. |
Busy |
0 |
11 |
Занято. Прием данных возможен только при низком уровне сигнала |
PaperEnd |
0 |
12 |
Высокий уровень сигнализирует о конце бумаги |
Select |
0 |
13 |
Сигнализирует о включении принтера |
Auto LF# |
I |
14 |
Автоматический перевод строки. |
Еггог |
0 |
32 |
Ошибка: конец бумаги, состояние OFF-Line или внутренняя ошибка принтера |
Imt# |
I |
31 |
Инициализация |
Slot In# |
I |
36 |
Выбор принтера (низким уровнем). При высоком уровне принтер не воспринимает остальные сигналы интерфейса |
GND |
- |
19-30 33 |
Общий провод интерфейса |
* I/O |
Задает |
Направле-ние |
(вход/выход) применительно к принтеру. |
Интерфейс Centronics поддерживается большинством принтеров с параллельным интерфейсом, его отечественным аналогом является интерфейс ИРПР-М.
Традиционный LPT-порт
Традиционный порт SPP (Standard Parallel Port) является однонаправленным портом, на базе которого программно реализуется протокол обмена Centronics. Порт обеспечивает возможность вырабатывания запроса аппаратного прерывания по импульсу на входе АСК#. Сигналы порта выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом. Название и назначение сигналов разъема порта (табл. 2) соответствуют интерфейсу Centronics.
Таблица 2.
Разъем стандартного LPT-порта
Контакт DB-25S |
Провод шлейфа |
Назначение | ||
I/O* |
Reg.Bit** |
Сигнал | ||
1 |
1 |
0/1 |
CR: 0\ |
Strobe# |
2 |
3 |
0(1) |
DR:0 |
Data 0 |
3 |
5 |
0(1) |
DR: 1 |
Data 1 |
4 |
7 |
0(1) |
DR: 2 |
Data 2 |
5 |
9 |
0(1) |
DR:3 |
Data 3 |
6 |
11 |
0(1) |
DR: 4 |
Data 4 |
7 |
13 |
0(1) |
DR:5 |
Data 5 |
8 |
15 |
0(1) |
DR:6 |
Data 6 |
9 |
17 |
0(1) |
DR:7 |
Data 7 |
10 |
19 |
I |
SR: 6 |
Ack# |
11 |
21 |
I |
SR: 7\ |
Busy |
12 |
23 |
I |
SR: 5 |
PaperEnd |
13 |
25 |
I |
SR: 4 |
Select |
14 |
2 |
0/1 |
CR: 1\ |
Auto LF# |
15 |
4 |
I |
SR: 3 |
Error# |
16 |
6 |
0/1 |
CR: 2 |
Init# |
17 |
8 |
0/1 |
CR:3\ |
Select In# |
18-25 |
10, 12, 14, 16 |
18, 20, 22, 24, 26 |
- |
- |
* I/O задает направление передачи (вход/выход) сигнала порта; 0/I обозначает выходные линии, состояние которых считывается при чтении из соответствующих портов вывода.
** Символом «\» отмечены инвертированные сигналы (1 в регистре соответствует низкому уровню линии).
*** Вход Ack# соединен резистором (10 кОм) с питанием +5 В.
Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам в пространстве ввода/вывода, начиная с базового адреса порта (BASE).
Data Register (DR) — регистр данных, адрес= BASE. Данные, записанные в этот порт, выводятся на выходные линии интерфейса. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях.
Status Register (SR) — регистр состояния, представляющий собой 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7), адрес= BASE+1. Бит SR.7 инвертируется — низкому уровню сигнала соответствует единичное значению бита в регистре, и наоборот.
Назначение бит регистра состояния (в скобках даны номера контактов разъема):
SR.7—Busy — инверсные отображения состояния линии Busy (11);
SR.6 —АСК (Acknowledge) — отображения состояния линии Ack# (10).
SR.5 —РЕ (Paper End) — отображения состояния линии Paper End (12).
SR.4—Select — отображения состояния линии Select (13). Единичное значение соответствует cигналу о включении принтера.
SR.3—Error — отображения состояния линии Error (15).
SR.2 — PIRQ — флаг прерывания по сигналу Ack# (только для порта PS/2). Бит обнуляется, если сигнал Ack# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния.
SR[1:0] — зарезервированы.
Control Register (CR) — регистр управления, адрес=ВА5Е+2. Как и регистр данных, этот 4-битный порт вывода допускает запись и чтение (биты 0-3), но его выходной буфер обычно имеет тип открытый коллектор. Это позволяет более корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты О, 1, 3 инвертируются — единичному значению в регистре соответствует низкий уровень сигнала, и наоборот.
Назначение бит регистра управления:
CR[7:6] — зарезервированы.
CR.5 — Direction — бит управления направлением передачи (только для портов PS/2). Запись единицы переводит порт данных в режим ввода.
CR.4 —ACKINTEN (Ack Interrupt Enable) — единичное значение разрешает прерывание по спаду сигнала на линии Ackff — сигнал запроса следующего байта.
CR.3 — Select In — единичное значение бита соответствует низкому уровню на выходе Selecting (17) — сигналу, разрешающему работу принтера по интерфейсу Centronics.
CR.2 — Init — нулевое значение бита соответствует низкому уровню на выходе Imt# (16) — сигнал аппаратного сброса принтера.
CR.1 — Auto LF — единичное значение бита соответствует низкому уровню на выходе Auto LF# (14) — сигналу на автоматический перевод строки (LF — Line Feed) по приему байта возврата каретки (CR — Carriage Return).
CR.O —Strobe — единичное значение бита соответствует низкому уровню на выходе Strobeff (1) — сигналу стробирования выходных данных.
Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (АСК#) при установке CR.4=1. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта.
Процедура вывода байта по интерфейсу Centronics через стандартный порт включает следующие шаги (в скобках приведено требуемое количество шинных операций процессора):
Вывод байта в регистр данных (1 цикл IOWR#).
Ввод из регистра состояния и проверка готовности устройства (бит SR.7 — сигнал BUSY).
По получении готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается (2 цикла lOWRff).
Стандартный порт сильно асимметричен — при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена — Nibble Mode. В этом режиме, называемым также и Hewlett Packard Bitronics, одновременно передаются 4 бита данных, пятая линия используется для квитирования.
Функции BIOS для LPT-порта
BIOS обеспечивает поддержку LPT-порта, необходимую для организации вывода по интерфейсу Centronics.
В процессе начального тестирования POST BIOS проверяет наличие параллельных портов по адресам ЗВСЬ, 378h и 278h и помещает базовые адреса обнаруженных портов в ячейки BIOS DATA AREA 0:0408h, 040Ah, 040СП, 040ЕП. Эти ячейки хранят адреса портов с логическими именами LPT1-LPT4. В ячейки 0:0478, 0479, 047А, 047В заносятся константы, задающие выдержку тайм-аута для этих портов.
Поиск портов обычно ведется по базовому адресу. Если считанный байт совпал с записанным, считается, что найден LPT-порт, и его адрес помещают в ячейку BIOS DATA AREA. Адрес порта LPT4 BIOS самостоятельно установить не может, поскольку в списке стандартных адресов поиска имеются только три вышеуказанных.
Обнаруженные порты инициализируются — записью в регистр управления формируется и снимается сигнал Initff, после чего записывается значение 00h, соответствующее исходному состоянию сигналов интерфейса.
Программное прерывание BIOS I NT 17h обеспечивает следующие функции поддержки LPT-порта:
00h — вывод символа из регистра AL по протоколу Centronics. Данные помещаются в выходной регистр и после готовности принтера формируется строб. 01h — инициализаия интерфейса и принтера.02h — опрос состояния принтера.
При вызове INT 17h номер функции задается в регистре АН, номер порта — в регистре DX (0 — LPT1, 1 — LPT2...). При возврате после любой функции регистр АН содержит код состояния — биты регистра состояния SR[7:3] (биты 6 и 3 инвертированы) и флаг тайм-аута в бите 0. Флаг тайм-аута устанавливается при неудачной попытке вывода символа.