Реферат: Послідовні інтерфейси ПК

Всі сигнали мікросхем послідовного введення виведення, що програмуються ТТЛ сумісні. Ці сигнали розраховані тільки на дуже короткі лінії зв'язку. Для послідовної передачі даних на значні відстані потрібні додаткові буфери і перетворювачі рівнів, що включаються між мікросхемами послідовного введення виведення і лінією зв'язку.

Для управління потоком даних (Flow Control) можуть використовуватися два варіанти протоколу – апаратний і програмний.

Апаратний протокол управління потоком RTS/CTS використовує сигнал CTS, який дозволяє зупинити передачу даних, якщо приймач не готовий до їх прийому. Передавач випускає черговий байт тільки при включеній лінії CTS. Байт, який вже почав передаватися, затримати сигналом CTS неможливо (це гарантує цілісність посилки). Апаратний протокол забезпечує найшвидшу реакцію передавача на стан приймача. Мікросхеми асинхронних приймачів-передавачів мають не менше двох регістрів в прийомній частині – зсувний, для прийому чергової посилки, і зберігаючий, з якого зчитується прийнятий метод. Це дозволяє реалізувати обмін по апаратному протоколу без втрати даних. Апаратний протокол зручно використовувати при підключенні принтерів і плотерів, якщо вони його підтримують. При безпосередньому (без модемів) зєднанні двох комп’ютерів апаратний протокол потребує перехресного зєднання ліній RTS-CTS.

Якщо апаратний протокол не використовується, передаваючого терміналу повинен бути забезпечений стан «ввімкнено» на лінії CTS перемичкою RTS-CTS. В протилежному випадку передавач буде «мовчати».

Програмний протокол управління потоком XON/XOFF передбачає наявність двох направленого каналу передачі даних. Працює протокол наступним чином: якщо пристрій, який приймає дані, виявляє причини, за якими не може їх далі приймати, він по зворотному послідовному каналу посилає байт-символ XOFF (13h). Протилежний пристрій, прийнявши цей символ, призупиняє передачу. Коли приймаючий пристрій знов стає готовим до прийому даних, він посилає символ XON (11h), прийнявши який протилежний пристрій відновлює передачу. Час реакції передавача на зміни стану приймача в порівнянні з апаратним протоколом збільшується на час передачі символу (XON або XOFF) плюс час реакції програми передавача на прийом символу. З цього випливає, що дані без втрат можуть прийматися тільки приймачем, який має додатковий буфер даних, які приймають, і сигналізуючи про готовність передчасно.

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

IBM PC може містити до чотирьох послідовних портів, які також називають адаптерами RS-232C. В PS/2 (крім моделей 25 і 30) може бути до восьми таких адаптерів. В MS-DOS послідовні порти називаються COMX , де X – номер порту. Працювати з послідовними портами можна як з використанням BIOS, так і безпосередньо через використання апаратних переривань.

В BIOS для роботи з послідовними портами виділено спеціальне переривання int14 (тут і далі числа вказуються в 16-ій системі числення). З допомогою цього переривання можна встановити параметри порту, перевірити статус порту, прийняти або передати байт даних. Але при роботі через BIOS програма повинна обробляти дані зі швидкістю не менше ніж швидкість їх поступлення, так як в IBM PC не підтримується апаратна буферизація даних, які проходять через послідовний порт. Робота з використанням int14 можлива при передачі даних зі швидкостями до 300 бод. При більших швидкостях дані губляться.

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


1.5 Програмна частина інтерфейсу

Програмувати розробку інтерфейсу можна на нижчому рівні (наприклад із використанням мови Assembler), на середньому рівні та на мовах високого рівня (наприклад в середовищі Microsoft Visual C++.NET 2005).

Для програмування COM портів в середовищі Microsoft Visual C++.NET 2005 використовується компонент SeriesPort, в якому реалізована вся взаємодія з драйвером COM-порту.

Для роботи з COM-портом оголошуємо об’єкт:

System:IO: Ports: SerialPort^ serialPort1;

Перед записом ініціалізуємо необхідні властивості:

· PortName;

· BaudRate;

· ReadTimeout.

Після ініціалізації об’єкта віддкриваємо порт:

serialPort1->Open();

Для запису використовуються методи:

· Write (array<unsigned char>^ buffer, int offset, int size);

· WriteLine (String^ line).

Для зчитування даних з порту використовуються методи класу SerialPort:

· Read (array<unsigned char>^ buffer, int offset, int size);

· ReadLine();

· ReadChar();

· ReadByte().

1.6 Перспективи інтерфейсу RS-232C

К-во Просмотров: 482
Бесплатно скачать Реферат: Послідовні інтерфейси ПК