
93
М
УЛЬТИПРОЦЕССОРНЫЙ РЕЖИМ ОБМЕНА
Мультипроцессорный режим позволяет данные от одного ведущ ег о контроллера
передать нескольким подчиненным (ведо мым ) контроллерам. Это осуществляется
декодированием первого адресного байта, позволяющего выяснить, который из
подчиненных контроллеров адресован. Если подчиненный контроллер адресован, он
примет следую щи е байты данных, в то время как другие подчиненные контроллеры
игнорируют эти байты данных до получения другого адресного байта.
Для ведущ ег о контроллера необходимо ввести 9-разрядный режим передачи
(CHR9 в регистре UCSRB установлен). 9-ый бит должен быть равен 1, если передается
адресный байт, и нулю, если передается байт данных.
Для ведомы х контроллеров, механизм проявляется слегка по-другому для 8-
разрядного и 9-разрядного режима приема. В 8-разрядном режиме приема (CHR9 в
регистре UCSRB сброшен), стоповый бит равен 1 для адресного байта и нулю - для байта
данных. В 9-разрядном режиме приема (CHR9 регистре UCSRB установлен), 9-ый бит
равен 1 для адресного байта и нулю - для байта данных, принимая во внимание, что
стоповый бит - всегда равен 1.
В мультипроцессорном режиме обмена должна использоваться следу ющ ая
процедура:
º Все подчиненные контроллеры переводятся в мультипроцессорный режим
связи (устанавливается бит MPCM в регистре UCSRA).
º Ведущий контроллер посылает адресный байт, и все ведомые принимают и
читают этот байт (флажки RXC в регистрах UCSRA устанавливаются).
º Каждый ведомый контроллер читает свой регистр UDR и определяет был ли
он выбран. Если так, то он очищает MPCM бит в регистре UCSRA, и далее
ожидает байт данных.
º Для каждого полученного байта данных, принимающий контроллер
устанавливает флажок RXC в регистре UCSRA. В 8-разрядном режиме,
принимающий контроллер также генерирует ошибку кадровой
синхронизации (FE в регистре UCSRA), начиная с нулевого стопового бита.
Другие контроллеры, у которых бит MPCM равен 1, игнорируют байт данных.
В этом случае, регистр UDR и бит RXC или FE не работают.
º После передачи последнего байта повторяется процесс пересылки адреса.
Р
ЕГИСТРЫ УПРАВЛЕНИЯ
UART
Регистр UCSRA
º Бит 7 – RXC (UART Receive Complete) прием завершен. Данный бит
устанавливается в состояние 1 при пересылке принятого символа из
сдвигового регистра приема в UDR. Бит устанавливается вне зависимости от
отсутствия или наличия ошибок приема кадра. При установленном в
регистре UCSRB бите RXCIE и установленном бите RXC выполняется
прерывание по завершению приема UART. Бит RXC очищается при
считывании UDR. При приеме данных инициированном прерыванием,
подпрограмма обработки прерывания по завершению приема UART должна
считать UDR, с тем, чтобы очистить RXC, иначе по окончании подпрограммы
обработки прерывания произойдет новое прерывание.
º Бит 6 – TXC (UART Transmit Complete) - передача завершена. Данный бит
устанавливается в состояние 1 когда весь символ (включая стоповый бит)
выведен из сдвигового регистра передачи и в UDR не записаны новые