Введення Останнім часом модеми стають невід'ємною частиною комп'ютера. Встановивши модем на свій комп'ютер, ви фактично відкриваєте для себе новий світ. Ваш комп'ютер перетворюється з відособленого комп'ютера в ланку глобальної мережі. Модем дозволить вам, не виходячи з дому, отримати доступ до баз даних, які можуть бути вилучені від вас на багато тисяч кілометрів, розмістити повідомлення на BBS (електронній дошці оголошень), доступною іншим користувачам, скопіювати з тієї ж BBS цікавлять вас файли, інтегрувати домашній комп'ютер у мережу вашого офісу, при цьому створюється повне відчуття роботи в мережі офісу. Крім того, скориставшись глобальними мережами (RelCom, FidoNet, Internet) можна приймати і посилати електронні листи не тільки усередині міста, але фактично в будь-який кінець земної кулі. Глобальні мережі дають можливість не тільки обмінюватися поштою, але і брати участь у всіляких конференціях, одержувати новини практично по будь-який цікавить вас тематиці. Існує три основних способи з'єднання комп'ютерів для обміну інформацією: безпосередній зв'язок, через асинхронний порт; зв'язок з використанням модему; зв'язок через локальні мережі. 1. Типи модемів Боди і біти в секунду. Коли говорять про модеми, то дуже часто плутають боди і біти в секунду (біт / с). Швидкість передачі виражена в бодах, вказує, скільки разів в секунду змінюється стан сигналу, що передається з одного пристрою в інший. Якщо, наприклад, частота або фаза сигналу змінюється 300 разів на секунду, то говорять, - швидкість передачі сигналу дорівнює 300 бодам. Якщо при цьому кожне стан (зміна) переданого сигналу використовується для передачі одного біта, то 300 бод в даному випадку еквівалентні 300 біт / с. Якщо ж у кожному стані сигналу передається два біта інформації, то швидкість передачі в бітах в секунду будетв 2 рази більше, тобто 600 біт / с. У більшості модемів кожному станом відповідає кілька бітів, тому фактична швидкість передачі в бодах менше швидкості в бітах у секунду. В даний час випускається величезна кількість всіляких модемів, починаючи від найпростіших, що забезпечують швидкість передачі близько 300 біт / сек, до складних факс-модемних плат, що дозволяють вам надіслати з вашого комп'ютера факс або звуковий лист в будь-яку точку світу. Апаратно модеми виконані або як окрема плата, що вставляється в слот на материнській платі комп'ютера, або у вигляді окремого корпусу з блоком живлення, що підключається до послідовного асинхронного порту комп'ютера. Перший з низ називається внутрішнім модемом, а другий - зовнішнім. Типовий модем містить наступні компоненти: спеціалізований мікропроцесор, керуючий роботою модему, оперативну пам'ять, що зберігає значення регістрів модему і буферизує вхідні / вихідну інформацію, постійну пам'ять, динамік, що дозволяє виконувати звуковий контроль зв'язку, а також інші допоміжні елементи (трансформатор, резистори, конденсатори, роз'єми). Якщо у вас досить сучасний модем, то він швидше за все додатково містить електрично Перепрограмміруємая постійну пам'ять (EEPROM), в якій може бути збережена конфігурація модема навіть при вимиканні харчування. Щоб модеми могли обмінюватися один з одним інформацією, треба, щоб вони використовували однакові способи передачі даних по телефонних лініях. Для розробки стандартів передачі даних був створений спеціальний міжнародний консультативний комітет з телеграфії і телефонії (CCITT) та прийняті наступні рекомендації: Bell 103 Стандарт зі швидкістю передачі 300 біт / с прийнятий в США і Канаді. Тип використовуваної модуляції - частотна, кожному стану сигналу відповідає один біт. У більшості швидкодіючих сучасних комп'ютерів цей стандарт передбачено, хоча він вже застарів. Bell 212A Стандарт зі швидкістю передачі 1200 біт / с прийнятий в США і Канаді. У ньому використовується диференційна фазова модуляція DPSK (Differential Phase-Shift Keying), швидкість передачі-600 бод, кожному стану відповідає 2 біт даних. V.21 Цей міжнародний стандарт передачі даних зі швидкістю 300 біт / с подібний до стандарту Bell 103, проте через відмінності у використовуваних діапазонах частот модеми V.21 не сумісні з модемами Bell 103. В основному V.21 використовується за межами США. V.22 Даний міжнародний стандарт передачі даних зі швидкістю 1200 біт / с подібний Bell 212A, однак не сумісний з ним за деякими характеристиками, зокрема за способом відповіді на виклик. Цей стандарт використовується, в основному, за межами США. V.22bis Це міжнародний стандарт передачі даних зі швидкістю 2400 біт / с. Слово bis означає другий, тобто покращений варіант стандарту V.22. Застосовується V.22bis як у США, так і в інших країнах. Використовується амплітудно-фазова модуляція (QAM), швидкість передачі даних-600 бод, у кожному стані сигналу кодується 4 біт. V.23 Даним стандартом передбачається передача даних зі швидкістю 1200 біт / с в одному напрямку і 75 біт/с- у зворотному. Модем, що відповідає цьому стандарту, виявляється псевдодуплексним, тобто він може обмінюватися даними в обох напрямках, але з різними швидкостями. V.23 був розроблений для того, щоб знизити вартість модемів зі швидкістю передачі 1200 біт / с, які були досить дорогими на початку 80-х років. Використовується, в основному, в Європі. V.29 Цей стандарт визначає напівдуплексний (односпрямований) спосіб передачі даних зі швидкістю 9600 біт / с. Зазвичай він використовується для факсимільних апаратів (факсів), і дуже рідко для модемів. Оскільки зазначений стандарт є напівдуплексним, відповідні пристрої виявляються набагато простіше тих, які працюють у високошвидкісних дуплексних режимах. V.29 в якості стандарту для модемів не є функціонально повним, так як він не визначає повного набору вимог до стандартів. Саме тому пристрої різних серій рідко виявляються сумісними. Ці недоліки стандарту не стосуються факсимільних апаратів, параметри яких визначено в V.29 повністю. V.32 Це стандарт дуплексної передачі даних зі швидкістю 9600 біт / с. У ньому визначені методи корекції помилок і способи зв'язку. Використовується амплітудно-фазова модуляція з так званим кодуванням TCQAM, при якому кожному станом сигналу відповідає 4 біт. При такому кодуванні разом з кожною групою з 4 біт передається додатковий контрольний біт. Це дозволяє виконувати корекцію помилок в приймальному пристрої, що, у свою чергу, підвищує стійкість модемів, що працюють у стандарті V.32, до впливу шумів в лінії передачі. Оскільки навіть при односпрямованої передачі даних із швидкістю 9600 біт / с використовується практично вся смуга пропущення телефонної лінії, в модемах V.32 реалізується складна процедура прослуховування відповідного сигналу, яка полягає в періодичному відключенні власних переданих сигналів і прийомі відповідних сигналів. До останнього часу поширення модемів, що працюють у стандарті V.32, стримувалося їх складністю і високою вартістю. Однак поява на ринку дешевих комплектів мікросхем, розроблених спеціально для цих цілей, змінило ситуацію, і V.32 поступово перетворився на загальноприйнятий стандарт передачі даних зі швидкістю 9600 біт / с. V.32bis Стандарт V.32bis - це розширення V.32 зі швидкістю передачі 14400 бит / с. У ньому застосовується та ж модуляція, що і в V.32 (TCQAM), швидкість передачі - 2400 бод, у кожному стані кодується 6 біт. Завдяки такому кодуванню зв'язок виходить доволі надійною. Протокол V.32bis забезпечує дуплексний зв'язок. Якщо якість телефонної лінії невисока, то модеми перемикаються у звичайний режим V.32. Цей стандарт, завдяки своїй продуктивності й завадостійкості, став загальноприйнятим при роботі в сучасних телефонних лініях. V.32fast Стандарт V.32fast, також званий V. FC (Fast Class), - це новий запропонований ССIТТ стандарт, який є розширенням V.32 і V.32bis. У ньому передбачена швидкість передачі дана 28800 біт / с, однак згодом він замінився стандартом V.34. V.34 Стандарт V.34 - стандарт передачі даних зі швидкістю 31,2 і 33,6 Кбіт / с. Багато існуючих модеми V.34, оснащені складними цифровими процесорами Digital Signal Processors (DSPs). V.90 Стандарт V.90 - стандарт передачі даних, який дозволяє модему передавати зі швидкістю 57600 біт / с, і приймати дані зі скокостью 33600 біт / с. Ще до представлених вище стандартам я хочу додати наочну таблицю стандартизації швидкості модемів в залежності від їх застосування. Швидкість модему | З якою метою він може використовуватися | 300 bps | Для роботи з місцевою BBS. (Хоча не всі діалогові сервісні служби зараз дозволяють користуватися ними так як вони дуже довго займають телефонну лінію, і взагалі це дуже застаріла швидкість передачі інформації) | 1200 bps | Для місцевої BBS. | 2400 bps | Це найнижча швидкість продаються сьогодні модемів може задовольняти, якщо не здійснюється передача великих обсягів інформації (особливо на далекі відстані) | 9600 bps | Модеми з такою швидкістю (і вище) виконують корекцію помилок і стиснення даних. Деякі діалогові сервісні служби наближаються до такого значенням швидкості, за винятком Internet. Багато BBS працюють саме з цими параметрами швидкості. | 16 800 bps | Така швидкість досягається тільки при встановленні зв'язку з модемом такої самої моделі. | 19 200 bps | Те ж, що і 16.8Kbps-модеми | 28 800 bps | Популярний раніше стандарт. Використовується протокол v.34 bis | 36 600 bps | | 56 000 bps | Швидкість сучасного модему. Використовуються протоколи: V90 і K56Flex |
Після випуску американською фірмою Hayes модемів серії Smartmodem, система команд, використана в ній, стала якимсь стандартом, якого дотримуються інші фірми - розробники модемів. Система команд, вживана в цих модемах, носить назву hayes-команд, або AT-команд. З часу випуску перших AT-сумісних модемів набір їх команд дещо розширився, але всі основні команди залишилися без зміни. Всі команди, що передаються комп'ютером модему, треба починати префіксом AT (ATtention - увага) і закінчувати символом повернення каретки (). Тільки команда А / і Escape-послідовність "+++" не вимагають для себе префікса AT. Після префікса AT можуть йти один або відразу декілька команд. Для ясності ці команди можуть бути відокремлені один від одного символами пробіл, тире, дужками. У більшості випадків команди можуть бути написані як великими, так і малими літерами. При передачі модему команд вони спочатку заносяться у внутрішній буфер, який, як правило, має розмір 40 символів. Команди, записані в буфер модему, виконуються після надходження символу повернення каретки. Внаслідок обмеженості розміру буфера не слід передавати модему занадто довгі команди (більше розміру буфера). Довгі команди можна розбивати на частини і передавати в декілька заходів. При цьому кожна частина повинна починатися префіксом АТ і закінчуватися символом повернення каретки. Якщо ви допустили помилку при наборі команди, то її можна виправити, використовуючи клавішу BackSpace. Після виконання кожної команди модем посилає назад комп'ютера відповідь у вигляді числа чи слова. Ця відповідь означає, чи виконана команда або відбулася помилка. Якщо у вас зовнішній модем, то на його лицьовій панелі перебуває вісім світлових індикаторів. Хоча їх розташування на різних моделях може змінюватися, їх позначення є стандартними: MR Modem Ready - Модем готовий до обміну даними. Якщо етотіндікатор не горить, то треба перевірити лінію живлення модему. TR Terminal Ready - Комп'ютер готовий до обміну даними з модемом. Цей індикатор горить, коли модем отримав від компьютерасігнал DTR. CD Carrier Detect - Індикатор запалюється, коли модем виявив несе частоту на лінії. Індикатор повинен горіти протягом усього сеансу зв'язку й гаснути, коли один з модемів звільнить линию. SD Send Data - Індикатор блимає, коли модем отримує дані від комп'ютера. RD Receive Data - Індикатор блимає, коли модем передає дані до комп'ютера HS High Speed - Модем працює на максимально можливій для нього швидкості. AA Auto Answer - Модем перебуває у режимі автовідповідача. Тобто модем автоматично відповідатиме на які надходять дзвінки. Коли модем знайде дзвінок на телефонній лінії, цей індикатор блимає. OH Off-Hook - Цей індикатор горить, коли модем зняв трубку (займає лінію). Стандартний набір відповідей модему OK-Модем виконав команду без помилок CONNECT-Модем встановив зв'язок із швидкістю 300 bps RING-Модем виявив сигнал дзвінка NO CARRIER-Модем втратив несучу частоту ERROR-Помилка в командному рядку CONNECT X-Модем встановив зв'язок із швидкістю X NO DIALTONE-Відсутність сигналу станції під час зняття трубки BUSY-Модем виявив сигнал "зайнято" NO ANSWER-Немає відповіді після очікування сигналу Основні принципи програмування модемів Доступ до модему відбувається через послідовний асинхронний порт. При цьому для передачі модему команд їх необхідно просто записати в регістр даних COM-порту, на якому знаходиться модем. Відповідь від модему також поступає через послідовний порт. Передаючи модему команди, його можна проініціалізувати, перевести в режим автовідповіді або змусити набрати номер. Коли модем набере номер віддаленого абонента або коли модему в режимі автовідповідача прийде виклик, він спробує встановити зв'язок з віддаленим модемом. Після встановлення зв'язку модем передає комп'ютера через COM-порт спеціальне повідомлення і переключиться з командного режиму в режим передачі даних. Після цього дані, що передаються модему, перестають сприйматися ним як команди і відразу передаються по телефонній лінії на віддалений модем. Отже, після встановлення зв'язку з віддаленим модемом, комунікаційна програма може починати обмін даними. Обмін даними так само, як і передача команд, здійснюється через COM-порт. Потім за допомогою спеціальної Escape-послідовності можна перемкнути модем з режиму передачі даних назад в командний режим і покласти трубку, розірвавши зв'язок з віддаленим модемом. 3. Послідовність дій для встановлення зв'язку Ініціалізація COM-порту. Проводимо ініціалізацію COM-порту, до якого підключений модем. Для цього програмуємо регістри мікросхеми UART, задаючи формат даних і швидкість обміну. Зауважимо, що модем буде проводити з'єднання з віддаленим модемом якраз на цій швидкості. Чим швидкість вище, тим швидше буде відбуватися обмін даними з видаленим модемом. Однак при збільшенні швидкості на поганих телефонних лініях сильно зростає кількість помилок. Ініціалізація модему. Передаючи модему AT-команди через СОМ-порт, виробляємо його ініціалізацію. За допомогою АТ-команд можна встановити різні режими роботи модему - вибрати протокол обміну, встановити набір діагностичних повідомлень модему і т.д. З'єднання з віддаленим модемом. Передаємо модему команду набору номера (ATD). У цьому випадку модем набирає номер і намагається встановити зв'язок з віддаленим модемом. Або передаємо модему команду AT S0 = 1 для переведення його в режим автовідповідача. Після цього модем очікує дзвінка від віддаленого модему, а коли він приходить, намагається встановити з ним зв'язок. Чекаємо відповідь від модему. Залежно від режиму, в якому знаходиться модем, він може передавати комп'ютера різні повідомлення. Наприклад, якщо модем виконує виклик віддаленого модему (АТ-команда ATD), то модем може видати наступні повідомлення: CONNECT-Успішне з'єднання BUSY-Номер зайнятий NO DIALTONE-На лінії відсутній сигнал комутатора NO ANSWER-Абонент не відповідає NO CARRIER-Невдала спроба встановити зв'язок Коли приходить дзвінок, модем передає комп'ютера повідомлення RING, якщо регістр модему S0 дорівнює нулю. У цьому випадку для відповіді на дзвінок треба послати модему команду АТА. Якщо модем знаходиться в режимі автовідповідача і регістр модему S0 не дорівнює нулю, то модем автоматично намагається відповісти на дзвінок і може видати наступні повідомлення: CONNECT-Успішне з'єднання NO DIALTONE-Ні несучої частоти віддаленого модему NO CARRIER-Невдала спроба встановити зв'язок Якщо модем передав комп'ютера повідомлення CONNECT, значить, він успішно справив з'єднання і тепер працює в режимі передачі даних. Тепер усі дані, які ви передасте модему через СОМ-порт, будуть перетворені модемом у форму, придатну для передачі по телефонних лініях, і передані віддаленого модему. І навпаки, дані, прийняті модемом по телефонній лінії, перетворюються на цифрову форму і можуть бути прочитані через СОМ-порт, до якого підключений модем. Якщо модем передав комп'ютера повідомлення BUSY, NO DIALTONE, NO ANSWER, NO CARRIER значить, зробити з'єднання з віддаленим модемом не вдалося і треба спробувати повторити з'єднання. Підключення модему в командний режим. Після закінчення роботи комунікаційна програма повинна перевести модем в командний режим і передати йому команду покласти трубку (ATH0). Для перекладу модему в командний режим можна скористатися Escape-послідовністю "+++". Після того як модем перейшов в командний режим, можна знову передавати йому АТ-команди. Скидаємо сигнали налініях DTR і RTS. Низький рівень сигналів DTR і RTS повідомляє модему, що комп'ютер не готовий до прийому даних через COM-порт. При роботі з асинхронним послідовним адаптером ви можете використовувати механізм переривань. Так як передача і прийом даних модемом є тривалий процес, то застосування переривань від порту дозволяє використовувати процесорний час для інших потреб. Список літератури Налаштовуємо модем / / Hard & Soft, 1998р., № 8 http://www.hardware.ru Комп'ютер зсередини / / Komputerra, 2000р., № 3 Для підготовки даної роботи були використані матеріали з сайту http://referat2000.bizforum.ru/
|