Реферат по предмету "Программирование, Базы данных"


Программирование - интерфейс RS-232

ПРОГРАММИРОВАНИЕПОСЛЕДОВАТЕЛЬНОГО ПОРТА

    Последовательный порт в системе MS-DOSобеспечивает  вход  во
внешний  мир. Основной  задачейпоследовательного порта является
направление иполучение данных по шине в виде потока  битов.  (В
противоположностьпараллельному порту,  в которомвнутренний байт
передаетсяцеликом). Вы можете использовать последовательный порт
для  подключения к системе «мыши»,  направления данных на принтер
или дляустановления автоматической телефонной связи с использо-
ванием модема.Хотя системы MS-DOS не нуждаются для работы в пос-
ледовательномпорте,  эти порты стали стандартнойпериферией сис-
темы.
    Последовательный порт в системах MS-DOSспособен поддерживать
стандартасинхронной передача данных RS-232C. Хотя даже посредс-
твом ROM-BIOS,стандартной части всех систем MS-DOS, MS -DOS сама
по  себе включает  некоторую  поддержку программирования портов
RS-232C(например,  прерывание номер 14h), этаподдержка не отве-
чает требованиямвысокоскоростной связи.  Если Вы хотитевключить
в свою прикладнуюпрограмму  эффективные  возможности последова-
тельнойсвязи,  Вы должны осуществлять доступ кпоследовательному
порту нааппаратном уровне.  В этой главепоказано, как это дела-
ется.


            Основы асинхронной последовательнойсвязи

    Говоря о передаче данных,  мы интересуемся  передачей байтов
данных от одногоустройства к другому, например, от персонального
компьютера кмодему или к  последовательному  принтеру. Если  мы
имеем  восемь линий между двумя устройствами,  то мы можем назна-
чить каждой линиибит и послать сразу один байт данных. Это будет
параллельная  передача. Таким образом работает параллельный порт
персональногокомпьютера, кроме того, в дополнение к восьми лини-
ям  данных имеются другие сигнальные линии,  оказывающие помощь в
передаче данных.
    С другой стороны,  если мы имеем одну линию для передачи сиг-
налов, тонеобходимо посылать каждый байт данных последовательно,
по одномубиту.  Более того,  мы может посылать данные синхронно,
такимобразом,  что каждый байт посылаетсяв  ранее определенное
время (скажем,один байт каждые х секунд), или асинхронно со ско-
ростью, которуюпредварительно определять необязательно.
    Последовательная связь  дешевле, чем  параллельная,  так как
требует меньшелиний передачи данных — минимум две для двусторон-
ней связи. Крометого режим асинхронной передачи оказывает значи-
тельно меньшеевоздействие на аппаратуру ввиду того, что не тре-
буется  дополнительное  специальное оборудование  для  поддержки
синхронизациимежду передатчиком и приемником.
    Таким образом,  асинхронная последовательная  связь является
предпочтительнымрешением ввиду низкой стоимости и простоты  ис-
пользуемых аппаратныхсредств. Конечно, в этом режиме передачи мы
должныпреобразовывать каждый байт данных в серию битов и  указы-
вать приемникуначало и конец каждого байта.  На рисунке8-1 про-
иллюстрированаконцепция асинхронной последовательной связи.
    Предположим, что мы умеем преобразовыватькаждый байт в поток
единиц инулей,  то есть биты,  которые могут быть переданы через
среду связи(например,  телефонную линию).  В самом деле, универ-
сальныйасинхронный приемопередатчик (UART), как мы увидим в сле-
дующемразделе,  выполняет точно такую жефункцию.  Обычно,  в то
время как линиянаходится в режиме ожидания, для демонстрации то-
го, что линия впорядке, по ней передается единица, обозначая не-
занятость линии.С другой стороны, когда линия находится в состо-


 ┌ ─ ─ ─ ── ─ ─ ─ ─ ─ ─ ─ ─ ── ─ ─ ─ ─ ─ ─ ─ ─ ── ─ ─ ─  ┐
                                Восстанавливается один байт
 │                               └  7 6  5  4 3  2  2  1┘└──┐
   ┌───Принимается одинсимвол────┐└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘┌─┐|
 │ |A||B||7||6||5||4||3||1||0||C| ^  ^  ^ ^  ^  ^ ^  ^    ||
-->└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘┌─────┬─────────┬─────┐  |─┘└┐
┌──────────────────────────────────|  D |         |     | |   |
|│    от модема                    └─────┴─────────┴─────┘  |───|
|  UART на приемном конце             скорость в бодах      |  |
|└ ── ─ ─ ─ ─ ─ ─ ─ ─ ── ─ ─ ─ ─ ─ ─ ─ ─ ── ─ ─ ─ ─ ─ ─ ─|   |
|                                                          |───|
| ┌───────┐                                                |   |
└──|       |──┐                                            |───|
  └───────┘  │                                     Принимающий
              │        Телефонная линия                 компьютер
             ┌┼┐___________________________┌─┐
             └─┘     
                                           │
                                           │
                                           │
                                            │      ┌───────┐
                                           └───────| модем|───|
     ┌────────┐                                   └───────┘   |
      │        │                                               |
      │  PC   │                                                |
  ┌──┴────────┴──┐                                             |
   │              │                                             |
  └┐┌────────────┘                                             v
    || ┌ ─ ─ ─ ─ ─ ─ ─ ── ─ ─ ─ ─ ─ ─ ─ ─ ── ─ ─ ─ ─ ─ ─ ───┐
    || │ ┌────────Байт───────────┐
    ||     7  6  5 4  3  2 2  1                              |
    |└──┘ └─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘┌───Посылаемый  один символ──┐
    └───┐                          |A||B||7||6||5||4||3||1||0||C|
          ┌─────┬─────────┬─────┐└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘└─┘
        | |     |         | D |──────────────────────────────┘
          └─────┴─────────┴─────┘         к модему -->         |
        | скорость в бодах   UART впоследовательном адаптере PC
        └ ─ ─ ─ ── ─ ─ ─ ─── ─ ─ ── ─ ─ ─ ─ ─ ─ ─ ─ ── ─ ─ ─ ┘
        A-стоп; B-четность; C-начало;D-сдвиговый регистр
янии   логического нуля,  говорится,  что она  стоит  в режиме
выдерживанияинтервалов. Таким образом, логические единица и ноль
рассматриваются,соответственно, как MARK и SPACE.

          Рис.8-1. Асинхронная последовательнаясвязь.


    В асинхронной  связи изменение условия состояния линии сMARK
на SPACE означаетначало символа (смотри рисунок 8-2).  Этоназы-
вается стартовымбитом. За стартовым битом следует комбинация би-
тов,  представляющая символ, и затем бит контролячетности. Нако-
нец,   линия  переходит   в  состояние ожидания  MARK,  которая
представляетсобой стоповый бит и означает конец текущего симво-
ла.  Число битов, используемых для представлениясимвола, называ-
ется длиной словаи обычно бывает равно семи  или  восьми. Конт-
рольный  бит используется для выполнения элементарнойпроверки на
наличие ошибки.

           
Линия                                     Линиявозвращается в
свободна                                   свободноесостояние
        A
B────┐ ┌ ─ ┬ ─ ┬ ─ ┬ ─ ┬─ ┬ ─ ┬ ─ ┬ ─ ┬ ─┬───┬───────┐  ┌ ─ ─
      │ │ 0   1   2   3   4  5   6   7    │           │
C ─ ─└──┘ ─ ┴ ─ ┴ ─ ┴─ ┴ ─ ┴ ─ ┴ ─ ┴ ─ ┴─ ┴ ─ ┴ ─ ─ ─ └──┘─ ─
       ^└──────── 7 или 8 битданных ───┘ ^  ^           ^
   Стартовый                       бит четности│   Начало другого
     бит                                      │      символа
                                        битстоповый
                Время ----->

          A-длительность 1 бита; B-MARK или 1;C-SPACE или 0

        Рис.8-2. Представление васинхронной  последовательной
                   связи формата одиночногосимвола


    Как передатчик  (или приемник) узнают о длительности каждого
бита?  Действительно,  и передатчик, и приемник должны знать его
длительность илидетектирование битов будет невозможно. Длитель-
ность каждогобита определяется генераторами тактовых  импульсов
приемника ипередатчика. Отметим, однако, что генераторы в прием-
нике ипередатчике должны иметь одну и ту же частоту, но не тре-
буется, чтобы онибыли синхронизированы. Выбор частоты генератора
зависит отскорости передачи в бодах,  котораяозначает число из-
менений состояниялинии каждую секунду. Номинально тактовая час-
тота«16-кратная скорость передачи в бодах» означает,  что линия
проверяется  достаточно часто для надежного распознаваниястарто-
вого бита.
    Существует одно  обычное состояние линии,  которое иногда ис-
пользуется дляпривлечения внимания приемника. Нормальным состоя-
нием  линии является  MARK (или 1) и началосимвола определяется
переходом SPACE(0). Если линия находится в состоянии SPACE в те-
чение периодавремени большем,  чем время,  которое она затратила
бы на получениевсех битов символа,  тогда мы говорим,что насту-
пило  состояние BREAK.  В  кодах ASCII отсутствует представление
BREAK — этоозначает,  что линия  «умерла»  на непродолжительный
промежутоквремени, который составляет BREAK.


            Контроль по четности и обнаружениеошибок

    Ранее мы упоминали, что бит контроля четностиполезен для об-
наружения  ошибок. Например,  если выбрана проверкана четность,
этот битустанавливается таким образом,  что общеечисло единиц в
текущем  слове является четным (такая же логика используется для
проверки нанечетность).  В приемнике четностьвычисляется заново
и сравнивается сбитом контроля четности.  Если они неравны,  то
приемниксообщает,  что имеет место ошибкачетности.  Главный не-
достатокобнаружения ошибки посредством проверки на четность зак-
лючается втом,  что можно только обнаружить ошибки,которые вли-
яют на одинединственный бит.  Например,  битовая комбинация 0100
0001 0 (ASCIIA),  переданная восемью битами спроверкой на  чет-
ность, можетизмениться (скажем, из-за шума в линии) на 0100 01110
(ASCII G), однакоприемник  не  обнаружит ошибку, так как провер-
ка на четностьвыполняется.


            Связь с использованием стандартаRS-232C.

    Ранее мы упоминали  о  передаче по телефонной линии единиц и
нулей.   Несмотря на то,  что в персональном компьютере мы  пред-
ставляем единицыи нули посредством уровней напряжения, сигналы,
передаваемые потелефонной линии обычно являются тонами различной
частоты.  Устройство, которое находится между аппаратурой персо-
нальногокомпьютера и передающей линией и делает возможной  пере-
дачу данных,   называется модемом(модулятор/демодулятор).  Модем
можетпреобразовывать информацию в представление «напряжение/нет
напряжения"цифровых схем и обратно,  а так жеаналоговые сигналы
(например,  тоны), предназначенные для передачи потелефонной ли-
нии.  Стандарты, такие как RS-232C (выдвинутыйАссоциацией элект-
роннойпромышленности,  EIA),  описывают метод обмена информацией
между  модемом (или,  в  соответствии с терминологией ассоциации
EIA,  «аппаратура передачи данных,  DCE») и связной  аппаратурой
персонального  компьютера (или  «оконечная  аппаратура обработки
данных,  DTE"). Модем может работать в двухрежимах: полудуплекс-
ном  и дуплексном.  В полудуплексномрежиме модем может осущест-
влять передачутолько в одном направлении в один промежуток вре-
мени,   в  то   время   как  при  работе  в дуплексном  режиме
осуществляетсянезависимая двухсторонняя связь. Стандарт RS-232C
обеспечиваетуправление такими сигналами, как «запрос-на-передачу
(RTS)" и«открыт-для -передачи (CTS)», которые могут быть исполь-
зованы  для координации процесса передачи и приемаданных. Термин
«квитированиеустановления связи» используется для описания коор-
динации приема ипередачи сигналов.  Как показано нарисунке 8-3,
стандарт RS-232Cсоответствует кабелю и соединителям, используе-
мым для связиперсонального компьютера и модема.
    Несмотря на то, что мы использовали модем в качестве примера
аппаратурыпередачи данных (DCE),  другиеустройства,  такие  как
«мышь»или принтер с соответствующей схемой, также могут обмени-
ваться данными сперсональным компьютером  черезпоследовательный
порт.  Таким образом, в этой главе все упоминания омодеме прием-
лемы в равнойстепени как к последовательному принтеру так  и  к
последовательной«мыши».


          ┌ ─ ─ ── ─ ─ ─ ─ ─ ─ ─ ─ ── ─ ─  ─ ── ─ ─ ┐
           ОАОД  ┌─────   Номер контакта──────┐   DCE
          | ┌─────┐                         ┌─────┐  |
             |   2|─────────────ПД───────────|2   |
          | |   3|──────────────П───────────|3   | |
             |   4|─────────────ЗП───────────|4   |
          | |   5|────────────ОДП───────────|5   | |
             |   6|────────────ГПД───────────|6   |         к
          | |┌──7|───────────Общий──────────|7──┐|  телефонной
             |   8|───────────ДСПЛ───────────|8   |       линии
          | |  20|────────────ТДГ───────────|20   | |        ^
             |  22|─────────────RI───────────|22   |          |
          | |    .|                          | .   | |────┐  |
             |    .|                          | .   |      |   |
        ┌─|  |   .|                          |.   | |    |   |
RS ---> |   └─────┘                          └─────┘       |  |
        | └ ─ ─ ── ─ ─ ─ ─ ─ ─ ─ ─ ── ─ ─  ─ ── ─ ─ ┘    |   |
   ┌───┴────┐                                             |   |
    │        │                                          |--|   |
    │       │                                          |   ---|
 ┌──┴────────┴──┐                                     ┌─┴───┴─┐
 │              │                                      |       |
 └──────────────┘                                     └───────┘
    PC или ОАОД                                          Модемил

     ОАОД-оконечная аппаратура обработкиданных;RS-кабельRS-232C;
     ПД — передача данных; П-прием данных; ЗП-запрос на передачу;
     ОДП — открыт для передачи; ГПД — готов кпередаче данных;
     ДСПЛ — детектор сигнала приемной линии;ТДГ -терминал данных
     готов; АПД — или аппаратура передачи данных

                          Рис.8-3. СвязьRS-232C.


              Управление потоком с помощьюXON/XOFF

    В дополнение к квитированию  установления связи  посредством
аппаратныхсигналов RTS/CTS,  для достиженияуправления потоком с
использованиемпрограммного обеспечения применяются  специальные
управляющие  символы ASCII  (Control-Q/Control-S илиXON/ XOFF).
Управлять потокомнеобходимо ввиду того, что иногда либо передат-
чик  либо приемник не могут поддерживать скорость передачи и они
должны иметьвозможность информировать другую сторону о необходи-
мости  остановки на время,  требуемое длятого,  чтобы отставшая
сторона смогладогнать другую.
    Предположим, что приемник имеет буфер дляхранения  поступаю-
щих символов. Кактолько буфер после заполнения закрывается, при-
емник можетпослать символ XOFF  передатчику,  сигнализируя, что
передача должнабыть приостановлена. Конечно, приемник должен по-
нять значениеXOFF и прекратить передачу символов. Затем,  когда
приемникобработает символы (скажем,  запишет их вфайл на диске)
и буферосвободится,  тогда посылается символXON,  показывающий,
что передачаможет быть продолжена.  Эта схемауправления потоком
широкоприменяется ввиду ее простоты. Большинство связных  прог-
раммпредоставляют возможность дуплексной связи с управлением по-
током, основанномна применении символов XON/XOFF.


       Последовательный порт с точки зрения программиста

    Аппаратура последовательного порта всистемах MS-DOS известна
какпоследовательный адаптер или асинхронный связной адаптер (да-
лее  мы будем называть его последовательным адаптером).  Адаптер
основан на Intel8259 UART (универсальный асинхронный приемопере-
датчик), имеетпорт RS-232C для подключения к модему и, как адап-
тер дисплея,  программируется посредством наборарегистров.  Мик-
ропроцессор  имеет доступ  к  регистрам через ранее определенные
адреса портаввода/вывода.
    Универсальный асинхронный  приемопередатчик Intel 8250 управ-
ляетсяпосредством записи в набор восьмибитовых регистров и  чте-
ния из них.  Эти регистры доступны программисту черезадреса пор-
та.  Адреса портов задаются последовательно,  поэтому достаточно
знать  адрес первого порта.  Он также известенкак базовый адрес
последовательногоадаптера. В персональном компьютере IBM PC двум
последовательнымпортам COM1 и COM2 присвоены базовые адреса пор-
та 3F8h и 2F8hсоответственно. Так, для последовательного адапте-
ра COM1 первыйрегистр имеет адрес 3F8h, следующий 3F9h и так да-
лее.
    В 8250 имеется семь физических регистров и они описываются в
порядкевозрастания начального номера, начиная с базового адреса.
Как показанона  рисунке 8-4,  базовый адрес порта имеет один ре-
гистр,  который делится на два,  как приемный буферный регистр  и
регистр храненияпередачи (THR),  который используется дляхране-
ния одногопередаваемого или принимаемого символа. Затем следует
регистрразрешения прерываний,  которыйиспользуется для разреше-
ния илиблокировки генерации прерываний последовательным  адапте-
ром.  Третий регистр, называемый регистромидентификации прерыва-
ний,    содержит   сообщение     универсального     асинхронного
приемопередатчика  об идентичности прерывания.  Затем следует ре-
гистр управлениялинией,  используемый для установленияразличных
связных  параметров, таких как длина слова,  количествостоповых
битов,  четность и скорость передачи в бодах. Пятыйрегистр — это
региструправления модемом, который используется для передачи мо-
демусигналов,  таких как DTR (терминал готов)и RTS  (запрос  на
передачу).Наконец, два последних регистра, регистр состояния ли-
нии и регистрсостояния модема, показывают соответственно состоя-
ние линии имодема.
    Первые два регистра применяются также дляустановки  скорости
передачи  в бодах.  Скорость  передачи в бодах определяется как
16-битовыйделитель тактовой частоты, используемой для последова-
тельного адаптера(1.8432 МГц в большинстве систем MS -DOS). Зна-
чение делителявычисляется по формуле

                        1,843,200
    делитель= ------------------------------
              16 Х скорость передачи в бодах

    Чтобы установить скорость передачи вбодах,  Вы должны проде-
лать следующее:
    1. Установить в 1 наиболее значимыйбит  регистра  управления
       линией (он  называется битом защелкидоступа делителя или
       DLAB).
    2.Загрузить младший и старший байтыделителя соответственно в
       приемный буфер и регистр разрешенияпрерываний.
    3. Установить DLAB в 0 для обеспечениянормальной работы уни-
       версального асинхронногоприемопередатчика.


   A    Приемный буфер/регистр хранения передачи
   B    ┌───┬───┬───┬───┬───┬───┬───┬───┐
(COM1-3F8|1.|   |  |   |   |   |   | 2.|
COM2-2F8)└───┴───┴───┴───┴───┴───┴───┴───┘

         Регистр разрешения прерывания
   B+1  ┌───┬───┬───┬───┬───┬───┬───┬───┐
         | 0 | 0 | 0 | 0 | 3.| 4.| 5.| 6.|
        └───┴───┴───┴───┴───┴───┴───┴───┘
         Установить бит в 1 для разрешения

         Регистр идентификации прерывания
   B+2  ┌───┬───┬───┬───┬───┬───┬───┬───┐
         | 0 | 0 | 0 | 0 | 0 |   |   |7.|
        └───┴───┴───┴───┴───┴───┴───┴───┘
                            └─3-битовый идентификатор прерывания
                              110 = состояниелинии
                              100 = приемныеданные
                              010 = буферпередачи свободен
                              000 = состояниемодема
         Регистр управления линией
   B+3  ┌───┬───┬───┬───┬───┬───┬───┬───┐
         | 8.|  |    9.     |10.| 11.  |
        └───┴───┴───┴───┴───┴───┴───┴───┘
               └─BREAK: 1 устанавливаетлинию в SPACE
         Регистр управления модемом
   B+4  ┌───┬───┬───┬───┬───┬───┬───┬───┐  a. — OUT2
         | 0 | 0 | 0 |12.| a.| b.| c.| d.|  b. — OUT1
        └───┴───┴───┴───┴───┴───┴───┴───┘  c. — RTS
                           └──13.          d. — DTR
         Регистр состояния линии
   B+5  ┌───┬───┬───┬───┬───┬───┬───┬───┐
         | 0 |14.|15.|16.|17.|18.|19.|20.|
        └───┴───┴───┴───┴───┴───┴───┴───┘

         Регистр состояния модема           a. — RLSD


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Основные положения соглашений Республики Беларусь по вопросам избежания двойного налогообложения в части подоходного налога
Реферат Техническое обслуживание средств вычислительной техники и компьютерных систем
Реферат Автоматизация делопроизводства
Реферат Парменид
Реферат Ядерные реакции. Ядерная энергетика
Реферат Философские взгляды в романе Н.Г. Чернышевского "Что делать?"
Реферат Мое любимое произведение «Песня о Соколе» М. Горького
Реферат Особенности развития личности одаренного ребенка
Реферат Педагогическая концепция ВВ Розанова
Реферат Космонавтика. Космический корабль. Космодром
Реферат Философская лирика Н Заболоцкого
Реферат Наше наследство русский язык
Реферат Изучение социальной структуры и культуры организации
Реферат Jean Baptiste Joseph Fourier
Реферат Инфекционные эндокардит, кардиомиопатии, миокардиты, перикардиты