Синхрогенератор UART
Синхрогенератор основан на аккумуляторе фазы, который формирует синхроимпульсы как результат переполнения фазы старшего значащего бита схемы фазового сдвига. 16-разрядный фазовый регистр (PR) программируется пользователем, что позволяет выбирать скорость обмена данными. Значение фазы определяет период накопления фазового аккумулятора. Значение фазы добавляется к текущему значению фазового аккумулятора с каждым системным синхроимпульсом (SMOD = 1) или с каждым четвертым системным синхроимпульсом (SMOD = 0). Синхроимпульсы представляют собой результат переполнения старшего (шестнадцатого) бита фазового аккумулятора. Для того, чтобы привести скорость обмена в соответствие, частота синхрогенератора всегда делится на 16.
Рисунок 41. Синхрогенератор UART
Следующие две формулы могут использоваться для вычисления скорости обмена данными в режимах 1 и 3. Дополнительно, в таблице 16 приведены примеры настроек параметров для наиболее распространенных случаев.
Выходная частота синхрогенератора UART (BAUD) = Частота системных СИ x PR / 217
Скорость обмена данными в режимах 1 и 3 = BAUD x 2(SMOD x 2) / 26 |
Таблица 16. Пример установок синхрогенератора UART (SMOD = 1)
Частота системных синхроимпульсов (МГц) |
Скорость, бод (установки PR) |
Частота системных синхроимпульсов (МГц) |
Скорость, бод (значение PR) |
10 |
115 200 (5E5F); 57 600 (2F30); 19 200 (0FBB); 9600 (07DD); 2400 (01FF) |
3.579545 |
57 600 (83D2); 19 200 (2BF1); 9600 (15F8); 2400 (057E) |
8 |
115 200 (75F7); 57 600 (3AFB); 19 200 (13A9); 9600 (09D5); 2400 (0275) |
2.4576 |
57 600 (C000); 19 200 (4000); 9600 (2000); 2400 (0800) |
3.6864 |
115 200 (FFFF); 57 600 (8000); 19 200 (2AAB); 9600 (1555); 2400 (0555) |
1 |
19 200 (9D49); 9600 (4EA5); 2400 (13A9) |
Детектирование ошибок кадровой синхронизации
Ошибка кадровой синхронизации происходит, когда правильный стоповый бит не обнаружен. Это может привести к неправильному приему слова. UART может обнаружить ошибку кадровой синхронизации и уведомить программное обеспечение. Типичные причины ошибок кадровой синхронизации - это шумы и случайные сигналы. Индикация ошибки кадровой синхронизации осуществляется в регистре SCON UART.
Бит ошибки кадровой синхронизации, FE, расположен в регистре SCON.7. Обратите внимание, что этот бит обычно обслуживается как SM0 и описан для регистра как бит SM0/FE_0. Активизация детектирования ошибок кадровой синхронизации осуществляется путем установки бита FEDE, расположенного в регистре SMD.0. Когда FEDE установлен в 1, то информация об ошибки кадровой синхронизации отображается в бите SM0/FE (SCON.7). Когда FEDE сброшен в 0, то доступна функция SM0. Информация для битов SM0 и FE фактически сохраняются в различных регистрах. Изменение FEDE только изменяет, к какому регистру осуществляется доступ, но содержание не изменяется.
Когда происходит ошибка кадровой синхронизации бит FE устанавливается в 1. Сброшен бит должен быть программно. Обратите внимание, что при записи или чтении бита FE бит FEDE должен быть установлен в 1. Также обратите внимание, что приемник после принятия правильного кадра не очищает бит FE. Этот бит должен быть сброшен программно.
|