Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ

реклама

 




Мероприятия:




Раздел 13: Мастер шины 1-Wire

Мастер шины 1-Wire может использоваться микроконтроллером семейства MAXQ для поддержания без использования ресурсов вычислительного ядра связи с периферийными приборами, имеющими интерфейс 1-Wire. Мастер шины обеспечивает законченный контроль шины 1-Wire и осуществляет прием и передачу данных. Вся синхронизация и последовательность управляющих действий шиной 1-Wire формируются мастером шины. Связь между вычислительным ядром и мастером шины осуществляется путем записи/чтения регистров адреса мастера 1-Wire (OWA) и данных мастера 1-Wire (OWD). Когда активность шины генерирует условие, требующее обслуживания его вычислительным ядром, то мастер шины устанавливает бит состояния, который вызывает прерывание, если оно разрешено. Мастер шины 1-Wire работает только когда частота системных синхроимпульсов лежит в пределах от 4 МГц до 25 Мгц. Мастер шины поддерживает режимы Bit Banging и Search ROM Accelerator. Детальное описание режимов шины 1-Wire описаны в Книге iButton Стандартов (Book of iButton Standards), которая доступна на сайте компании Maxim/Dallas Semiconductor по адресу www.maxim-ic.com/iButtonbook. На рисунке 45 показана функциональная схема мастера шины 1-Wire.

Функциональная схема мастера шины 1-Wire
Рисунок 45. Функциональная схема мастера шины 1-Wire

Периферийные регистры мастера шины 1-Wire

Микроконтроллер семейства MAXQ связывается с мастером шины 1-Wire с помощью двух периферийных регистров: адреса мастера 1-Wire (OWA) и данных мастера 1-Wire (OWD). Эти два регистра обеспечивают доступ чтения/записи к шести встроенным регистрам мастера шины 1-Wire. Внутренние регистры позволяют вычислительному ядру настраивать и контролировать передачу/прием данных при помощи мастера шины 1-Wire. Три младших значащих бита (A2:A0) периферийного регистра OWA определяют адрес внутреннего регистра, к которому будет осуществлен доступ. OWD SFR используется для непосредственного чтения/записи данных из/в выбранного внутреннего регистра. Для правильного выполнения операции перед обращением к регистру данных необходимо установить адрес того внутреннего регистра, к которому будет осуществлено обращение. Исключение составляет флаг прерывания этого модуля, который доступен только для чтения и находится в регистре прерываний.

7             0  
                Регистр адресации 1-Wire (1-Wire Address - OWA)
                 
0 0 0 0 0 1 1 1 Сброс при включении питания и системный сброс
r r r r r rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
                 
                (A2:A0) Адресные биты внутренних регистров мастера шины 1-Wire (1-Wire Internal Register Address Bits)
Эти биты используются для выбора одного из внутренних регистров мастера 1-Wire, к которому будет осуществлен доступ через регистр OWD. Перед осуществлением доступа к одному из внутренних регистров 1-Wire необходимо определить его адрес. Адреса, для которых A2:A0 = 11xb зарезервированы и не поддерживаются мастером шины. Считывание данных из этих регистров приведет к получению неверных данных в регистре OWD, а запись не приведет к изменению содержимого какого-либо внутреннего регистра.
          A2 A1 A0 Внутренний регистр (доступ для чтения/записи)
          0 0 0 Команда (запись/чтение)
          0 0 1 Буфер передатчика/приемника (чтение/запись)
          0 1 0 Флаг прерывания (только чтение)
          0 1 1 Разрешение прерывания (чтение/запись)
          1 0 0 Делитель частоты (чтение/запись)
          1 0 1 Контроль (чтение/запись)
          1 1 x Зарезервировано


7             0  
                Регистр данных мастера шины 1-Wire (1-Wire Data (OWD) Register)
               
0 0 0 0 0 0 0 0 Сброс при включении питания и системный сброс
rw rw rw rw rw rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
Этот регистр содержит данные регистра, выбранного в соответствии с состоянием битов A2:A0 регистра OWA. Запись в регистр OWD приведет к записи этих данных в соответствующий выбранный битами A2:A0 регистра OWA регистр (за исключение записи в регистр флага прерывания, который доступен только для чтения).

Контроль синхронизации мастера шины 1-Wire

Синхронизация шины 1-Wire осуществляется 1.0 МГц синхроимпульсами. Формирование этой частоты мастер шины 1-Wire осуществляет путем деления системных синхроимпульсов микроконтроллера. Внутренний регистр делителя синхроимпульсов содержит биты, задающие коэффициент деления. В соответствии с состоянием битов PRE1:PRE0 (00b, 01b, 10b, и 11b) предварительного делителя осуществляется деление на 1, 3, 5 или 7, соответственно. Биты делителя (DIV2:DIV0) задают коэффициент деления 1, 2, 4, 8, 16, 32, 64 или 128 синхроимпульсов на выходе предварительного делителя. Бит CLK_EN (седьмой бит регистра делителя синхроимпульсов (Clock Divisor)), активизирует или отключает схему формирования синхроимпульсов. Установка этого бита в 1 разрешает формирование синхроимпульсов, о сброс его в 0 - отключает схему формирования синхроимпульсов. Когда этот бит сброшен в 0, то по существу мастер шины 1-Wire переходит в дежурный режим, в котором происходит отключение схемы делителя синхроимпульсов. Обратите внимание, что без синхроимпульсов функциональные возможности мастера шины в основном отключены. Ниже описан регистр делителя синхроимпульсов мастера шины 1-Wire.

7             0  
                Регистр делителя частоты мастера шины 1-Wire (1-Wire Clock Divisor Register) (OWA = 100b)
                 
0 0 0 0 0 1 0 0 Сброс при включении питания и системный сброс
rw r r rw rw rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
     
(PRE1:0) Биты предварительного делителя синхроимпульсов (Clock Prescaler Bits 1:0).
Эти биты предварительного делителя определяют коэффициент деления системных синхроимпульсов. Частота на выходе предварительного делителя определяется по формуле:Частота на выходе предварительного делителя = Частота системных синхроимпульсов / (2 x PRE1:0 + 1)
(DIV2:0) Биты делителя (Divider Bits 2:0).
Эти биты определяют коэффициент деления синхроимпульсов, полученных на выходе предварительного делителя:Базовая частота = Частота сигнала на выходе предварительного делителя / (2DIV2:0)
(CLK_EN) Активизация задающего генератора (Clock Enable).
Бит CLK_EN регистра делителя частоты используется для управления работой задающего генератора мастера шины. Установка бита CLK_EN в 1 активизирует задающий генератор, частота которого зависит от значения битов PRE1:0 и DIV2:0.

Перед осуществлением обмена данными необходимо настроить регистр делителя синхроимпульсов. Параметры настройки делителя синхроимпульсов мастера шины позволяют сформировать нужную синхропоследовательность при частоте системных синхроимпульсов от 4 МГц до 25 МГц. В таблице 18 приведены параметры настройки для наиболее часто используемых частот. Параметры настройки, не приведенные в таблице, зарезервированы и при использовании могут привести к неправильной работе. Обратите внимание, что чем ближе частота системных синхроимпульсов к нижней допустимой частоте, тем более точно формируется частота 1 МГц.

Таблица 18. Таблица настроек регистра делителя частоты и соответствующих им частот генератора синхросигнала

Частота системных синхроимпульсов Коэффициент деления DIV2 DIV1 DIV0 PRE1 PRE0
min max
4.0 < 5.0 4 0 1 0 0 0
5.0 < 6.0 5 0 0 0 1 0
6.0 < 7.0 6 0 0 1 0 1
7.0 < 8.0 7 0 0 1 1 1
8.0 < 10.0 8 0 1 0 0 0
10.0 < 12.0 10 0 0 0 1 0
12.0 < 14.0 12 0 1 1 0 1
14.0 < 16.0 14 0 0 1 1 1
16.0 < 20.0 16 1 0 0 0 0
20.0 < 24.0 20 0 1 0 1 0
24.0 <= 25.0 24 0 1 1 0 1

Управление мастером шины 1-Wire

Мастер шины 1-Wire может выполнять некоторые специфические функции для поддержки работы линии в режиме OW. Эти специфические функции могут быть установлены через регистр управления, описанный ниже. При сбросе в регистре устанавливается значение 00-h, что приводит к блокировке всех специфических функций.

7             0  
                Регистр управления 1-Wire (1-Wire Control Register (OWA = 101b))
                 
0 0 0 0 0 0 0 0 Сброс при включении питания и системный сброс
rw r rw r r rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
 
(LLM) Режим длинной линии (Long Line Mode).
Этот бит используется для активизации режима синхронизации по длиной линии. Установка этого бита в 1 устанавливает длительности свободного состояния и выборки данных 8 мкс и 22 мкс, соответственно. Время восстановления также будет увеличено до 14 мкс. Это обеспечивает снижение требований к среде распространения для длинных линий передачи данных. Сброс этого бита в 0 устанавливает длительности свободного состояния линии, выборки данных и восстановления соответственно 5, 15 и 10 мкс, соответственно.
(РРМ) Маскирование импульса присутствия (Presence Pulse Masking).
Этот бит используется для активизации функции маскирования импульса присутствия. Установка этого бита в 1 приведет к тому, что мастер будет инициализировать импульс присутствия при 1-Wire сбросе. Это дает возможность ведущему предотвратить большее количество вызовов ведущими при инициализации низкого уровня на линии OW. Если бит РРМ установлен, то бит результата PDR в регистре флагов прерывания всегда устанавливается, даже если ни одного ведомого прибора не подключено к линии. Сброс этого бита в 0 блокирует функцию маскирования импульса присутствия.
(EN_FOW) Активизация форсирования OW (Enable Force OW).
Для активизации команды форсирования линии OW бит EN_FOW должен быть установлен в 1. Сброс этого бита в 0 отключает команду форсирования линии OW в регистре команд.
(BIT_CTL) Активизация режима обмена битами (Bit-Banging Mode Enable).
Установка этого бита в 1 приводит к переводу мастера шины в режим обмена битами, в котором только младший значащий бит регистра передатчика/приемника передается/принимается, после чего устанавливается флаг прерывания, который означает конец передачи. Сброс этого бита в 0 переводит мастер шины в режим обмена байтами. Режим ускоренного поиска ПЗУ (SRA = 1) отменяет режим обмена битами.
(EOWMI) Активизация прерываний мастера шины 1-Wire (Enable 1-Wire Master Interrupts).
Установка этого бита в 1 разрешает запрос на прерывание при установке одного из флагов прерывания мастера шины. Сброс в 0 этого бита запрещает формирование запроса на прерывание от мастера шины 1-Wire.

Команды мастера шины 1-Wire

Мастер шины 1-Wire может формировать на шине 1-Wire в дополнение к данным специфические команды. Команды формируются путем установки соответствующих бит (A2:A0 = 000b) регистра команд, который описан ниже. Эти рабочие режимы описаны в книге стандартов iButton (Book of iButton Standards).

7             0  
                Регистр команд 1-Wire (1-Wire Command Register (OWA = 000b)
                 
0 0 0 0 s 0 0 0 Сброс при включении питания и системный сброс
r r r r r rw rw rw Доступен для чтения (r), записи (w) или специальный (s) доступ
 
(1WR) 1-Wire сброс (1-Wire Reset).
Установка этого бита в 1 приводит к сбросу шины 1-Wire, который должен предшествовать любой команде, передаваемой по шине. Установка этого бита также автоматически сбрасывает бит SRA. Бит 1WR автоматически сбрасывается в 0 по окончании 1-Wire сброса. После сброса мастер шины устанавливает флаг прерывания поиска присутствия (PD). Результат 1-Wire сброса помещается в бит PDR регистра прерываний. Если импульс поиска присутствия был получен, то бит PDR сбрасывается, а в противном случае - устанавливается. Когда не требуется сброс, этот бит автоматически сбрасывается в 0.
(SRA) Ускоренный поиск ПЗУ (Search ROM Accelerator).
Установка этого бита в 1 переводит мастера шины в режим ускоренного поиска ПЗУ. Следует заметить, что перед инициализацией режима SRA приемный буфер должен быть очищен. Этот режим используется для получения адресов всех подключенных к шине 1-Wire приборов или адреса одного прибора и одновременной адресации прибора. Сброс этого бита в 0 приводит к отключению функции ускоренного поиска ПЗУ.
(FOW) Форсирование 1-Wire (Force 1-Wire).
Установка этого бита в 1 переводит линию OW в низкое значение если бит EN_FOW во внутреннем контрольном регистре 1-Wire также установлен в 1. Бит FOW не оказывает никакого влияния на линию OW если бит EN_FOW сброшен в 0.
(OW_IN) Вход 1-Wire (1-Wire Input).
Этот бит всегда отображает текущее состояние линии OWIN.


<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники