-{!
МИКРОКОНТРОЛЛЕРЫ
[}
некоторый гарантированный промежуток, во время которого
завершаются (или, по крайней мере, должны завершиться)
все переходные процессы в линиях.
Теперь несколько слов о разводке линий портов. Линии
USART0 разведены до линиям порта Е - линия Тх (передаю-
щая) соответствует Е[1], линия Rx (приемная) соответствует
Е[0], линия синхронизации ХСКО (если используется) соот-
ветствует Е[2]. Линии USART1 разведены по линиям порта D
-линия Тх (передающая) соответствует D[3], линия Rx (при-
емная) соответствует D[2], линия синхронизации ХСК1 (если
используется) соответствует D[5]. Режим Master или Slave на
линиях синхронизации включаются регистром DDRx соответ-
ствующего порта - при включении режима вывода на линию
автоматически включается режим Master, при отключении ре-
жима вывода включается режим Slave.
Типичная работа с USART начинается с заполнения ре-
гистра скорости обмена UBRRx, а также включения Прием-
ника и/или передатчика (биты 4 и 3 регистра UCSRxB). Если
обмен данными ведется только в одном направлении, вклю-
чать второе устройство не обязательно. Длина пакета дан-
ных, скорость обмена, режим контроля четности и размер
стоп-бита с обоих “концов” линии должны быть одинаковы-
ми. При использовании механизма прерываний необходимо
также разрешить прерывания по приему байта (бит 7 регист-
ра иСЭВхВ) и прерывания по освобождению буфера пере-
дачи (бит 5 регистра иСЭВхВ). Процесс передачи заключа-
ется в “тупой” записи данных в регистр 1ЮИх. Как только байт
записан, автоматически начинается его передача. По окон-
чанию передачи байта будет получено прерывание иЭДИТх
ШВЕ, по которому можно заносить в регистр ШИх следую-
щий передаваемый байт. Прием данных ведется по преры-
ванию иЭАПТх ИХ, по которому необходимо считать приня-
тый байт из регистра ШИх. После чтения желательно прове-
рить биты 4.
.2 регистра иСЭРхА на предиет наличия оши-
бок. По большому счету никаких иных особенностей исполь-
зование устройств иБАЛТ не имеет.
ПРОТОКОЛ TWO-WIRE SERIAL INTERFACE
В микроконтроллере ATMegal 28 имеется одно устройство
для обмена по этому протоколу (в литературе для этого про-
токола имеется еще одно название - протокол I2C). В отли-
чие от интерфейса USART, линии которого в некотором роде
равноправны, интерфейс I2C организует обмен по двум ли-
ниям, которые имеют резко различное назначение: одна из
них (линия SDA) - это линия данных, а вторая (линия SCL) -
линия синхронизации. Передача данных по линии SDA мо-
жет происходить в любом направлении, в то время как линия
SCL в данный момент имеет только одного “хозяина”, выдаю-
щего на нее синхроимпульсы. Этот “хозяин”, как и в USART,
называется Master, а остальные, соответственно, Slave. Ос-
тальных устройств на линии может быть много (до 127), в
отличие от USART. Для того, чтобы отличить одно устрой-
ство от другого, каждому из них ставится в соответствие не-
кий код, который называется адресом устройства. Любой об-
мен данными по этому протоколу требует обязательного ука-
зания адреса устройства, с которым в данный момент проис-
ходит обмен. Адреса всех устройств должны быть уникаль-
ными, т.е. в системе не должно быть двух разных устройств с
одним и тем же адресом. Инициатор обмена по протоколу
I2C - всегда master-устройство, slave-устройства по своей ини-
циативе ничего передавать не могут. В этом тоже принципи-
альное отличие от протокола USART, где момент обмена оп-
ределяется каждой стороной самостоятельно и независимо
друг от друга. Master-устройство в системе может быть в дан-
ный момент времени только одно, но устройства в процессе
работы могут и меняться ролями. Такой режим работы, как
правило, используется достаточно редко, для радиолюбитель-
ской практики можно считать микроконтроллер master-уст-
ройством всегда.
Для запуска процесса обмена данными master-устройство
выдает на линии SDA и SCL особую комбинацию сигналов,
называющуюся стартовой последовательностью-своеобраз-
ный сигнал “внимание!” для slave-устройств. Следом за ней
передается адрес того устройства, с которым требуется про-
извести обмен данными, а также бит чтения/записи, указы-
вающий, в каком направлении будут передаваться данные.
Получив адрес и бит чтения/записи, то устройство, которое
имеет запрошенный ад эес, подготавливается к обмену, ос-
тальные устройства при этом по прежнему “отдыхают”. За-
тем начинается собственно процесс побитного обмена дан-
ными (либо тавГег-^ауе, либо 81ауе->таз1ег). Каждый пе-
реданный байт сопровождается со стороны приемника би-
том подтверждения. По окончанию передачи гт^ег-устрой-
ство выдает на линии другую комбинацию сигналов, называ-
емую стоповой последовательностью. Вот, в общих чертах,
каким образом организуется обмен данными по рассматри-
ваемому протоколу.
Управляется интерфейс 12С следующими регистрами:
- регистр "ЛЛ/ВИ, с помощью которого программирует-
ся скорость обмена (аналогичен по назначению регистру
иВПИх интерфейса иЭАРТ, но содержит только 1 байт); ,
- управляющий регистр Т\Л/СВ;
- регистр состояния "ЛЛ/ЭР;
- регистрданных^ОВ,вкотором,какиврегистреиОНх,
совмещены регистры передаваемого и принятого байта
данных;
- регистр адреса з1ауе-устройства "ЛЛ/АВ. Это - факти-
чески адрес микроконтроллера, если к нему по шине 12С об-
ращается другое гт^ег-устройство. Если гт^ег-устройство
в системе всего одно, и им является сам микроконтроллер
(как это обычно и бывает), заполнять этот регистр не нужно -
гт^ег-устройство адреса не имеет, это всегда то устройство,
которое инициировало обмен по интерфейсу.
Скорость обмена по интерфейсу может устанавливать-
ся произвольно (каких-либо стандартных скоростей обмена
для этого интерфейса не предусмотрено), но не все пери-
ферийные устройства в состоянии работать по 12С на высо-
ких скоростях обмена (для них в документации, как прави-
ло, приводится максимальная частота сигнала на линии ЭС!.,
при которой они не теряют работоспособности). Частоту
сигнала на линии ЭО. можно грубо считать равной частоте
тактового генератора процессора, поделенной на удвоен-
ное значение из регистра Т\Л/ВВ. Если и эта частота ока-
зывается слишком высока, тактовую частоту процессора
Радиолюбитель - 10/2008
предыдущая страница 42 Радиолюбитель 2008-10 читать онлайн следующая страница 44 Радиолюбитель 2008-10 читать онлайн Домой Выключить/включить текст