Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MSP430_НВВ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.67 Mб
Скачать

3.9.1.3 Поддержка коммуникации в многопроцессорных системах

С помощью UART можно организовать обмен данными между несколькими микроконтроллерами, используя, например, аппаратный интерфейс RS485. Не вдаваясь в тонкости аппаратной реализации RS485, укажем, что все микроконтроллеры (абоненты) объединяются в локальную информационную сеть. При этом каждый передатчик одного абонента может быть соединен с приемниками всех других абонентов. Передачу всегда ведет один абонент с помощью блоков кадров (пакетов), а прием этих блоков осуществляют все абоненты сети. Для того чтобы абонент-получатель определил, что пакет предназначен именно для него, первый байт пакета, как правило, содержит информацию об адресе получателя. Если абонент-получатель распознал свой адрес, он принимает весь пакет, в противном случае пакет игнорируется. Поэтому для производительной работы в локальной сети необходим эффективный механизм распознавания начала информационного пакета. Для этих целей UART микроконтроллеров MSP430 поддерживает два механизма: использование адресного бита (address bit) и режим свободной линии (idle line).

Для режима idle line необходимо, чтобы пауза между последовательно передаваемыми кадрами в пакете не превышала длительности одного кадра. При получении первого кадра после паузы в регистре управления приемника аппаратно устанавливается бит RXWAKE, сигнализируя, что принят адресный байт. Программная установка другого бита этого регистра RXWIE позволяет приемнику игнорировать все не адресные байты (бит RXIFG не устанавливается). Таким образом, абонент-получатель нормально устанавливает бит RXWIE и ожидает получения первого байта, после чего сравнивает его содержимое с собственным адресом. Если адрес опознан, он сбрасывает бит RXWIE и принимает далее весь пакет. После приема адресованного ему пакета бит RXWIE взводится опять. В том случае, если адрес не опознан, RXWIE не сбрасывается, следовательно, остальные байты пакета отбрасываются приемником (не взводится флаг URXIFG).

Для генерации абонентом-отправителем точного периода простоя на своей линии UTXD имеется специальный бит TXWAKE в регистре управления передатчика. Абонент-отправитель должен дождаться готовности передатчика (бит TXIFG должен быть установлен), установить в 1 бит TXWAKE, после чего записать произвольные данные в буфер UTXBUF. Т.к. бит TXWAKE установлен, физически данные передаваться не будут, но по окончанию длительности передачи кадра будет взведен флаг TXIFG, после чего можно передавать адресный байт. Бит TXWAKE сбрасывается автоматически после передачи паузы.

Логика работы локальной сети в режиме address bit очень похожа на режим idle line с той лишь разницей, что маркирование адресного байта производится не паузой при передаче пакетов, а наличием дополнительного бита в кадре, установленного в 1, в то время как все данные передаются со сброшенным адресным битом. Логика работы с битами RXWAKE и RXWIE аналогична вышеизложенной. Для того чтобы пометить начало пакета абонент-отправитель должен просто перед посылкой первого байта установить в 1 бит TXWAKE.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]