Модем p>
Зміст p>
стор p>
1.Вступ 1 p>
2.Последовательний асинхронний адаптер 1 p>
2.1.Аппаратная реалізація 2 p>
2.2.Программірованіе адаптера 5 p>
3.Тіпи модемів 8 p>
4.Программірованіе модемів 9 p>
5.Протокол обміну даними 15 p>
5.1.Коррекція помилок 15 p>
5.2.Передача файлів 17 p>
6.Телекоммунікаціонние програми 20 p>
7.Використання модемів 20 p>
7.1.Електронная дошка оголошень 20 p>
7.2.Електронная пошта 23 p>
7.3.Факс-модемні плати 24 p>
1.Вступ p>
Останнім часом модеми стають невід'ємною частиною компьютера.Установів модем на свій комп'ютер, ви фактично відкриваєте для
себе новий мір.Ваш комп'ютер перетворюється з відособленого комп'ютера в ланку глобальної мережі. p>
Модем дозволить вам, не виходячи з дому, отримати доступ до баз даних, які можуть бути віддалені від вас на багато тисяч кілометрів,
розмістити повідомлення на BBS (електронній дошці оголошень), доступною іншим користувачам, скопіювати з тієї ж BBS цікавлять вас файли, інтегрувати
домашній комп'ютер в мережу вашого офісу, при цьому (не враховуючи низьку швидкість обміну даними) створюється повне відчуття роботи в мережі офісу. Крім того,
скориставшись глобальними мережами (RelCom, FidoNet) можна приймати і посилати електронні листи не тільки усередині міста, але фактично в будь-якій
кінець земної кулі. Глобальні мережі дають можливість не тільки обмінюватися поштою, але й брати участь у всіляких конференціях, одержувати новини
практично з будь-якої, що цікавить вас тематики. p>
Існує три основних способи з'єднання комп'ютерів для обміну інформацією: p>
- безпосередній зв'язок, через асинхронний порт; p>
- зв'язок з використанням модему; p>
- зв'язок через локальні мережі. p>
В рефераті розглядається перші два типи з'єднань - безпосереднє і з'єднання через модем. p>
2.Последовательний асинхронний адаптер p>
Практично кожен комп'ютер обладнаний хоча б одним послідовним асинхронним адаптером. Зазвичай він представляє собою окрему
плату або ж розташований прямо на материнській платі комп'ютера. Його повна назва - RS-232-C. Кожен асинхронний адаптер звичайно містить кілька
портів, через які до комп'ютера можна підключати зовнішні пристрої. Кожному такому порту відповідає кілька регістрів, через які програма
отримує до нього доступ, і певна лінія IRQ (лінія запиту переривання) для сигналізації комп'ютера про зміну стану порту. Кожному порту
присвоюється логічне ім'я (COM1, COM2, і т.д.). p>
Інтерфейс RS-232-C розроблений асоціацією електронної промисловості (EIA) як стандарт для з'єднання комп'ютерів і різних послідовних
периферійних пристроїв. p>
Комп'ютер IBM PC підтримує інтерфейс RS-232-C не повною мірою; швидше разьем, позначений на корпусі комп'ютера як порт
послідовної передачі даних, що містить деякі з сигналів, що входять в інтерфейс RS-232-C і мають відповідні цим стандартом рівні
напруги. p>
В даний час порт послідовної передачі даних використовується дуже широко. Ось далеко не повний список застосувань: p>
- підключення миші; p>
- підключення графобудівники, сканерів, принтерів, дигітайзерів; p>
- зв'язок двох комп'ютерів через порти послідовної передачі даних з використанням спеціального кабелю і таких програм, як FastWire II
або Norton Commander; p>
- підключення модемів для передачі даних по телефонних лініях; p>
- підключення до мережі персональних комп'ютерів; p>
Послідовна передача даних означає, що дані передаються по єдиній лінії. При цьому біти байти даних передаються по черзі з
використанням одного проводу. Для синхронізації групі бітів даних зазвичай передує спеціальний стартовий біт, після групи бітів слідують біт перевірки
на парність і один або два степових бита. Іноді біт перевірки на парність може бути відсутнім. P>
Використання біта парності, стартових і степових бітів визначають формат передачі даних. Очевидно, що та приймає повинні
використовувати один і той же формат даних, інакше обмін не можливий. p>
Інша важлива характеристика - швидкість передачі даних. Вона також повинна бути однаковою для передавача і приймача. P>
Швидкість передачі даних звичайно вимірюється в бодах (за прізвищем французького винахідника телеграфного апарата Emile Baudot - Е. Бодо).
Боди визначають кількість переданих бітів на секунду. При цьому враховуються і старт/стопного біти, а також біт парності. P>
2.1. Апаратна реалізація p>
Комп'ютер може бути оснащений одним або двома портами послідовної передачі даних. Ці порти розташовані або на материнській
платі, або на окремій платі, що вставляється в слоти розширення материнської плати. p>
Бувають також плати, що містять чотири або вісім портів послідовної передачі даних. Їх часто використовують для підключення
декількох комп'ютерів або терміналів до одного, центрального комп'ютера. Ці плати мають назву "мультіпорт". P>
В основі послідовного порту передачі даних лежить мікросхема INTEL 8250 або її сучасні аналоги - INTEL 16450,16550,16550 A.
Ця мікросхема є універсальним асинхронним приемопередатчиком (UART - Universal Asynchronous p>
Receiver Transmitter). Мікросхема містить декілька внутрішніх регістрів, доступних через команди введення/виводу. P>
Мікросхема 8250 містить регістри передавача і приймача даних. При передачі байта він записується в буферний регістр передавача,
звідки потім переписується у зсувне регістр передавача. Байт "висувається" з зсувне регістра по бітам. P>
Програма має доступ тільки до буферних регістрів, копіювання інформації в зсувне регістри і процес зсуву виконується мікросхемою UART
автоматично. p>
До зовнішніх пристроїв асинхронний послідовний порт підключається через спеціальний разьем. Існує два стандарти на роз'єми
інтерфейсу RS-232-C, це DB-25 і DB-9. Перший має 25, а другому 9 висновків. P>
Розводка роз'єму DB25 p>
Номер
контакту
Призначення контакту (з боку комп'ютера)
Вхід або
вихід
1
2
3
4
5
6
7
8
9-19
20
21
22
23-25
Захисне заземлення (Frame Ground, FG)
Передані дані (Transmitted Data, TD)
Рішення, що приймаються дані (Received Data, RD)
Запит для передачі (Request to send, RTS)
Скидання для передачі (Clear to Send, CTS)
Готовність даних (Data Set Ready, DSR)
Сигнальне заземлення (Signal Ground, SG)
Детектор що приймається з лінії сигналу (Data Carrier Detect, DCD)
Не використовуються
Готовність вихідних даних
(Data Terminal Ready, DTR)
Не використовується
Індикатор виклику (Ring Indicator, RI)
Не використовуються
Розведення роз'єму DB9
--
Вихід
Вхід
Вихід
Вхід
Вхід
--
Вхід
Вихід
Вхід
Номер
контакту
Призначення контакту (з боку комп'ютера)
Вхід або
вихід
1
2
3
4
5
6
7
8
9
Детектор що приймається з лінії сигналу (Data Carrier Detect, DCD)
Рішення, що приймаються дані (Received Data, RD)
Передані дані (Transmitted Data, TD)
Готовність вихідних даних
(Data Terminal Ready, DTR)
Сигнальне заземлення (Signal Ground, SG)
Готовність даних (Data Set Ready, DSR)
Запит для передачі (Request to send, RTS)
Скидання для передачі (Clear to Send, CTS)
Індикатор виклику (Ring Indicator, RI)
Вхід
Вхід
Вихід
Вихід
--
Вхід
Вихід
Вхід
Вхід
Інтерфейс RS-232-C визначає обмін між пристроями двох типів: DTE (Data Terminal Equipment - термінальне пристрій) і DCE
(Data Communication Equipment - пристрій зв'язку). У більшості випадків, але не завжди, комп'ютер є термінальним пристроєм. Модеми, принтери,
графобудівники завжди є пристроями зв'язку. p>
Сигнали інтерфейсу RS-232-C p>
Входи TD і RD використовуються пристроями DTE та DCE по-різному. Пристрій DTE використовує вхід TD для передачі даних, а вхід RD для прийому
даних. І навпаки, пристрій DCE використовує вхід TD для прийому, а вхід RD для передачі даних. Тому для з'єднання термінального пристрою і
пристрої зв'язку висновки їх роз'ємів необхідно з'єднати безпосередньо. p>
Підтвердження зв'язку p>
Розглянемо процес підтвердження зв'язку між комп'ютером і модемом. На початку сеансу зв'язку комп'ютер повинен упевнитися, що модем може
зробити виклик (знаходиться в робочому стані). Потім, після виклику абонента, модем повинен повідомити комп'ютера, що він справив з'єднання з
віддаленої систе-мій. Детальніше це відбувається таким чином. P>
Комп'ютер подає сигнал по лінії DTR, щоб показати модему, що він готовий до проведення сеансу зв'язку. У відповідь модем подає сигнал по лінії
DSR. Коли модем справив з'єднання з іншим, віддаленим модемом, він подає сигнал по лінії DCD, щоб повідомити про це комп'ютера. P>
Якщо напруга на лінії DTR падає, це повідомляє модему, що комп'ютер не може далі продовжувати сеанс зв'язку, наприклад з-за того, що
вимкнено живлення комп'ютера. У цьому випадку модем перерве зв'язок. Якщо напруга на лінії DCD падає, це повідомляє комп'ютера, що модем втратив
зв'язок і не може більше продовжувати з'єднання. У такому разі ці сигнали дають відповідь на наявність зв'язку між модемом і комп'ютером. P>
Існує більш високий рівень, який використовується для керування швидкістю обміну даними, але він також реалізується апаратно.
Практично управління швидкістю обміну даними (керування потоком) необхідно, якщо проводиться передача великих об'ємів даних з високою
швидкістю. Коли одна система намагається передати дані з більшою швидкістю, ніж вони можуть бути оброблені приймаючої системою, результатом може стати
втрата частини переданих даних. Щоб запобігти передачі більшої кількості даних, ніж те, яке може бути оброблено, використовують управління зв'язком,
зване "управління потоком". p>
Стандарт RS-232-C визначає можливість керування потоком тільки для напівдуплексному з'єднання, при якому в кожний момент часу
дані можуть передаватися тільки в один бік. p>
Фактично цей механізм використовується і для дуплексних з'єднань, коли дані передаються по лінії зв'язку одночасно в двох
напрямках. p>
Управління потоком p>
в напівдуплексному з'єднаннях пристрій DTE подає сигнал RTS, коли вона бажає передати дані. DCE відповідає сигналом по лінії CTS,
коли воно готове, і DTE починає передачу даних. До тих пір, поки обидва сигналу RTS і CTS не приймуть активний стан, тільки DCE може передавати дані. P>
При дуплексних з'єднаннях сигнали RTS/CTS мають значення протилежні тим, які вони мали для напівдуплексному з'єднань. p>
Коли DTE може прийняти дані, він подає сигнал по лінії RTS. Якщо при цьому DCE готове для прийняття даних, воно повертає сигнал CTS.
Якщо напруга на лініях RTS і CTS падає, то це повідомляє передавальної системі, що одержує система не готова для отримання даних. P>
Однак на практиці не все так просто. Поєднати комп'ютер і модем не складає труднощів, тому що інтерфейс RS-232-C саме для цього і
призначений. Але якщо ви захочете зв'язати разом два комп'ютера за допомогою такого ж кабелю, який ви використовували для зв'язку модему і комп'ютера, то у
вас виникнуть проб-леми. Для з'єднання двох термінальних пристроїв - двох комп'ютерів - як мінімум необхідно перехресне підключення ліній TR і RD.
Однак часто цього недостатньо, тому що для пристроїв DTE та DCE функції, що виконуються лініями DSR, DTR, DCD, CTS, RTS асиметричні. p>
Пристрій DTE подає сигнал DTR і чекає отримання сигналів DSR і DCD. У свою чергу, пристрій DCE подає сигнали DSR, DCD і чекає
отримання сигналу DTR. Таким чином, якщо з'єднати разом два пристрої DTE кабелем, який ви використовували для з'єднання пристроїв DTE та DCE, то вони не
зможуть домовитися один з одним. p>
Тепер перейдемо до сигналів RTS і CTS, управління потоком даних. іноді для з'єднання двох пристроїв DTE ці лінії з'єднують разом на
кожному кінці кабелю. В результаті отримуємо те, що інший пристрій завжди готове для отримання даних. Тому, якщо при великій швидкості передачі
пристрій не встигає приймати і обробляти дані, можлива втрата даних. p>
Щоб вирішити всі ці проблеми для з'єднання двох пристроїв типу DTE використовується спеціальний кабель, у побуті званий нуль-модемом. p>
Технічні параметри інтерфейсу RS-232-C p>
При передачі даних на великі відстані без використання спеціальної апаратури через перешкоди, що наводяться електромагнітними полями,
можливе виникнення помилок. Внаслідок цього накладаються обмеження на довжину з'єднувального кабелю між пристроями DTR-DTR і DTR-DCE. P>
Офіційне обмеження по довжині для з'єднувального кабелю за стандартом RS-232-C складає 15,24 метра. Однак на практиці це відстань
може бути значно більше. Воно безпосередньо залежить від швидкості передачі даних. P>
110бод - 1524м/914,4 м p>
300бод - 1524м/914,4 м 1200бод - 914,4 м/914,4 м 2400бод - 304,8 м/152,4 м 4800бод - 304,8 м/76,2 м 9600бод - 76,2 м/76,2 м p>
Перше значення - швидкість передачі в бодах, друга - максимальна довжина для екранованого кабелю,
третя - максимальна довжина для неекранованого кабелю. p>
Рівні напруги на лініях разьема становлять для логічного нуля -15 ..- 3 вольта, для логічної
одиниці +3 .. +15 вольт. Проміжок від -3 до +3 вольт відповідає невизначеному значенню. P>
2.2. Програмування адаптера p>
Порти асинхронного адаптера p>
На етапі ініціалізації системи, модуль POST BIOS тестує наявні асинхронні порти RS-232-C і ініціалізує їх. Залежно від
версії BIOS ініціалізувалися перші два або чотири порти. Їх базові адреси розташовуються в області даних BIOS починаючи з адреси 0000:0400 h. p>
Перший адаптер COM1 має базовий адреса 3F8h і займає діапазон адрес від 3F8h до 3FFh. Другий адаптер COM2 має базовий адреса 2F8h
і займає адреси 2F8h .. 2FFh. p>
Асинхронні адаптери можуть виробляти переривання: p>
COM1, COM3 - IRQ4 p>
COM2, COM4 - IRQ3 p>
Є 7 основних регістрів для управління портами: p>
а) Регістр даних p>
Регістр даних розташований безпосередньо за базовим адресою порту RS-232-C і використовується для обміну даними і для завдання швидкості
обміну. p>
Для передачі даних в цей регістр необхідно записати передається байт даних. Після отримання даних від зовнішнього пристрою прийнятий байт можна
прочитати з цього ж регістра. p>
Залежно від стану старшого біта керуючого регістру (розташованого за адресою base_adr 3, де base_adr відповідає базовому
адресою порту RS-232-C) призначення цього регістра може змінюватися. Якщо старший біт дорівнює нулю, реєстр використовується для запису даних для передачі. Якщо ж
старший біт рівний одиниці, реєстр використовується для введення значення молодшого байта дільника частоти тактового генератора. Змінюючи вміст дільника, можна
змінювати швидкість передачі даних. Старший байт дільника записується в регістр управління переривань за адресою base_adr 1. P>
Максимальна швидкість обміну інформацією, яку можна досягти при використанні асинхронного адаптера, досягає 115200 бод, що
приблизно відповідає 14 Кбайт у секунду. p>
б) Регістр управління переривань p>
Цей регістр використовується або для управління переривань від асинхронного адаптера, або (після виведення в керуючий регістр байти з
встановленим в 1 старшим бітом) для виведення значення старшого байта дільника частоти тактового генератора. p>
в) Регістр ідентифікації переривання p>
зчитуючи його вміст, програма може визначити причину переривання p>
г) Керуючий регістр p>
Керуючий регістр доступний по запису та читання. Цей регістр керує різними характеристиками UART: швидкістю передачі даних,
контролем парності, передачею сигналу BREAK, довжиною переданих слів (символів). p>
д) Регістр управління модемом p>
Регістр управління модемом управляє станом вихідних ліній DTR, RTS і ліній, специфічних для модемів - OUT1 і OUT2, а також
запуском діагностики при з'єднаних разом вході і виході асинхронного адаптера. p>
е) Регістр стану лінії p>
Регістр стану лінії визначає причину помилок, які можуть виникнути при передачі даних між комп'ютером і мікросхемою UART. p>
ж) Регістр стану модему p>
Регістр стану модему визначає стан керуючих сигналів, які передаються модемом асинхронного порту комп'ютера. p>
Ініціалізація асинхронного адаптера p>
Перше, що повинна зробити програма, що працює з асинхронним адаптером - встановити формат і швидкість передачі даних. Після завантаження
операційної системи для асинхронних адаптерів встановлюється швидкість 2400 бод, не виконується перевірка на парність, використовуються один стоповий і
восьмібітовая довжина переданого символу. Можна змінити цей режим командою MS-DOS MODE. P>
Виконавши введення з керуючого регістру, програма може отримати поточний режим адаптера. Для встановлення нового режиму змініть потрібні
вам поля і запишіть новий байт режиму назад у керуючий регістр. p>
Якщо вам треба задати нове значення швидкості обміну даними, перед записом байти режиму встановіть старший біт цього байта в 1, при цьому
регістр даних і керуючий регістр використовуються для завдання швидкості обміну. Потім послідовно двома командами введення завантажте дільник частоти
тактового ге-нератора. Молодший байт запишіть у регістр даних, а старший - в регістр управління переривань. P>
Перед початком роботи необхідно також проініціалізувати регістр управління переривань, навіть якщо у вашій програмі не використовуються
переривання від асинхронного адаптера. Для цього спочатку треба перевести регістр даних і регістр управління переривань у звичайний режим, записавши нуль у
старший біт керуючого регістру. Потім можна встановлювати регістр управління переривань. Якщо переривання вам не потрібні, запишіть у цей порт
нульове значення. p>
Сучасні мікросхеми UART p>
Фактично мікросхема UART 8250 в її початковому вигляді використовувалася тільки в старих моделях комп'ютерів IBM PC.
Сучасні мікросхеми - UART 16450, 16550, 16550A виготовлені за новою технологією, дозволяють досягти більш високої швидкості обміну даними, а також
володіють новими апаратними можливостями. p>
Основні можливості різних мікросхем UART: p>
- 8250 (8250-B): Використовувався на перших моделях IBM PC p>
- 16450 (8250-A): Ця мікросхема має більшу продуктивність в порівнянні з 8250. Фактично це 8250, але виготовлений з використанням
нової технології. Мікросхема доповнена регістром розширення (scratch register). Усунені помилки в регістрі дозволу переривань і додана можливість
перекладу лінії OUT2 в високоімпедансное стан під час проведення тестів, коли вихід даних замкнутий на вхід. p>
- 16550: Фактично відповідає 16450. Додана можливість внутрішньої буферизації переданих та прийнятих даних. Буфера виконані за
схемою FIFO (First In First OUT - першим ввійшов, першим вийшов) або, іншими словами у вигляді очереді.Прі використанні буферизації можливо помітно
зменшити число переривань, що виробляються асинхронним портом. Однак через помилки в мікросхемі цю можливість краще не використовувати p>
- можна втратити окремі символи. У загальному випадку мікросхема 16550 більш швидка, ніж 16450. Додатково 16550 дає можливість
використовувати кілька каналів прямого доступу (DMA channels). p>
- 16550A (16550AN) Відповідає 16550, виправлені помилки реалізації FIFO. Ця мікросхема дає можливість використання програмісту
декількох каналів прямого доступу. 16550А, як правило, використовується в комп'ютерах з процесорами 80386/486 і в комп'ютерах з RISC-архітектурою. Якщо
ви хочете працювати на швидкостях більших, ніж 9600 бод, бажано використовувати саме цю мікросхему. p>
3.Тіпи модемів p>
В даний час випускається величезна кількість всіляких модемів, починаючи від найпростіших, що забезпечують швидкість передачі близько 300
біт/сек, до складних факс-модемних плат, що дозволяють вам надіслати з вашого комп'ютера факс або звуковий лист в будь-яку точку світу. p>
У рефераті буде розказано тільки про так званих hayes-сумісних модемів. Ці модеми підтримують розроблений фірмою Hayes
набір АТ-команд керування модемами. В даний час такі модеми широко використовуються у всьому світі для зв'язку персональних комп'ютерів IBM PC/XT/AT, PS/2
через теле-фонние лінії. p>
Апаратно модеми виконані або як окрема плата, що вставляється в слот на материнській платі комп'ютера, або у вигляді окремого
корпусу з блоком живлення, що підключається до послідовного асинхронного порту комп'ютера. Перший з низ називається внутрішнім модемом, а другий --
зовнішнім. p>
Типовий модем містить наступні компоненти: спеціалізований мікропроцесор, керуючий роботою модему, оперативну пам'ять, що зберігає
значення регістрів модему і буферизує вхідні/вихідну інформацію, постійну пам'ять, динамік, що дозволяє виконувати звуковий контроль зв'язку, а
також інші допоміжні елементи (трансформатор, резистори, конденсатори, роз'єми). Якщо у вас досить сучасний модем, то він швидше
всього додатково містить електрично Перепрограмміруємая постійну пам'ять, в якій може бути збережена конфігурація модема навіть при виключенні
харчування. p>
Щоб модеми могли обмінюватися один з одним інформацією, треба, щоб вони використовували однакові способи передачі даних по телефонних
лініях. Для розробки стандартів передачі даних був створений спеціальний міжнародний консультативний комітет з телеграфії і телефонії (CCITT) і
прийняті наступні рекомендації: p>
CCITT V.21 - 300 bps. Модем, регламентований даної рекомендацією, призначений для передачі даних по виділених та комутованих лініях. P>
Він працює в асинхронному дуплексному режимі. Для передачі і прийому даних використовується
спосіб частотної модуляції. p>
CCITT V.22 - 1200 bps. Модем, що працює у відповідності з цією рекомендацією, використовує асинхронно-синхронний дуплексний режим
передачі. Асинхронно-синхронний режим означає, що комп'ютер передає модему дані в асинхронному режимі. Модем видаляє з потоку даних комп'ютера
стартові і степових біти. І вже в синхронному вигляді передає їх віддаленого комп'ютера. Для модуляції переданого сигналу застосовується метод диференціальної
фазової модуляції. p>
CCITT V.22bis - 2400 bps. Дуплексний модем, зі швидкістю передачі даних 2400 bps. При передачі зі швидкістю 2400 bps використовується метод
квадратурної модуляції, а при швидкості 1200 p>
- метод диференціальної фазової модуляції. На швидкості 1200 bps модем CCITT V.22bis сумісний з CCITT V.22. P>
CCITT V.23 - 600/1200 bps. Асинхронний модем, що використовує метод частотної модуляції. Модем може працювати в режимі з дуплексному
швидкістю передачі даних по прямому каналу - 600/1200 bps, а на зворотному - тільки 75 bps. Цей стандарт не сумісний з CCITT V.21, V.22, V.22bis. P>
Bell 103 - 300 bps, Bell 212A - 1200 bps. p>
Bell - це американський стандарт, не сумісний зі стандартами CCITT. p>
4. Програмування модемів p>
Після випуску американською фірмою Hayes модемів серії Smartmodem, система команд, використана в ній, стала певним стандартом, якого
дотримуються інші фірми - розробники модемів. Система команд, що застосовується в цих модемах, носить назву hayes-команд, або AT-команд. P>
З часу випуску першого AT-сумісних модемів набір їх команд дещо розширився, але всі основні команди залишилися без зміни. p>
Усі команди, що передаються комп'ютером модему, треба починати префіксом AT (ATtention - увага) і закінчувати символом повернення каретки (
). Тільки команда А/і Escape-послідовність "+++" не вимагають для себе префікса AT. P>
Після префікса AT можуть йти один або відразу декілька команд. Для ясності ці команди можуть бути відокремлені один від одного символами пробілу,
тире, дужками. У більшості випадків команди можуть бути написані як великими, так і малими літерами. P>
При передачі модему команд вони спочатку заносяться у внутрішній буфер, який, як правило, має розмір 40 символів. Команди, записані в
буфер модему, виконуються після надходження символу повернення каретки. Внаслідок обмеженості розміру буфера не слід передавати модему занадто
довгі команди (більше розміру буфера). Довгі команди можна розбивати на частини і передавати в декілька заходів. При цьому кожна частина повинна починатися
префіксом АТ і закінчуватися символом повернення каретки. p>
Якщо ви допустили помилку при наборі команди, то її можна виправити, використовуючи клавішу BackSpace. p>
Після виконання кожної команди модем посилає назад комп'ютера відповідь у вигляді числа або слова. Ця відповідь означає, виконана чи
команда чи сталася помилка. p>
Якщо у вас зовнішній модем, то на його лицьовій панелі знаходиться вісім світлових індикаторів. Хоча їх розташування на різних моделях може
змінюватися, їх позначення є стандартними: p>
MR Modem Ready - Модем готовий до обміну даними. Якщо цей індикатор не горить, то треба перевірити лінію живлення модему. P>
TR Terminal Ready - Комп'ютер готовий до обміну даними з модемом. Цей індикатор горить, коли модем отримав від комп'ютера сигнал DTR. P>
CD Carrier Detect - Індикатор запалюється, коли модем виявив несучу частоту на лінії. Індикатор повинен горіти протягом усього сеансу
зв'язку і гаснуть, коли один з модемів звільнить лінію. p>
SD Send Data - Індикатор блимає, коли модем отримує дані від комп'ютера. p>
RD Receave Data - Індикатор блимає, коли модем передає дані до комп'ютера p>
HS High Speed - Модем працює на максимально можливу для нього швидкості. p>
AA Auto Answer - Модем знаходиться в режимі автовідповіді. Тобто модем автоматично відповідатиме на надходять дзвінки. Коли модем
виявить дзвінок на телефонній лінії, цей індикатор замигає. p>
OH Off-Hook - Цей індикатор горить, коли модем зняв трубку (займає лінію). p>
Основні команди модему p>
AT - Початок (префікс) командного рядка. Після отримання цієї команди модем автоматично підлаштовує
швидкість передачі і формат даних до параметрів комп'ютера. p>
A - Автовідповідь. Якщо режим автоматичного відповіді вимкнений (S0 = 0), команда використовується для відповіді на дзвінок від віддаленого модему. Команда
змушує модем зняти трубку (підключитися до лінії) і встановити зв'язок з віддаленим модемом. p>
A/- Модем повторює останню введену команду. Команда передається на модем без префікса AT і виконується модемом негайно, не
очікуючи приходу символу повернення каретки. Якщо ви передасте модему рядок AT A /, то модем вкаже на помилку і поверне слово ERROR. P>
Bn - Команда робить вибір стандарту, згідно з яким буде відбуватися обмін даними між модемами. При швидкості передачі 300 біт/с
відбувається вибір між стандартами BELL 103 і CCITT V.21, при швидкості 1200 bps - між BELL 212A і CCITT p>
V.22bis. При швидкості 2400 bps ця команда ігнорується і використовується стандарт CCITT V.22. Якщо n = 0, встановлюються стандарти CCITT
V.21/V.22, а якщо n = 1 - стандарти BELL 103/212A. P>
Ds - Команда використовується для набору номера. Після отримання цієї команди модем починає набір номера і при встановленні зв'язку переходить в
режим передачі даних. Команда складається з префікса AT, символу D і номер телефону, до складу якого можуть входити наступні керуючі модифікатори: P
або T. Ці модифікатори роблять вибір між імпульсної і тонової системою набору (у нашій країні використовується імпульсна система). P>
, - Символ комою викликає паузу під час набору номера. тривалість паузи визначається вмістом
регістра S8. p>
; - Символ крапки з комою, якщо він знаходиться в кінці командного рядка, переводить модем після набору номера в командний режим. p>
@ - Модем очікує п'ятисекундних тиші на лінії протягом заданого проміжку часу. Проміжок часу, протягом якого модем
очікує тиші, задається в регістрі S7. Якщо протягом цього часу паузи тиші не було, модем відключається і відповідає NO ANSWER. P>
! - Якщо знак! стоїть перед знаками послідовності набору, модем переходить в стан ON HOOK (кладе слухавку) на 1/2 секунди, а потім
знову переходить у стан OFF HOOK (знімає трубку). p>
S - Модем набирає телефонний номер, записаний в його пам'яті. Ця команда виконується тільки для модемів, що мають вбудовану
незалежну пам'ять і можливість запису в неї номерів телефонів. p>
R - Після набору номера переводить модем в режим автовідповіді. Цей модифікатор повинен знаходитися в кінці набраного номера. P>
W - Перед подальшим набором телефонного номера модем очікує довгий гудок з лінії. Причому час очікування гудка міститься в регістрі S7.
Якщо у відведений час гудок не з'явився, модем припиняє набір номера і повертає повідомлення NO DIALTONE. Цей параметр може бути корисний при наборі
междуго-родних номерів. p>
En - Управління луна-виводом команд, що передаються модему. Після команди Е1 модем повертає кожен знак, що передається йому, назад
комп'ютера, що дозволяє дізнатися, як працює зв'язок модему і комп'ютера. Команда Е0 забороняє луна-висновок. P>
Fn - Переключення між дуплексним/напівдуплексному режимами. При n = 0 перехід в напівдуплексний режим, а при n = 1 - в дуплексний. P>
Hn - Ця команда використовується для керування телефонною лінією. Якщо n = 0, то відбувається відключення модему від лінії, якщо n = 1, модем
підключається до лінії. p>
In - Видає ідентифікаційний код модему і контрольну суму вмісту пам'яті модему. Якщо n = 0, модем повідомляє свій
ідентифікаційний код, якщо n = 1, модем проводить підрахунок контрольної суми EPROM і передає її комп'ютеру, n = 2 - модем перевіряє стан внутрішньої
пам'яті ROM і повертає повідомлення OK або CHECKSUM ERROR (помилка контрольної суми). При n = 3 видається стан модему. P>
Ln - Установка гучності сигналу внутрішнього динаміка: n = 0,1 відповідає низькій гучності, n = 2 - середнього та n = 3 - максимальної. p>
Mn - Управління внутрішнім динаміком. При n = 0 динамік вик-лючен. При n = 1 динамік включений тільки під час набору номера і виключений після
виявлення несучої. При n = 2 динамік включений весь час. При n = 3 динамік включається після набору останньої цифри номера і вимикається після виявлення
несучої відповідає модему. p>
Qn - Управління відповіддю модема на AT-команди. При n = 0 відповідь дозволений, при n = 1 відповідь заборонений. Незалежно від стану Q0 або Q1 модем
завжди повідомляє зміст S-регістрів, свій ідентифікаційний код, контрольну суму пам'яті і результати тесту. p>
On - Команда переводить модем з командного режиму в режим передачі даних. При цьому модем відповідає CONNECT. Команда О і О0 переводять
модем в режим передачі даних без ініціювання послідовності сигналів перевірки лінії зв'язку. Команда О1 переводить модем в режим передачі даних і
змушує модем передати послідовності сигналів перевірки лінії зв'язку, тобто вчинити повторне квітірованіе з віддаленим модемом. p>
Sr? - Читання вмісту регістра модему, що має номер r. p>
Sr = n - Запис в регістр модему з номером r числа n. Число n може мати значення від 0 до 255. Всі команди модифікують вміст одного
або більш S-регістрів. Деякі S-регістри містять часові параметри, які можна поміняти тільки командою S. p>
Vn - Виробляє вибір виду відповіді модема на AT-команди. При n = 0 відповідь відбувається цифровим кодом, а при n = 1 модем відповідає в символьному
формі англійською мовою. Використання цифрової форми відповіді полегшує обробку результатів виконання команди при написанні власних програм
управління модемом. p>
Стандартний набір відповідей модему p>
OK 0 Модем виконав команду без помилок p>
CONNECT 1 Модем встановив зв'язок зі швидкістю 300 bps p>
RING 2 Модем виявив сигнал дзвінка p>
NO CARRIER 3 Модем втратив несучу частоту p>
ERROR 4 Помилка в командному рядку p>
CONNECT 1200 5 Модем встановив зв'язок зі швидкістю 1200 bps p>
NO DIALTONE 6 Відсутність сигналу станції при знятті трубки p>
BUSY 7 Модем виявив сигнал "зайнято" p>
NO ANSWER 8 Немає відповіді після очікування сигналу p>
CONNECT 600 9 Модем встановив зв'язок зі швидкістю 600 bps p>
CONNECT 2400 10 Модем встановив зв'язок зі швидкістю 2400 bps p>
Yn - Спосіб відключення модему від лінії. Існують два способи відключення модему від лінії: стандартний, коли модем отримує
неактивний сигнал DTR від комп'ютера, і примусову, коли модем отримує від віддаленого модему сигнал перерви BREAK. Команда ATH0 направляє віддаленою модему сигнал
перерви BREAK, який триває 4с. При n = 0 модем відключається стандартно, при n = 1 модем відключається після отримання з лінії сигналу BREAK. P>
Z - Скидає конфігурацію модему. При цьому в усі регістри завантажуються значення, прийняті за замовчуванням. Значення регістрів, отримані через
замовчуванням беруться з незалежної пам'яті модему або, якщо модем такої пам'яті не має, з постійної пам'яті або визначається виходячи з перемикачів
на платі модему. p>
+ + + - Escape-с?? едовательность, яка використовується для переходу у командний режим роботи модему. Завдяки цій команді можна перейти з режиму
передачі даних модемом в командний режим роботи без розриву зв'язку. Модем вимагає тиші перед і після направлення цієї Escape-послідовності.
Величина цього проміжку тиші визначена в регістрі S12. P>
& Cn - Ця команда управляє сигналом DCD порту RS-232-C. При n = 0 сигнал DCD завжди є активним, а при n = 1 сигнал DCD
встановлюється тільки тоді, коли модем виявляє несучу частоту від віддаленого модему. p>
& Dn - Управління сигналом DTR. При n = 0 модем ігнорує DTR, n = 1 - при втраті сигналу DTR модем переходить в командний режим
роботи, n = 2 - при втраті сигналу DTR модем припиняє зв'язок, відключається від лінії, що відключає режим автовідповіді і переходить в командний режим роботи, n = 3 --
при втраті сигналу DTR автоматично скидається конфігурація модема, як при виконанні команди ATZ. Модем виявляє втрату сигналу DTR, якщо сигнал DTR
відсутній довше часу, визначеного в регістрі модему S25. p>
& F - модем встановлює конфігурацію, записану в постійну пам'ять. p>
& Gn - Включення/вимикання захисної частоти. n = 0 - захисна частота виключена, n = 1 - модем генерує захисну частоту 550 Hz,
n = 2 - модем генерує захисну частоту 1800 Hz. Використання цієї команди залежить від особливостей телефонної лінії. P>
& Ln - Вид лінії зв'язку. При n = 0 передача за звичайними (комутованих) лініях зв'язку, n = 1 передача по виділених каналах. P>
& Mn - Установка асинхронно/синхронного режиму роботи. При n = 0 встановлюється
асинхронний режим, при n = 1,2,3 встановлюється синхронний режим. p>
& Pn - Установка імпульсного коефіцієнта набору номера у відповідності з різними стандартами. При n = 0 - коефіцієнт заповнення
замикання/інтервал 39/61 (Америка), при n = 1 - 33/67 (Англія). p>
& Rn - Управління сигналом CTS: n = 0 - сигнал переходить в активний стан після отримання сигналу RTS. Дані, що передаються модему
до надходження сигналу RTS, ігноруються. Якщо n = 1 модем ігнорує RTS. P>
& Sn - Управління сигналом DSR порту RS-232-C. При n = 0 сигнал DSR активний завжди, а при n = 1 сигнал DSR активізується тільки після
закінчення етапу встановлення зв'язку між модемами. p>
& Tn - Тестування модему. Від n залежить вигляд тесту. P>
& V - Модем показує свою поточну конфігурацію і телефонні номери, записані в незалежній пам'яті. p>
& W - Модем записує свою поточну конфігурацію в незалежну пам'ять. При скиданні модему буде завантажена саме ця
конфігурація. p>
& Zn - використовується для запису телефонного номера в незалежну пам'ять модему.
Кількість телефонів залежить від моделі модему. P>
Основні принципи програмування модемів p>
Доступ до модему відбувається через послідовний асинхронний порт. При цьому для передачі модему команд їх необхідно просто записати в
регістр даних COM-порту, на якому знаходиться модем. Відповідь від модему також надходить через послідовний порт.Передавая модему команди, його можна
проініціалізувати, перевести в режим автовідповіді або змусити набрати номер. p>
Ко