F20-23 (1041603), страница 43
Текст из файла (страница 43)
Скорость передачи данных в режиме 1, задаваемая с помощью Таймера 1.Mode 1 Baud Rate = (2SMOD0 / 32) * SYSCLK*(12(T1M – 1) / (256 – TH1)).Уравнение 20.2. Скорость передачи данных в режиме 1, задаваемая с помощью Таймера 2.Mode 1 Baud Rate = SYSCLK / [32 * (65536 – [RCAP2H:RCAP2L]) ].В этих уравнениях используются следующие обозначения:Т1М – бит выбора коэффициента деления системной тактовой частоты для Таймера 1 (в регистреCKCON).207Ред. 1.4C8051F020/1/2/3TH1 – 8-разрядное значение регистра перезагрузки Таймера 1.SMOD0 – бит удвоения скорости передачи данных УАПП0 (в регистре PCON).RCAP2H:RCAP2L – 16-разрядное значение регистра перезагрузки Таймера 2.20.1.3. Режим 2: 9-разрядный УАПП0, фиксированная скорость передачи данныхРежим 2 обеспечивает асинхронный полнодуплексный обмен данными с использованием 11 бит дляпередачи одного байта: один стартовый бит, восемь бит данных (МЗР вперед), программируемый девятый битданных и один стоповый бит.
Режим 2 поддерживает организацию связи с несколькими МК и аппаратноераспознавание адреса (см. раздел 20.2). При передаче значение девятого бита данных определяется значениембита TB80 (SCON0.3). Оно может соответствовать значению флага четности Р регистра PSW илииспользоваться для организации связи с несколькими МК. При приеме значение девятого бита сохраняется вбите RB80 (SCON0.2), а стоповый бит игнорируется.Передача данных начинается, когда происходит запись байта данных в регистр SBUF0. Флагпрерывания от передатчика TI0 (SCON0.1) устанавливается в 1 в конце передачи (в начале передачи стоповогобита). Прием данных может быть начат в любое время после установки в 1 флага включения приемника REN0(SCON0.4).
После приема стопового бита байт данных будет загружен в регистр приемника SBUF0, еслиRI0 = 0 и если соблюдается одно из следующих условий:1.2.SM20 = 0SM20 = 1, принятый 9-й бит равен лог. ‘1’, принятый адрес соответствует адресу УАПП0, какописано в разделе 20.2.Если описанные выше условия соблюдаются, то восемь бит данных сохраняются в регистре SBUF0,девятый бит данных сохраняется в бите RB80 и устанавливается в 1 флаг RI0. Если эти условия несоблюдаются, то SBUF0 и RB80 не будут загружаться и флаг RI0 не будет устанавливаться. При установкефлагов TI0 или RI0 будет сгенерировано прерывание, если оно разрешено.Скорость передачи данных в режиме 2 будет равна SYSCLK/32 или SYSCLK/64 в зависимости отзначения бита SMOD0 регистра PCON:Уравнение 20.3.
Скорость передачи данных в режиме 2Mode 2 Baud Rate = 2SMOD0 * (SYSCLK / 64).Рисунок 20.5. Временные диаграммы УАПП в режимах 2 и 3Лог.1Лог.0БитСТАРТD0D1D2D3D4D5D6D7D8БитСТОПБИТОВЫЕИНТЕРВАЛЫВЫБОРКА БИТАРед. 1.4208C8051F020/1/2/3Рисунок 20.6. Пример использования УАПП в режимах 1, 2 и 3RS-232LEVELXLTRRS-232TXRXC8051FxxxORTXTXRXRXMCUC8051Fxxx20.1.4. Режим 3: 9- разрядный УАПП, различная скорость передачи данныхВ режиме 3 используется протокол передачи данных, как в режиме 2, и генерация скорости передачиданных, как в режиме 1.
В режиме 3 передаются 11 бит: один стартовый бит, восемь бит данных (МЗР вперед),программируемый девятый бит данных и один стоповый бит. Скорость передачи данных определяетсяпереполнением Таймера 1 или Таймера 2 в соответствии с уравнениями 20.1.
и 20.2. Поддерживаютсяаппаратное распознавание адреса и организация связи с несколькими МК, как описано в разделе 20.2.209Ред. 1.4C8051F020/1/2/320.2. Поддержка связи с несколькими МКРежимы 2 и 3 поддерживают мультимикроконтроллерный обмен данными между ведущим МК иодним или несколькими ведомыми МК, для чего применяется встроенная схема аппаратного распознаванияадреса и особым образом используется девятый бит данных. Когда ведущий МК хочет передать данные одномуили нескольким ведомым МК, он прежде всего посылает байт адреса выбранному(-ым) устройству(-ам).Адресный байт отличается от байта данных тем, что его девятый бит равен лог.1; в байте данных девятый битвсегда равен лог.0.Адрес УАПП0 определяется двумя SFR регистрами: SADDR0 (адрес последовательного порта) иSADEN0 (разрешение адреса последовательного порта). Регистр SADEN0 устанавливает битовую маску дляадреса, хранимого в регистре SADDR0: биты, установленные в 1 в регистре SADEN0, соответствуют битамрегистра SADDR0, которые участвуют в сравнении с принятым байтом адреса; биты, сброшенные в 0 врегистре SADEN0, соответствуют битам регистра SADDR0, состояние которых «не имеет значения» присравнении с принятым байтом адреса.Пример 1Пример 2Пример 3SADDR0= 00110101SADEN0= 00001111Адрес УАПП0 = хххх0101SADDR0= 00110101SADEN0= 11110011Адрес УАПП0 = 0011хх01SADDR0= 00110101SADEN0= 11000000Адрес УАПП0 = 00ххххххУстановка в 1 бита SM20 (SCON0.5) настраивает модуль УАПП0 таким образом, что при получениистопового бита УАПП0 будет генерировать прерывание только в том случае, если девятый бит равен лог.1(RB80 = 1) и принятый байт данных соответствует адресу ведомого УАПП0.
После возникновения такогопрерывания следует сбросить в 0 бит SM20, чтобы разрешить генерацию прерываний при полученииследующих байтов данных. После того, как все сообщение получено, адресованный ведомый МК устанавливаетв 1 бит SM20, чтобы игнорировать все посылки до получения следующего адресного байта. Пока SM20 = 1,УАПП0 игнорирует все байты, значение которых не соответствует адресу УАПП0 и 9-й бит которых не равенлог. ‘1’.Рисунок 20.7. Пример использования УАПП в многопроцессорном режимеВедущееустройствоВедомоеустройствоВедомоеустройствоВедомоеустройствоVDDRXTXRXTXRXРед.
1.4TXRXTX210C8051F020/1/2/320.3. Определение ошибок формата и ошибок передачиОпределение ошибок формата доступно в описанных ниже режимах, когда бит SSTAT0 в регистреPCON установлен в 1.Примечание: Для доступа к любому из битов состояния (FE0, RXOVR0, TXCOL0) бит SSTAT0 долженбыть установлен в 1. Для доступа к битам выбора режима УАПП0 (SM00, SM10, SM20) бит SSTAT0 долженбыть сброшен в 0.Все режимы:Бит ошибки передачи (TXCOL0 в регистре SCON0) читается как ‘1’, если программа пользователязаписывает данные в регистр SBUF0 во время процесса передачи данных. Следует иметь ввиду, что битTXCOL0 функционирует также как бит SM20, если бит SSTAT0 в регистре PCON сброшен в 0.Режимы 1, 2 и 3:Бит переполнения приемника (RXOVR0 в регистре SCON0) читается как ‘1’, если новый байт данныхфиксируется в буфере приемника прежде, чем программа закончит чтение предыдущего байта.
Следует иметьввиду, что бит RXOVR0 функционирует также как бит SM10, если бит SSTAT0 в регистре PCON сброшен в 0.Бит ошибки формата (FE0 в регистре SCON0) читается как ‘1’, если обнаружен некорректный (низкогоуровня) бит STOP. Следует иметь ввиду, что бит FE0 функционирует также как бит SM00, если бит SSTAT0 врегистре PCON сброшен в 0.211Ред. 1.4C8051F020/1/2/3Таблица 20.2. Тактовые частоты, соответствующие стандартным скоростям обменаТактовая частота(МГц)25.025.024.57624.57624.024.023.59223.59222.118422.118418.43218.43216.588816.588814.745614.745612.902412.902411.059211.05929.2169.2167.37287.37285.52965.52963.68643.68641.84321.8432Коэффициентделения43486832084820883320581919276816064014457612851211244896348803206425648192321281664Значение перезагрузкиТаймера 1*0xE50xCA0xEC0xCB0XF30xCC0xF30xCD0xF40xD00xF60xD80xF70xDC0xF80xE00xF90xE40xFA0xE80xFB0xEC0xFC0xF00xFD0xF40xFE0xF80xFF0xFCСкорость передачиданных (Гц)**57600 (57870)288007680028800 (28921)115200 (115384)28800 (28846)115200 (113423)28800 (28911)1152002880011520028800115200288001152002880011520028800115200288001152002880011520028800115200288001152002880011520028800* При условии, что SMOD0 = 1 и T1M = 1.** Числа в скобках показывают действительную скорость передачи данных.Ред.
1.4212C8051F020/1/2/3Рисунок 20.8. SCON0: Регистр управления УАПП0R/WR/WR/WSM00/FE0 SM10/RXOV0 SM20/TXCOL0Бит 7Бит 6Бит 5R/WREN0R/WTB80R/WRB80R/WTI0R/WRI0Бит 4Бит 3Бит 2Бит 1Бит 0(доступен в битовомрежиме адресации)Значениепри сбросе:00000000SFR Адрес:0x98Биты 7-6: Функционирование этих бит определяется битом SSTAT0 регистра PCON.Если SSTAT0 = 1, то эти биты являются битами состояния УАПП0, как описано в разделе 20.3.Если SSTAT0 = 0, то эти биты выбирают режим работы последовательного порта, как показанониже.SM00 - SM10: Биты выбора режима работы УАПП0:SM000011SM100101Режим работы УАПП0Режим 0: синхронный режимРежим 1: 8-битный УАПП, изменяемая скорость передачиРежим 2: 9- битный УАПП, фиксированная скорость передачиРежим 3: 9- битный УАПП, изменяемая скорость передачиБит 5:SM20: Разрешение поддержки мультимикроконтроллерного взаимодействия.Если SSTAT0 = 1, то этот бит является битом состояния УАПП0, как описано в разделе 20.3.Если SSTAT0 = 0, то функционирование этого бита зависит от режима работы УАПП0.Режим 0: Не влияет на работуРежим 1: Проверка корректности стопового бита.0: Логический уровень стопового бита игнорируется.1: Флаг RI0 будет установлен только в том случае, если стоповый бит равен лог.1.Режимы 2 и 3: Разрешение поддержки мультимикроконтроллерного взаимодействия.0: Логический уровень девятого бита игнорируется.1: Флаг RI0 устанавливается и прерывание генерируется только в том случае, еслидевятый бит равен лог.1 и принятый адрес соответствует адресу УАПП0 илишироковещательному адресу.Бит 4:REN0: Разрешение приема.Этот бит включает/отключает приемник УАПП0.0: Прием данных модулем УАПП0 запрещен.1: Прием данных модулем УАПП0 разрешен.Бит 3:TB80: Девятый бит передаваемых данных.Значение этого бита будет передано в качестве девятого бита данных в режимах 2 и 3.