Скачиваний:
22
Добавлен:
01.05.2014
Размер:
2.3 Mб
Скачать

1.4. Многопроцессорная связь

Режимы 2 и 3 предназначены для многопроцессорной связи. В Режиме 2, последовательный порт генерирует прерывание приёмника (RI) только когда установлен девятый информационный разряд. В Режиме 3, последовательный порт генерирует прерывание приёмника (RI) независимо от значения девятого бита. Девятый бит всегда установлен в кадрах адреса и всегда сброшен в кадрах данных. Один из способов использования этих режимов для многопроцессорной связи состoит в том, чтобы устанавливать главный процессор в Режим 3, а подчиненные процессоры в Режим 2. Когда главный процессор хочет передавать блок данных к одному из нескольких подчиненных, он посылает кадр адреса, который идентифицирует адрес подчиненного. Так как девятый бит установлен, кадр адреса будет прерывать все подчинённые процессоры. Каждый подчиненный может исследовать байт адреса и определить, не его ли адрес поступил?

Адресованный подчиненный процессор переключается в Режим 3, чтобы получить кадры (фреймы) данных, в то время как другие (не адресованные) процессоры остаются в Режиме 2 и не прерываются при приёме данных адресованным процессором.

1.5. Программирование последовательного порта

При программировании последовательного порта используются регистры, описанные ниже.

1.5.1. Регистр скорости передачи

Baud Rate Register

Аббревиатура - BAUD_RATE.

Размер - 2 байта.

Находится по адресу 0Eh.

Использовать для записи в окне HWindow 0.

Регистр скорости передачи (Baud Rate) устанавливает скорость передачи последовательного порта в бодах и источник тактовой частоты (clock source). Он содержит два байта, причем запись в регистр должна начинаться с записи младшего байта.

Старший бит регистра (CS) выбирает тактовый генератор. Младшие 15 бит представляют (BAUD_VALUE), целое без знака, которое определяет скорость передачи в бодах. BAUD_VALUE имеет максимальное значение равное 32,767 и может иметь минимальное значение, равное нулю только когда используется внутренняя синхронизация в асинхронных режимах 1, 2, и 3. В остальных случаях минимальное значение BAUD_VALUE = 1.

BAUD_RATE

адрес 0Eh

запись HWindow 0

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

CS

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

B0

CS (CLOCK_SRC, Serial Port Clock Source, источник синхронизации последовательного порта) - этот бит определяет внутренний (CS=1, контакт XTAL1) или внешний (CS=0, контакт T2CLK (P2.3)) источник синхронизации для последовательного порта.

B0...B14 (BAUD_VALUE) - эти биты составляют BAUD_VALUE. Младший байт загружается первым.

После сброса состояние регистра BAUD_RATE следующее:

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

X

0

0

0

0

0

0

0

X

Для определения скорости передачи используются следующие формулы (Fosc- частота на контакте XTAL1, в учебном стенде 8 МГц):

Синхронный режим 0:

BAUD_VALUE=(Fosc/(Baud Rate x 2))-1

или T2CLK/Baud Rate

Асинхронные режимы 1,2,3:

BAUD_VALUE=(Fosc/(Baud Rate x 16))-1

или T2CLK/(Baud Rate x 8)

Соседние файлы в папке Лабораторные работы по МПС