F00-17 (1041601), страница 31
Текст из файла (страница 31)
Прием данныхначинается, когда устанавливается в 1 флаг включения приемника REN (SCON.4) и сбрасывается флагпрерывания от приемника RI (SCON.0). Спустя один цикл после приема восьмого бита устанавливается флагRI и прием завершается до программного сброса бита RI. При установке флагов TI или RI будетсгенерировано прерывание, если оно разрешено. Скорость передачи данных в режиме 0 равна 1/12 системнойтактовой частоты. В режиме 0 вывод RX настраивается как выход с открытым стоком и обычно требуетсявнешний подтягивающий резистор.Рисунок 18.2. Пример использования УАПП в режиме 0TXCLKRXDATAC8051FxxxРегистрсдвига8 дополнительных выходовРисунок 18.3.
Временные диаграммы УАПП в режиме 0ПЕРЕДАЧА В РЕЖИМЕ 0RX (выход данных)D0D1D2D3D4D5D6D7TX (выход такт. имп-в)ПРИЕМ В РЕЖИМЕ 0RX (вход данных)D0D1D2D3D4D5D6D7TX (выход такт. имп-в)Page 130CYGNAL Integrated Products, Inc. 20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/718.1.2. Режим 1: 8-разрядный УАПП, различная скорость передачи данныхРежим 1 обеспечивает стандартный асинхронный полнодуплексный обмен данными сиспользованием (обычно) 10 бит для передачи одного байта: один стартовый бит, восемь бит данных (МЗРвперед) и один стоповый бит. Данные передаются через внешний вывод TX и принимаются через внешнийвывод RX. При приеме в регистре SBUF сохраняются восемь бит данных, а бит RB8 (SCON.2) принимаетзначение стопового бита.Передача данных начинается, когда происходит запись байта данных в регистр SBUF.
Флагпрерывания от передатчика TI (SCON.1) устанавливается в 1 в конце передачи (в начале передачи стоповогобита). Прием данных может быть начат в любое время после установки в 1 флага включения приемника REN(SCON.4). После приема стопового бита байт данных будет загружен в регистр приемника SBUF, еслисоблюдаются следующие условия: RI должен быть равен лог.0, и, если SM2 равен лог.1, то стоповый битдолжен быть равен лог.1.Если эти условия соблюдаются, то восемь бит данных сохраняются в регистре SBUF, стоповый битсохраняется в бите RB8 и устанавливается в 1 флаг RI. Если эти условия не соблюдаются, то SBUF и RB8 небудут загружаться и флаг RI не устанавливается.
При установке флагов TI или RI будет сгенерированопрерывание, если оно разрешено.Скорость передачи данных в режиме 1 определяется функцией от переполнения таймера. Длязадания скорости передачи данных УАПП может использовать либо Таймер 1, либо Таймер 2, работающие врежиме с автоматической перезагрузкой. При каждом переполнении таймера (при переходе от всех единиц 0xFF для Таймера 1 и 0xFFFF для Таймера 2 – к нулю) тактовый импульс посылается схеме генератораскорости передачи данных. Для получения скорости передачи частота этих импульсов делится на 16.Когда Таймер 1 используется в качестве генератора скорости передачи данных, он должен бытьнастроен как 8-разрядный таймер/счетчик с автоматической перезагрузкой. Системная тактовая частота изначение перезагрузки, сохраняемое в регистре TH1, определяют скорость передачи данных следующимобразом:Mode 1 Baud Rate = (2SMOD / 32) * (SYSCLK)/(12(T1M – 1) * (256 – TH1)).Бит SMOD (PCON.7) определяет, делить или нет частоту переполнения Таймера 1 на 2.
При сбросебит SMOD равен лог.0, таким образом по умолчанию выбирается обычная (не удвоенная) скорость передачиданных. Выбирая временной интервал, используемый Таймером 1, можно изменять скорость передачи вшироком диапазоне. При использовании системной тактовой частоты, деленной на единицу (настраивая битT1M в регистре CKCON), в знаменателе приведенного выше уравнения следует заменить 12 на 1.Для использования Таймера 2 в качестве генератора скорости передачи данных необходимо выбратьрежим «генератор скорости передачи данных» таймера и установить в 1 бит RCLK и/или бит TCLK.Установка бит RCLK и/или TCLK автоматически запретит прерывания от Таймера 2 и настроит Таймер 2 наиспользование системной частоты, деленной на 2, в качестве источника тактового сигнала.
Если требуетсядругой тактовый сигнал, то установкой в 1 бита C/T2 можно настроить Таймер 2 на использование тактовогосигнала, поданного на внешний вывод Т2. Системная тактовая частота и значение перезагрузки, сохраненноев регистрах захвата, определяют скорость передачи данных следующим образом:Mode 1 Baud Rate = SYSCLK / [32 * (65536 – [RCAP2H:RCAP2L]) ],где [RCAP2H:RCAP2L] представляет собой 16-разрядное значение, сохраненное в регистрах захвата.Рисунок 18.4. Временные диаграммы УАПП в режиме 1Лог.1Лог.0БитСТАРТD0D1D2D3D4D5D6D7БитСТОПБИТОВЫЕИНТЕРВАЛЫВЫБОРКА БИТА4.2002; Rev.
1.4CYGNAL Integrated Products, Inc. 2002Page 131C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 18.5. Пример использования УАПП в режимах 1, 2 и 3TXRS-232LEVELXLTRRS-232RXC8051FxxxORTXTXRXRXMCUC8051Fxxx18.1.3. Режим 2: 9-разрядный УАПП, фиксированная скорость передачи данныхРежим 2 обеспечивает асинхронный полнодуплексный обмен данными с использованием 11 бит дляпередачи одного байта: один стартовый бит, восемь бит данных (МЗР вперед), программируемый девятыйбит данных и один стоповый бит. При передаче значение девятого бита данных определяется значением битаTB8 (SCON.3). Оно может соответствовать значению флага четности Р регистра PSW или использоваться дляорганизации связи с несколькими МК. При приеме значение девятого бита сохраняется в бите RB8 (SCON.2),а стоповый бит игнорируется.Передача данных начинается, когда происходит запись байта данных в регистр SBUF.
Флагпрерывания от передатчика TI (SCON.1) устанавливается в 1 в конце передачи (в начале передачи стоповогобита). Прием данных может быть начат в любое время после установки в 1 флага включения приемника REN(SCON.4). После приема стопового бита байт данных будет загружен в регистр приемника SBUF, еслисоблюдаются следующие условия: RI должен быть равен лог.0, и, если SM2 равен лог.1, то девятый битданных должен быть равен лог.1.Если эти условия соблюдаются, то восемь бит данных сохраняются в регистре SBUF, девятый битданных сохраняется в бите RB8 и устанавливается в 1 флаг RI.
Если эти условия не соблюдаются, то SBUF иRB8 не будут загружаться и флаг RI не будет устанавливаться. При установке флагов TI или RI будетсгенерировано прерывание, если оно разрешено.Скорость передачи данных в режиме 2 является прямой функцией от системной тактовой частоты иопределяется следующим уравнением:Mode 2 Baud Rate = 2SMOD * (SYSCLK / 64).Бит SMOD (PCON.7) определяет, делить системную тактовую частоту на 32 или на 64. В этойформуле 2 возводится в степень SMOD, в результате чего скорость передачи данных будет равна либо 1/32,либо 1/64 системной тактовой частоты. При сбросе бит SMOD равен лог.0, таким образом по умолчаниювыбирается обычная (не удвоенная) скорость передачи данных.Рисунок 18.6.
Временные диаграммы УАПП в режимах 2 и 3Лог.1БитСТАРТЛог.0D0D1D2D3D4D5D6D7D8БитСТОПБИТОВЫЕИНТЕРВАЛЫВЫБОРКА БИТА18.1.4. Режим 3: 9- разрядный УАПП, различная скорость передачи данныхРежим 3 отличается от режима 2 только тем, что скорость передачи данных в этом режиме можетбыть различной. Скорость передачи данных определяется таким же образом, как и для режима 1. В режиме 3передаются 11 бит: один стартовый бит, восемь бит данных (МЗР вперед), программируемый девятый битданных и один стоповый бит. Скорость передачи данных определяется переполнением Таймера 1 илиТаймера 2 точно так же, как для режима 1. Т.е. можно сказать, что в режиме 3 используется протоколпередачи данных, как в режиме 2, и генерация скорости передачи данных, как в режиме 1.Page 132CYGNAL Integrated Products, Inc.
20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/718.2. Поддержка связи с несколькими МКРежимы 2 и 3 поддерживают мультимикроконтроллерный обмен данными между ведущим МК иодним или несколькими ведомыми МК, для чего особым образом используется девятый бит данных. Когдаведущий МК хочет передать данные одному или нескольким ведомым МК, он прежде всего посылает байтадреса выбранному(-ым) устройству(-ам). Адресный байт отличается от байта данных тем, что его девятыйбит равен лог.1; в байте данных девятый бит всегда равен лог.0.Установка в 1 бита SM2 (SCON.5) ведомого МК настраивает его модуль УАПП таким образом, чтопри получении стопового бита УАПП будет генерировать прерывание только в том случае, если девятыйбит равен лог.1, означая, что получен байт адреса.
В обработчике прерывания от УАПП программа сравнитполученный адрес с собственным 8-разрядным адресом, назначенным ведомому МК. Если эти адресасовпадают, ведомый МК сбросит в 0 бит SM2, разрешив тем самым генерацию прерываний при полученииследующих байтов данных. Ведомые МК, которые не распознали полученный адрес как собственный,оставляют бит SM2 установленным в 1 и не генерируют прерывания при получении следующих байтовданных, т.е. данные игнорируются. После того, как все сообщение получено, адресованный ведомый МКустанавливает в 1 бит SM2, чтобы игнорировать все посылки до получения следующего адресного байта.Несколько адресов могут быть назначены одному ведомому и/или один адрес может быть назначеннескольким ведомым, разрешая тем самым широковещательную передачу нескольким ведомым МКодновременно.
При этом ведущий МК может быть настроен для приема всех передаваемых пакетов илипротокол обмена может быть реализован таким образом, чтобы ведущий и ведомый МК временно менялисьролями (т.е. ведущий становится ведомым, а ведомый – ведущим), обеспечивая таким образомполудуплексный обмен данными между первоначальным ведущим и ведомым(-и).Рисунок 18.7. Пример использования УАПП в многопроцессорном режимеВедущееустройствоВедомоеустройствоВедомоеустройствоВедомоеустройствоVDDRX4.2002; Rev. 1.4TXRXTXRXTXCYGNAL Integrated Products, Inc. 2002RXTXPage 133C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Таблица 18.2.