Шпаргалки по МПС / MPS_shprots / Вопрос 21
.docОрганизация последовательного порта в iMCS96
Последовательный порт реализует синхронный обмен и асинхронный обмен информации последовательным кодом. Асинхронный обмен выполнен по стандарту UART (Unversal Asynchronous Receiver / Transmitter). Аналогичен 51-ой серии; в дополнении реализован контроль четности / нечетности при передаче информации и блок генерации частоты обмена не использует общие таймеры Т1 и Т2, позволяя воспроизводить частоту более точно.
* (BH, KB, KC)
Преобразование параллельного кода в последовательный
Информация передается на вывод TxD (Transmitt Data), принимается соответственно - на входе RxD (Receive Data)
SBUF_TX – при записи,
SBUF_RX – при чтении два разных регистра.
Полнодуплексный режим – запись и чтение могут происходить параллельно
SP_CON
SP_STAT
SP_BAVD – регистр частоты
15 бит содержит константу В, 16 старший содержит clock select
Протокол обмена
Режим «0» – синхронный обмен
Р2.0 – синхронизация, выдает тактовую частоту обмена
Р2.1 – мы имеем данные (входные – выходные; прием – передача)
Данные считаются действительными на фронте тактового сигнала
Передача:
Флаг REN = 0. передача начинается, когда записан байт в регистр SBUF_TX → TSR → P2.1 → → TI = 1 записан байт в регистр SBUF_TX – информация.
Прием:
Флаг REN = 1 и RI = 0 → RSR → SBUF_RX → RI = 1– параллельный прием в последовательном коде.
В режиме 1-3 порт функционирует как асинхронный приемо-передатчик UART.
TxD – передача; RxD – прием могут происходить одновременно. Пока на выводе 1 то, ничего не происходит; передача началась, когда происходит перепад из 1 в 0.
Режим «1»
Кадр 10 битный.
Режим «2» (11-битный кадр)
Режим «3» (11- битный кадр)
У 9го бита еще больше функций
Передача данных
SBUF_TX → TSR → P2.0 → TI = 1
Прием данных
Только если PEN = 1
RSR → SBUF_RX → RI = 1, прерывание, если