Программирование модемов

Регистр управления модемом



Регистр управления модемом

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

Формат регистра:

7 6 5 4 3 2 1 0 --T-T-T-T-T-T-T-¬ ¦ ¦ ¦ ¦ ¦ ¦ ¦ LT+-+T+T+T+T+T+T- L=T=- ¦ ¦ ¦ ¦ L= Линия DTR. Сигнал подтверждения связи. ¦ ¦ ¦ ¦ ¦ Используется модемами для разрешения ¦ ¦ ¦ ¦ ¦ передачи данных между компьютером ¦ ¦ ¦ ¦ ¦ и микросхемой UART ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L=== Линия RTS. Сигнал подтверждения связи. ¦ ¦ ¦ ¦ Используется модемами для разрешения ¦ ¦ ¦ ¦ передачи данных между компьютером ¦ ¦ ¦ ¦ и микросхемой UART ¦ ¦ ¦ ¦ ¦ ¦ ¦ L===== Линия OUT1 (запасная). Для некоторых ¦ ¦ ¦ модемов при установке этого бита в единицу ¦ ¦ ¦ происходит его аппаратный сброс ¦ ¦ ¦ ¦ ¦ L======= Линия OUT2 (запасная). Если бит D3 ¦ ¦ содержит единицу, то UART может ¦ ¦ вырабатывать прерывания, а если нулю - ¦ ¦ не может ¦ ¦ ¦ L========= Запуск диагностики при входе ¦ асинхронного адаптера, замкнутом ¦ на его выход (Digital Loopback test). Эта ¦ возможность реализована только для ¦ асинхронных портов, использующих ¦ микросхему UART 8250, или полностью ¦ совместимых с ней ¦ L============= Должны быть равны 0

Регистр управления модемом определен нами в файле uart_reg.h следующим образом:

// регистр управления модемом

#define MCR_N 4 // смещение относительно базового адреса

typedef union _MCR_ {

struct {

unsigned char dtr : 1; unsigned char rts : 1; unsigned char out1 : 1; unsigned char out2 : 1; unsigned char diag : 1; unsigned char reserv : 3;

} bit_reg;

unsigned char byte;

} MCR;



Содержание раздела