МИКРОКОНТРОЛЛЕРЫ
в
поэтому практическая рекомендация - на длинных линиях
связи (несколько десятков метров и более) необходимо ис-
пользовать асинхронный обмен с обычной скоростью, на бо-
лее коротких (в пределах нескольких метров) - асинхронный
с удвоенной скоростью, и, наконец, если обмен данными ве-
дется в пределах одной “железной коробки”, - синхронный
обмен. Да, но откуда взялся в устройстве USART синхрон-
ный обмен? Это-дополнительное расширение функций уст-
ройства. При синхронном обмене между двумя устройства-
ми “проложены” не две, а три линии, и третья используется
как средство синхронизации обмена. Естественно, что при
наличии синхронизирующей линии требования к точности со-
гласования “часов” оказываются значительно ниже, а скорость
обмена может быть значительно повышена. Поскольку синх-
ронизирующая линия всего одна, устройства, ею пользую-
щиеся, неизбежно оказываются в неравном положении: одно
из них должно генерировать сигнал синхронизации (это уст-
ройство называется Master), а другое - пользоваться им (это
устройство называется Slave). Выбор того, какое из двух уст-
ройств какую роль будет выполнять, осуществляется разра-
ботчиком устройства. Возможен, впрочем, и третий вариант
- оба устройства работают в режиме Slave, а такты синхро-
низации на линии генерирует совершенно постороннее уст-
ройство (например, внешний кварцевый генератор).
Итак, формат регистра UCSRxA:
- бит 7 - бит “байт принят”. Извещает программу, что по
интерфейсу USART получен байт данных. Его можно считать
из регистра UDRx;
1 бит 6 - бит “байт передан”. Извещает программу, что
передача байта данных по интерфейсу USART закончена;
- бит 5 - бит “буфер передачи свободен”; Извещает про-
грамму, что передача байта по интерфейсу USART еще не
закончена, но в регистр UDRx уже можно записывать новый
байт для передачи;
- бит 4 - бит “ошибка фрейма”. Средство контроля пра-
j
вильности передачи. Дело в том, что после передачи порции
данных по линии передатчик автоматически вставляет после
переданных данных пустой промежуток, называемый стоп-
битом. Его значение всегда равно лог.1. Бит “ошибка фрей-
ма” как раз говорит о том, что на месте ожидаемого стоп-
бита оказался лог.О. Причиной этого может быть либо поме-
ха на линии, либо несоответствие настроек линий на переда-
ющем и приемной конце (например, приемник ожидает по-
ступление 7 бит данных, а передатчик выдал в линию 8 бит),
i
Ошибка достаточно редкая, и причина ее в большинстве слу-
I
чаев именно в несогласованности настроек;
- бит 3 - бит “данные переписаны”. Средство контроля
правильности приема. Возникает тогда, когда программа
слишком долго протянула с обработкой принятого байта, и
дотянула до того, что по линии пришел еще один байт. Новый
принятый байт просто “затирает” прежний (впрочем, в мик-
роконтроллере АТМеда128 это не совсем так, но суть ошиб-
ки от этого не меняется). Этот бит обязательно нужно контро-
лировать, иначе произойдет потеря информации (хотя пра-
вильнее было бы не доводить ситуацию до этой потери);
- бит 2 - бит “ошибка четности”. Это - дополнительное
|
средство контроля правильности передачи. Оно заключает-
I
ся в том, что передатчику можно задать особый режим, когда
|
Радиолюбитель - 1 0/2008 [
он автоматически подсчитывает число битов лог. 1 в переда-
ваемом байте и дополняет его при передаче еще одним би-
|
том - таким, чтобы общее число лог.1 в передаваемом паке-
те данных оказалось четным (либо нечетным). Приемник при
получении такого пакета также подсчитывает число лог.1 в
принятом пакете, и, если оно оказалось не таким, как ожида-
!
лось, выставляет бит ошибки. Естественно, что и передат-
!
чик, и приемник должны работать в одинаковом режиме -
|
либо с контролем, либо без контроля четности;
|
- бит 1 - бит “двойной скорости”. Именно он включает
I
удвоенную скорость асинхронной передачи;
|
- бит 0 - бит “мультипроцессорный обмен”. Этот бит МЫ
I
разберем отдельно несколько позже.
;
Регистр иСЭРхВ имеет следующий формат:
- бит 7.
.5 - флаги разрешения прерываний при работе
и БАРТ. Они в точности соответствуют битам 7.
.5 регистра
иСЭБхА;
- бит 4 - включение приемника. Без установки этого бита
|
прием по иЭАБТ невозможен;
|
- бит 3 - включение передатчика. Без установки этого
бита передача по ивДИТ невозможна;
- бит 2 - включение режима передачи 9-го бита. Этот бит
|
также разберем несколько позже. При его установке необхо-
|
димо также установить биты 1. .2 регистра иСЭРхС в “11 ”;
|
- бит 1 - принятый 9-й бит данных. Этот бит также разбе-
рем несколько позже;
- бит 0 - передаваемый 9-й бит данных. Этот бит также
разберем несколько позже.
Регистр иСЭИхС имеет следующий формат:
- бит 7 - не используется;
- бит 6 - включение синхронного режима;
|
- бит 5.
.4 - режим контроля четности:
• 00 - формирование и контроль бита четности
отключено
• 01 - не используется
|
• 10 - формирование и контроль включены, число лог. 1
должно быть четным
• 01 - формирование и контроль включены, число лог. 1
должно быть нечетным
- бит 3 - размер стоп-бита. Если задать лог. 1, длина стоп-
;
бита удваивается. Этот бит имеет смысл задавать тогда, ког-
да приемное устройство не успевает за темпом передачи
!
данных (вместо снижения скорости передачи);
|
- бит 2.
.1-длина передаваемого пакета данных:
!
• 00 - 5 бит
«
I
• 01 - 6 бит
• 10-7 бит
• 11 - 8 бит
Пакеты длиной 5 бит - “тяжкое наследие” телетайпов.
I
Пакеты Длиной 7 бит используются в некоторых алфавитно-
цифровых дисплеях. Устройства, использующие 6-битный
протокол обмена, автору неизвестны.
- бит 0 - бит режима работы синхронных часов. При ус-
|
тановке в лог.О выдача данных на линию выполняется фрон-
том сигнала, а прием - спадом сигнала, при установке лог.1
- наоборот. Такой “странный” способ синхронизации гаран-
тирует, что при передаче и приеме не возникнет никаких
артефактов, т.к. между передачей и приемом данных есть
--------------------------------------------------------------------------------- 41
предыдущая страница 41 Радиолюбитель 2008-10 читать онлайн следующая страница 43 Радиолюбитель 2008-10 читать онлайн Домой Выключить/включить текст