Комунікаційні порти

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст
"1-1" Вступ
1.Среда Delphi
2.Работа з комунікаційними портами
2.1. Опис COM-портів
2.2. Структура стандартного COM-порту
"1-1" Список використаної літератури

Введення
У короткому викладі історія мов програмування така: спочатку обчислювальні машини програмувались в машинному коді. Тобто в їх оперативну пам'ять безпосередньо вводили послідовність чисел, які є кодами команд, які процесор може виконати. При цьому програма складалася з періодичним загляданням в таблицю кодів команд процесора і була аж ніяк не наочною.
Потім з'явилася ідея позначити коди якимись короткими, але осмисленими, і тому легко запам'ятовуються словами - мнемоніки, і створити програму, яка б, керуючись таблицею команд, перекладала послідовність мнемонік - мнемокод в послідовність машинних кодів. Таку програму називають асемблером (assembler - складальне пристрій, транслятор, асемблер). Програми стали набагато наочніше, але рішення практичних завдань вимагало написання дуже довгих програм (наприклад, файловий менеджер Volkov Commander має розмір близько 64000 байт).
Тоді з'явилися мови програмування високого рівня. При їх створенні використовували ту обставину, що в програмі часто зустрічаються ділянки однакового коду, що виконують будь-яке одну дію: виведення рядка, запис у файл, обчислення математичної функції й т.д. У мовах високого рівня таким послідовностей коду присвоєні імена, і програма складається на умовному мовою, кожне, зі слів якого замінює десятки, а то й сотні команд процесора. Таким чином, програма стає ще наочніше і коротше. Існує безліч умовних мов високого рівня, для кожного з них написано чимало варіантів програми, що переводить умовний код в послідовність машинних команд. Однією з таких програм є Delphi.

1. Середовище Delphi
Система віртуального об'єктно-орієнтованого програмування Delphi призначена для розробки 32-розрядних додатків Windows. До складу Delphi входить бібліотека VCL (Visual Component Library), що містить компоненти для побудови інтерфейсу додатку, а також структури для зберігання та обробки даних. Бібліотека являє собою ієрархію об'єктів, що має спільного предка - TObject.
Зразковий вид екрану: зверху розташовується головне вікно, що містить меню і панелі інструментів. Панель, яка містить бібліотеку компонентів, називається палітрою. Вона складається з декількох сторінок (вкладок), на яких компоненти згруповані за функціональною ознакою. Зліва розташовується вікно інспектора об'єктів. У його верхній частині розташований список, що розкривається компонентів, що складають програму. Для вибраного об'єкта на двох вкладках відбиваються його властивості (Properties) та події, на які він може реагувати (Events). За допомогою інспектора об'єктів задаються властивості компонентів і обробники подій.
Основну частину екрана займає заготівля форми, що представляє собою вікно майбутнього докладання. Форма призначена для розміщення компонентів. Під нею знаходиться вікно редактора коду, в якому пишеться текст програми.
Процес створення додатка Windows за допомогою Delphi складається з двох основних етапів: віртуального проектування, тобто завдання зовнішнього вигляду програми, та визначення його проведення шляхом написання процедур обробки подій.
Віртуальне проектування полягає в приміщенні компонентів на форму і завданні їх властивостей за допомогою інспектора об'єктів. Найпростіший спосіб розмістити компонент - подвійне клацання на відповідному значку палітри, при цьому компонент розміщується в центрі форми. Потім його можна перемістити і замінити його розміри за допомогою миші. Інспектор об'єктів відображає властивості вибраного в даний момент компонента (він оточений рамкою).
Завдання властивостей виконується або вибором з наявних варіантів, або введенням потрібного значення з клавіатури. Якщо близько імені властивості стоїть значок +, це означає, що властивість є об'єктом, що містить інші властивості. Вони стають доступними за допомогою клацання на «плюсі».
Для визначення поведінки програми необхідно продумати, які дії повинні виконуватися при натисканні на кнопках, введенні тексту, виборі пункту меню і т.д. Заготівля шаблону обробника події викликається подвійним клацанням на полі, розташованому ліворуч від імені відповідної події на вкладці Events інспектора об'єктів, при цьому спливає вікно редактора коду. Для кожного компонента визначений свій набір подій, на які він може реагувати.
Найбільш часто використовувані події:
- OnActivate - при отриманні формою фокусу введення;
- OnClick, OnDbCluck - при одинарному та подвійному клацанні мишею;
- OnClose - при закритті форми;
- OnСreate - при створенні форми;
- OnKeyDown, OnKeyUp - при натисканні та відпусканні будь-якої клавіші та їх поєднань;
- OnKeyPress-при натисканні клавіші, що має код ASCII;
- OnMouseDown, OnMouseUp - при натисканні та відпусканні кнопки миші;
- OnMouseMove - при переміщенні миші;
- OnPaint - при необхідності відтворення форми.
Проектоване за допомогою Delphi додаток зберігатися в декількох файлах. Опис файлів наведено нижче:
-. Dpr - файл проекту. Це головна програма, в якій міститься код ініціалізації, завершення і запускається цикл обробки подій. Файл містить посилання на всі форми і модулі, що входять до складу проекту. Редагувати його вручну не рекомендується (всі зміни в проекті відслідковуються автоматично).
-. Pas - вихідний код модуля або форми. Більшість модулів пов'язані з формами і містять тексти обробників подій елементів, розміщених на формах.
-. Dfm - файл форми. Містить опис зовнішнього вигляду форми і розташованих на ній елементів. Може проглядатися (але не редагуватися) за допомогою середовища Delphi як текстовий файл.
-. 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 Структура стандартного порту
Структура% 20порта3
Рис.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/lpt.htm
3) Основи програмування LPT для DOS і Win9x. http://radiopirat.h11.ru/prog/prog004.htm
4) Приклади роботи з АЦП. http://dikoy44.narod.ru/photoalbum.html
5) Вакуленко А. Програма LPTtest. - Радіо, 2004, № 8, с. 23,24.
6) Патрік Гелль. Як перетворити ПК у вимірювальний комплекс. ДМКпресс, 2002р.
7) Фаронов В.В. TurboPascal 7.0 практика програмування, навчальний посібник, М., вид. Нолидж, 2003 р .
8) Павловська Т.О. Паскаль. Програмування на мові високого рівня, підручник, П, 2003 р .
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
43.7кб. | скачати


Схожі роботи:
Порти Росії
Порти канади і США
Порти пасажирські комплекси і морські вокзали Україні
Основні порти Північно-Західного федерального округу
Комунікаційні канали
Лічильник команд Регістр DPTR Пам`ять Порти
Комунікаційні процеси в менеджменті
IP-телефонія 2 Сучасні комунікаційні
Сучасні інформаційні та комунікаційні технології в дер
© Усі права захищені
написати до нас