Розробка алгоритму та програми

Аналіз інтерфейсів COM

 

Послідовний та паралельний порти– забезпечують підключення до ПК найрізноманітніших периферійних пристроїв, таких, як модем, принтер, сканер, маніпулятор "миша” та інші. Часто до портів підключають різні вимірювальні прилади, датчики. Існують порти двох типів - послідовні (serial ports) і паралельні.

Послідовний інтерфейс для передачі даних в одну сторону використовує одну сигнальну лінію, по якій інформаційні біти передаються один за одним послідовно. Такий спосіб передачі і визначає назву інтерфейсу і порту, що його реалізовує. Ці назви відповідають англійським термінам Serial Interface і Serial Port. Послідовна передача даних може здійснюватися як в асинхронному, так і синхронному режимах.

Назва порту вказує на його основне призначення — підключення комунікаційного устаткування (наприклад, модему) для зв'язку з іншими комп'ютерами, мережами і периферійними пристроями. До порту можуть безпосередньо підключатися і периферійні пристрої з послідовним інтерфейсом: принтери, плоттери, термінали та інші. СОМ-порт широко використовується для підключення миші, а також організації безпосереднього зв'язку двох комп'ютерів. До СОМ-порту підключають і електронні ключі.

Порти можуть виробляти апаратні переривання IRQ4 (звичайно використовуються для COM1 і COM3) і IRQ3 (для COM2 і COM4). Крім того, можливе використовування ліній переривань IRQ11 (замість IRQ4) і IRQ10 (замість IRQ3). Можливість використання однієї лінії запиту, що розділяється декількома портами (або її розділення з іншими пристроями) залежить від реалізації апаратного підключення і програмного забезпечення.

При використанні портів, встановлених на шину ISA, переривання, що розділяються, зазвичай не працюють.

Існує ряд родинних міжна

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
родних стандартів: RS-232C, RS-423A, RS-422A і RS-485.

Найбільше поширення в PC отримав найпростіший з цих – стандарт RS-232C. В промисловій автоматиці широко застосовується RS-485, а також RS-422A, що зустрічається і в деяких принтерах.

Інтерфейс RS-232C призначений для підключення апаратури, що передає або приймає дані (КОД – кінцеве обладнання даних або АПД – апаратура передачі даних), до кінцевої апаратури каналів даних (АКД). В ролі АПД може виступати комп'ютер, принтер, плотер і інше периферійне обладнання. Цій апаратурі відповідає абревіатура DTE – Data Terminal Equipment. В ролі АКД звичайно виступає модем, цій апаратурі відповідає абревіатура DСЕ – Data Communication Equipment. Кінцевою метою підключення є з'єднання двох пристроїв DTE, повна схема з'єднання наведена на рис. 1.1. Інтерфейс дозволяє виключити канал віддаленого зв'язку разом з парою пристроїв DTE (модемів), з'єднавши пристрої безпосередньо за допомогою нуль-модемного кабелю (рис. 1.2).

 

Рис. 1.1. Повна схема з'єднання по RS-232C

 

Рис. 1.2. З'єднання по RS-232C нуль-модемним кабелем

 

 

Стандарт описує управляючі сигнали інтерфейсу, пересилку даних, і типи роз'ємів. Стандарт описує асинхронний і синхронний режими обміну, але СOM-порти підтримують тільки асинхронний.

СОМ-порти широко застосовуються для підключення різних периферійних і комунікаційних пристроїв, зв'язку з технологічним устаткуванням, об'єктами управління і спостереження, програматорами, внутрішньосхемними емуляторами і іншими пристроями по протоколу Rs-232c. СОМ-порт може функціонувати і як двонаправлений інтерфейс, в якого є 3 програмно-керованих вихідних лінії і 4 програмно-читаних вхідних лінії з двуполярними сигналами.

СОМ-порти найчастіше застосовують для підключення маніпуляторів (миша, трекбол). В цьому випадку порт використовується в режимі послідовного введення. Миша з послідовним інтерфейсом — Serial Mouse — може підключатися до будь-якого справного порту. Для підключення зовнішніх модемів потрібний повний (9-проводний) кабель АПД-АКД. Для зв'язку двох комп'ютерів, віддалених один від одного на невелику відстань, використовують і безпосереднє з'єднання їх СОМ-портів нуль-модемним кабелем. СОМ-порт придатний і для підключення електронних ключів (security devices), призначених для захисту від неліцензованого використання ПО. Ці пристрої можуть бути як «прозорими», тобто що забезпечують можливість підключення периферії до цього порту, так і що повністю займають порт.

 

Аналіз інтерфейсів USB

 

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
USB (Universal Serial Bus - у перекладі з англ. мови "Універсальна послідовна шина") - послідовний інтерфейс передачі даних. Кабель USB (до 2.0 включно) складається з 4 мідних провідників - 2 провідника живлення та 2 провідника даних у витій парі - і заземленя.

Кабелі USB орієнтовані, тобто мають фізично різні наконечники «до пристрою» і «до хосту». Можлива реалізація USB пристрою без кабелю, з вбудованим в корпус наконечником «до хосту». Можливо і нероз'ємне вбудовування кабелю в пристрій, як в мишу. Існують (хоча і заборонені стандартом) і пасивні USB подовжувачі, які мають роз'єми «від хоста» і «до хосту». За допомогою кабелів формується інтерфейс між USB-пристроями і USB-хостом. В якості хоста виступає програмно-керований USB-контролер, який забезпечує функціональність всього інтерфейсу. Для підключення зовнішніх пристроїв до USB-концентратора в ньому передбачені порти, що закінчуються роз'ємами. До роз'ємів за допомогою кабелю можуть підключатися USB-пристрої, або USB-хаби нижніх рівнів. Такі хаби - активні електронні пристрої (пасивних не буває), обслуговують кілька власних USB- портів. За допомогою USB - концентраторів допускається до п'яти рівнів каскадування, не рахуючи кореневого.

USB - інтерфейс дозволяє з'єднати між собою і два комп'ютери, але це вимагає наявності спеціальної електроніки, що емулює Ethernet-адаптер з драйверної підтримкою з обох сторін.

На логічному рівні пристрій USB підтримує транзакції прийому і передачі даних. Кожен пакет кожної транзакції містить в собі номер кінцевої точки (endpoint) на пристрої. При підключенні пристрою драйвери в ядрі ОС читають з пристрою список кінцевих точок і створюють керуючі структури даних для спілкування з кожною кінцевою точкою пристрою. Сукупність кінцевої точки і структур даних в ядрі ОС називається каналом. Кінцеві точки, а значить, і канали, відносяться до одного з 4 класів - потоковий (bulk), керуючий (control), ізохронний (isoch) і переривання (interrupt). Низькошвидкісні пристрої, такі, як миша, не можуть мати ізохронні і потокові канали.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  

Керуючий канал призначений для обміну з пристроєм короткими пакетами «питання - відповідь». Будь-який пристрій має керуючий канал 0, який дозволяє програмному забезпеченню ОС прочитати коротку інформацію про пристрій, в тому числі коди виробника і моделі, що використовуються для вибору драйвера, і список інших кінцевих точок.

Канал переривання дозволяє доставляти короткі пакети і в тому, і в іншому напрямку, без отримання на них відповіді/підтвердження, але з гарантією часу доставки - пакет буде доставлений не пізніше ніж через N мілісекунд. Наприклад, використовується в пристроях введення (клавіатури / миші / джойстики ).

Ізохронний канал дозволяє доставляти пакети без гарантії доставки і без відповідей / підтверджень, але з гарантованою швидкістю доставки в N пакетів на один період шини (1 КГц у low і full speed , 8 КГц у high speed). Використовується для передачі аудіо-та відеоінформації .

Потоковий канал дає гарантію доставки кожного пакета, підтримує автоматичне призупинення передачі даних по небажанню пристрої (переповнення або спустошення буфера), але не дає гарантій швидкості і затримки доставки. Використовується, наприклад, в принтерах і сканерах.

Час шини ділиться на періоди, на початку періоду контролер передає всієї шині пакет «початок періоду». Далі протягом періоду передаються пакети переривань, потім ізохронні в необхідній кількості, в час, що залишився в періоді передаються керуючі пакети і в останню чергу потокові .

Активною стороною шини завжди є контролер, передача пакета даних від пристрою до контролера реалізована як коротке питання контролера і довге, що містить дані (відповідь пристрою). Розклад руху пакетів для кожного періоду шини створюється спільним зусиллям апаратури контролера і ПО драйвера, для цього багато контролери використовують вкрай складний DMA зі складною DMA-програмою, формованої драйвером.

Розмір пакета для кінцевої точки є вшита в таблицю кінцевих точок пристрою константа (зміні не підлягає). Він вибирається розробником пристрою з числа тих, що підтримуються стандартом U

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
SB.

Пристрої, які традиційно використовують СОМ-порт, рекомендується переводити на послідовні шини USB і Firewire. На сучасних системних платах присутні два СОМ-порти: СОМ1 виводиться на зовнішній роз’єм, а CОМ2 використовується для інфрачервоного

При асинхронній передачі кожному байту передує старт-біт, що сигналізує приймачу про початок чергового посилання, за яким слідують біти даних: і, можливо, біт паритету (контролю парності). Завершує посилання стоп-біт, гарантуючий певну витримку між сусідніми посиланнями (рис. 1.3). Старт-біт наступного відправленого байта може посилатися у будь-який момент після закінчення стоп-біта, тобто між передачами можливі паузи довільної тривалості. Старт-біт, що має завжди строго певне значення (логічний 0), забезпечує простий механізм синхронізації приймача по сигналу від передавача. Мається на увазі, що приймач і передавач працюють на одній швидкості обміну, що виміряється в кількості переданих біт в секунду. Внутрішній генератор синхронізації приймача використовує лічильник дільника опорної частоти, що обнуляється в момент прийому початку старт-біта. Цей лічильник генерує внутрішні строби, по яких приймач фіксує подальші біти, що приймаються. В ідеалі ці строби розташовуються в середині бітних інтервалів, що забезпечує можливість прийому даних і при деякій різниці швидкостей приймача і передавача. Неважко помітити, що при передачі 8 біт даних, одного контрольного і одного стоп-біта гранично допустима різниця швидкостей, при якій дані будуть розпізнані вірно, не може перевищувати 5%. З урахуванням фазових спотворень (затягнутих фронтів сигналу) і дискретності роботи внутрішнього лічильника синхронізації, реально допустимо менше відхилення частот. Чим менше коефіцієнт розподілу опорної частоти внутрішнього генератора (тобто чим вище частота передачі), тим більше похибка прив'язки стробів до середини бітного інтервалу, і отже, вимоги до узгоджено

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
сті частот більш суворі. Також, чим вище частота передачі, тим більше вплив спотворень фронтів на фазу сигналу, що приймається. Така синхронна дія цих двох чинників приводить до підвищення вимог узгодженості частот приймача і передавача із зростанням частоти обміну.

 

Рис. 1.3. Формат асинхронної передачі

 

Формат асинхронного посилання дозволяє виявляти можливі помилки передачі:

· Якщо прийнятий перепад, що сигналізує про початок посилання, а по стробуванню старт-біта зафіксований рівень логічної одиниці, старт-біт вважається помилковим і приймач знову переходить в стан очікування. Про цю помилку формату приймач може і не повідомляти.

· Якщо в час, відведений під стоп-біт, знайдений рівень логічної одиниці, фіксується помилка стоп-біта (теж помилка формату).

· Якщо застосовується контроль парності, то після посилання біту даних (перед стоп-бітом) передається контрольний біт. Цей біт доповнює кількість одиничних біт даних до парної або непарної залежно від прийнятої угоди. Прийом байта з невірним значенням контрольного біта при включеному контролі паритету приводить до фіксації помилки прийнятих даних.

Для асинхронного режиму прийнятий ряд стандартних швидкостей обміну: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
9600, 19200, 38400, 57600 і 115200 біт/с. Кількість біт даних може складати 5, 6, 7 або 8 (5- і 6-бітні формати малопоширені). Кількість стоп-бітів може бути 1, 1,5 і 2. Асинхронний обмін в PC реалізується за допомогою СOM-порту з використанням протоколу RS-232C.

Синхронний режим передачі передбачає постійну активність каналу зв'язку. Посилання починається з синхробайту, за яким впритул слідує потік інформаційних біт. Якщо у передавача немає даних для передачі, він заповнює паузу безперервним посиланням байтів синхронізації. Очевидно, що при передачі великих масивів даних невигідні витрати на синхронізацію в даному режимі обміну будуть нижчими, ніж в асинхронному. Проте в синхронному режимі необхідна зовнішня синхронізація приймача з передавачем, оскільки навіть мале відхилення частот приведе до помилки, що швидко нагромаджується, і спотворення даних, що приймаються.

Нормальна послідовність управляючих сигналів для випадку комутації з СОМ-портом наведена на наступному малюнку (Рис. 1.4). Позитивному рівню відповідає логічний стан «увімкнено», а негативному – «вимкнено».


Рис. 1.4 - Послідовність управляючих сигналів

 

Розглянемо цю послідовність сигналів, що управляють:

1. Установкою сигналу DTR комп'ютер вказує на бажання використовувати модем.

2. Установкою сигналу DSR модем сигналізує про свою готовність до установки з'єднання.

3. Сигналом RTS комп'ютер запрошує дозвіл на передачу і заявляє про свою готовність на прийом даних від модему.

4. Сигналом CTS модем повідомляє про свою готов

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
ність до прийому даних від комп'ютера і передачі їх в лінію.

5. Зняттям сигналу CTS модем сигналізує про неможливість подальшого прийому (наприклад, буфер заповнений) — комп'ютер повинен припинити передачу даних.

6. Відновленням сигналу CTS модем дозволяє комп'ютеру продовжити передачу (у буфері з'явилося місце).

7. Зняття сигналу RTS може означати як заповнення буфера комп'ютера (модем повинен припинити передачу даних в комп'ютер), так і відсутність даних для передачі в модем. Зазвичай в цьому випадку модем припиняє пересилку даних в комп'ютер.

8. Модем підтверджує зняття сигналу RTS скиданням сигналу CTS.

9. Комп'ютер повторно встановлює сигналу RTS для відновлення передачі.

10. Модем підтверджує готовність до цих дій.

11. Комп'ютер вказує на завершення обміну.

12. Модем відповідає підтвердженням.

13. Комп'ютер знімає сигнал DTR, що зазвичай означає необхідність розриву з'єднання («повісити трубку»).

14. Модем скиданням сигналу DSR повідомляє про розрив з'єднання.

Зовнішня синхронізація можлива або за допомогою окремої лінії для передачі сигналу синхронізації, або з використанням самосинхронізуючого кодування даних (наприклад, NRZ), при якому на приймальній стороні з прийнятого сигналу можуть бути виділені і імпульси синхронізації. У будь-якому випадку синхронний режим вимагає або дорогих ліній зв'язку, або дороговартісного обладнання (а зазвичай, і одного, і іншого). Для PC існує спеціальна плата – адаптери SDLC, що підтриму

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
ють синхронний режим обміну. Вони використовуються в основному для зв'язку з великими машинами (mainframes) IBM і в даний час мало поширені (їх витіснили менш дорогі і більш ефективні засоби комунікацій). З синхронних адаптерів в даний час частіше застосовуються адаптери інтерфейсу V.35.

Розробка USB підтримувалася фірмами Intel, Microsoft, Philips, US Robotics. USB став «загальним знаменником» під трьома не пов'язаними один з одним прагненнями різних компаній. Функції:

• Розширення функціональності комп'ютера. На той момент для підключення зовнішніх периферійних пристроїв до персонального комп'ютера використовувалося кілька «традиційних» (англ. legacy) інтерфейсів ( PS/2, послідовний порт, паралельний порт, порт для підключення джойстика, SCSI), і з появою нових зовнішніх пристроїв розробляли і новий роз'єм.

• Підключити до комп'ютера мобільний телефон. У той час мобільні мережі переходили на цифрову передачу голосу, і жоден з наявних інтерфейсів не годився для передачі з телефону на комп'ютер як мови, так і даних.

• Простота для користувача. Старі інтерфейси (наприклад , послідовний (COM) і паралельний (LPT) порти) були вкрай прості для розробника, але не відповідали вимогам специфікацій «Plug and Play». Були потрібні нові механізми взаємодії комп'ютера з низькошвидкісні та середньошвидкісних зовнішніми пристроями - можливо, більш складні для конструкторів, але надійні, дружні і придатні до «гарячого » підключення.

Підтримка USB вийшла у вигляді патчу до Windows 95, надалі вона увійшла в стандартну поставку Windows 98. У перші роки виходу USB пристроїв було мало, тому шину жартома називали «Useless s

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
erial bus» - «марна послідовна шина». Втім, виробники швидко усвідомили користь USB, і вже до 2000 року більшість принтерів і сканерів працювали з новим інтерфейсом.

Hewlett-Packard, Intel, Lucent (нині Alcatel-Lucent ), Microsoft, NEC і Philips спільно виступили з ініціативою щодо розробки більш швидкісний версії USB. Специфікація USB 2.0 була опублікована в квітні 2000 року, і в кінці 2001 року ця версія була стандартизована USB Implementers Forum. USB 2.0 є зворотно сумісною з усіма попередніми версіями USB.

Слід зазначити , що на початку 2000-х років корпорація Apple віддавала пріоритет шині FireWire , в розробці якої вона брала активну участь. Ранні моделі iPod були оснащені тільки інтерфейсом FireWire , а USB відсутній. Згодом компанія відмовилася від FireWire на користь USB, залишивши в деяких моделях FireWire тільки для підзарядки. Однак, клавіатури і миші, починаючи з другої половини 90-х років, мали інтерфейс USB.

У середині 2000-х років BIOS'и комп'ютерів масового сегмента почали підтримувати USB (підтримка USB в корпоративному сегменті почалася з середини 90-х). Це дозволило завантажувати з флеш-дисків, наприклад, для перевстановлення ОС, пропала потреба в PS/2-клавіатурі. Сучасні материнські плати підтримують до 20 USB - портів. У сучасних ноутбуках COM і LPT портів немає, все частіше з'являються настільні комп'ютери без COM- портів.

Поки відбувалося розповсюдження USB - портів другої версії, виробники зовнішніх жорстких дисків вже «вперлися» в обмеження USB 2.0 - і по струму, і за швидкістю. Знадобився новий стандарт, який і вийшов у 2008 році. Укластися в старі 4 дроти не вдалося, додали 5 нових проводів. Перші материнські плати з підтримкою USB 3.0 вийшли в 2010 році. На початок 2012 року USB 3.0 масово не підтримується пристроями, що запам'ятовують і материнськими платами. Однак виробники USB-накопичувачів вже почали поставляти на ринок пристрої, що п

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
ідтримують USB 3.0. Також є плати розширення, що додають підтримку USB 3.0 в старих комп'ютерах.

Формат асинхронної посилки дозволяє виявляти можливі помилки передачі: помилковий старт-біт, втрачений стоп-біт, помилку паритету. Контроль формату дозволяє виявляти обрив лінії: при цьому приймаються логічний нуль, який спочатку трактується як старт-біт, і нульові біти даних потім спрацьовує контроль стоп-біта.

Для асинхронного режиму прийнятий ряд стандартних швидкостей обміну: 50, 75, 100, 150, 300, 600, 1200, 2400, 4800, 9600, 19 200, 38 400, 57 600 і 115 200 біт/с. Інколи замість одиниці виміру «біт/с» використовують «бод» (baud), але при розгляді двійкових сигналів, які передаються - це некоректно. У бодах прийнято вимірювати частоту зміни стану лінії, а при недвійковому способі кодування (широко вживаному в сучасних модемах) в каналі зв'язку швидкості передачі біт (вимірювана в бітах в секунду) і зміни сигналу (бод) можуть відрізнятися у декілька разів.

Кількість бітів даних може складати 5, 6, 7 або 8 (5- і 6-бітові формати поширені трохи). Кількість стоп-бітів може бути 1, 1,5 або 2 («півтора біта» означає лише тривалість стопового інтервалу).

Асинхронний режим є байт-орієнтованим (символьно-орієнтованим): мінімальна одиниця інформації, що пересилається, — байт (символ). На відміну від нього синхронний режим (не підтримуваний СОМ-портами) є біт-орієнтованим — кадр, що пересилається по ньому, може мати довільну кількість бітів.

Для управління потоком даних (flow control) можуть використовуватися два варіанти протоколу — апаратний RTS/CTS і програмний XON/XOFF. Інколи управління потоком плутають з квитуванням. Квитування (handshaking) має на увазі посилку повідомлення про здобуття елементу, тоді як управління потоком передбачає посилку повідомлення про можливість або неможливість подальшого прийому даних. Квитування характерне для паралельних інтерфейсів його вживання може позбавити від необхідності управління потоком.

Програмний протокол управління потоком X

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
ON/XOFF (Рис. 1.5) передбачає наявність двонаправленого каналу передачі даних. Працює протокол таким чином: якщо пристрій, що приймає дані, виявляє причини, по яких він не може їх далі приймати, пристрій по зворотному послідовному каналу посилає відповідний байт-символ. Протилежний пристрій, прийнявши цей символ, припиняє передачу. Коли приймаючий пристрій знову стає готовим до прийому даних, воно посилає новий символ, прийнявши котрий протилежний пристрій відновлює передачу.



Рис. 1.5 – Програмне управлыння потоком XON/XOFF

 

Перевага програмного протоколу полягає у відсутності необхідності передачі сигналів інтерфейсу, що управляють, — кабелю для двостороннього обміну досить мати всього 3 дроти. Недоліком, окрім необхідності буфера і більшого часу реакції (що знижує загальну продуктивність каналу із-за чекання сигналу XON), є складність реалізації повнодуплексного режиму обміну. В цьому випадку з потоку даних, що приймаються, повинні виділятися (і оброблятися) символи управління потоком, що обмежує набір передаваних символів або вимагає додаткових хитрощів в плані кодування.

СОМ-порти підтримуються сервісом Int 14h BIOS, який забезпечує наступні функції:

1) ініціалізацію (установку швидкості обміну і формату посилок, заданих регістром AL; заборона джерел переривань). На сигнали DTR і RTS впливу не надає (після апаратного скидання вони пасивні);

2) введення і виведення символу без апаратних переривань з контролем тайм-ауту. Активуються сигнали DTR і RTS;

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  

3) опит стану модему і лінії. Виявлені порти ініціалізувалися на швидкість обміну 2400 біт/с, 7 біт даних з контролем на парність (even), 1 стоп-біт.

Сам роз’єм з всіма його перева

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
гами не зміг би завоювати властиву йому сьогодні популярність без широкої підтримки на рівні платформи, що і забезпечила компанія Intel, реалізувавши підтримку USB у своєму чіпсеті Intel 440FX для Pentium Pro і Pentium II. Але масштабному визнанню інтерфейсу USB все ще заважала відсутність його підтримки в операційних системах Microsoft Windows 95 і Windows NT 4.0. Та і самих периферійних пристроїв з підключенням по шині USB ще було достатньо мало. Все це безпосередньо впливало на швидкість просування нового інтерфейсу.

Перша запропонована специфікація USB 1.0 мала швидкість передачі 12 Мбіт/с та ряд недоліків. На сьогодні інтерфейс USB став цікавий, як користувачам, так і розробникам периферійного обладнанні, з виходом в 1998 році оновленої специфікації Universal Serial Bus. Головною зміною у версії 1.1 була поява передачі по перериванню, ця можливість стала вирішальною для використання цього інтерфейсу при підключенні пристроїв введення, таких як миші і клавіатури. Але основний недолік стандарту USB 1.1 його пропускна здатність так і залишився незмінним. Швидкість передачі залишилася на рівні 1,5 Мбіт/с у низькошвидкісному режимі та 12 Мбіт/с на повній швидкості.

Дійсно вагомим і основним у розвитку інтерфейсу USB став вихід в світ у 2000 році специфікації High-Speed USB 2.0. Вона дозволила збільшити пропускну здатність шини в 40 разів - до 480 Мбіт/с у високошвидкісному режимі. Таке перевтілення ніяк не торкнулося сумісності з попередніми реалізаціями USB. Ця не менш важлива особливість нової специфікації дозволила забезпечити вже випущеній і розробленій під цей роз’єм периферії повну працездатність з новим роз’ємом USB 2.0.

Пристрої, що підтримують стандарт USB 2.0, почали масово скоряти ринок вже у 2002 році, що міцно закріпило цей інтерфейс як шину передачі даних для зовнішніх пристроїв. Забезпечувана новою специфікацією пропускна здатність в 480 Мбіт/с була повністю затребувана в рішеннях, що вимагають передачі великої кількості даних: флеш-носіях, зовнішніх накопичувачах, MP 3-плеєрах, смартфонах і цифрових камерах.

Тільки з виходом специфікації USB 2.0 вдалося повноцінно замінити послідовний і паралельний інтерфейси. Зараз ці старі роз’єми залишилися тільки на старих моделях периферії або на спеціалізованих рішеннях, особливості конструкції яких просто не дозволяють перейти на інший роз’єм комунікації.

Сучасні пристрої зберігання даних вже давно забезпечують швидкість читання/запису більшу, ніж специфікація USB 2.0, що змусило розробників замислитися про пропозицію ринку ще більш швидкої шини передачі даних. Для цих цілей і був розроблений стандарт SuperSpeed USB 3.0, що забезпечує збільшену вдесятеро пропускну здатності USB шини.

У 2008 році на USB Implementers Forum була остаточно затверджена специфікація стандарту USB 3.0. Головним завданням нової реалізації стало збільшення пропускної здатності інтерфейсу. Для забезпечення такої потреби у швидкому каналі передачі інформації і був спроектований і представлений користувачу інтерфейс USB 3.0. Його реальна пропускна здатністю в 5 Гбіт/с відповідає 500 МБ/с. Такі можливості втричі перекривають сучасні потреби, що дає новій специфікації перспективи на існування.


Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  


2 Аналіз можливостей програ

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
много забезпечення по вводу/виводу при роботі з послідовними портами.

 

Ввід/вивід, введення-виведення (англ. I/O, input/output) в інформатиці — взаємодія між обробником інформації (наприклад, комп'ютер) і зовнішнім світом, який може представляти як людина, так і будь-яка інша система обробки інформації. Введення — сигнал або дані, отримані системою, а вивід — сигнал або дані, надіслані нею (або з неї). Термін також може використовуватися як позначення (або доповнення до позначення) певної дії: «виконувати введення / виведення» означає виконання операцій введення або виведення. Пристрої введення-виведення використовуються людиною (або іншою системою) для взаємодії з комп'ютером. Наприклад, клавіатури і миші — спеціально розроблені комп'ютерні пристрої введення, а монітори та принтери — комп'ютерні пристрої виводу. Пристрої для взаємодії між комп'ютерами, як модеми та мережеві карти, зазвичай служать пристроями введення і виведення одночасно.

Варто відзначити, що призначення пристрою як пристрою введення або виведення залежить від перспективи. Миші та клавіатури приймають фізичну дію, здійснювану людиною-користувачем (до речі, щодо нього це будуть дії з виведення інформації), і перетворює його в сигнали, зрозумілі комп'ютеру. Виведення інформації з цих пристроїв є введенням її в комп'ютер. Аналогічно, принтери та монітори отримують на вході сигнали, які виводить комп'ютер. Потім вони перетворять ці сигнали в такий вигляд, який людина зможе побачити чи прочитати. Для людей-користувачів процес читання або перегляду подібних варіантів представлення інформації є введенням або отриманням інформації.

У комп'ютерній архітектурі об'єднання процесора і основної пам'яті (тобто пам'яті, з якої процесор може читати і записувати в неї прямо за допомогою особливих інструкцій) становить «мозок» комп'ютера, і з цієї точки зору, будь-який обмін інформацією з цим об'єднанням, наприклад, з дисковим накопичувачем, має на увазі введення-виведення. Процесор і його супутні електронні кола реалізують введення-виведення з розподілом пам'яті, використовувані в низькорівневому програмуванні при реалізації драйверів пристроїв.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  

Високорівнева операційна система і програмне забезпечення використовують інші, більш абстрактні концепції і примітиви введення-виведення. Наприклад, більшість операційних систем реалізують прикладні програми через концепцію файлів. Мови програмування С та C++, а також операційні системи сімейства Unix, традиційно абстрагують файли і пристрої у вигляді потоків даних, з яких можна читати і в які можна записувати, або і те й інше разом. Стандартна бібліотека мови С реалізує функції для роботи з потоками для введення і виведення даних.

Інтерфейс вводу-виводу вимагає управління процесором кожного пристрою. Інтерфейс повинен мати відповідну логіку для інтерпретації адреси пристрою, що генерується процесором.

Встановлення контакту повинно бути реалізовано інтерфейсом за допомогою відповідних команд типу (ЗАЙНЯТИЙ, ГОТОВИЙ, ЧЕКАЮ), щоб процесор міг взаємодіяти з пристроєм вводу-виводу через інтерфейс.

Якщо існує необхідність передачі розрізнених форматів даних, то інтерфейс повинен вміти конвертувати послідовні (впорядковані) дані в паралельну форму і навпаки.

Повинна бути можливість для генерації переривань і відповідних типів чисел для подальшої обробки процесором (за потреби).

Комп'ютер, що використовує введення-виведення з розподілом пам'яті, звертається до апаратного забезпечення за допомогою читання і запису в певні осередки пам'яті, використовуючи ті ж самі інструкції мови асемблера, які комп'ютер зазвичай використовує при зверненні до пам'яті.

Основна ідея організації програмного забезпечення вводу-виводу полягає в розбивці його на кілька рівнів, причому нижні рівні забезпечують екранування особливостей апаратури від верхніх, а ті, в свою чергу, забезпечують зручний інтерфейс для користувачів.

Ключовим принципом є незалежність від пристроїв. Вид пр

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
ограми не повинен залежати від того, чи читає вона дані з гнучкого диска або з жорсткого диска.

Дуже близькою до ідеї незалежності від пристроїв є ідея одностайної іменування, тобто для іменування пристроїв повинні бути прийняті єдині правила.

Іншим важливим питанням для програмного забезпечення вводу-виводу є обробка помилок. Взагалі кажучи, помилки слід обробляти якнайближче до апаратури. Якщо контролер виявляє помилку читання, то він повинен спробувати її скоригувати. Якщо ж це йому не вдається, то виправленням помилок повинен зайнятися драйвер пристрою. Багато помилки можуть зникати при повторних спробах виконання операцій вводу-виводу, наприклад, помилки, викликані наявністю порошин на голівках читання або на диску. І тільки якщо нижній рівень не може впоратися з помилкою, він повідомляє про помилку верхньому рівню.

Ще одне ключове питання - це використання блокуючих (синхронних) і неблокірующіх (асинхронних) передач. Більшість операцій фізичного вводу-виводу виконується асинхронно - процесор починає передачу і переходить на іншу роботу, поки не настає переривання. Користувальницькі програми набагато легше писати, якщо операції вводу-виводу блокуючі - після команди READ програма автоматично припиняється до тих пір, поки дані не потраплять в буфер програми. ОС виконує операції вводу-виводу асинхронно, але подає їх для користувача програм в синхронній формі.

Остання проблема полягає в тому, що одні устрою є поділюваними, а інші - виділеними. Диски - це колективні пристрої, тому що одночасний доступ декількох користувачів до диска не являє собою проблему. Принтер - це виділені пристрої, тому що не можна змішувати рядки, що друкуються різними користувачами. Наявність виділених пристроїв створює для операційної системи деякі проблеми.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  

Для вирішення поставлених проблем доцільно розділити програмне забезпечення вводу-виводу на чотири шари (Рис. 2.1):

§ Обробка переривань,

§ Драйвери пристроїв,

§ Незалежний від пристроїв шар операційної системи,

§ Користувацький шар програмного забезпечення.

 

Рис. 2.1. - Багаторівнева організація підсистеми вводу-виводу

 

Хоча більша частина програмного забезпечення вводу-виводу знаходиться всередині ОС, деяка його частина міститься в бібліотеках, що пов'язуються з одними програмами. Системні виклики, які включають виклики вводу-виводу, зазвичай робляться бібліотечними процедурами. Якщо програма, написана мовою С, містить виклик count = write (fd, buffer, nbytes), то бібліотечна процедура write буде пов'язана з програмою. Набір подібних процедур є частиною системи вводу-виводу. Зокрема, форматування вводу або вивоводу виконується бібліотечними процедурами. Прикладом може служити функція printf мови С, яка приймає рядок формату і, можливо, деякі змінні в якості вхідної інформації, потім будує рядок символів ASCII і робить виклик write для виведення цього рядк

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
а. Стандартна бібліотека вводу-виводу містить велику кількість процедур, які виконують ввод-вивід і працюють як частина користувальницької програми.

Інший категорією програмного забезпечення вводу-виводу є підсистема спулінга (spooling). Спулінг - це спосіб роботи з виділеними пристроями в мультипрограммной системі. Розглянемо типове пристрій, що вимагає спулінга - рядковий принтер. Хоча технічно легко дозволити кожному користувальницькому процесу відкрити спеціальний файл, пов'язаний з принтером, такий спосіб небезпечний через те, що користувальницький процес може монополізувати принтер на довільний час. Замість цього створюється спеціальний процес - монітор, який отримує виключні права на використання цього пристрою. Також створюється спеціальний каталог, званий каталогом спулінга. Для того, щоб надрукувати файл, користувальницький процес поміщає виведену інформацію в цей файл і поміщає його в каталог спулінга. Процес-монітор по черзі роздруковує всі файли, що містяться в каталозі спулінга.

Наявність у складі 8-розрядного МК модуля контролера послідовного вводу/виводу стало останнім часом звичайним явищем. Задачі, які розв'язуються засобами модуля контролера послідовного вводу/виводу, можна розділити на три основні групи:

· зв'язок вбудованої мікроконтролерної системи із системою управління верхнього рівня, наприклад, з персональним комп'ютером. Найчастіше для цієї мети використовуються інтерфейси RS-232C і RS-485;

· зв'язок із зовнішніми стосовно МК периферійними ІС, а також з датчиками фізичних величин з послідовним виходом. Для цієї мети використовуються інтерфейси I2C, SPI, а також нестандартні протоколи обміну;

· інтерфейс зв'язку з локальною мережею в мультимікроконтролерних системах. У системах з кількістю МК до п'яти зазвичай використовуються мережі на основі інтерфейсів I2C, RS-232C і RS-485 із власними мережевими протоколами високого рівня. У складніших системах усе популярнішим стає протокол CAN.

З погляду організації обміну інформацією згадані типи інтерфейсів послідовного зв'язку відрізняються режимом передачі даних (синхронний або асинхронний), форматом кадру (кількість біт у посилці при передачі байта корисної інформації) і часовими діаграмами сигналів на лініях (рівні сигналів і положення фронтів при перемиканнях).

Кількість ліній, якими відбувається передача в послідовному коді, зазвичай дорівнює двом (I2C, RS-232C, RS-485) або трьом (SPI, деякі нестандартні протоколи). Дана обставина дозволяє спроектувати модулі контролерів послідовного обміну таким чином, щоб з їх допомогою на апаратному рівні можна було реалізувати кілька типів послідовних інтерфейсів. При цьому режим передачі (синхронний або асинхронний) і формат кадру підтримуються на рівні логічних сигналів, а реальні фізичні рівні сигналів для кожного інтерфейсу одержують за допомогою спеціаль

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
них ІС, які називають прийомопередавачами, конверторами, трансиверами.

Серед різних типів вмонтованих контролерів послідовного обміну, які входять до складу тих чи інших 8-розрядних МК, склався стандарт "де-факто" - модуль UART (Universal Asynchronous Receiver and Transmitter). UART - це універсальний асинхронний прийомопередавач. Однак більшість модулів UART, крім асинхронного режиму обміну, здатні також реалізувати режим синхронної передачі даних.

Не усі виробники МК використовують термін UART для позначення типу модуля контролера послідовного обміну. Так, у МК фірми Motorola модуль асинхронної прийомопередачі, що підтримує ті ж режими асинхронного обміну, що і UART, прийнято називати SCI (Serial Communication Interface). Слід зазначити, що модуль типу SCI переважно реалізує тільки режим асинхронного обміну, тобто його функціональні можливості вужчі у порівнянні з модулями типу UART. Однак бувають і винятки: під тим же ім'ям SCI у МК МС68НС705В16 ховається модуль синхронно-асинхронної передачі даних.

Модулі типу UART в асинхронному режимі роботи дозволяють реалізувати протокол обміну для інтерфейсів RS-232C, RS-422А, RS-485, у синхронному режимі - нестандартні синхронні протоколи обміну, і в деяких моделях - SPI. У МК фірми Motorola традиційно передбачені два модулі послідовного обміну: модуль SCI з можливістю реалізації тільки протоколів асинхронної прийомопередачі для інтерфейсів RS-232C, RS-422A, RS-485 і модуль контролера синхронного інтерфейсу в стандарті SPI.

Протоколи інтерфейсів локальних мереж на основі МК (I2C і CAN) відрізняє більш складна логіка роботи. Тому контролери CAN інтерфейсу завжди виконуються у виді самостійного модуля. Інтерфейс I2C з можливістю роботи як у ведучому, так і веденому режимі, також підтримується спеціальним модулем (модуль послідовного порту в МК 89С52 фірми Philips). Але якщо реалізується тільки ведений режим I2C, то в МК PIC16 фірми Microchip він успішно поєднується з SPI: настроювання того самого модуля на один із протоколів здійснюється шляхом ініціалізації.

Останнім часом з'явилася велика кількість МК з убудованими модулями контролерів CAN і модулями універсального послідовного інтерфейсу периферійних пристроїв USB (Universal Serial Bus). Кожен

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
з цих інтерфейсів має досить складні протоколи обміну, для ознайомлення з якими варто звернутися до спеціальної літератури.


 

3 Розробка алгоритму та програми на мові С++. Методичні вказівки.

3.1 Аналіз мови Borland C++

Одним із найбільш досконалих інструментів створення прик

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
ладних програм являється мова програмування Borland C++, включаючи її можливості. Не зважаючи на її гнучкість та великі потенціальні можливості застосування, вона являється однією з самих важких інструментів програмування.

Як і в інших мовах програмування, в мові С++ потрібно видавати назву програми, особливості виконання, структури та призначення окремих фрагментів програми, для того щоб сам розробник чи користувач вільно могли орієнтуватися в програмному коді. Дуже часто виникає нужда при написанні програми описувати особливості програмних блоків чи даних. Для цього в Borland С++ введені коментарії, які не обробляються компілятором і, відповідно, не беруться до виконання процесором. Позначаються коментарії відповідним обмеженням символів «/» і «*» з обох сторін – наприклад: /*Перша програма на С*/, або двома символами «/» для коментування тільки в одній лінійці – наприклад // текст коментарію. Після кожного оператора чи команди в кінці лінійки використовується символ «;».

Всяка програма повинна вміщати підключення основної бібліотеки – директиви процесора. Підключення потрібно здійснювати спочатку програми, через символ «#» і слово include (включити). Назва бібліотеки з розширенням h береться в <ім’я_файла> для довільної та в "ім’я_файла" для поточної директорій - наприклад: #include <windows.h>. Всякий код програми повинен включати головну програму main, яка повинна представляти собою заголовок, з відповідним описом вхідних і вихідних даних. Опис вихідного значення програми main описується перед службовим словом, а опис вхідних даних – в круглих дужках після службового слова main, наприклад: int main(). Вхідні параметри часто також відсутні, так як дана програма включає в себе скелет або план «всіх доріг», тобто фундаментальні розгалуження, напрямки звернень, підключення допоміжних функцій, файлів, можливостей вводу-виво

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
ду, чи можливостей реалізації. Тіло любої допоміжної, підпрограми чи функції, написаної іншими програмістами може включати свою програму main з параметрами, описаними вище. Всяке тіло програми, процедури, функції чи класу заключається в фігурні дужки: {тіло програми, функції чи класу}.

В С++ всяке тіло програми повинно повертати значення, а тому закінчується оператором return значення_повернення, де значення_повернення - ціле число (додатне чи від’ємне або 0), яке сповіщає закінчення процесу програми, функції чи класу. За значенням повернення функції main бувають типу int або рідше void.

В програмуванні термін потік (англ. stream) використовується в кількох значеннях, але у всіх випадках посилаються на послідовність елементів даних, що стають доступними через якийсь час. В Unix і споріднених системах, заснованих на мові програмування C++, потік — це джерело або призначення даних, зазвичай індивідуальних байтів або знаків.

Потоки — це абстракція, що використовується наприклад при читанні або записі файлів, або при зв'язку з вузлами мережі. Три стандартні потоки передвизначені і доступні для всіх програм. В мові C++ концепція потоків реалізована у бібліотеці iostream і низці похідних від неї. Файлова система може підтримувати багато іменнованих незалежних потоків для одного файлу. Є один головний потік, який передає нормальні дані з файлу. Додаткові потоки можуть використовуватися, щоб запам'ятати іконки, короткий звіт і індексацію інформації, зональну інформацію (для файлів, що завантажуються) тощо. Конвеєри можуть також розумітися, як потоки, також як і будь-яка необмежена (не упакована) інформація, що постачається периферійним пристроєм. У мові програмування Scheme і деяких інших, потік — ліниво оцінена або затримана послідовність елементів даних. Потік може використовуватися так само як список, але останні елементи обчислюються тільки тоді, коли потрібно. Тому потоки можуть представити нескінченні послідовності. Поточні обчислення - в паралельному виконанні, особливо в графічній обробці, термін потік застосовуєть

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
ся і до апаратних засобів, і до програмного забезпечення. Ним позначають квазі-безперервний потік даних, які обробляються на потоковій мові програмування, щойно програмний стан задовольняє початковій умові потоку.

Написати програму, керуючу пристроєм через COM-порт, для MS DOS не так складно. З платформою Win32 справа йде складніше. Але тільки на перший погляд. Звичайно напряму працювати з регістрами портів не можна, Windows це не дозволяє, зате можна не звертати уваги на тонкості різних реалізацій (i8055, 16450, 16550A) і не возитися з обробкою переривань.

З послідовними і паралельними портами в Win32 працюють як з файлами. Для відкриття порту використовується функція CreateFile. Ця функція надається Win32 API. Її прототип виглядає так:

HANDLE CreateFile(

LPCTSTR lpFileName,

DWORD dwDesiredAccess,

DWORD dwShareMode,

LPSECURITY_ATTRIBUTES lpSecurityAttributes,

DWORD dwCreationDistribution,

DWORD dwFlagsAndAttributes,

HANDLE hTemplateFile

);

Функція CreateFile створює або відкриває каталог, фізичний диск, тому, буфер консолі (CONIN $ або CONOUT $), пристрій на магнітній стрічці, комунікаційний ресурс, поштовий слот або іменований канал. Функція повертає дескриптор, який може бути використаний для доступу до об'єкта. Функція CreateFile може створити дескриптор консольного введення даних (CONIN $). Якщо процес має відкритий дескриптор для нього, як результат наслідування чи дублювання, він може також створити і дескриптор активного екранного буфера

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  
(CONOUT $). Викликаючий процес повинен бути приєднаний до успадкованої консолі або консолі призначеної функцією AllocConsole.

Приклад закриття і відкриття послідовного COM-порту:

#include <windows.h>

//. . .

HANDLE Port;

//. . .

Port = CreateFile("\\\\.\\COM2", GENERIC_READ | GENERIC_WRITE, 0,

NULL, OPEN_EXISTING, 0, NULL);

if (Port == INVALID_HANDLE_VALUE) {

MessageBox(NULL, "Невозможно открыть последовательный порт", "Error", MB_OK);

ExitProcess(1);

}

//. . .

CloseHandle(Port);

//. . .

У даному прикладі відкривається порт СОМ2 для читання і запису, використовується синхронний режим обміну. Перевіряється успішність відкриття порту, при помилці виводиться повідомлення і програма завершується. Якщо порт відкритий успішно, то він закривається.

Прийом і передача даних для послідовного порту може виконаються в синхронному або асинхронному режимах. Асинхронний режим дозволяє реалізувати роботу щодо подій, в той час як синхронний позбавлений цієї можливості, але є більш простим у реалізації. Для роботи в синхронному режимі, порт повинен бути відкритий таким чином:

CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL,

OPEN_EXISTING, 0, NULL);

Передостанній параметр dwFlagsAndAttributes повинен бути дорівнює 0. Після успішного відкриття порту, дані можуть бути лічені або записані за допомогою функцій ReadFile () і WriteFile ().

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  

HANDLE port = CreateFile("COM1", GENERIC_READ |

GENERIC_WRITE, 0, NULL,OPEN_EXISTING, 0, NULL);

unsigned char dst[1024] = {0};

unsigned long size = sizeof(dst);

if(port!= INVALID_HANDLE_VALUE)

if(ReadFile(port,dst,size, &size,0))

printf("\nRead %d bytes",size);

Недоліком цього способу є те, що викликаючи функцію ReadFile (), ми не знаємо чи є дані для читання. Можна циклічно перевіряти їх наявність, але це призводить до додаткових витрат часу ЦП. Тому на практиці часто зручніше використовувати асинхронний режим. Для цього при виклику функції CreateFile () параметр dwFlagsAndAttributes має дорівнювати FILE_FLAG_OVERLAPPED.

CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);

 

Розробка алгоритму та програми

 

Для роботи з СОМ-перехідником який застосовується в даному курсовому проекті потрібно встановити драйвер для певної ОС.

Для реалізації нашої програми створимо два потоки для роботи функцій введення та виведення масивів даних. Так як два різних потоки не можуть одночасно працювати зі спільним ресурсом, створюємо затримки для цих потоків. Наприклад: коли потік А буде працювати зі спільним ресурсом, потік Б буде очікувати звільнення спільного ресурсу. Як тільки потік А звільнить ресурс, потік Б почне роботу з ним.

Отже, розберемо роботу програми яка зображена на рисунку 3.1.

Змн.
Арк.
№ докум.
Підпис
Дата
Арк.
08-23-КР.010.00.000 ПЗ  

Рис. 3.1 – Вікно робочої програми

 

1) Створимо вікно програми функцією __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { }.

2) Кнопки під номерами 2,3,4,5,6,7 створюються за допомогою void __fastcall TForm1::Button N Click(TObject *Sender) – де N номер певної кнопки.

Для правильної роботи програми потрібно спершу підключитись до потрібного COM-порту. Для цього в полі під номером 4, вводимо назву потрібного порту. Після чого натискаємо на кнопку під номером 5. Після чого проводимо перевірку чи дійсно програма підключилась до потрібного порту, як показано на алгоритмі рис. 3.1.

Рис. 3.1 – Алгоритм підключення до COM-порту

Зчитаємо дані з підключеного СОМ-порту. Якщо рівень сигналу рівний рівню логічної 1, тоді змінюємо колір індикатора на червоний (Рис. 3.1 під номером 2, Рис. 3.2, 3.6) та зчитуємо дані. Якщо ні, змінюємо колір індикатора на сірий (Рис. 3.5) і переходим до наступного пунтку.

 

Рис. 3.2 – Зчитування даних з СОМ-порту

 

Далі, відбудеться запис даних в СОМ-порт. Якщо є дані для передачі, змінимо колір індикатора на зелений (Рис. 3.1 під номером 3, Рис. 3.7), та передаємо дані. Якщо ж ні, колір індикатора залишається сірим (Рис. 3.5) і переходим до наступного пунтку. (Рис. 3.3, 3._).

Рис. 3.3 – Передача даних в СОМ-порт

Змн.
Арк.
№ докум.
Підпис