|
Предыдущий
<< UDR
$0C ($2C), USR
$0B($2B), UCR $0A($2A), UBRR
$09($29) >>Следующий
USART,
он же асинхронный последовательный
интерфейс - на мой взгляд, самый
удобный и простой способ стыковки МК
и компьютера. Хотя производители уже
и поговаривают о том, что RS232 устарел
и пора про него забыть, думаю, еще
десяток лет он продержится. Принцип
его работы достаточно прост и давно
известен - взять тот же телеграфный
аппарат, если кто помнит :-)
Только там тактовым генератором был
электродвигатель, а частота вращения
настраивалась при помощи камертона.
И вместо заумного "асинхронный
последовательный..." применялся
термин "старт-стопная передача".
Рассмотрим
прием байта для общего развития. При
отсутствии передачи линия находится
в состоянии лог. "1" . Признаком
начала передачи является так
называемый старт-бит, который всегда
"0". За ним следуют 8 бит данных,
младшим битом вперед. Заканчивается
посылка стоп-битом, который всегда
"1". Для достоверного обмена
требуется точное совпадение
скоростей передачи и приема,
погрешность допускается не более 2,5%.
Отсюда вывод - если планируете
использовать USART, то тактовый
генератор МК должен работать с
кварцем.
Приемник
по первому спаду - начало старт-бита -
синхронизируется, отсчитывает
половину периода ( времени передачи
одного бита) и проверяет уровень на
входе. Если он не "0" - значит,
помеха, все отменяется. Если "0" -
далее отсчитывает по полному периоду,
и вдвигает 0 или 1 в сдвиговый регистр.
Когда все 8 бит приняты,
отсчитывается еще один период и
проверяется наличие на входе "1"
- стоп-бита. Если стоп-бит не равен
"1", фиксируется ошибка, иначе
байт считается принятым.
Это,
конечно, упрощенное описание, на
самом деле все может быть гораздо
сложнее. Количество информационных
бит может быть различным, в конце (перед
стоп-битом) может быть проверочный
бит (четность, нечетность),
количество стоп-бит также бывает
разным... Но для начального
ознакомления, думаю, хватит т этого.

Отметим,
что описанные уровни сигнала
относятся к МК! Для компьютерного RS232
лог."1"=-12в, лог."0"=+12в!,
поэтому для стыковки МК и компьютера
обязательно понадобится схема
сопряжения уровней. Для этого
существуют специально под эту задачу
заточенные микросхемы MAX232, если
таковой под рукой не оказалось -
можно использовать схему
на 590КН4
Теперь
рассмотрим регистры, связанные с USART.
|
|
И
наконец последний регистр - UBRR -
регистр задания скорости.
Записываемый туда байт определяет
коэффициент деления тактовой частоты,
требуемый коэффициент рассчитывается
либо по формуле, либо (для стандартных
кварцев) по таблице. В любом случае тут
надо сунуть нос в даташит.
Кстати,
для получения максимальной скорости
передачи придется подбирать кварц "некруглой"
частоты. Так, для 8535 это будут кварцы
на 7.3728
или 3.6864 MHz
Ну
и напоследок - думаю, что разобраться с
работой USART вам поможет пример
|