F40-43a (1041604), страница 51
Текст из файла (страница 51)
1.3262C8051F040/1/2/322. УАПП1УАПП1 представляет собой асинхронный полнодуплексный последовательный порт, способныйработать в режимах 1 и 3 стандартного (для архитектуры 8051) УАПП. Поддержка усовершенствованногорежима генерации скорости передачи данных позволяет использовать для генерации стандартных скоростейобмена различные источники тактирования (см. раздел 22.1). Буферизация принимаемых данных позволяетУАПП1 начать прием второго входящего байта данных до того, как программа закончит чтение предыдущегобайта данных.С работой УАПП1 связаны следующие регистры специального назначения: регистр управленияУАПП1 (SCON1) и буфер данных УАПП1 (SBUF1).
Одна и та же ячейка памяти, адресуемая как SBUF1,обеспечивает доступ и к регистру передатчика, и к регистру приемника. Операция чтения обращается крегистру приемника, а операция записи обращается к регистру передатчика автоматически.Если прерывания от модуля УАПП1 разрешены, то запрос прерывания генерируется при завершениипередачи байта данных (установка в 1 флага TI1 в регистре SCON1) или при получении байта данных(установка в 1 флага RI1 в регистре SCON1).
Флаги прерываний от УАПП1 не сбрасываются аппаратно припереходе к процедуре обслуживания прерывания. Они должны сбрасываться программно. Это позволяетпрограмме определить причину, вызвавшую прерывание от УАПП1 (завершение передачи или завершениеприема).Рисунок 22.1. Структурная схема УАПП1SFR шинаЗаписьв SBUF1TB81SBUF1SETD(регистр сдвига ТХ)QTX1CLRМатрицаДетектор нуляГенерациябита STOPСдвигДанныеУправление передатчиком (Tx)СтартТактирование TxПередачаПрерывание TxSCON1TI1Портввода/выводаПрерывание отпоследовательногопортаMCE1REN1TB81RB81TI1RI1S1MODEСхемагенератораскоростиобменаУАПП1RI1Прерывание RxТактирование RxУправление приемником (Rx)СтартСдвиг0x1FFRB81ЗагрузкаSBUF1Входной регистрсдвига (9 бит)ЗагрузкаSBUF1SBUF1(защелка RX)ЧтениеSBUF1SFR шина263RX1Ред.
1.3МатрицаC8051F040/1/2/322.1. Усовершенствованный режим генерации скорости передачи данных.Скорость передачи данных УАПП1 генерируется Таймером 1, работающим в 8-разрядном режиме савтоперезагрузкой. Частота передатчика (ТХ) определяется переполнением регистра TL1; частота приемникаопределяется переполнением регистра-копии регистра TL1 (обозначенного как «RX-Таймер» на рис.22.2),который недоступен из программы пользователя. Скорость передачи данных передатчика и приемника равнаделенной на два частоте переполнения регистров TL1 и RX-Таймер соответственно. RX-Таймер работает тогда,когда включен Таймер 1 и использует то же самое значение перезагрузки (TH1). Однако перезагрузка регистраRX-Таймер происходит в тот момент, когда на выводе RX обнаруживается событие START.
Это позволяетначать прием данных в любой момент при обнаружении события START, независимо от состояния ТаймераТХ.Рисунок 22.2. Логика генератора скорости передачи данных УАПП1УАПП1Таймер 1TL1Переполнение2Тактирование TX2Тактирование RXTH1Сигнал запускаТаймер RXПереполнениеТаймер 1 следует настроить для работы в режиме 2, т.е.
как 8-разрядный таймер с автоперезагрузкой(см. раздел 23.1.3). Значение перезагрузки Таймера 1 следует установить таким образом, чтобы частотапереполнений таймера была в два раза больше необходимой скорости передачи данных. Частота тактовогсигнала Таймера 1 может быть одной из следующих:1) SYSCLK;2) SYSCLK/4;3) SYSCLK/12;4) SYSCLK/48;5) Частота внешнего генератора / 8.Для любой из этих частот скорость передачи данных УАПП1 определяется из уравнения 22.1.Уравнение 22.1. Скорость передачи данных УАПП1Скорость передачи данных УАПП1 = T1CLK / ((256 – T1H) x 2),гдеT1CLK – частота тактирования Таймера 1;T1H – старший байт Таймера 1 (значение перезагрузки).Выбор частоты тактирования Таймера 1 описан в разделе 23.1.
В таблицах 22.1 – 22.6 приведенысистемные параметры для стандартных скоростей обмена при различных частотах системного тактовогосигнала. Следует отметить, что внутренний генератор может генерировать системный тактовый сигнал, в товремя как сигнал от внешнего генератора подается на Таймер 1 (подробнее см.
раздел 23.1).Ред. 1.3264C8051F040/1/2/322.2. Режимы работы УАПП1УАПП1 обеспечивает стандартный асинхронный полнодуплексный обмен данными. Режим работыУАПП1 (8-разрядный или 9-разрядный) выбирается при помощи бита S1MODE (SCON1.7). Типичныеварианты использования УАПП приведены на рисунке ниже.Рисунок 22.3. Примеры использования УАПП1RS-232LEVELXLTRRS-232TXC8051FxxxRXORTXTXRXRXC8051FxxxMCU22.2.1. 8-разрядный УАПП.В режиме 8-разрядного УАПП для передачи одного байта данных используются 10 бит: одинстартовый бит, восемь бит данных (МЗР вперед) и один стоповый бит.
Данные передаются МЗР вперед черезвнешний вывод TX1 и принимаются через внешний вывод RX1. При приеме в регистре SBUF1 сохраняютсявосемь бит данных, а бит RB81 (SCON1.2) принимает значение стопового бита.Передача данных начинается, когда происходит запись байта данных в регистр SBUF1. Флагпрерывания от передатчика TI1 (SCON1.1) устанавливается в 1 в конце передачи (в начале передачи стоповогобита). Прием данных может быть начат в любое время после установки в 1 флага включения приемника REN1(SCON1.4). После приема стопового бита байт данных будет загружен в регистр приемника SBUF1, еслисоблюдаются следующие условия: RI1 должен быть равен лог.0, и, если MCE1 = 1, то стоповый бит долженбыть равен лог.1.Если эти условия соблюдаются, то восемь бит данных сохраняются в регистре SBUF1, стоповый битсохраняется в бите RB81 и устанавливается в 1 флаг RI1.
Если эти условия не соблюдаются, то SBUF1 и RB81не будут загружаться и флаг RI1 не устанавливается. При установке флагов TI1 или RI1 будет сгенерированопрерывание, если оно разрешено.Рисунок 22.4. Временные диаграммы в режиме 8-разрядного УАППЛог.1Лог.0БитСТАРТD0D1D2D3БИТОВЫЕИНТЕРВАЛЫВЫБОРКА БИТА265Ред. 1.3D4D5D6D7БитСТОПC8051F040/1/2/322.2.2. 9-разрядный УАПП.В режиме 9-разрядного УАПП для передачи одного байта данных используются 11 бит: одинстартовый бит, восемь бит данных (МЗР вперед), программируемый девятый бит данных и один стоповый бит.При передаче значение девятого бита данных определяется значением бита TB81 (SCON1.3), которыйустанавливается/сбрасывается программой пользователя. Значение девятого бита может соответствоватьзначению флага четности Р регистра PSW или использоваться для организации связи с несколькими МК. Приприеме значение девятого бита сохраняется в бите RB81 (SCON1.2), а стоповый бит игнорируется.Передача данных начинается, когда происходит запись байта данных в регистр SBUF1.
Флагпрерывания от передатчика TI1 (SCON1.1) устанавливается в 1 в конце передачи (в начале передачи стоповогобита). Прием данных может быть начат в любое время после установки в 1 флага включения приемника REN1(SCON1.4). После приема стопового бита байт данных будет загружен в регистр приемника SBUF1, еслисоблюдаются следующие условия: RI1 должен быть равен лог.0, и, если MCE1 = 1, то стоповый бит долженбыть равен лог.1 (когда MCE = 0 состояние девятого бита данных не имеет значения). Если эти условиясоблюдаются, то восемь бит данных сохраняются в регистре SBUF1, девятый бит данных сохраняется в битеRB81 и устанавливается в 1 флаг RI1.
Если эти условия не соблюдаются, то SBUF1 и RB81 не будутзагружаться и флаг RI1 не будет устанавливаться. При установке флагов TI1 или RI1 будет сгенерированопрерывание от модуля УАПП1, если оно разрешено.Рисунок 22.5. Временные диаграммы в режиме 9-разрядного УАППЛог.1Лог.0БитСТАРТD0D1D2D3D4D5D6D7D8БитСТОПБИТОВЫЕИНТЕРВАЛЫВЫБОРКА БИТАРед. 1.3266C8051F040/1/2/322.3. Поддержка связи с несколькими МК9-разрядный режим УАПП поддерживает мультимикроконтроллерный обмен данными между ведущимМК и одним или несколькими ведомыми МК, для чего особым образом используется девятый бит данных.Когда ведущий МК хочет передать данные одному или нескольким ведомым МК, он прежде всего посылаетбайт адреса, чтобы выбрать конкретное(-ые) устройство(-а).
Адресный байт отличается от байта данных тем,что его девятый бит равен лог.1; в байте данных девятый бит всегда равен лог.0.Установка в 1 бита MCE1 (SCON1.5) ведомого МК настраивает его модуль УАПП1 таким образом, чтопри получении стопового бита УАПП1 будет генерировать прерывание только в том случае, если принятыйдевятый бит равен лог.1 (RB81 = 1), уведомляя тем самым систему о том, что принят адресный байт. Впроцедуре обработки прерывания от УАПП1 необходимо сравнить принятый адрес с собственным 8-разряднымадресом ведомого. Если эти адреса совпадают, ведомый МК должен сбросить в 0 свой бит MCE, чтобыразрешить генерацию прерываний при получении следующих байтов данных.
Ведомые МК, которые не былиадресованы, оставляют свои биты MCE равными 1 и не генерируют запросов прерываний при полученииследующих байтов данных, т.е. игнорируют их. После того, как все сообщение получено, адресованныйведомый МК устанавливает в 1 бит MCE, чтобы игнорировать все посылки до получения следующегоадресного байта.Одному ведомому устройству можно назначить несколько адресов и/или один адрес можно назначитьнескольким ведомым устройствам, поэтому возможна “широковещательная ” передача данных более чемодному ведомому устройству одновременно.
Ведущий процессор можно настроить на прием всех сообщенийили протокол обмена можно реализовать таким образом, чтобы временно менять местами ведущего и ведомого,обеспечив тем самым полудуплексный обмен данными между истинным ведущим и ведомым(-и).Рисунок 22.6. Пример использования УАПП в многопроцессорном режимеВедущееустройствоВедомоеустройствоВедомоеустройствоВедомоеустройствоVDDRX267TXRXTXRXРед.