Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Te_scho_robili_m 1111i.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
600.56 Кб
Скачать

Рівні сигналів

Рівні сигналів на лініях EIA-485

Інтерфейс EIA-485 використовує балансну (диференціальну) схему передачі сигналу. Це означає, що рівні напруги на сигнальних колах А і В міняються в протифазі, як показано на приведеному малюнку.

Передавач повинен забезпечувати рівень сигналу 1,5 В при максимальному навантаженні (32 стандартні входи і 2 термінальні резистори) і не більше 6 В на холостому ході. Рівні напруг вимірюють диференціально, один сигнальний дріт відносно іншого.

На стороні приймача EIA-485 мінімальний рівень сигналу, що приймається, має бути не меншим за 200 мВ.

82. Функції Win32api для роботи з портами.

З портами Win32 працюють так само, як і зі звичайними файлами, використовуючи при цьому усього кілька специфічних функцій WinAPI. Однак комунікаційний порт — це не зовсім звичайний файл. Для нього, наприклад, не можна виконати позиціонування файлового покажчика, або ж створити порт, якщо такий відсутній. Будь-яка робота з портом починається з його відкриття. Для цього використовується файлова функція WinAPI (опису WinAPI-функцій узяті з MSDN (Microsoft Developer Network), отже, приводяться в синтаксисі C):

lpFileName — покажчик на рядок з нульовим завершальним символом. Звичайно це ім'я файлу, що відкривається, але в нашому випадку це повинно бути назва порту (COM1, COM2, ...).

dwDesiredAccess — тип доступу. У нашому випадку повинний бути дорівнює GENERIC_READ|GENERIC_WRITE.

dwShareMode — параметр спільного доступу. Для комунікаційних портів завжди дорівнює 0.

lpSecurityAttributes — атрибут захисту. Для комунікаційних портів завжди дорівнює NULL.

dwCreationDistribution — режим автостворення. Для комунікаційних портів завжди дорівнює OPEN_EXESTING.

dwFlagsAndAttributes — атрибут режиму обробки. Для комунікаційних портів повиннен бути 0 або FILE_FLAG_OVERLAPPED.

hTemplateFile — описувач файлу-шаблона. Для комунікаційних портів повинен дорівнювати NULL.При успішному відкритті порту функція повертає його описувач, а у випадку помилки повертає INVALID_HANDLE_VALUE. Ще одна операція, що нам знадобиться відразу після відкриття порту — його скидання.

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

hFile — описувач відкритого порту.

dwFlags — вироблені дії у виді набору прапорів PURGE_TXABORT, PURGE_RXABORT, PURGE_TXCLEAR, PURGE_RXCLEAR. По закінченні роботи з портом його варто закрити, викликавши функцію:

Як єдиний параметр треба передати отриманий раніше описувач порту (hPort).

83. Склад структури dcb

DCBlength - довжина структури. Вона необхідна, так як ми передаємо цю структуру в різні функції, крім того можна контролювати її коректність. Довжина в байтах. BaudRate - це поле відображає швидкість передачі даних. Поле числове. Швидкості передачі можуть бути різні. Можна вказувати просто число. Але краще використовувати константу.  FBinary - Режим двійкового обміну. Win32 не підтримує Недвійкова режим, тому дане поле завжди має дорівнювати TRUE. FParity - Режим перевірки парності. Якщо вказати TRUE, то парність буде перевірятися. FOutxCtsFlow - Режим стеження за сигналом CTS. Якщо це поле дорівнює TRUE і сигнал CTS скинутий, передача даних припиняється до установки сигналу CTS.Використовується для того, щоб посилаючи дані можна було визначити встигають їх приймати. FOutxDsrFlow - Включає режим спостереження за сигналом DSR. Якщо це поле дорівнює TRUE, то передача буде відбуватися тільки при наявності сигналу DSR: FDtrControl - Режими обміну DTR бувають такі: DTR_CONTROL_DISABLE Забороняє використання лінії DTR DTR_CONTROL_ENABLE Дозволяє використання лінії DTR DTR_CONTROL_HANDSHAKE Включає спеціальний механізм відновлення зв'язку, який називається рукостискання. FDsrSensitivity - встановлює вплив лінії DSR. Якщо TRUE, то дані приймаються, якщо є DSR. FTXContinueOnXoff - визначає реакцію на переповнення прийомного буфера. При поле TRUE передача триває навіть якщо буфер близький до переповнення і драйвер передав сигнал про призупинення потоку даних. В іншому випадку передача зупиниться поки в буфері не буде достатньо місця і драйвер не передасть сигнал про те, що приймати можна. FOutX - Реакція на переповнення буферу (XON / XOFF) при передачі. Є такі сигнали: XoffChar призупинити потік XonChar відновити потік. Якщо значення TRUE, то ці сигнали будуть враховані. fInX - Реакція на переповнення буферу (XON / XOFF) при прийомі. Якщо TRUE, то ми буде приймати сигнали про те, коли в буфері мало місця і коли достатньо. FErrorChar - встановлює необхідність заміни символів з помилкою парності. Якщо TRUE, то буде проведена заміна. FNull - Що робити з нульовим байтом. Коли дорівнює TRUE нульовий байт відкидається. FRtsControl - встановлює режим управління потоком для сигналу RTS. RTS_CONTROL_DISABLE Забороняє використання лінії RTS RTS_CONTROL_ENABLE Дозволяє використання лінії RTS RTS_CONTROL_HANDSHAKE Встановлюється сигнал RTS коли прийомний буфер заповнений менш, ніж на половину, і скидає, коли буфер заповнюється більш ніж на три чверті. RTS_CONTROL_TOGGLE Визначає, що сигнал RTS встановлений, коли є дані для передачі, інакше скидається. FAbortOnError - Реакція на помилки. Якщо це поле дорівнює TRUE, драйвер припиняє всі операції читання / запису для порту при виникненні помилки. fDummy2 - Не використовується. wReserved - Не використовується. XonLim - Задає мінімальне число символів в приймальному буфері перед посилкою символу XON. XoffLim - Визначає максимальну кількість байт в приймальному буфері перед посилкою символу XOFF. Максимально допустима кількість байт в буфері обчислюється відніманням даного значення з розміру приймального буфера в байтах. ByteSize - Число біт в переданому байті. Parity - Схема контролю парності: EVENPARITY Доповнення до парності MARKPARITY Біт парності завжди 1 NOPARITY Біт парності відсутній ODDPARITY Доповнення до непарності SPACEPARITY Біт парності завжди 0 StopBits - Кількість степових біт. ONESTOPBIT Один стоповий біт ONE5STOPBIT Півтора степових бита TWOSTOPBIT Два степових бита XonChar - Задає символ XON використовуваний як для прийому, так і для передачі. XoffChar - Задає символ XOFF використовуваний як для прийому, так і для передачі. ErrorChar - Задає символ, що використовується для заміни символів з помилковою парністю. EofChar - Задає символ, що використовується для сигналізації про кінець даних. EvtChar - Задає символ, що використовується для сигналізації про подію. wReserved1 - Зарезервовано і не використовується.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]