Микроконтроллеры для систем автоматики - часть 25

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  23  24  25  26   ..

 

 

Микроконтроллеры для систем автоматики - часть 25

 

 

 

99 

13.3. Интерфейс I

2

2-проводной последовательный интерфейс (2-Wire Serial Interface) или I

2

C  (Inter-

Integrated Circuit)  предложен  фирмой Philips. Он  поддерживает  двунаправленную 
последовательную связь нескольких устройств в полудуплексном режиме. В системе все 
устройства, участвующие в обмене, связываются двумя сигнальными линиями: 

º 

SDA (Serial Data)  -данные, 

º 

SCA (Serial Clock) - синхронизация. 

На  рис.  13.8  показана  типичная 2-проводная  последовательная  конфигурация 

шины.  

 

Рис.13.8. Соединение устройств с интерфейсом I

2

C. 

Каждое  из  устройств  может  выступать  в  роли  передатчика  или  приемника. 

Синхронизацию  обмена  обеспечивает  передатчик.  Двунаправленную  линию  данных, 
выполненную  по  схеме  «открытый  коллектор»  используют  передатчик  и  приемник 
поочередно.  Частота  обмена  ограничена  сверху  величиной  100  кГц  для  стандартного 
режима и 400 кГц - для скоростного. Протокол обмена иллюстрируется рис. 13.9. 

 

Рис. 13.9. Протокол передачи данных интерфейса I

2

Начало  любой  операции  (Start)  инициализируется  переводом  сигнала SDA из 

высокого уровня в низкий при высоком уровне SCL. Завершается обмен переводом сигнала 
SDA из низкого уровня в высокий при высоком уровне SCL (Stop). 

При передаче данных состояние линии SDA может изменяться только при низком 

уровне SCL. Биты данных стробируются положительным фронтом SCL.  

Каждая посылка, формируемая передатчиком, состоит из байта данных. Посылка 

начинается со старшего бита. После чего передатчик на один такт освобождает линию, а 
приемник формирует нулевой сигнал подтверждения Ack (Acknowledge).  

Каждое  ведомое  устройство  имеет  свой 7-битный  адрес.  Семь  бит  адреса 

передаются  ведущим  устройством  в  битах [7-1]  первого  байта,  бит 0 содержит  признак 
операции R/W (Read/Write): 

º 

R/W =0 – запись, 

 

100 

º R/W 

=1 – чтение. 

Старшие четыре бита адреса несут информацию о типе устройства (например, для 

EEPROM – 1010),  а  младшие  три – номер  устройства  данного  типа.  К  одной  шине 
допускается подключение до восьми однотипных устройств. 

Для управлениеTWSI используются регистры: 

º 

Регистр задания скорости передачи TWBR (Two wire Serial Interface Bit Rate 
Register)

º 

Регистр управления TWCR (2-wire Serial Interface Control Register); 

º 

Регистр статуса TWSR (2-wire Serial Interface Status Register); 

º 

Регистр данных TWDR (2-wire Serial Interface Data Register); 

º 

Регистр  адреса  (ведомого) TWAR (2-wire Serial Interface (Slave) Address 
Register). 

 

 

 

 6  

 3 

 2 

1  

TWBR $00 

($20) 

TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0 

TWBR $36 

($56) TWINT TWEA TWSTA TWSTO TWWC TWEN  TWIE  TWCR 

TWSR $01 ($21) TWS7  TWS6  TWS5  TWS4  TWS3 

TWDR $03 

($23) MSB 

LSB 

TWAR $02 

($22) MSB 

 

 

 

 

 

LSB  TWGCE 

Рис. 13.10. Регистры TWSI 

Регистр  данных TWDR (2-Wire Serial Interface Data Reg ) хранит байт данных, для 

передачи  или  последний  байт  данных,  полученный  на 2-проводной  последовательной 
шине. 

Регистр – TWAR (2-wire Serial Interface (Slave) Address Register)  хранит 7-битный 

адрес устройства на двухпроводной последовательной шине. 

º 

Бит 0 – TWGCE (2-wire Serial Interface General Call Recognition Enable bit) - 
бит  распознавания  запроса.  При  установке  бита  выполняется  операция 
чтения, при сбросе – операция записи. 

Регистр TWBR (2-wire Serial Interface Bit Rate Register) предназначен для задания 

скорости  передачи  данных.  Частота  синхронизации  связана  с  содержимым  регистра 
соотношением: 

)

(

2

16

TWBR

f

BitRate

ck

+

=

 

• Bit Rate  -  частота SCL 

ck

f

 - тактовая частота ядра 

Регистр TWCR предназначен для управления передачей данных. 

º 

Бит 7 – TWINT (2-wire Serial Interface Interrupt Flag) - флаг  прерывания 2-х 
проводного интерфейса. Бит устанавливается аппаратно, когда 2-проводной 
последовательный  интерфейс  закончил  выполнение  текущего  задания  и 
находится  в  состоянии  ожидания.  Если  бит I в  регистре  статуса SREG 
установлен и установлен также бит  TWIE в регистре TWCR, то  происходит 

 

101 

переход на вектор прерывания TWSI с адресом $022. Флажок TWINT должен 
быть очищен программно. 

º 

Бит 6 – TWEA (2-wire Serial Interface Enable Acknowledge Flag) - флаг 
разрешения 

подтверждения. 

Если 

флаг 

установлен, 

то 

сигнал 

подтверждения ACK генерируется при следующих условиях: 

Устройством получен его адрес, 

Общий  запрос  был  получен,  в  то  время  как TWGCE бит  в  регистре 
TWAR установлен. 

 Байт  данных  был  получен  в  главном  приемнике  или  подчиненном 
режиме приемника. 

Если  бит TWEA сброшен,  устройство  фактически  разъединено  с 2-
проводной последовательной шиной. При повторной установке бита TWEA 
распознавание адреса возобновляется. 

º 

Бит 5 – TWSTA (2-wire Serial Bus START Condition Flag) - флаг разрешения 
старта.  Флаг TWSTA  устанавливается,  если  устройство  объявляется 
ведущим  (мастером)  на  двухпроводной  шине.  Двухпроводной  интерфейс 
аппаратно  проверяет  шину  и  разрешает  установку  бита,  только  если  шина 
свободна. Если шина занята, интерфейс ждет конца передачи.  

º 

Бит 4 – TWSTO (2-wire Serial Bus STOP Condition Flag) - флаг  остановки. 
Если  контроллер  ведущий,  бит TWSTO устанавливается  для  остановки 
передачи  на  линии.  Когда  условие  остановки  выполнено,  бит TWSTO 
аппаратно очищается.  

º 

Бит 3 – TWWC (2-wire Serial Bus Write Collision Flag) - флаг ошибки передачи. 
Бит TWWC устанавливается  в  случае  попытки  записи  в  регистр  данных 
интерфейса  при  сброшенном  бите TWINT. Этот  флажок  очищается  при 
установке бита TWINT. 

º 

Бит 2 – TWEN (2-wire Serial Interface Enable Bit). - флаг  включения 
двухпроводного  интерфейса.  Бит TWEN включает  двухпроводной 
интерфейс.  Если  бит  сброшен,  шины  выводы SDA и SCL контроллера 
переводятся в высокоимпедансное состояние. 

º 

Бит 0 – TWIE (2-wire Serial Interface Interrupt Enable) - бит маски прерывания. 
Если  бит  установлен  и  установлен  бит I в  регистре  статуса SREG, то  при 
установке флага TWINT происходит прерывание. 

Регистр TWSR доступен только для чтения. 

º 

Биты 7..3 – TWS (2-wire Serial Interface Status).  Эти 5 битов  отражают 
состояние 

логики 

последовательного 

интерфейса 

и 2-проводной 

последовательной  шины.  Код  состояния  доступен  в  регистре TWSR в 
течении  одного  тактового  цикла  после  прерывания  от  интерфейса. 
Специальные  таблицы  позволяют  определить  состояние  интерфейса  при 
различных кодах состояния. 

14. РЕЖИМЫ ЭНЕРГОСБЕРЕЖЕНИЯ 

Одним из основных показателей микроконтроллера является энергопотребление. 

Величина энергопотребления характеризуется напряжением питания микроконтроллера и 
потребляемым током. 

По  напряжению  питания  все  выпускаемые  микроконтроллеры  можно  условно 

разделить на три группы: 

 

102 

º 

Микроконтроллеры  с  напряжением  питания 5,0В

±

10%.  Предназначены  для 

работы  в  изделиях,  питающихся  от  промышленной  или  бытовой  сети.  Как 
правило,  это  довольно  мощные  микроконтроллеры  с  развитым  набором 
функциональных блоков. 

º 

Микроконтроллеры  с  расширенным  диапазоном  напряжения  питания. 
Диапазон может быть различен в пределах от 2-х до 7 В. в зависимости от 
изготовителя  и  конкретного  типа.  Например,  микроконтроллер ATmega163 
работоспособен при напряжении питания от 4 до 5,5 В, а его модификация 
ATmega163L – от 2,7 до 5,5В.  Такие  микроконтроллеры  могут  быть 
использованы  как  в  изделиях  с  питанием  от  сети,  так  и  с  автономным 
питанием.  

º 

Микроконтроллеры  с  пониженным  напряжением  питания.  Напряжение 
питания  таких  микроконтроллеров  обычно  не  превышает 3 В.  Они 
специально  разрабатываются  для  изделий  с  автономными  источниками 
питания. 

Ток,  потребляемый  микроконтроллером,  зависит  от  его  напряжения  питания  и 

тактовой частоты процессорного ядра. С ростом напряжения питания и с ростом тактовой 
частоты потребляемый ток всегда возрастает. 

Большинство современных микроконтроллеров имеют несколько режимов работы, 

различающихся энергопотреблением. Обычно они разделяются на две группы: 

º 

Активный  режим  (Run Mode).  Обычный  рабочий  режим,  в  котором 
микроконтроллер выполняет заложенную в него программу и включены все 
его функциональные блоки. 

º 

Режимы энергосбережения (Sleep Mode). Режимы, в которых отключаются те 
или 

иные 

функциональные 

блоки 

микроконтроллера 

и 

его 

энергопотребление  существенно  снижается.  Режимы  энергосбережения,  в 
свою очередь, могут быть различны, например: 

Режим  холостого  хода  (Idle mode).  Останавливается  процессорное 
ядро,  но  продолжают  работу  некоторые  функциональные  блоки, 
связывающие  микроконтроллер  с  системой.  Через  эти  блоки 
процессорное ядро может быть вновь переведено в активный режим. 

Режимы 

ожидания 

(Wait mode 

или 

Power Down Mode). 

Останавливается  процессорное  ядро  и  отключается  большинство 
функциональных  блоков.  Процессорное  ядро  может  быть  переведено 
в  активный  режим  только  через  систему  сброса  или  систему 
прерываний. 

Для  перевода  микроконтроллера  в  тот  или  иной  режим  энергосбережения  в 

системе  команд  предусматриваются  специальные  инструкции,  а  в  его  архитектуре – 
специальные регистры. Например, у AVR-микроконтроллеров фирмы Atmel для перехода в 
режимы  энергосбережения  используется  инструкция Sleep, а  задание  режима 
осуществляется через регистр MCUCR (MCU Control Register) (рис. 14.1).  

 

  

1 0 

MCUCR $35 

($55) -  SE SM1 SM0 

ISC11 

ISC10 

ISC01 

ISC00 

Рис. 14.1. Биты управления режимами энергосбережения микроконтроллера 

ATmega163 

 

 

 

 

 

 

 

содержание   ..  23  24  25  26   ..