468x60
город Николаев

ГЛАВНАЯ
  ИНФО  


  • история города
  • карта Николаева
  • транспорт
  • гостиницы
  • банки | курсы
  • ВУЗы
  • кинотеатры
  • сауны, бани

  • НОВОСТИ
       
  • Николаев
  • все
  •  
      РАЗДЕЛЫ  


  • работа
  • знакомства
  • гороскоп
  • погода
  • ТВ-программа
  • пользовательский архив
  •  
     
     
    160x60
     
    А
    Р
    Х
    И
    В

    пользовательский архив->книги и учебники

    Программирование порта COM 1

    кем добавлено: twistfire
    Ключевые слова и краткое описание: COM PORT programming, programming interface COM1
    У персональных компьютеров с архитектурой IBM PC имеется 1-2 (или даже 4) коммуникационных портов. Они используются для подключения внешних устройств таких, как модем, мышь, мобильный телефон и др. Для удобства мы будем называть коммуникационный порт как COM1. Программирование COM1 осуществляется аппаратными портами. Для COM1 используются порты с базовым адресом 03F8h.

    Содержимое (полное описание):
    Введение



    У персональных компьютеров с архитектурой IBM PC
    имеется 1-2 (или даже 4) коммуникационных

    портов. Они используются для подключения внешних
    устройств таких, как модем, мышь, мобильный

    телефон и др. Для удобства мы будем называть
    коммуникационный порт как COM1. Программирование

    COM1 осуществляется аппаратными портами. Для COM1
    используются порты с базовым адресом 03F8h. 






    Описание назначения портов


    Порт 3F8h


    Этот порт соответствует регистру передаваемых
    данных. Для передачи в порт 3F8h необходимо
    записать

    байт передаваемых данных. После приема данных от
    внешнего устройства они могут быть прочитаны из

    этого порта. В зависимости от состояния бита
    управляющего слова, выводимого в управляющий
    регистр


    с адресом 3F8h, назначение порта 3F8h может
    изменяться. Если этот бит равен 0, порт
    используется для

    записи передаваемых данных. Если же этот бит
    равен 1, порт используется для вывода значения
    младшего

    байта делителя частоты тактового генератора.
    Изменяя содержимое делителя, можно изменять
    скорость

    передачи данных. Старший байт делителя
    записывается в порт 3F9h. Зависимость скорости
    передачи

    данных от значения делителя частоты приведены в
    таблице 1:


    Таблица 1.






















































    Делитель Скорость передачи в бод. Делитель Скорость передачи в бод.
    1040 110 24 4800
    768 150 12 9600
    384 300 6 19200
    192 600 3 38400
    96 1200 2 57600
    48 2400 1 115200





    Порт 3F9h


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



    вывода в порт 3F9h байта с установленным в 1 старшим
    битом) для вывода значения старшего байта

    делителя частоты тактового генератора. В режиме
    регистра управления прерываниями порт имеет

    следующий формат.


    Таблица 2.

































    Бит

    Значение

    0

    1 - разрешение
    прерывания при готовности принимаемых данных.

    1

    1 - разрешение
    прерывания после передачи байта (когда выходной
    буфер передачи пуст.)

    2

    1 - разрешение
    прерывания по обнаружении состояния "BREAK"
    или ошибки.

    3

    1 - разрешение
    прерывания по изменению на разъёме RS-232-C.

    4-7

    Не используются,
    должны быть равны 0.




    Порт 3FAh


    Регистр идентификации прерывания. По его
    содержимому программа может определить причину

    прерывания. Формат регистра приведён в таблице 3.



    Таблица 3.























    Бит Значение
    0 1 - нет прерываний, ожидающих
    обслуживания.
    1-2 00 - прерывание по линии состояния
    приёмника, возникает при переполнении приёмника,
    ошибка чётности или формата данных, или при
    состоянии "BREAK". Сбрасывается после чтения
    состояния линии и порта 3FDh.

    • 01 - данные приняты и доступны для чтения.
      Сбрасывается после чтения данных из порта 3F8h.


    • 11 - Состояние модема. Устанавливается при
      изменении состояния входных линий CTS, RI, DCD, DSR.


    3-7 Должны быть равны 0.





    Порт 3FBh


    Управляющий регистр, доступен для записи и
    чтения. Его формат показан в таблице 4.


    Таблица 4.






































    Бит Значение
    0-1 Длина слова в байтах. 00 - 5 бит.

    • 01 - 6 бит.

    • 10 - 7 бит.

    • 11 - 8 бит.


    2 Количество стоповых битов: 0 - 1 бит, 1 - 2
    бита.
    3-4 Чётность:


    • 10 - контроль на чётность не используется;

    • 01 - контроль на нечётность.

    • 11 - контроль на чётность.


    5 Фиксация чётности. При установки этого
    бита бит чётности всегда принимает значение 0
    (если биты 3-4 равны 11) или 1 (если биты 3-4 равны 01)
    6 Установка перерыва. Осуществляет вывод
    строки нулей в качестве сигнала "BREAK" для
    подключения устройства.
    7 1 - порты 3F8h и 3F9h используется для
    загрузки делителя частоты тактового генератора;
    0 - порты используются как обычно.






    Порт 3FCh


    Регистр управления модемом. Управляет
    состоянием выходных линий DTR, RTS, линий,
    специфических

    для модемов OUT1 и OUT2, для запуска диагностики при
    входе асинхронного адаптера, замкнутого на

    его выход. Формат порта приведён в таблице 5.


    Таблица 5.






































    Бит Значение
    0 Линия DTR
    1 Линия RTS.
    2 Линия OUT1 (запасная)
    3 Линия OUT2 (запасная)
    4 Запуск диагностики при входе асинхронного

    адаптера, замкнутого на его выход.
    5-7 Должно быть равно 0



    Порт 3FDh.



    Регистр состоянии линии. Значение разрядов
    регистра приведены в таблице 6.


    Таблица 6.















































    Бит Значение
    0 Данные получены и готовы для чтения,
    сбрасывается при чтении данных.
    1 Ошибка переполнения. Был принят новый
    байт данных, а предыдущий ещё не был считан
    программой. Предыдущий байт потерян.
    2 Ошибка чётности, сбрасывается после
    чтения состояния линии.
    3 Ошибка синхронизации.
    4 Обнаружен запрос на прерывание передачи
    "BREAK" - длинная строка нулей.
    5 Регистр хранения передатчика пуст, в
    него можно записать новый байт для передачи.
    6 Регистр сдвига передатчика пуст. Этот
    регистр получает данные из регистра хранения и
    преобразует их в последовательный вид для
    передачи.
    7 Тайм-аут (устройство не связано с
    компьютером)





    Порт 3FEh


    Регистр состояния модема. Значения битов указаны
    в таблице 7.



    Таблица 7.














































    Бит Значение
    0 Линия CTS изменила состояние.
    1 Линия DSR изменила состояние.
    2 Линия IR изменила состояние.
    3 Линия DCD изменила состояние.
    4 Состояние линии CTS
    5 Состояние линии DSR
    6 Состояние линии IR.
    7 Состояние линии DCD.





    Прием и передача данных



    Перед записью байта данных в регистр
    передатчика нужно убедиться, что регистр
    хранения передатчика

    свободен, то есть убедиться в том, что передача
    предыдущего символа завершена. Признаком
    свободы

    регистра передатчика является установленный в 1
    бит 5 регистра состояния линии с адресом 3FDh.


    Аналогично передачи данных перед вводом
    символа из порта приёмника 3F8h следует убедиться,

    что бит 0 порта 3FDh установлен в 1, то есть что
    символ принят из линии и находиться в буферном

    регистре приёмника.




    Заключение



    Порты с базой 3F8h используются для
    программирования порта COM1, а для порта COM2
    необходимо

    программировать аналогичные порты с базовым
    адресом 2F8h.






      120x600  

     
    468x60
     
         
    +nikinfo.net не несет ответственности за содержание информации, которую размещают пользователи ресурса.
    nikinfo - Николаевский информационный портал © 2006-2025