Работа УАПП в мультимикроконтроллерных системах
В системах децентрализованного управления, которые используются для управления и регулирования в топологически распределенных объектах (например, прокатных станах, электроподвижном составе железных дорог и метрополитена, сборочных конвейерах и линиях гибких автоматизированных производств), возникает задача обмена информацией между множеством микроконтроллеров, объединенных в локальную вычислительно-управляющую сеть. Как правило, локальные сети на основе МК51 имеют магистральную архитектуру с разделяемым моноканалом (коаксиальный кабель, витая пара, оптическое волокно), по которому осуществляется обмен информацией между МК.
В регистре специальных функций SCON микроконтроллера имеется управляющий бит SM2, который в режимах 2 и 3 УАПП позволяет относительно простыми средствами реализовать межконтроллерный обмен информацией в локальных управляющих сетях.
Механизм межконтроллерного обмена информацией через последовательный порт МК51 построен на том, что в режимах 2 и 3 программируемый девятый бит данных при приеме фиксируется в бите RB8. УАПП может быть запрограммирован таким образом, что при получении стоп-бита прерывание от приемника будет возможно только при условии RB8 = 1. Это выполняется установкой управляющего бита SM2 в регистре SCON.
Поясним процесс межконтроллерного обмена информацией на примере. Пусть ведущему МК требуется передать блок данных некоторому (или нескольким) ведомому МК. С этой целью ведущий МК в протокольном режиме "широковещательной" передачи (всем ведомым МК) выдает в моноканал байт-идентификатор абонента (код адреса МК-получателя), который отличается от байтов данных только тем, что в его девятом бите содержится 1. Программа реализации протокола сетевого обмена информацией должна быть построена таким образом, чтобы при получении Райта- идентификатора (RB8 = 1) во всех ведомых МК произошли прерывание прикладных программ и вызов подпрограммы сравнения байта-идентификатора с кодом собственного сетевого адреса. Адресуемый МК сбрасывает свой управляющий бит SM2 и готовится к приему блока данных. Остальные ведомые МК, адрес которых не совпал с кодом байта-идентификатора, оставляют неизменным состояние SM2 = 1 и передают управление основной программе. При SM2 = 1 ин формационные байты, передаваемые по моноканалу и поступающие в УАПП ведомых МК, прерывания не вызывают, т.е. игнорируются.
В режиме 1 УАПП автономного МК управляющий бит SM2 используется для контроля истинности стоп-бита (при SM2 = 1 прерывание не произойдет до тех пор, пока не будет получено истинное (единичное) значение стоп- бита). В режиме 0 бит SM2 не используется и должен быть сброшен.
Скорость приема/передачи
Скорость приема/передачи, т.е. частота работы УАПП в различных режимах, определяется различными способами.
В режиме 0 частота передачи зависит только от резонансной частоты кварцевого резонатора f0 = fрез/12. За один машинный цикл последовательный порт передает один бит информации.
В режимах 1, 2 и 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре специальных функций РУМ (табл. 11.2).
В режиме 2 частота передачи определяется выражением f2 = (2MOD/64)*fрез иными словами, при SMOD = 0 частота передачи равна (1/64) *fрез, а при SMOD = 1 равна (1/32)*fрез.
Таблица 11.2. Регистр управления мощностью РУМ
Символ | Позиция | Имя и назначение |
SMOD | PCON.7 | Удвоенная скорость передачи. Если бит установлен в 1, то скорость передачи вдвое больше, чем при SMOD = 0 |
---- | PCON.6 | Не используются |
---- | PCON.5 | |
---- | PCON.4 | |
GF1 | PCON.3 | Флаги, специфицируемые пользователем (флаги общего назначения) |
GF0 | PCON.2 | |
PD | PCON.1 | Бит пониженной мощности. При установке бит а в 1 МК переходит в режим пониженной потребляемой мощности |
IDL | PCON.0 | Бит холостого хода. Если бит установлен в 1, то МК переходит в режим холостого хода |
Примечание. При одновременной записи 1 в PD и IDL бит PD имеет преимущество. Сброс содержимого РУМ выполняется путем загрузки в него кода 0XXX0000. |
В режимах 1 и 3 в формировании частоты передачи кроме управляющего бита SMOD принимает участие таймер 1. При этом частота передачи зависит от частоты переполнения (OVT1) и определяется следующим образом:
f1, 3 = (2SMOD/32)*fOVT1.
Прерывание от таймера 1 в этом случае должно быть заблокировано. Сам T/C1 может работать и как таймер, и как счетчик событий в любом из трех режимов. Однако наиболее удобно использовать режим таймера с автоперезагрузкой (старшая тетрада TMOD = 0010В). При этом частота передачи определяется выражением:
f1, 3 = (2SMOD/32)*(fрез/12)/(256-(TH1))
В табл. 11.3 приводится описание способов настройки Т/С1 для получения типовых частот передачи данных через УАПП.
Таблица 11.3. Настройка таймера 1 для управления частотой работы УАПП
Частота приема/передачи (BAUD RATE) | Частота резонатора, МГц | SMOD | Таймер/счетчик 1 | ||
C/T | Режим (MODE) | Перезагружаемое число | |||
Режим 0, макс: 1 МГц | X | X | X | X | |
Режим 2, макс: 375 кГц | X | X | X | ||
Режимы 1, 3: 62.5 кГц | 0FFH | ||||
19.2 кГц | 11.059 | 0FDH | |||
9.6 кГц | 11.059 | 0FDH | |||
4.8 кГц | 11.059 | 0FAH | |||
2.4 кГц | 11.059 | 0F4H | |||
1.2 кГц | 11.059 | 0E8H | |||
137.5 Гц | 11.059 | 1DH | |||
110 Гц | 72H | ||||
110 Гц | 0FEEBH |