Александр Черномырдин
г. Магнитогорск
E-mail:
chav1961 @ radioliga.com
Р
МИКРОКОНТРОЛЛЕРЫ
Р -
--
-------------------------
Микроконтроллер ATMEGA128
I _
Продолжение.
ИНТЕРФЕЙС USART
I
Начало в N28-9/2008
Интерфейс ивДЯТ - всем известные последовательные
порты компьютера. Сигнал в этих портах передается по двум
линиям. Одна из линий является передающей, т.е. подклю-
ченное к ней устройство является источником сигнала, вто-
рая - приемной, т.е. подключенное к ней устройство являет-
ся приемником сигнала. Линии между устройствами соеди-
нены крест-накрест, т.е. передающая линия одного устрой-
ства является одновременно приемной линией другого для
другого устройства. В силу такой организации обмена отли-
чительных особенностей у данного интерфейса две - дуп-
лексный обмен (передача по линиям ведется независимо и
одновременно), и, фактически, всего одна линия для переда-
чи информации в одном направлении. Из-за того, что линия
для передачи в одном направлении всего одна, протокол пе-
редачи требует жесткой временной синхронизации обмена,
поскольку никаких иных средств синхронизации на одной ли-
нии нет и не может быть.
Подавляющее большинство протоколов обмена, ис-
пользующих временную синхронизацию, начинают процесс
передачи подачей специального признака начала переда-
чи. В интерфейсе иЗАЯТ этот признак носит название
старт-бита. Этот признак (старт-бит) запускает и на при-
емной, и на передающей стороне “часы”, после чего про-
цесс передачи данных с одной стороны, и приема данных с
другой стороны, становится синхронным - источником син-
хроимпульсов служат эти самые “часы”. В соответствии с
“тиками” часов на передающей стороне передаваемая ин-
формация побитно выводится на линию (с помощью регис-
тра сдвига), а в соответствии с “тиками” часов на приемной
стороне эта информация побитно заносится в регистр сдви-
га. Вот, вкратце, как осуществляется процесс передачи дан-
ных. Очевидно, что для правильной передачи информации
при таком способе обмена должны выполняться, как мини-
мум, два условия:
- “часы” и на приемной, и на передающей стороне долж-
ны “тикать” с одинаковой частотой и фазой. В практике рас-
хождение частоты “тиков” часов более чем на 2% считается
недопустимым;
- при обмене данными и передатчику, и приемнику дол-
жно быть заранее известно, сколько именно битов данных
будет передано по линии - ведь определить конец передава-
емых данных с помощью всего одной линии с двумя состоя-
ниями (лог.О и лог.1) невозможно.
Интерфейс иЗАЯТ, реализованный в АТМеда128, поддер-
живает два устройства. Каждое из этих устройств состоит из
следующего набора регистров:
- регистр ШЯх - регистр данных. Этот регистр объеди-
няет “в одном лице” два регистра сдвига - регистр сдвига на
передающей стороне (когда к регистру ШЯх обращаются в
режиме записи), и регистр сдвига на приемной стороне (ког-
да к регистру ШЯх обращаются в режиме чтения);
- управляющие регистры иСЭЯхА, УСЭЯхВ и УСЭЯхС;
- регистр скорости обмена UBRRx, состоящий из двух ре-
гистров UBRRxL и UBRRxH (в последнем регистре использу-
ются только четыре младших бита).
Как уже было сказано, частота “тиков” часов на прием-
ной и передающей стороне должна быть одинакова. Частота
эта получается путем деления частоты тактового генератора
процессора на заданный коэффициент деления, который и
задается в регистрах скорости обмена UBRRx. В принципе
ничто не мешает поделить частоту тактового генератора на
любой произвольный коэффициент, “придумав” тем самым
свою собственную скорость обмена, но для последователь-
ных портов существует стандартный ряд скоростей обмена
(150, 300, 600, 1200, 2400, 4800, 9600 бод, а также и более
высокие, вплоть до 115200 бод), и именно его необходимо
придерживаться, если требуется обеспечить надежное под-
ключение микроконтроллера к любому “постороннему” пос-
ледовательному порту без “танцев с бубнами”. Рекомендуе-
мые коэффициенты деления для различных частот тактово-
го генератора и различных стандартных скоростей обмена
приведены в документации по АТМеда128, приводить их в
статье смысла нет. Впрочем, если обмен данными по интер-
фейсу USART происходит
исключительно
внутри Вашего ус-
тройства, не выходя за его пределы (например, для связи
между двумя микроконтроллерами на одной плате), придер-
живаться стандартного ряда скоростей необходимости нет.
Устройства USART, реализованные в микроконтроллере
АТМеда128, поддерживают три режима обмена данными -
асинхронный обмен с обычной скоростью, асинхронный об-
мен с удвоенной скоростью, и синхронный обмен. Различие
между ними - в способе обработки сигнала. Дело в том, что
сигнал, передаваемый по длинным линиям (на которые изна-
чально и рассчитывался этот интерфейс), неизбежно претер-
певает при передаче значительные искажения. Если на пере-
дающей стороне в линию “уходит” идеальный меандр, то на
приемной стороне фронты его уже сглажены, амплитуда
уменьшена, да и сам сигнал оказывается “засоренным” по-
мехами. Определить, что же в данный момент присутствует
на входе - лог.О или лог.1, - оказывается задачей далеко не
простой. Поэтому приемник сигнала не просто принимает
такой “испорченный” сигнал с линии, а выполняет его пред-
варительную обработку. Очень грубо суть обработки заклю-
чается в том, что сигнал с линии опрашивается в нескольких
точках, и вычисляется его среднее значение. Если оно оказа-
лось ближе клог.1, считается, что наличии в данный момент
присутствует лог.1, если ближе к лог.О - лог.О. Разница в ре-
жимах обмена как раз и заключается в том, в скольких точ-
ках производится анализ сигнала. При самом медленном
обмене - асинхронный с обычной скоростью, - анализ сигна-
ла выполняется по 16 точкам, при асинхронном с удвоенной
скоростью - по 8 точкам, и, наконец, при синхронном - всего
по двум. Вполне очевидно, что при более частом анализе
достоверность принимаемого сигнала оказывается выше,
I) Радиолюбитель - 10 /2 0 0 8
предыдущая страница 40 Радиолюбитель 2008-10 читать онлайн следующая страница 42 Радиолюбитель 2008-10 читать онлайн Домой Выключить/включить текст