F60-67 (1041605), страница 50
Текст из файла (страница 50)
‘1’.22.2.2. Широковещательная адресацияОдному ведомому устройству можно назначить несколько адресов и/или один адрес можно назначитьнескольким ведомым устройствам, поэтому возможна “широковещательная ” передача данных более чемодному ведомому устройству одновременно. Широковещательный адрес представляет собой логическое ИЛИсодержимого регистров SADDR0 и SADEN0, при этом нули в полученном результате рассматриваются как “неимеющие значения”. Обычно широковещательный адрес 0xFF распознается всеми ведомыми устройствами,принимающими “не имеющие значения” биты за ‘1’. Ведущий процессор можно настроить на прием всехсообщений или протокол обмена можно реализовать таким образом, чтобы временно менять местами ведущегои ведомого, обеспечив тем самым полудуплексный обмен данными между истинным ведущим и ведомым(-и).Пример 1, Ведомый №1Пример 2, Ведомый №2Пример 3, Ведомый №3SADDR0= 00110101SADDR0= 00110101SADEN0= 00001111SADEN0= 11110011ШироковещательныйШироковещательныйадрес= 00111111адрес= 11110111Все нули в широковещательном адресе “не имеют значения”.SADDR0= 00110101SADEN0= 11000000Широковещательныйадрес= 11110101Следует отметить, что в приведенных выше примерах 4, 5 и 6 каждый ведомый будет считать адрес0xFF “действительным”, т.е.
широковещательным адресом. Кроме этого, в примерах 4, 5 и 6 используются теже самые значения регистров SADDR0 и SADEN0, что и в примерах 1, 2 и 3 соответственно (ведомые №1, №2и №3). Таким образом, ведущий мог бы адресовать каждое ведомое устройство индивидуально сиспользованием маскированного адреса, а также все три ведомых одновременно в широковещательном режиме.Например, если ведущий послал бы адрес “11110101”, то только ведомый №1 распознал бы этот адрес как271Ред. 1.2C8051F060/1/2/3/4/5/6/7“действительный”.
Если бы ведущий послал затем адрес “11111111”, то все три ведомых устройства распозналибы этот адрес как действительный широковещательный адрес.Рисунок 22.7. Пример использования УАПП в многопроцессорном режимеВедущееустройствоВедомоеустройствоВедомоеустройствоВедомоеустройствоVDDRXTXRXTXRXTXRXTX22.3. Определение ошибок формата и ошибок передачиВсе режимы:Бит ошибки передачи (TXCOL0 в регистре SSTA0) читается как ‘1’, если программа пользователязаписывает данные в регистр SBUF0 во время процесса передачи данных.
Следует иметь ввиду, что еслизначение бита TXCOL0 записывается программой пользователя, то он функционирует как бит SM20. Этот битне генерирует прерывание.Режимы 1, 2 и 3:Бит переполнения приемника (RXOV0 в регистре SSTA0) читается как ‘1’, если новый байт данныхфиксируется в буфере приемника прежде, чем программа закончит чтение предыдущего байта. Следует иметьввиду, что если значение бита RXOV0 записывается программой пользователя, то он функционирует как битSM10. Бит ошибки формата (FE0 в регистре SSTA0) читается как ‘1’, если обнаружен некорректный (низкогоуровня) бит STOP. Следует иметь ввиду, что если значение бита FE0 записывается программой пользователя,то он функционирует как бит SM00. Биты RXOV0 и FE0 не генерируют прерываний.Ред. 1.2272C8051F060/1/2/3/4/5/6/7Таблица 22.2.
Тактовые частоты, соответствующие стандартным скоростям обменаТактовая частота(МГц)Коэффициентделения24.022.118418.43211.05923.68641.843224.022.118418.43211.05923.68641.843224.022.118418.43211.05923.68641.8432208192160963216832768640348128642496230419201152384192ЗначениеперезагрузкиТаймера 1*0xF30xF40xF60xFA0xFE0xFF0xCC0xD00xD80xE80xF80xFC0x640x700x880xB80xE80xF4ЗначениеперезагрузкиТаймеров 2, 3 или 40xFFF30xFFF40xFFF60xFFFA0xFFFE0xFFFF0xFFCC0xFFD00xFFD80xFFE80xFFF80xFFFC0xFF640xFF700xFF880xFFB80xFFE80xFFF4* При условии, что SMOD0 = 1 и T1M = 1.** Числа в скобках показывают действительную скорость передачи данных.273Ред.
1.2Скорость передачиданных (Гц)**115200 (115384)11520011520011520011520011520028800 (28846)28800288002880028800288009600 (9615)96009600960096009600C8051F060/1/2/3/4/5/6/7Рисунок 22.8. SCON0: Регистр управления УАПП0R/WSM00Бит 7R/WSM10R/WSM20R/WREN0R/WTB80R/WRB80R/WTI0R/WRI0Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000SFR Адрес: 0x98(доступен в битовом SFR страница: 0режиме адресации)Биты 7-6: SM00 - SM10: Биты выбора режима работы УАПП0:Запись: записью этих бит устанавливается режим работы УАПП0 в соответствии со следующейтаблицей:SM000011SM100101Режим работы УАПП0Режим 0: синхронный режимРежим 1: 8-битный УАПП, изменяемая скорость передачиРежим 2: 9- битный УАПП, фиксированная скорость передачиРежим 3: 9- битный УАПП, изменяемая скорость передачиОперация чтения этих бит возвратит в качестве результата текущий режим работы УАПП0.Бит 5:SM20: Разрешение поддержки мультипроцессорного взаимодействия.Функционирование этого бита зависит от режима работы УАПП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.
Врежимах 0 и 1 этот бит не используется. Бит TB80 устанавливается и сбрасываетсяпрограммно.Бит 2:RB80: Девятый бит принимаемых данных.Этот бит принимает значение девятого бита данных, полученного в режимах 2 и 3. В режиме1, если SM20 = 0, бит RB80 принимает значение полученного стопового бита. В режиме 0 битRB80 не используется.Бит 1:TI0: Флаг прерывания от передатчика УАПП0.Устанавливается в 1 аппаратно при окончании передачи байта данных (после передачи 8-гобита в режиме 0, или в начале передачи стопового бита в остальных режимах). Еслипрерывание от УАПП0 разрешено, то установка этого бита вызовет переход на процедуруобслуживания прерывания от УАПП0.
Этот бит должен сбрасываться программно.Бит 0:RI0: Флаг прерывания от приемника УАПП0.Устанавливается в 1 аппаратно при приеме байта данных (после 8-го бита в режиме 0, илипосле стопового бита в остальных режимах, за исключением случаев, указанных в описаниибита SM20). Если прерывание от УАПП0 разрешено, то установка этого бита вызовет переходна процедуру обслуживания прерывания от УАПП0.
Этот бит должен сбрасыватьсяпрограммно.Ред. 1.2274C8051F060/1/2/3/4/5/6/7Рисунок 22.9. SSTA0: Регистр состояния УАПП0 и выбора источникатактирования УАПП0R/WFE0Бит 7R/WRXOV0Бит 6R/WTXCOL0Бит 5R/WSMOD0Бит 4R/WS0TCLK1Бит 3R/WR/WS0TCLK0 S0RCLK1Бит 2Бит 1R/WS0RCLK0Бит 0Значениепри сбросе:00000000SFR Адрес: 0x91SFR страница: 0Бит 7: FE0: Флаг ошибки формата.*Этот флаг устанавливается в 1 при обнаружении некорректного (низкого уровня) бита STOP.0: Ошибки формата не произошло.1: Обнаружена ошибка формата.Бит 6: RXOV0: Флаг переполнения приемника.*Этот флаг устанавливается в 1, если новый байт данных фиксируется в буфере приемника прежде, чемпрограмма закончит чтение предыдущего байта.0: Переполнения приемника не произошло.1: Зафиксировано переполнение приемника.Бит 5: TXCOL0: Флаг ошибки передачи.*Этот флаг устанавливается в 1, если программа пользователя записывает данные в регистр SBUF0 вовремя процесса передачи данных.Бит 4: SMOD0: Бит удвоения скорости передачи данных последовательного порта УАПП0.0: Скорость передачи данных последовательного порта УАПП0 не удваивается.1: Скорость передачи данных последовательного порта УАПП0 удваивается.Биты 3-2: Биты выбора генератора скорости передачи данных передатчика УАПП0.S0TCLK10011S0TCLK00101Генератор скорости передачи данных передатчика УАПП0Таймер 1Переполнение Таймера 2Переполнение Таймера 3Переполнение Таймера 4Биты 1-0: Биты выбора генератора скорости передачи данных приемника УАПП0.S0RCLK10011S0RCLK00101Генератор скорости передачи данных приемника УАПП0Таймер 1Переполнение Таймера 2Переполнение Таймера 3Переполнение Таймера 4* Примечание: Биты FE0, RXOV0 и TXCOL0 являются только флагами и не генерируют никаких прерываний.275Ред.
1.2C8051F060/1/2/3/4/5/6/7Рисунок 22.10. SBUF0: Регистр буфера данных УАПП0R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0x99SFR страница: 000000000Бит 7Биты 7-0: SBUF0.[7:0]: Биты (7-0) буфера данных УАПП0 (СЗР - МЗР)На самом деле именем SBUF0 обозначаются два регистра: буфер передатчика и буферприемника. Когда данные помещаются в регистр SBUF0, они записываются в буферпередатчика и сохраняются для последовательной передачи.
Запись данных в SBUF0инициирует передачу. Когда данные извлекаются из регистра SBUF0, они считываются избуфера приемника.Рисунок 22.11. SADDR0: Регистр адреса ведомого УАПП0R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xA9SFR страница: 000000000Бит 7Биты 7-0: SADDR0.[7:0]: Адрес ведомого УАПП0.Содержимое этого регистра используется для определения адреса ведомого УАПП0. РегистрSADEN0 является битовой маской, которая определяет, какие биты регистра SADDR0 будутучаствовать в сравнении с принятым адресом: в сравнении участвуют только те биты регистраSADDR0, которым соответствуют биты регистра SADEN0, установленные в 1; состояниеостальных бит регистра SADDR0 «не имеет значения» и в сравнении они не участвуют.Рисунок 22.12. SADEN0: Регистр разрешения адреса ведомого УАПП0R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xB9SFR страница: 000000000Бит 7Биты 7-0: SADEN0.[7:0]: Биты разрешения адреса ведомого УАПП0.Биты этого регистра разрешают соответствующим битам регистра SADDR0 участвовать вопределении адреса ведомого УАПП0.0: Соответствующий бит регистра SADDR0 «не имеет значения».1: Соответствующий бит регистра SADDR0 участвует в сравнении с принятым адресом.Ред.
1.2276C8051F060/1/2/3/4/5/6/723. УАПП1УАПП1 представляет собой асинхронный полнодуплексный последовательный порт, способныйработать в режимах 1 и 3 стандартного (для архитектуры 8051) УАПП. Поддержка усовершенствованногорежима генерации скорости передачи данных позволяет использовать для генерации стандартных скоростейобмена различные источники тактирования (см.