Последовательные порты ввода
Периферийные модули
В рассмотренных микропроцессорах реализовано аппаратно 4-ре последовательно порта ввода/вывода.
1)I2C (SMBAS)
2)SPI
3)UARTO
4)UART1
3,4-универсальный синхронный приемопередатчик
Каждый из интерфейсов реализован на аппаратном уровне, широко использует систему прерывания и требует минимального вмешательства со стороны программы. Все интерфейсы не имеют общих аппаратных ресурсов и могут использоваться одновременно.
1)SMBAS-представляет собой 2-проводную двунаправленную последовательную шину, отвечающую стандартам протокола I2C.Системный контроллер считывает данные с последовательной шины а также записывает их значение побайтно с помощью аппаратного модуля, который автоматически управляет последовательной передачей данных. Для обеспечения возможности работы устройств с различной скоростью передачи данных, модуль использует растягивание синхросигнала за счет задержания низкого уровня. Данный модуль может работать в режимах ведущего или ведомого. В режиме ведущего модуль обеспечивает управление линии данных, генерацию тактовых импульсов, синхронизацию, арбитраж, управление условиями СТАРТ и СТОП.
Для доступа к интерфейсу используются 5 регистров специального назначения:
1. регистр управления - используется для управления модулем и для его настройки
2. регистр остановки тактовой частоты - управляет частотой тактовых импульсов вызываемых на линию синхронизации в режиме ведущего. Данный регистр содержит 8-ми разрядное слово, которое загружается в специальный таймер. Этот таймер считает в прямом направлении и его переполнение изменяет сигнал синхронизации на противоположный
3. регистр данных - это буферный регистр, в который передаются и принимаются и из которых передаются данные путем сдвига старшего разряда вперед.
4. Данный регистр содержит последний байт данных, который присутствует в данный момент на шине
5. регистр адреса - содержит адрес ведомого устройства при формировании интерфейса SMBAS.Содержимое этого регистра игнорируется если модуль работает в режиме ведущего.
6. регистр состояния - содержит 8-миразрядный код, показывающий текущее состояние модуля. Может формировать 28 состояний.
Модуль SPI.
Данный модуль обеспечивает доступ к гибкой полнодуплексной синхронной последовательной шине и может выполнять функции ведущего или ведомого устройства в 3-х или 4-х проводном режимах. Модуль поддерживает работу в системе с несколькими ведомыми и ведущими устройствами. Данный интерфейс формирует 4 различных прерывания, определяемых признаками состояния.
1)флаг события по завершению передачи приема
2)флаг конфликта записи
3)флаг переполнения приемника
4)флаг ошибки режима
Для доступа к интерфейсу используют 4 регистра специального назначения:
1)регистр управления
2)регистр данных
3)регистр установки тактовой частоты f
4)регистр конфигурации
Универсальный модуль UART-универсальный синхронный приемопередатчик.
Представляет собой усовершенствованный последовательный порт для организации передачи данных в асинхронном режиме. Данный модуль имеет возможность работы в полнодуплексном синхронном режиме и поддерживает организацию связи с несколькими микроконтроллерами. Модуль содержит специальный регистр-буфер для временного хранения, что позволяет организовывать передачу данных до завершения чтения предыдущего байта. С работой UARTсвязаны 2 регистра специального назначения:
1)регистр управления конфигурацией
2)буферный регистр
Одна и та же ячейка памяти обеспечивает доступ как к приемнику, так и передатчику, при этом чтение регистра обеспечивает доступ к регистру приемника, а запись-к регистру передатчика.
С модуля можно работать в режиме опроса и в режиме прерывания, причем модуль имеет 2 источника прерывания:
1)от передатчика (Tx)
2)от приемника (Rх)
Модуль UARTмикроконтроллера поддерживает 4 независимых режима работы:
1)режим «0». Обеспечивает синхронный полудуплексный обмен данными,
при этом данные передаются и принимаются по линии Rх, а линия Tхиспользуется для синхронизации в качестве импульсов сдвига. В этом режиме работы микроконтроллер является ведущим, т. к непосредственно он генерирует импульсы сдвига. В этом режиме передача данных происходит записью байта данных в буферный регистр. Прием данных осуществляется установкой в «1» флага включения приемника. Скорость передачи в этом режиме равна:
V= 1/12fтакт
В данном режиме линия Rхработает как вход с открытым стоком и требует внешнего подтягивающего регистра.
2)Режим «1». Обеспечивает стандартный асинхронный полнодуплексный режим обмен данными с использованием 10 бит для передачи 1 байта данных в формате :1-стартовый бит, 8-битов данных,1-стоповый бит. Передача данных осуществляется младшим разрядом вперед. Данные передаются через Tх, принимаются-по линии Rх. Передача инициируется загрузкой данных в буферный регистр, прием данных- установкой в единицу флага включения приемника.
После загрузки стопового бита, загруженный ранее байт данных аппаратно загружается в буферный регистр. Скорость передачи данных определяется функцией переполнения таймера. Для задания скорости передачи данных в этом режиме используется таймер 1(в режиме 8-ми разрядного таймера-счетчика с автоперезагрузки), а также таймер 2,3,4.
3)Режим «2».Обеспечивает полнодуплексный асинхронный обмен данными с использованием 11 бит в формате : 1-стартовый бит,8-бит данных, 9-тый—программируемый и стоповый бит.
Данный режим поддерживает организацию связи с несколькими микроконтроллерами, а также аппаратное распознавание адреса.
9-тый принимаемый бит при приеме сохраняется в специальном разряде регистра управления модулем, причем стоповый бит игнорируемый. Передача данных осуществляется загрузкой в буферный регистр ,прием данных-установкой в «1» флага включения приемника. Завершение приема данных 8-ми разрядного приема данных сопровождается сохранением результатов в буферный регистр. Скорость передачи данных в этом режиме равна:
V=1/32=1/64 fтакт
4) Режим «3». Использует протокол передачи аналогично второму, т е стартовый бит-9 разрядов данных-стоповый бит, при этом скорость передачи данных определяется функцией переполнения таймеров 1,2,3,4. Система поддерживает аппаратное распознавание адресов и организацию связи с несколькими устройствами.
Регистр UART.
1)регистр управления
2)регистр состояния
3)буферный регистр
4)регистр адреса ведомого(содержит адрес ведомого устройства и является битовой маской)
5)регистр разрешения адреса ведомого устройства