|
(21), (22) Заявка: 2006145307/09, 20.05.2005
(24) Дата начала отсчета срока действия патента:
20.05.2005
(30) Конвенционный приоритет:
20.05.2004 US 10/851,526
(43) Дата публикации заявки: 27.06.2008
(46) Опубликовано: 20.04.2009
(56) Список документов, цитированных в отчете о поиске:
ЕР 0693729 А1, 24.01.1996. US 5237322 А, 17.08.1993. RU 2212048 C2, 10.09.2003.
(85) Дата перевода заявки PCT на национальную фазу:
20.12.2006
(86) Заявка PCT:
US 2005/018108 20050520
(87) Публикация PCT:
WO 2005/114436 20051201
Адрес для переписки:
129090, Москва, ул. Б.Спасская, 25, стр.3, ООО “Юридическая фирма Городисский и Партнеры”, пат.пов. Ю.Д.Кузнецову, рег. 595
|
(72) Автор(ы):
ХАНСКУИН Дэвид В. (US), МУНИР Мухамад Асим (US)
(73) Патентообладатель(и):
КВЭЛКОММ ИНКОРПОРЕЙТЕД (US)
|
(54) СОВМЕСТИМОСТЬ ОДНОПРОВОДНОЙ И ТРЕХПРОВОДНОЙ ШИН
(57) Реферат:
Изобретение относится к области осуществления связи между ведущими и подчиненными устройствами с использованием шинного интерфейса. Техническим результатом является обеспечение совместимости между существующими последовательными шинными интерфейсами и однопроводным шинным интерфейсом. Согласно одному аспекту выход или выходы трехпроводного интерфейса выбирают в первом режиме, а выход одного или нескольких однопроводных интерфейсов выбирают во втором режиме. Согласно другому аспекту преобразователь обращается к однопроводной шине и формирует сигналы в соответствии с трехпроводным интерфейсом. Согласно еще одному аспекту в сигнал однопроводного интерфейса вставляют символ завершения, что облегчает преобразование этого сигнала и подсоединение к трехпроводному интерфейсу. Согласно следующему аспекту в ответ на обнаруженный начальный символ формируются стробирующий сигнал и/или тактовый сигнал. Согласно еще одному аспекту стробирующий сигнал и/или тактовый сигнал деактивируются в ответ на обнаруженный символ завершения. 16 н. и 16 з.п. ф-лы, 35 ил., 5 табл.
Область техники, к которой относится изобретение
Настоящее изобретение относится в целом к интегральным схемам и, в частности, касается осуществления связи между ведущими и подчиненными компонентами с использованием однопроводного шинного интерфейса.
Предшествующий уровень техники
В настоящее время для обеспечения связи различных типов, таких как передача речи и данных, широко используется система беспроводной связи. Примеры беспроводных сетей включают в себя системы передачи данных на основе сотовой связи. К числу указанных примеров относятся следующие: (1) «Стандарт TIA/EIA-95-B совместимости между «мобильной станцией и базовой станцией» для двухрежимной широкополосной системы сотовой связи с расширенным спектром» (стандарт IS-95), (2) стандарт, предложенный консорциумом «Проект партнерства в области систем связи 3-го поколения» (3GPP) и воплощенный в наборе документов, включающих в себя документы под номерами 3G TS 25.211, 3G TS 25.212, 3G TS 25.213 и 3G TS 25.214 (Стандарт W-CDMA), (3) стандарт, предложенный консорциумом «Проект 2 партнерства в области систем связи 3-го поколения» (3GPP2) и воплощенный в «Стандарт физического уровня TR-45.5 для систем с расширенным спектром CDMA2000», (Стандарт IS-2000) и (4) система высокоскоростной передачи данных (HDR), которая совместима со стандартом TIA/EIA/IS-856 (Стандарт IS-856).
Устройство беспроводной связи обычно включает в себя множество компонент. Например, процессор для обработки немодулированных сигналов может взаимодействовать с одной или несколькими радиочастотными (RF) или иными компонентами. Процессор для обработки немодулированных сигналов может создавать и принимать немодулированные сигналы, часто в цифровой форме. Для обеспечения таких функций, как аналого-цифровое преобразование, цифроаналоговое преобразование, фильтрация, усиление, преобразование с повышением частоты, преобразование с понижением частоты, и многих других может быть использована одна или несколько интегральных схем (IC). Ведущим устройством (таким как процессор для обработки немодулированных сигналов) в одном или нескольких подчиненных устройствах могут быть записаны различные параметры и команды. Ведущее устройство может нуждаться в приеме (то есть считывании) параметров и других данных от одной или нескольких вспомогательных компонент (таких как радиочастотные интегральные схемы). Такие конфигурации ведущих устройств и подчиненных устройств могут использоваться также в устройствах, не относящихся к сфере связи.
В известном уровне техники используется протокол интерфейса последовательной шины (SBI), в котором для осуществления связи между ведущим устройством и одним или несколькими подчиненными устройствами применяются три сигнала (то есть, 3-проводный интерфейс). Хотя протокол SBI позволяет множеству подчиненных устройств совместно использовать один интерфейс, некоторые компоненты оказываются весьма чувствительными к работе других компонент в совместно используемом интерфейсе. Поэтому некоторые интерфейсы SBI используются с одним ведущим устройством и одним подчиненным устройством во избежание указанных взаимных помех. Введение дополнительных вышеописанных интерфейсов может потребовать, чтобы ведущее устройство имело по три дополнительных штыревых вывода (штырька) (или контактной площадки) на каждый дополнительный интерфейс. Это может дополнительно усложнить систему и/или ее стоимость из-за увеличения размера кристалла, итогового количества штырьков и т.д. Следовательно, желательно уменьшить количество штырьков, необходимых для организации интерфейса между ведущим устройством и подчиненным устройством.
Современный уровень техники предлагает ряд проектов для ведущих устройств и подчиненных устройств, которые поддерживают интерфейс SBI. Желательно, чтобы новый интерфейс мог обеспечить связь с существующими компонентами SBI для улучшения совместимости и позволил новым устройствам (ведущим либо подчиненным) работать в фазе друг с другом, а также с существующими компонентами. Также желательно обеспечить средство для модификации существующих разработок для связи по интерфейсу с сокращенным количеством штырьков при минимальном сроке разработки для ускорения выхода на рынок новых продуктов и ускорения массового выпуска нового интерфейса.
Таким образом, в данной области техники имеется потребность в однопроводном шинном интерфейсе для связи между ведущим устройством и одним или несколькими подчиненными устройствами. Кроме того, имеется потребность в ведущих устройствах, подчиненных устройствах и преобразователях, которые могут взаимодействовать с существующими интерфейсами последовательной шины, например, интерфейсами, адаптированными к протоколу SBI.
Сущность изобретения
Раскрытые здесь варианты имеют своей целью удовлетворение потребности в совместимости между существующими последовательными шинными интерфейсами и однопроводным шинным интерфейсом. Согласно одному аспекту для выхода или выходов трехпроводного интерфейса выбирают первый режим, а для выхода одного или нескольких однопроводных интерфейсов выбирают второй режим. Согласно другому аспекту преобразователь воспринимает сигналы однопроводной шины и формирует сигналы, соответствующие трехпроводному интерфейсу. Согласно еще одному аспекту в сигнал однопроводного интерфейса вставляют символ завершения, способствующий преобразованию указанного сигнала и соединению с трехпроводным интерфейсом. Согласно следующему аспекту в ответ на обнаруженный начальный символ формируется стробирующий сигнал и/или тактовый сигнал. Согласно еще одному аспекту в ответ на обнаруженный символ завершения деактивируется стробирующий сигнал и/или деактивируется тактовый сигнал.
Перечень фигур чертежей
Фиг.1 – общая блок-схема системы беспроводной связи, способной поддерживать несколько пользователей;
фиг.2 – часть известной мобильной станции 106;
фиг.3 – форматы трех режимов пересылки для интерфейса SBI;
фиг.4 – тип доступа в режиме быстрой пересылки (FTM);
фиг.5 – тип доступа в режиме массовой пересылки (BTM);
фиг.6 – тип доступа в режиме пересылки с прерыванием (ITM);
фиг.7 – известная конфигурация SBI;
фиг.8 – вариант, содержащий комбинацию интерфейса SBI и однопроводного последовательного шинного интерфейса (SSBI);
фиг.9 – формат пересылки SSBI;
фиг.10 – временная диаграмма, иллюстрирующая примерный вариант схемы передачи сигналов SSBI;
фиг.11 – примерное ведущее устройство для поддержки SSBI;
фиг.12 – примерное ведущее устройство, сконфигурированное для поддержки интерфейса SSBI или SBI;
фиг.13 – примерное подчиненное устройство для поддержки интерфейса SSBI;
фиг.14 – примерное подчиненное устройство для поддержки интерфейсов SSBI и SBI, содержащее подчиненный блок SBI и преобразователь подчиненного блока SSBI;
фиг.15 – пример подчиненного устройства по фиг.14, сконфигурированного для связи только через интерфейс SSBI;
фиг.16 – примерное подчиненное устройство только для SSBI, содержащее подчиненный блок SBI и преобразователь подчиненного блока SSBI;
фиг.17 – временная диаграмма, иллюстрирующая записи SSBI и сигналы ведущего устройства SSBI;
фиг.18 – временная диаграмма, иллюстрирующая считывания SSBI и сигналы ведущего устройства SSBI;
фиг.19 – взаимосвязь между тактовыми импульсами в ведущем и подчиненном устройствах;
фиг.20-22 – подробности примерных логических схем, подходящие для использования в примерном ведущем устройстве SSBI;
фиг.23 – примерный вариант подчиненного устройства SSBI;
фиг.24 – временная диаграмма, иллюстрирующая записи SSBI и сигналы подчиненного устройства SSBI;
фиг.25 – временная диаграмма, иллюстрирующая считывания SSBI и сигналы подчиненного устройства SSBI;
фиг.26 – примерные схемы, подходящие для использования в примерном шинном интерфейсе подчиненного устройства SSBI;
фиг.27 – примерные логические схемы, подходящие для использования в качестве блока регистров подчиненного устройства;
фиг.28 – формы сигналов, показывающие конец примерного пакета, включая символ завершения;
фиг.29-31 – примерные схемы, подходящие для использования в примерном ведущем устройстве SSBI, модифицированном для поддержки режима FTM;
фиг.32 – часть преобразователя подчиненного блока SSBI;
фиг.33 – формы сигналов, иллюстрирующие начало пересылки FTM;
фиг.34 – формы сигналов, иллюстрирующие конец пересылки FTM; и
фиг.35 – часть дополнительной схемы для примерного преобразователя подчиненного блока SSBI.
Подробное описание изобретения
Далее в контексте системы цифровой беспроводной передачи данных излагается сущность одного или нескольких описанных здесь примерных вариантов. Хотя использование изобретения именно в этом контексте является преимущественным, в состав других сред или конфигураций могут быть включены другие варианты изобретения. В общем случае различные описанные здесь системы можно сформировать, используя процессоры, работающие под управлением программного обеспечения, интегральные схемы или дискретную логику. Данные инструкции, команды, информация, сигналы, символы и микросхемы, на которые повсеместно делаются ссылки в этой заявке, преимущественно представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами, или их комбинацией. Вдобавок, блоки, показанные в каждой блок-схеме, могут представлять аппаратные средства или шаги способа.
На фиг.1 представлена схема системы 100 беспроводной связи, которая может быть спроектирована для поддержки одного или нескольких стандартов и/или проектов CDMA (например, стандарт W-CDMA, стандарт IS-95, стандарт cdma2000, спецификация HDR, система 1xEV-DV). В альтернативном варианте система 100 может дополнительно поддерживать любой беспроводный стандарт или проект, отличный от системы CDMA.
Для простоты показано, что система 100 включает в себя три базовые станции 104, находящиеся на связи с двумя мобильными станциями 106. Базовую станцию вместе с ее зоной покрытия часто называют «сотой». В системах IS-95, cdma2000 или 1xEV-DV сота может, например, включать в себя один или несколько секторов. В спецификации W-CDMA сотой называют каждый сектор базовой станции и зону покрытия этого сектора. Используемый здесь термин «базовая станция» можно использовать как взаимозаменяемый с терминами «точка доступа» или «узел В». Термин «мобильная станция» можно использовать в качестве взаимозаменяемого с терминами «оборудование пользователя (UE)», «абонентский блок», «абонентская станция», «терминал доступа», «удаленный терминал» или другими соответствующими терминами, известными специалистам в данной области техники. Термин «мобильная станция» распространяется на приложения для стационарной беспроводной связи.
Слово «примерный» используется здесь в смысле «служащий в качестве примера, варианта или иллюстрации». Любой описанный здесь вариант изобретения в качестве «примерного» необязательно следует трактовать как предпочтительный или имеющий преимущества по сравнению с другими вариантами.
В зависимости от реализации системы CDMA каждая мобильная станция 106 может в любой данный момент времени осуществлять связь с одной (или возможно с несколькими) базовой станцией по прямой линии связи, а также может осуществлять связь с одной или несколькими базовыми станциями по обратной линии связи в зависимости от того, находится ли эта мобильная станция в состоянии мягкого переключения. Термин «прямая» линия связи (то есть, нисходящая линия связи, относится к передаче от базовой станции на мобильную станцию, а термин «обратная» линия связи (то есть, восходящая линия связи) относится к передаче от мобильной станции к базовой станции.
На фиг.2 изображена часть известной мобильной станции 106. Иллюстрации, подробно описанные ниже, можно также использовать в других устройствах беспроводной связи, таких как базовая станция 104, а также любое другое устройство или устройства, в которых требуется связь между ведущим и подчиненными устройствами. В данном примере процессор 220 для обработки немодулированных сигналов используется вместе с одной или несколькими вспомогательными интегральными схемами (IC), а также другими компонентами, которые не показаны. Процессор 220 для обработки немодулированных сигналов обеспечивает обработку связи для сигналов, подлежащих передаче и приему, в соответствии с одной или несколькими системами или стандартами связи, примеры которых подробно описаны выше. Типовой процессор 220 для обработки немодулированных сигналов выполняет цифровую обработку входящих и исходящих сигналов и может выполнять обработку других различных типов, включая выполнение различных приложений. Процессор для обработки немодулированных сигналов может содержать различные компоненты, в том числе один или несколько микропроцессоров, цифровые процессоры сигналов, память и другие схемы общего назначения или специализированные схемы различных типов. Процессор для обработки немодулированных сигналов может содержать различные компоненты для приема и передачи сигналов согласно одной или нескольким спецификациям или стандартам связи, такие как кодеры, перемежители, модуляторы, декодеры, обратные перемежители, демодуляторы, поисковые блоки и другие различные компоненты, примеры которых хорошо известны в данной области техники. Процессор для обработки немодулированных сигналов может содержать в себе цифровые схемы, аналоговые схемы или их комбинацию.
Вспомогательные интегральные схемы IC, соединенные с процессором 220 для обработки немодулированных сигналов, обозначены как RFIC с 230А по 230N. Примерные вспомогательные схемы IC включают в себя радиочастотные (RF) схемы IC, которые могут выполнять различные функции, к примеру, функции усилителей, фильтров, смесителей, генераторов, цифроаналоговых (D/A) преобразователей, аналого-цифровых (A/D) преобразователей и т.п. Компоненты, необходимые для связи согласно стандарту, могут входить в состав множества схем RFIC 230. Любая схема RFIC 230 может включать в себя компоненты, которые могут совместно использоваться множеством систем связи. Схемы RFIC показаны только для иллюстрации. К процессору 220 для обработки немодулированных сигналов может быть подсоединена вспомогательная интегральная схема (IC) любого типа.
В этом примере схемы RFIC 230 осуществляют прием и/или передачу через антенну 210, с помощью которой может быть установлена линия связи с одной или несколькими базовыми станциями 104. Антенна 210 может содержать множество антенн, как хорошо известно специалистам в данной области техники.
Протокол SBI
Для передачи различных параметров и команд был разработан 3-проводный интерфейс. Этот 3-проводный интерфейс называется последовательным шинным интерфейсом (SBI). 3-проводный интерфейс включает в себя линию тактовых импульсов (SBCK), стартстопную линию (SBST) и линию данных (SBDT). Интерфейс SBI подробно описывается ниже. Интерфейс SBI определяет ведущее устройство и одно или несколько подчиненных устройств. В этом примере процессор 220 для обработки немодулированных сигналов служит в качестве ведущего устройства, а одна или несколько схем RFIC 230 служат в качестве подчиненных устройств. Интерфейс SBI не ограничивается указанным, а ведущее и подчиненные устройства могут быть любого типа. В приведенных ниже подробных примерных вариантах процессор 220 для обработки немодулированных сигналов является взаимозаменяемым с ведущим устройством 220, а схема RFIC 230 является взаимозаменяемой с подчиненным устройством 230. Процессор 220 для обработки немодулированных сигналов может также осуществлять связь с различными схемами RFIC 230 по различным выделенным дополнительным линиям, либо аналоговым, либо цифровым (не показаны).
Заметим, что, как показано на фиг.2, множество подчиненных устройств могут совместно использовать одни и те же три соединения ведущего устройства (SBCK, SBST и SBDT). Между схемами RFIC 230 и процессором для обработки немодулированных сигналов могут быть использованы другие различные соединения, которые на фиг.2 не показаны. Мобильная станция 106 может также включать в себя другие различные компоненты для использования при осуществлении связи или выполнении приложений. Эти подробности не показаны, чтобы не затемнять предмет обсуждения.
Интерфейс SBI определяет три типа режимов пересылки, форматы которых показаны на фиг.3. Режим быстрой пересылки (FTM) обеспечивает множество доступов к любому подчиненному устройству, включая считывания и записи. Каждый доступ в последовательности идентифицирует адрес, на который или с которого должен быть сделан данный доступ.
Режим массовой пересылки (BTM) обеспечивает множество последовательных доступов к одному подчиненному устройству. Доступы при пересылке BTM могут представлять собой считывания или записи, но ни то и другое вместе. Адрес для массовой пересылки необходимо передавать только один раз. Множество считываний или записей могут появляться последовательно с этого начального адреса.
Режим пересылки с прерыванием (ITM) используется для пересылки одного байта кодированной информации. Идентификатор подчиненного устройства (SID) указывает одно из двух подчиненных устройств для приема сообщения. 5-битовое поле сообщения обеспечивает 32 возможных сообщения. После сообщения передается бит паузы.
На фиг.4-6 изображены временные диаграммы для режимов FTM, BTM и ITM соответственно. Каждый доступ SBI выполняется следующим образом. Инициируются транзакции путем перевода линии SBST на низкий уровень. Транзакции завершаются/заканчиваются путем перевода линии SBST на высокий уровень. Имеется по меньшей мере один тактовый импульс между транзакциями (высокий уровень SBST и SBDT). Все изменения в состоянии линии SBDT появляются до заднего фронта SBCK (обычно устанавливаются и поддерживаются параметры, заданные в соответствии с задним фронтом SBCK). Первый бит данных фиксируется по второму заднему фронту, после того как линия SBST перешла на низкий уровень. Сначала передается самый старший бит данных (MSB), а в конце самый младший бит (LSB). (Напомним, что для режима ITM один бит идентифицирует одно из двух подчиненных устройств, после чего которым следует сообщение). Неадресованные подчиненные устройства ждут начального бита следующей транзакции. Во время одной транзакции в режиме FTM данные могут как считываться, так и записываться. Для каждого передаваемого байта выделяется один или несколько битов паузы. Как ведущее устройство, так и подчиненные устройства освобождают шину данных на время прохождения битов (Р) паузы во избежание конфликтной ситуации в шине.
Первые два бита указывают тип доступа: 01 для режима FTM, 10 для режима BTM и 00 для режима ITM. Идентификатор (ID) подчиненного устройства состоит из 6 бит, в то время как поля адреса и данных имеют 8 бит каждое. Биты (Р) паузы вставляются после каждых 8 бит для предоставления возможностей подчиненному устройству возвратить данные без инициирования конфликтной ситуации в шинах. Первый бит поля адреса указывает, является ли доступ считыванием (1) или записью (0). Для режимов FTM и BTM к одному и тому же подчиненному устройству может быть выполнено множество доступов, причем для каждого доступа к регистру не требуется задание ID подчиненного устройства. Режим FTM является обычным способом выполнения доступов к регистрам. Режим BTM предусмотрен для разрешения конфигурации большей группы последовательных адресов. Задается только первый регистровый адрес пакета. Для режима ITM поле ID подчиненного устройства заменяется 1-битовым полем SID для задания подчиненного устройства для доступа. Вместо полей регистра и данных задается 5-битовое поле сообщения.
На практике оказывается, что в некоторых случаях радиочастотные (RF) схемы IC 230 чувствительны к взаимным помехам в общей шине. Во избежание этих помех используются дополнительные шины для изоляции трафика по одной шине от одного или нескольких чувствительных устройств 230. Примерная конфигурация показана на фиг.7. На фиг.7 процессор 220 для обработки немодулированных сигналов осуществляет связь со схемами RFIC 230А-230J по отдельным 3-проводным шинам SBI, выделенным для каждого устройства. В этом примере к совместно используемой шине SBI подсоединены дополнительные схемы RFIC 230K и 230N. Хотя добавление шин может разрешить проблему взаимных помех, это приводит к увеличению количества штырьков, необходимых для процессора 220 для обработки немодулированных сигналов, а также количества ведущих контроллеров. Например, процессор 220 для обработки немодулированных сигналов может быть использован с 3 или 4 портами SBI, что потребует 9 или 12 штырьков соответственно. Это схема может быть осложнена необходимостью ввода служебных сигналов для разделения имеющихся портов между различными внешними микросхемами 230.
Протокол SSBI
Для снижения взаимных помех, что необходимо для особо чувствительных микросхем 230, при одновременном уменьшении общего количества штырьков предлагается новый однопроводный шинный интерфейс, который подробно описывается ниже и называется однопроводным последовательным шинным интерфейсом (SSBI). На фиг.8 показана примерная мобильная станция 106, используемая вместе с независимой однопроводной (SSBI) шиной, соединяющей каждую схему RFIC 230А-230J с процессором 220 для обработки немодулированных сигналов. 3-проводные шины SBI также можно использовать в сочетании с шинами SSBI, если это необходимо. Это, как показано на фиг.8, достигается благодаря совместно используемой 3-проводной шине, соединяющей схемы RFIC 230N-230K и процессор 220 для обработки немодулированных сигналов. Использование однопроводного интерфейса позволяет сократить общее количество штырьков, увеличить количество портов, либо достичь и того и другого. Увеличение количества портов может воспрепятствовать усложнению технического решения, упомянутого выше, которое может произойти, когда двум или более устройствам необходимо делить между собой один шинный интерфейс. Заметим, что в примерных вариантах, подробно описанных ниже, интерфейс SSBI для ясности раскрывается применительно к штырькам и/или контактным площадкам. Протокол SSBI также применим к соединениям между кристаллами (то есть, соединениям между контактными площадками, без штырьков), а также соединениям между микросхемами (то есть, к межблочным соединениям, где нет ни контактных площадок, ни штырьков). Специалисты в данной области техники без труда смогут адаптировать раскрытые здесь принципы для применения их к этим и другим различным вариантам.
Альтернативные варианты могут включать в себя любое количество однопроводных шин, а также любое количество 3-проводных шин. В различных вариантах, примеры которых подробно описаны ниже, штырьки могут быть сконфигурированы для использования либо с 1-проводным, либо с 3-проводным шинным интерфейсом.
Примерный протокол SSBI, который здесь подробно раскрыт, имеет следующие признаки. Необходимое общее количество штырьков сокращается по сравнению с интерфейсом SBI. Пропускная способность может оказаться сравнимой или быть выше, чем в интерфейсе SBI. Адрес возрастает для поддержки дополнительных регистров, что обеспечивает поддержку более сложных подчиненных устройств. В этом примере количество адресуемых регистров равно 256.
Для уменьшения количества штырьков интерфейс SSBI не содержит линию тактовых импульсов (SBCK) и стартстопную линию (SBST). Одна линия в протоколе SSBI называется здесь SSBI_DATA. Вместо линии тактовых импульсов, устраненной в данном интерфейсе, используются локальные тактовые импульсы как в ведущем, так и в подчиненном устройстве. Локальные тактовые импульсы в ведущем устройстве и любых подчиненных устройствах необязательно должны быть идентичными. Данный протокол учитывает сдвиги по фазе и частоте, как более подробно описано ниже. Допускается определенная ошибка по частоте, причем величина этой ошибки зависит от конкретного варианта. Протокол SSBI является независимым по фазе относительно тактовых импульсов ведущего и подчиненных устройств. Локальные тактовые импульсы могут генерироваться с использованием гетеродинов; их также можно получать от других источников тактовых импульсов или использовать различные другие способы генерирования тактовых импульсов, известные в данной области техники.
Интерфейс SSBI
Вместо стартстопной линии в поток данных вставляется начальный бит и определяется состояние незанятости (IDLE). Приемное устройство (то есть, подчиненное устройство) может контролировать линию данных (SSBI_DATA), отбирая заранее определенные значения IDLE, а затем начать транзакцию, когда обнаружится начальный символ. По завершении транзакции линия данных может быть возвращена в состояние IDLE, чем завершается пересылка.
Протокол SSBI может быть разработан с временными диаграммами и формами сигналов, подобранными таким образом, чтобы облегчить взаимодействие между 1-проводным и 3-проводным интерфейсами. Как станет в дальнейшем ясно, это позволяет перейти от протокола 3-проводного интерфейса SBI к протоколу 1-проводного интерфейса SSBI. Например, ведущее устройство может быть оборудовано логической схемой для создания как формата SBI, так и формата SSBI для облегчения связи с подчиненными устройствами более ранних поколений, а также с более современными подчиненными устройствами, по мере их создания. Аналогичным образом, существующее подчиненное устройство может быть оборудовано логической схемой преобразования, так чтобы можно было осуществлять прием форматов SBI или SSBI, что обеспечивает совместимость как с ведущими устройствами более ранних поколений, так и новыми ведущими устройствами. Подчиненное устройство может быть оборудовано 3 штырьками для 3-проводного режима, причем один из этих штырьков выделяют для линии SSBI_DATA при работе в режиме SSBI. Режим может быть выбран путем установки заранее определенных значений на неиспользуемых штырьках, когда требуется режим SSBI. Кроме того, можно быстро модернизировать одноштырьковое подчиненное устройство путем добавления к существующему ядру логической схемы преобразования, так чтобы сигналы SSBI_DATA по одному проводу можно было преобразовать в существующие сигналы 3-проводного интерфейса SBI для взаимодействия с существующим ядром. Указанная логическая схема преобразования, подробно описанная ниже, может быть добавлена к подчиненному устройству с минимальным воздействием на существующие функциональные возможности, что позволяет сразу же уверенно использовать новое устройство. Таким образом, на рынке при переходе от трехпроводных устройств к однопроводному устройству могут быть получены выгоды, состоящие в уменьшении взаимных помех благодаря отделению линий управления и благодаря сокращению общего количества штырьков в ведущем и/или подчиненных устройствах. Различные примерные варианты этого подробно описываются ниже.
В таблице 1 показаны сигналы интерфейса SSBI. Интерфейс SSBI состоит из одного штырька на каждое устройство, обозначенного как SSBI_DATA. Линия SBST исключается, поскольку начало и конец пересылки указываются в самом потоке данных. Линия SBCK исключается, так как имеются общие тактовые импульсы как для ведущего, так и для подчиненных устройств. Предполагается, что имеются тактовые импульсы, доступные как для ведущего, так и для подчиненных устройств, которые обозначены как SSBI_CLK. Можно использовать любые общие тактовые импульсы. Между тактовыми импульсами ведущего и подчиненного устройств не требуется взаимосвязь по фазе. В одном варианте для упрощения маршрутизации два тактовых импульса можно получать от одного и того же источника. В общем случае те и другие тактовые импульсы должны иметь одинаковую частоту, хотя некоторая ошибка по частоте может быть скорректирована. Специалисты в данной области техники в свете раскрытого здесь подхода без труда смогут оценить величину ошибки по частоте, допустимую для любого заданного варианта. Эти тактовые импульсы требуются всякий раз, когда необходима связь через интерфейс SSBI.
Таблица 1 |
Описания модифицированных портов ведущего устройства SSBI |
Сигнал |
Описание |
SSBI_DATA |
Линия SSBI_DATA; двунаправленная; подсоединяет ведущее устройство (то есть, процессор 220 для обработки немодулированных сигналов) к подчиненному устройству (то есть, RFIC 230) |
SSBI_CLK |
Локальные тактовые импульсы; генерируется для каждого ведущего и подчиненного устройства для 1-проводного режима |
В примерном варианте ведущее устройство 220 содержит контактную площадку для сигнала SSBI_DATA со следующими характеристиками. Контактная площадка является двунаправленной. Она поддерживает уровни возбуждения 2 мА в режиме низкого возбуждения и 5 мА в режиме высокого возбуждения (это соответствует настройкам, используемым для примерных контактных площадок SBI). Примерная контактная площадка содержит выбираемый элемент, снижающий уровень сигнала до минимального, и выбираемый элемент, поддерживающий уровень сигнала. В сфере настоящего изобретения могут быть использованы различные другие контактные площадки. В альтернативных вариантах, таких как, например, межблочные соединения в одном кристалле, контактные площадки могут быть заменены альтернативными компонентами, такими как устройства с тремя состояниями, мультиплексоры и т.п., хорошо известные специалистам в данной области техники.
В примерном протоколе SSBI поддерживается только один режим и поддерживается только один доступ к регистру на одну пересылку. Это можно трактовать как упрощение режима FTM без необходимости задания режима или ID подчиненного устройства. Поскольку на шине ожидается только одно подчиненное устройство (хотя схемы адресации можно использовать, если потребуется, для двух или более устройств, как описано ниже), биты ID подчиненного устройства больше не нужны. В результате при каждом доступе потребуется очень мало дополнительных служебных сигналов по сравнению с командами SBI. Множество режимов 3-проводного интерфейса SBI обеспечивают механизмы для исключения ненужных служебных сигналов с целью повышения пропускной способности и уменьшения задержки. Единый формат SSBI обеспечивает аналогичные преимущества.
На фиг.9 показан формат пересылки по протоколу SSBI. Кадр может представлять собой кадр 920 считывания или кадр 910 записи. Первый бит указывает, выполняется считывание или запись. Доступ для считывания указывается значением ‘1’, а доступ для записи значением ‘0’. Это присвоение не является произвольным; оно фактически предотвращает ситуацию, когда подчиненное устройство непредумышленно посчитает, что имеют место операции считывания, если ведущий блок SSBI непреднамеренно вернется в исходное состояние в середине доступа. Поле адреса составляет 8 полных бит, и поскольку запись/считывание указывается по отдельности, все 256 адресов теперь оказываются доступными как для регистра считывания, так и для регистра записи. В примерном варианте адресное пространство в интерфейсе SSBI увеличивается по сравнению с интерфейсом SBI. В альтернативных вариантах можно использовать адресное пространство любого размера.
Параметризация поля данных выполняется в различных вариантах, описанных ниже, причем значение параметра может находиться в диапазоне, например, от 1 до 16. Этот параметр идентифицируется ниже как SSBI_DATA_WD. Для обоих полей адресов и данных сначала выводится бит MSB. Для записей, поскольку ведущее устройство непрерывно возбуждает шину, биты (Р) не требуются. Для считываний используются биты паузы. Для выполнения дополнительных считываний или записей в шине инициируется новая команда. Таким образом, подчиненному устройству всегда известно, что следует ожидать 17 символов для записи и 19 символов для считывания (когда SSBI_DATA_WD=8).
Хотя предполагается, что будет поддерживаться одно подчиненное устройство на один порт SSBI, можно организовать поддержку двух подчиненных устройств, заставив каждое из них реагировать на разный набор регистровых адресов SSBI. Например, одно подчиненное устройство может реагировать на адреса 0-127, в то время как второе подчиненное устройство будет реагировать на адреса 128-255. Однако, используя указанный подход можно столкнуться с проблемами нагрузки на плате, а также с обычными проблемами взаимных помех, как было описано выше в связи с протоколом SBI.
На фиг.10 представлена временная диаграмма, иллюстрирующая примерный вариант схемы передачи сигналов SSBI. В этом примере линия данных (SSBI_DATA) находится на низком уровне при индикации состояния незанятости. Когда необходимо послать данные, передается начальный бит, в данном примере это высокое напряжение (или «1»). Начальный бит используется для центрирования точки выборки приемника для выборки входящего потока данных. Вслед за начальным битом идет поток данных. Поскольку форматы команд строго определены, приемник может точно определить из потока данных, сколько бит будет послано. Таким образом, приемник знает, когда будет завершена пересылка, и может вновь перейти в состояние незанятости для ожидания следующего начального бита. Как начальный бит, так и биты данных имеют каждый длину, равную в этом примере двум тактовым циклам, следовательно, символьный период имеет длину в два тактовых цикла. Биты данных передаются с высоким или низким уровнем в зависимости от того, посылается 1 или 0. В альтернативном варианте каждый бит может иметь длину в один тактовый цикл. Однако в указанном случае у приемника могут возникнуть трудности при обнаружении центра символа, поскольку точность составит только половину тактового цикла. Таким образом, приемник не может гарантировать, что выборка символа состоится при переходе с одного символа на другой. Когда длина символов составляет два тактовых цикла (или более), приемник может гарантировать, что он будет отбирать символы где-то между 0,5 и 1,5 цикла в символе, следовательно, по меньшей мере на расстоянии в 0,5 тактового цикла от любого из переходов. В альтернативных вариантах количество тактовых циклов на символ может варьироваться.
Тактовые импульсы в приемнике необязательно выравнивать по данным. Таким образом, изображенные на фиг.10 импульсы SLAVE CLOCK могут быть сдвинуты влево или вправо относительно сигнала SSBI_DATA. В данном примере приемник начинает выборку с первого заднего фронта тактового импульса после прихода SSBI_DATA с высоким уровнем. Точки выборки обозначены вертикальными пунктирными линиями. Каждый последующий символ отбирается каждые два тактовых периода с этой точки, пока не завершится доступ. После бита IDLE может быть передан другой начальный символ.
Этот протокол SSBI устойчив к ошибкам по частоте. Допустимая величина указанной ошибки может изменяться в зависимости от выбранного технического решения при использовании любого конкретного варианта. При использовании внешних тактовых импульсов и их направлении на одну или несколько подсоединенных компонент данный интерфейс успешно работает при наличии переменной асимметрии тактовых импульсов между различными компонентами. В альтернативном варианте одна или несколько соединенных компонент (то есть, ведущее устройство и/или любые подчиненные устройства) могут генерировать свои собственные тактовые импульсы в рамках разработанных требований к ошибке по частоте.
Время пересылки для любого доступа не зависит от данных. Значения времени пересылки такие же, как для примерного 3-проводного шинного интерфейса SBI. Для различных типов бит могут быть выбраны любые уровни напряжения, как очевидно специалистам в данной области техники. В данном примере, как было описано выше, начальный символ выбран равным 1 (или высокое напряжение) для центрирования стробирующего импульса выборки. Состояние незанятости установлено равным 0 (или уровню «земли»). Это упрощает интерфейс, если использовать отключаемые от питания микросхемы. Например, RF микросхемы (или другие подчиненные устройства) могут подключаться и отключаться от питания для экономии энергии. Установка состояния незанятости равным уровню «земли» упрощает это условие.
В общем случае ведущее устройство возбуждает линию SSBI_DATA. Ведущее устройство устанавливает шину в третье состояние только тогда, когда подчиненное устройство возбуждает данные считывания. Во всех других случаях ведущее устройство возбуждает шину. Поскольку ведущее устройство и подчиненные устройства возбуждают шину данных на разных временных интервалах во избежание конфликтной ситуации в линии данных, текущее устройство возбуждения шины (драйвер) освобождает шину в течение одного символьного периода (в данном примере это два цикла), прежде чем следующему устройству разрешается возбуждение шины. Этот временной интервал называется битом паузы. На фиг.9 биты паузы обозначены как P. В течение бита паузы значение в линии данных может поддерживаться с помощью элемента контактной площадки, поддерживающего уровень сигнала, если он имеется. Предполагается, что подчиненное устройство отреагирует, предоставив данные для считывания и используя временные соотношения, аналогичные тем, которые использует ведущее устройство, поэтому символы считывания должны появляться примерно на тех временных интервалах, где их ожидает ведущее устройство.
Для того, чтобы понять, как происходит переключение с одного устройства возбуждения шины на другое, рассмотрим следующий случай. Вслед за ведущим устройством, посылающим бит LSB поля адреса доступа для считывания, передается бит паузы, чтобы предоставить ведущему устройству время для освобождения шины. Подчиненное устройство реагирует, возбуждая D7-D0, после чего следует освобождение линии данных для другого бита паузы. Затем ведущее устройство может вновь взять на себя управление шиной для передачи следующего символа. Конфликтной ситуации удается избежать, поскольку подчиненное устройство знает временные параметры работы ведущего устройства с точностью до половины тактового импульса на основе начального бита. Поскольку бит паузы занимает два тактовых цикла, может появиться как минимум 1,5 цикла или максимум 2,5 цикла в зависимости от относительных фаз тактовых импульсов ведущего и подчиненного устройств. Поскольку задержка шины составляет менее 1,5 цикла, конфликтная ситуация не возникнет.
3-проводный интерфейс SBI имеет сигнал SSBI, который устанавливается (приводится в состояние, соответствующее логическому состоянию «истина», или активируется) на время пересылки и снимается (приводится в состояние, соответствующее логическому состоянию «ложь», или деактивируется), когда ведущее устройство подтвердило выполнение. Это облегчает форсированный переход подчиненного устройства в состояние незанятости в любой момент времени. Ведущее устройство может обеспечить снятие сигнала SSBI, и в зависимости от того, перешло уже подчиненное устройство в состояние незанятости или находится в середине пересылки, ведущее устройство должно определить, что пересылка больше не происходит, и перейти в состояние незанятости. При использовании 1-проводного интерфейса SBI не существует сигналов, с помощью которых это можно сделать в явном виде. Рассмотрим два случая: первый случай – во время сброса питания и второй – во время нормальной работы. Во время включения питания ведущее устройство может учесть интервал времени, необходимый для установки различных устройств в исходное состояние, и проигнорировать действие SSBI, пока не завершится эта установка. Во время нормальной работы пока ведущее устройство и подчиненные устройства работают синхронно, так что подчиненные устройства реагируют только на ведущее устройство и блок SSBI ведущего устройства никогда форсированно не установится в исходное состояние во время пересылки SSBI, проблем не возникает.
Если возникает необходимость в установке ведущего устройства SSBI в исходное состояние в некоторый произвольный момент времени по какой-либо причине, то вероятно, что шина SSBI может оказаться в состоянии, соответствующем середине считывания, и поэтому подчиненное устройство будет возбуждать шину данных SSBI. Если ведущее устройство форсированно переводится в состояние незанятости, оно также будет возбуждать шину данных, в связи с чем может возникнуть конфликтная ситуация. Когда подчиненное устройство не возбуждает шину в ответ на доступ для считывания, ведущее устройство, перешедшее в состояние незанятости, не вызовет конфликтную ситуацию, подчиненное устройство либо останется в состоянии незанятости, либо завершит текущий доступ для записи, а затем перейдет в состояние незанятости. (В этом примере, поскольку 1-проводные форматы таковы, что записи и считывания имеют длину 17 и 19 символьных периодов для данных шириной 8 бит, почти на 19 символьных периодов позже, то гарантируется, что подчиненное устройство будет в состоянии незанятости). Для решения вопроса о том, когда подчиненное устройство может возбуждать шину, ведущее устройство может воздержаться от активного возбуждения линии SSBI_DATA, пока не будет определено, что период возможного возникновения конфликтной ситуации закончился. В примерном варианте ведущее устройство переводит линию SSBI_DATA в «третье состояние» и включает элемент, снижающий уровень сигнала до минимального, в контактной площадке. Для индикации о том, что снижение уровня сигнала до минимального можно заблокировать, может быть использована команда на сброс управляющего регистра. В альтернативном варианте для повторного включения активного управления шиной ведущим устройством с блокированием снижения уровня сигнала до минимального, если это потребуется, может быть использована команда доступа для записи.
Преобразование протокола SBI в протокол SSBI и обратно
Выше были описаны два протокола, SBI и SSBI, которые можно поддерживать, используя 3-проводный или 1-проводный интерфейсы (возможно потребуются некоторые функции преобразования). Многие устройства, находящиеся на сегодняшний день в эксплуатации, поддерживают протокол SBI по 3-проводному интерфейсу. Примерные варианты, различные примеры которых здесь описаны, могут включать в себя ведущее устройство 220 и одно или несколько подчиненных устройств 230, которые осуществляют связь по однопроводному интерфейсу, используя SSBI. Примерное ведущее устройство 220 для поддержки SSBI изображено на фиг.11, а соответствующее подчиненное устройство 230 показано на фиг.13. Возможно, что ведущему устройству 220 потребуется поддерживать как протокол SBI, так и протокол SSBI, либо по 1-проводному, либо по 3-проводному интерфейсу, или их комбинации. Пример такого ведущего устройства показан на фиг.12. Аналогичным образом, подчиненное устройство может быть сконфигурировано для приема любого протокола либо по 1-проводному, либо по 3-проводному интерфейсу. Пример такого подчиненного устройства представлен на фиг.14.
На фиг.11 показано примерное ведущее устройство 220, сконфигурированное для связи согласно протоколу SSBI по одному проводу. Микропроцессор или иное устройство осуществляет связь с ведущим блоком 1110 SSBI для выполнения доступов для считывания и записи (подробности не показаны). Ведущий блок 1110 SSBI может также принимать или создавать другие команды или сигналы, примеры которых подробно описаны ниже. Ведущее устройство 220 передает и принимает данные по линии SSBI_DATA, которая подсоединена к контактной площадке 1120. Примерная контактная площадка описана выше. Вход (PI) контактной площадки подается на вход SSBI_DATA_IN в ведущем блоке 1110 SSBI. Выходной сигнал для контактной площадки 1120 принимается с выхода SSBI_DATA_OUT ведущего блока 1110 SSBI. Включение (или возбуждение) контактной площадки происходит в ответ на сигнал SSBI_DATA_OE от ведущего блока 1110 SSBI. Также могут быть использованы другие функции, такие как функции элемента, поддерживающего уровень сигнала, и элемента, снижающего уровень сигнала до минимального (подробно не показаны). Ведущий блок 1110 SSBI осуществляет передачу и прием согласно протоколу SSBI.
На фиг.13 показано подчиненное устройство, сконфигурированное для связи согласно протоколу SSBI по одному проводу. С подчиненным устройством 1310 SSBI могут взаимодействовать различные блоки, регистры, функции и т.д. (подробности не показаны). Подчиненный блок 1310 SSBI может обеспечить данные из доступов для записи и исходные данные для доступов для считывания под управлением ведущего устройства, такого как устройство 220, показанное на фиг.11. Подчиненный блок 1310 SSBI также может принимать или создавать другие команды или сигналы, примеры которых подробно описаны ниже. Подчиненное устройство 230 передает и принимает данные по линии SSBI_DATA, которая подсоединена к контактной площадке 1320. Примерная контактная площадка описана выше. Сигнал (PI) контактной площадки подается на вход SSBI_DATA_IN в подчиненном блоке 1310 SSBI. Выходной сигнал для контактной площадки 1320 принимается с выхода SSBI_DATA_OUT подчиненного блока 1310 SSBI. Включение (или возбуждение) контактной площадки происходит в ответ на сигнал SSBI_DATA_OE от подчиненного блока 1310 SSBI. Также могут быть использованы другие функции, такие как функции элемента, поддерживающего уровень сигнала, и элемента, снижающего уровень сигнала до минимального (подробно не показаны). Подчиненный блок 1310 SSBI осуществляет передачу и прием согласно протоколу SSBI.
В процессоре для обработки немодулированных сигналов, таком как ведущее устройство 220, может быть сконфигурирован набор штырьков, обеспечивающих комбинацию однопроводного и 3-проводного интерфейса. Например, для обеспечения множества различных шинных комбинаций может быть выделено 12 штырьков, которые можно конфигурировать. Например, можно сконфигурировать 12 однопроводных интерфейсов или четыре 3-проводных интерфейса. Или один 3-проводный интерфейс можно использовать с 9 однопроводными интерфейсами. Или два 3-проводных интерфейса можно использовать с 6 однопроводными интерфейсами. Или три 3-проводных интерфейса можно использовать с 3 однопроводными интерфейсами. Также можно использовать ограниченный поднабор штырьков, конфигурируемых во множество типов шинных интерфейсов. Штырьки можно также конфигурировать иным образом для вариантов, не относящихся к протоколу SSBI или не относящихся к протоколу SBI. Специалистам в данной области техники очевидно, что в рамках объема настоящего изобретения можно использовать огромное количество комбинаций штырьков и конфигурируемых типов шин.
В результате переключения на однопроводные шины дополнительные шины можно использовать с меньшим количеством штырьков, а также можно уменьшить количество компонент, совместно использующих одну шину. Например, использование однопроводных двухточечных шин позволяет уменьшить взаимные помехи по сравнению с совместно используемой шиной, а планирование трафика становится проще и можно избежать проблем с запаздыванием, так как двухточечные соединения исключают планирование пропускной способности, необходимое для совместно используемой шины.
На фиг.12 показано примерное ведущее устройство 220, сконфигурированное для поддержки протокола SSBI или SBI. Здесь показаны три штырька, которые можно использовать для 3-проводного интерфейса или, в альтернативном варианте, для трех 1-проводных интерфейсов. Имеется три ведущих блока 1110А-С SSBI и ведущий блок 1220 SBI. Три контактные площадки 1250А-С принимают сигналы через мультиплексоры 1230А-С и 1240А-С соответственно. Мультиплексоры управляются через сигнальную линию SSBI_MODE, которая показывает, какой режим (SBI или SSBI) будет выбран.
Ведущий блок 1220 SBI известен специалистам в данной области техники и подробно здесь не описывается. Примерный вариант ведущего блока 1220 SBI может быть любого типа. Специалисты в данной области техники без труда адаптируют разработанные ранее устройства или схемы SBI или смогут предложить новые для выполнения требований системы SBI, описанных выше. Примерные ведущие блоки 1110 SSBI подробно описываются ниже. Примерный блок SSBI может выполнять протокол SSBI, описанный выше, а также может действовать согласно протоколу SBI, чтобы обеспечить совместимость с другими устройствами (как описано ниже).
Контактную площадку 1250А используют для обеспечения импульсов SBCK в режиме SBI и сигнала SSBI_DATA0 в режиме SSBI. Вход (PI) контактной площадки подается в виде сигнала SSBI_DATA_IN в ведущий блок 1110А SSBI. Выход контактной площадки проходит через мультиплексор 1230А и представляет собой сигнал SSBI_DATA_OUT от ведущего блока 1110А SSBI в режиме SSBI и импульсы SBCK из ведущего блока 1220 SBI в режиме SBI. Включение (OE) выхода поступает через мультиплексор 1240А и представляет собой сигнал SSBI_DATA_OE из ведущего блока 1110А SSBI в режиме SSBI, причем во время режима SBI устанавливается высокий уровень (поскольку SBCK не является сигналом с тремя состояниями, а всегда является выходом).
Контактная площадка 1250В используется для обеспечения сигнала SBST в режиме SBI и сигнала SSBI_DATA1 в режиме SSBI. Вход (PI) контактной площадки поступает в виде сигнала SSBI_DATA_IN в ведущий блок 1110В SSBI. Выход контактной площадки проходит через мультиплексор 1230В и представляет собой сигнал SSBI_DATA_OUT от ведущего блока 1110В SSBI в режиме SSBI и сигнал SBST из ведущего блока 1220 SBI в режиме SBI. Включение (OE) выхода поступает через мультиплексор 1240В и представляет собой сигнал SSBI_DATA_OE из ведущего блока 1110В SSBI в режиме SSBI, причем во время режима SBI устанавливается высокий уровень (поскольку SBST не является сигналом с тремя состояниями, а всегда является выходом).
Контактная площадка 1250С используется для обеспечения сигнала SBDT в режиме SBI и сигнала SSBI_DATA2 в режиме SSBI. Вход (PI) контактной площадки поступает в виде сигнала SSBI_DATA_IN в ведущий блок 1110C SSBI и сигнала SBDT_IN в ведущий блок 1220 SBI. Выход контактной площадки проходит через мультиплексор 1230С и представляет собой сигнал SSBI_DATA_OUT от ведущего блока 1110С SSBI в режиме SSBI и сигнал SBDT_OUT из ведущего блока 1220 SBI в режиме SBI. Включение (OE) выхода поступает через мультиплексор 1240С и представляет собой сигнал SSBI_DATA_OE из ведущего блока 1110С SSBI в режиме SSBI и сигнал SBDT_OE из ведущего блока 1220 SBI во время режима SBI.
Интерфейс к микропроцессору или другому устройству, выдающему запросы доступа, не показан. Ведущие блоки 1110 SSBI и SBI могут быть оборудованы каждый интерфейсом для выполнения доступов для считывания и записи через соответствующий интерфейс SSBI или SBI. В альтернативных вариантах множество устройств могут использовать один интерфейс с ведущим блоком SBI или SSBI, и, следовательно, для арбитража доступов между множеством устройств может быть использован арбитр (не показан).
В альтернативном варианте ведущий блок SSBI может быть использован для поддержки протоколов SBI и SSBI с 1-проводной или 3-проводной поддержкой по желанию. Хотя указанный вариант подробно не описан, специалисты данной области техники без труда смогут адаптировать описанные здесь варианты для выполнения указанной поддержки, если это потребуется.
Ведущее устройство 220, изображенное на фиг.12, является одним из примеров устройства, подходящего для перехода от 3-проводных способов к однопроводным. Ведущее устройство 220 способно осуществлять связь с существующими 3-проводными подчиненными устройствами с использованием протокола SBI. Также можно осуществлять связь по протоколу SSBI максимум с 3 различными однопроводными подчиненными устройствами, такими как подчиненное устройство 230, показанное на фиг.13. Если потребуется, ведущий блок 1110 SSBI можно модифицировать для поддержки всего или части протокола SBI по желанию для обеспечения совместимости с другими устройствами.
Один способ перехода от 3-проводного интерфейса SBI к однопроводному интерфейсу для подчиненного устройства 230 показан на фиг.14. В этом варианте подчиненный блок 1410 SBI (который может представлять собой новую разработку или быть любым уже разработанным устройством, совместимым с протоколом SBI) соединено с преобразователем 1420 подчиненного устройства SSBI. Доступы (для записи в или считывания из) подчиненного устройства 230 выполняются через интерфейс с подчиненным блоком 1410 SBI (не показан). Подчиненное устройство 230 SBI осуществляет связь с использованием 3 проводов и протокола SBI. 3 провода проходят через преобразователь 1420 подчиненного блока SSBI, который выполняет преобразование, необходимое для обеспечения однопроводной связи. В этом примере также поддерживается 3-проводная связь, так что это подчиненное устройство 230 может осуществлять связь либо с ведущим устройством SBI, либо с ведущим устройством SSBI. Примерные варианты преобразователя подчиненного блока SSBI подробно описаны ниже, а другие варианты очевидны специалистам в данной области техники в свете раскрытых здесь принципов. В альтернативных вариантах подчиненных устройств 230 подчиненный блок SSBI может быть спроектирован для поддержки обоих протоколов. Одним из преимуществ разработки преобразователя 1420, показанного на фиг.14, является то, что существующие подчиненные устройства 230 можно разработать с учетом 3-проводного интерфейса и ускорить время их продвижения на рынок с новым однопроводным интерфейсом, причем преобразователь можно просто вставить в устройство без необходимости переработки существующего ядра.
В подчиненном устройстве 230 по фиг.14 входной сигнал SBCK получают через контактную площадку 1430 и доставляют на вход SBCK_IN преобразователя 1420 подчиненного блока SSBI. Вход SBST получают через контактную пластину 1440 и доставляют на вход SBST_IN преобразователя 1420 подчиненного устройства SSBI. Эти входы используют для связи по протоколу SBI и их также можно использовать для включения режима SSBI в противном случае (как подробно описано ниже). Контактная площадка 1450 принимает и передает сигнал SBDT в режиме SBI или сигнал SSBI_DATA в режиме SSBI. Соединение входа контактной площадки (PI) к контактной площадке 1450 подсоединено к входу SSBI_DATA на преобразователе 1420 подчиненного блока SSBI и входу SBDT_IN подчиненного блока 1410 SBI. Соединения выхода контактной площадки (PO) и включения выхода (OE) к контактной площадке 1450 идут с выходов SBDT_PO_OUT и SBDT_OE_OUT преобразователя 1420 подчиненного блока SSBI соответственно. Преобразователь 1420 подчиненного блока SSBI также получает тактовый вход CLK по линии SSBI_CLK и сигнал сброса RESET. Эти сигналы могут создаваться внутри подчиненного устройства 230 или вне его.
Преобразователь 1420 подчиненного блока SSBI генерирует и принимает сигналы SBI для взаимодействия с подчиненным блоком 1410 SBI. Сигналы SBCK_OUT и SBST_OUT создаются и подводятся к входам SBCK и SBST подчиненного блока 1410 SBI соответственно. Сигналы SBDT_PO и SBDT_OE перехватываются и принимаются в преобразователе 1420 подчиненного блока SSBI в виде сигналов SBST_PO_IN и SBDT_OE_IN соответственно.
В этом примерном варианте преобразователь 1420 подчиненного блока SSBI также создает другие разнородные сигналы. Сигнал SSBI_MODE при подтверждении указывает, что подчиненное устройство 230 работает в режиме SSBI. В противном случае, подчиненное устройство работает в режиме SBI. Этот сигнал используют для преобразования, как подробно описано ниже, и он доставляется в качестве выходного сигнала для использования внешними блоками как опции. Также создаются сигналы для управления блокированием тактовых импульсов, которые можно использовать для блокирования или разблокирования одного или нескольких тактовых импульсов для экономии энергии или других целей. Устанавливается сигнал TCXO_DIS для блокирования тактовых импульсов. Устанавливается сигнал RESET_TCXO_DIS для повторного разблокирования тактовых импульсов. Примерные варианты, иллюстрирующие использование каждого из сигналов, показанных на фиг.14, подробно описаны ниже. Блок 1420 преобразователя подчиненного блока SSBI может определить, находится ли подчиненное устройство в 1-проводном или 3-проводном режиме, чтобы осуществить мультиплексирование между этими режимами. Определение режима может выполняться путем проверки в линиях SBCK и SBST, идущих от контактных площадок (то есть, контактных площадок 1430 и 1440). В 3-проводном режиме никогда не выполняется условие, при котором SBST=1 и SBCK=0, поэтому это условие можно использовать для установки сигнала SSBI_MODE, который управляет мультиплексированием SBI/SSBI. Как упоминалось выше, в этом примере сигнал SSBI_MODE также является выходом из преобразователя 1420 подчиненного блока SSBI в случае, когда это необходимо для других целей. Примерные варианты, иллюстрирующие эти функциональные возможности, подробно описаны ниже.
Подчиненное устройство 230, показанное на фиг.14, можно использовать для 1-проводной или 3-проводной связи, как было описано выше. В примерном варианте это подчиненное устройство 230 можно сконфигурировать для поддержки только однопроводной связи SSBI. На фиг.13 показано подчиненное устройство, состоящее из подчиненного блока 1310 SSBI, которое используется исключительно для связи SSBI. На фиг.15 показана конфигурация, в которой подчиненное устройство 230, содержащее подчиненный блок 1220 SBI и преобразователь 1420 подчиненного блока SSBI, как показано на фиг.14, можно также использовать только для режима SSBI. В этом примере вход SBCK может быть связан с землей. Линия SBST может быть связана с высоким уровнем напряжения. Это будет указывать преобразователю 1420 подчиненного блока SSBI на необходимость оставаться в режиме SSBI. Заметим, что при этом не требуется штырек режима или другое устройство для выбора. Затем линия SSBI_DATA может быть непосредственно подсоединена к объединенной контактной площадке SBDT/SSBI_DATA и тогда может быть реализована связь SSBI.
На фиг.16 показан другой вариант, выполняющий по существу то же, что показано на фиг.15. Однако в этом примере штырьки для SBCK_IN и SBST_IN могут быть исключены (то есть, удалены или использованы для других целей контактные площадки 1430 и 1440). Внутри подчиненного устройства 230 вход SBCK в преобразователь 1420 подчиненного блока SSBI присоединяется к низкому уровню, а SBST к высокому уровню. Таким образом, может быть создано комбинированное 1-проводное/3-проводное подчиненное устройство, и при таких простых изменениях дополнительные штырьки для режима SBI становятся ненужными. Остальные соединения идентичны соединениям, описанным в связи с фиг.14.
Для выполнения преобразования 1-проводного варианта в 3-проводной можно использовать множество различных способов. Блок 1420 преобразователя подчиненного блока SSBI анализирует поток данных SBDT и создает из него сигналы SBCK и SBST. Различные примерные варианты, подробно описанные ниже, иллюстрируют способы выполнения такого преобразования. Среди прочего при таком преобразовании могут возникнуть три проблемы. Во-первых, скорости передачи данных в 1-проводной схеме должны соответствовать 3-проводной схеме. Во-вторых, может поддерживаться переменное количество считываний и записей в регистр в одной пересылке. В-третьих, возможно понадобится, чтобы блоки SBI подчиненных устройств эффективно сбрасывались в исходное состояние во время пересылки с множеством доступов.
Что касается первой проблемы, то, если 1-проводная и 3-проводная схемы используют одну и ту же скорость передачи данных, эта проблема разрешается очевидным образом. В противном случае можно использовать буферы для адаптации к разнице в скоростях между двумя схемами. Специалисты в данной области техники знают, как выполнить правильную буферизацию в различных вариантах, в связи с чем такая буферизация здесь подробно не описывается. В примерных вариантах, описанных ниже, общая скорость передачи делится между интерфейсами SBI и SSBI, хотя можно представить и другие альтернативные варианты.
Что касается второй проблемы, то протоколы 3-проводного интерфейса SBI используют сигнал SBST для обозначения начала и конца пересылки, поэтому данная пересылка может содержать одно или множество считываний из и записей в регистр. При использовании 1-проводной шины необходимо проинформировать подчиненное устройство о том, когда завершается последний доступ к регистру для пересылки с множеством доступов. В одном варианте к каждой пересылке можно добавить заголовок, задающий количество ожидаемых доступов к регистру. Это может привести к непроизводительному расходу ресурсов. В альтернативном варианте можно послать символ завершения после того, как выполнен последний доступ к регистру. Это также увеличивает непроизводительные расходы ресурсов, но они могут оказаться меньше, чем в случае использования заголовка. В вариантах, подробно описанных ниже, для решения второй проблемы используется символ завершения. Когда приемник замечает символ завершения, он получает информацию об окончании пересылки и может перейти в состояние незанятости, ожидая следующий начальный бит. Указанный символ завершения будет как опция вставляться при использовании этого режима работы, в частности, при взаимодействии с подчиненным устройством, которому необходимо поддерживать как 3-проводный, так и 1-проводный протоколы. В альтернативных конфигурациях символ завершения использовать не требуется.
Необходимо, чтобы символ завершения отличался от потока обычных данных. В этом примерном варианте символ завершения определяется в виде последовательности значений высокого и низкого уровней, которые чередуются с каждым тактовым циклом в течение 4 циклов. В примерных вариантах, которые здесь подробно описаны, эта последовательность выглядит как 1 0 1 0, но для специалистов в данной области техники очевидны альтернативные последовательности. Поскольку этот сигнал чередуется с каждым тактовым циклом в последовательности завершения, вместо любых двух тактовых циклов при обычной связи, он уникально отличается от всего, что есть в потоке данных. Поэтому, последовательность завершения (T) может быть послана в любое время. Ниже со ссылками на фиг.34, которая иллюстрирует форму сигнала в линии данных, включая символ завершения, подробно описывается примерная схема приемника для обнаружения символа завершения.
Что касается третьей проблемы, то блок SSBI подчиненного устройства ожидает символ завершения, чтобы определить, что пересылка выполнена. Таким образом, ведущее и подчиненное устройство имеют возможность выходить из синхронизма, когда ведущее устройство переходит в режим незанятости, а подчиненное устройство находится в середине пересылки. В указанной ситуации подчиненное устройство остается в этом состоянии неопределенное время до конца следующей пересылки, которую инициирует ведущее устройство. Таким образом, для того, чтобы заставить подчиненное устройство быстрее перейти в состояние незанятости, предусмотрена опция для произвольной передачи символов завершения. Этот способ показан в вариантах, подробно описанных ниже.
Ведущий блок SSBI
В любом варианте, включающем в себя ведущее устройство SSBI, может быть использован один или несколько ведущих блоков 1110 SSBI. Ведущие блоки 1110 SSBI могут быть идентичны, либо один или некоторые из них могут быть модифицированы некоторым образом по заказу пользователя. В данном разделе описывается примерный ведущий блок 1110 SSBI. Порты для этого примера подробно описаны в таблице 2. Временные диаграммы для процедур записи и считывания подробно показаны на фиг.17 и 18 соответственно. Взаимосвязь между тактовыми импульсами в ведущем и подчиненном устройстве показана на фиг.19. На фигурах 20-22 подробно представлены части примерных логических схем, подходящих для использования в примерном ведущем блоке 1110 SSBI. Специалистам в данной области техники должно быть ясно, что эти примерные варианты служат только в качестве иллюстраций, и в свете изложенных здесь основных принципов очевидно, что можно предложить различные альтернативы.
Примерный ведущий блок SSBI может иметь следующие свойства. Он может работать с контактной площадкой (то есть, 1120) для SSBI_DATA, имеющей элемент, поддерживающий уровень сигнала, который обеспечивает постоянство сигнала, и элемент, снижающий уровень сигнала до минимального, который может быть включен (подробности не показаны). Специалистам в данной области техники должны быть очевидны возможные модификации для альтернативных конфигураций контактной площадки. Для того, чтобы дать возможность программному обеспечению определить, завершилась или нет текущая транзакция SSBI, может быть предусмотрен бит состояния. Для считываний транзакция может не считаться завешенной, пока логические схемы или программное приложение для запроса не выполнит считывание возвращенных данных. Может быть обеспечен такой режим, при котором команда SSBI может быть задержана, пока не будет установлен аппаратный сигнал включения, или, в противном случае, команда вступает в силу немедленно, если сигнал включения уже установлен. Это может быть полезно, когда считывание или запись должны выполняться в известный момент времени. Например, измерения подчиненного устройства могут выполняться тогда, когда подчиненное устройство находится в согласованном состоянии. Может быть предусмотрен выходной сигнал, указывающий, когда появилась запись. Таким образом, логические схемы или приложение для запроса может использовать информацию о завершенной записи для выполнения последующих действий. Это может оказаться полезным при конфигурировании подчиненных устройств, таких как интегральные схемы RFIC, которые, например, могут нуждаться в калибровке.
Ведущий блок 1110 SSBI отвечает за преобразования запроса на считывание или запись в сигналы, передаваемые по 1-проводной шине SSBI. Этот блок также отвечает за преобразование из последовательной формы в параллельную регистровых данных считывания из шины SSBI. Возможный в качестве опции блок арбитра SSBI (не показан) может быть использован для арбитража запросов, поступающих из множества управляющих частей (вызываемые хосты). Арбитр может получать запросы от хостов, используя одинаковую систему сигналов, ожидаемую ведущим блоком 1110 SSBI. Арбитр может выполнять арбитраж, позволяя пройти запросу «выигравшего блока» и задерживая запросы от других хостов. В зависимости от типа хоста могут быть использованы разные логические схемы. Ведущий блок 1110 SSBI можно использовать для обеспечения интерфейса, с помощью которого хост, то есть микропроцессор, может программировать доступы с SSBI программными средствами. Можно использовать систему, например, с тремя хостами, применяя стандартный блок арбитра и один или несколько ведущих блоков SSBI, в то время как система, где требуется только один хост, может быть использована без арбитра, а хост может непосредственно взаимодействовать с шинным интерфейсом ведущего блока SSBI.
В качестве примера, демонстрирующего гибкость возможного использования различных вариантов, задается аппаратный параметр SSBI_DATA_WD для параметризации различных блоков SSBI. Формы сигналов на временных диаграммах считывания/записи на фиг.17-19, 24-25, 28, 33-34 и родственных фигурах соответствуют случаю, когда SSBI_DATA_WD=8.
На фиг.17-22 показан один примерный вариант ведущего блока 1110 SSBI. Этот вариант подходит для использования, когда требуется поддерживать только собственные форматы SSBI. Можно предложить различные модификации для разнообразных альтернативных вариантов. Модификации для данного варианта детализированы для поддержки пересылок в режиме FTM (пример существующего формата SBI) по шине SSBI и в альтернативном варианте подробно описаны ниже со ссылками на фиг.28-31.
Как было описано выше, с ведущим блоком 1110 SSBI может взаимодействовать один или несколько хостов различных типов, причем для связи с ними можно использовать один или несколько арбитров и других интерфейсных логических схем. В одном примерном варианте один или несколько хостов могут представлять собой микропроцессор, цифровой процессор сигналов (DSP), другой процессор общего назначения или специализированный процессор, либо любые другие логические схемы, используемые для указанного интерфейса. Сигналы и/или команды ввода и вывода заданы в иллюстративных целях ниже в таблице 2. Эти сигналы и команды ввода и вывода подробно описаны ниже вместе с примерными вариантами их создания или реагирования на них. Специалисты в данной области техники смогут предложить различные альтернативные проекты интерфейсов, которые можно использовать. Учитывая, что различные хосты, такие как микропроцессоры, могут иметь меняющиеся интерфейсы для выполнения таких доступов, как записи, считывания и для возврата результатов и сигналов о состоянии, специалисты в данной области техники могут без труда модифицировать показанный интерфейс или определить подходящие логические схемы для взаимодействия с одним или несколькими хостами различных типов. В последующем обсуждении для ясности эти подробности опущены. Как пример общего характера, хост может взаимодействовать с ведущим блоком SSBI, используя любую комбинацию сигналов считывания, записи, данных, адресов и других сигналов для создания команд и настройки параметров. Запись в или считывание из заранее заданных регистров или битовых позиций в них можно использовать для настройки параметров или выдачи команд способом, хорошо известным в данной области техники.
Ведущее устройство 1110 SSBI взаимодействует с шиной SSBI. Оно принимает сигналы, описывающие команду SSBI, требующую выполнения, а затем создает или контролирует последовательный поток данных SSBI. Этот примерный ведущий блок SSBI амбивалентен по отношению к тому, сколько объектов (то есть, хостов) могут инициировать команды SSBI и с какого рода внешним арбитражем или мультиплексированием будет иметь дело этот блок. В этом примере ведущий блок SSBI находится в состоянии незанятости, пока он принимает запрос на доступ или другую команду. Затем он устанавливает сигнал в линии подтверждения, выполняет транзакцию и после завершения доступа создает импульс в линии подтверждения выполнения (DONE), указывая на то, что он готов приступить к следующему доступу. Как для считываний, так и для записей сигнал подтверждения будет представлять собой импульс, появляющийся тогда, когда выборка по транзакции закончилась и когда транзакция начинается. Какая бы логическая схема (то есть, хост) ни сделала запрос, она может затем изменить регистровую информацию (адрес, данные и т.д.) для подготовки следующего запроса и может снова установить сигнал в линии запроса, если это необходимо. Когда первый доступ завершен, устанавливается сигнал подтверждения выполнения. Хотя для команды записи возможно не потребуется контроль сигнала подтверждения выполнения, если эта информация не представляет интерес для некоторой части запрашивающего приложения, сигнал подтверждения выполнения полезен для выполнения выборки возвращенных данных для считываний.
Таблица 2 |
Описания портов ведущего блока SSBI |
Порт |
Направ-ление |
Описание |
SSBI_CLK |
Вход |
Тактовые импульсы |
RESET |
Вход |
Синхронизированная версия сигнала сброса |
SSBI_DATA_DEL[1:0] |
Вход |
Задает величину задержки SSBI_DATA_IN в единицах, равных 1/2 тактового периода |
IDLE_SYMS[1:0] |
Вход |
Задает минимальное количество символов незанятости между пересылками в обоих направлениях |
SEL_RD_DATA [1:0] |
Вход |
Задает, какое значение RD_DATA выбрать |
REQ |
Вход |
Устанавливается запрос для информирования интерфейса о необходимости выполнения считывания или записи; остается на высоком уровне, пока установлен сигнал ACK |
READ |
Вход |
Управляющий сигнал, указывающий, что запрос должен выполнять считывание |
ADDR[7:0] |
Вход |
Адрес регистра подчиненного блока для пересылки |
WR_DATA [SSBI_DATA_WD-1/0] |
Вход |
Данные записи для регистра подчиненного блока |
OVR_VALUE |
Вход |
Значение, которое должно быть установлено на линии SSBI_DATA в режиме замещения |
OVR_MODE |
Вход |
Управляющий сигнал для включения режима замещения |
SSBI_DATA_PDEN |
Вход |
Включение элемента, снижающего уровень сигнала до минимального, для контактной площадки SSBI_DATA; устанавливается на сброс; снимается последующей командой для продолжения нормальной работы SSBI |
SSBI_DATA_IN |
Вход |
Вход SSBI_DATA |
SSBI_DATA_OUT |
Выход |
Выход SSBI_DATA |
SSBI_DATA_OE |
Выход |
Включение выхода для контактной площадки SSBI_DATA |
RD_DATA [SSBI_DATA_WD-1:0] |
Выход |
Данные считывания, возвращенные регистрам подчиненного блока |
ACK |
Выход |
Импульсы, когда получена транзакция SSBI и когда транзакция запускается |
DONE |
Выход |
Импульсы, когда завершена транзакция SSBI; могут быть использованы для выборки RD_DATA для считываний |
STATE_INV |
Выход |
Инверсия сигнала STATE |
READ_REQ_SERVED |
Выход |
Установлен на время обслуживания запроса на считывание |
Временные диаграммы отдельно для записей и считываний показаны на фиг.17 и фиг.18 соответственно. Рассуждения, относящиеся к этим фигурам, можно применить к примерному варианту, подробно описанному ниже в связи с фиг.20-22. Для обоих типов доступа вместо отдельных линий SSBI_DATA_IN и SSBI_DATA_OUT показана совмещенная шина SSBI_DATA. В примерной конфигурации схем контактной площадки то, что появляется в линии SSBI_DATA_OUT, будет появляться в линии SSBI_DATA_IN. Для записей сигнал SSBI_DATA_IN игнорируется. Для считываний сигнал SSBI_DATA_OUT возбуждается на контактной площадке SSBI_DATA только тогда, когда установлен сигнал SSBI_DATA_OE. В форме сигнала для SSBI_DATA используется обозначение RW для обозначения бита считывания/записи (в этом примере 1 – считывание, 0 – запись), А7 – А0 для адресных бит, D7 – D0 для бит данных (SSBI_DATA_WD=8) и P для бита паузы. Заметим, что альтернативные варианты могут включать в себя меньше или больше адресных пространств, а также иметь разную ширину данных (то есть, параметр SSBI_DATA_WD, не равный 8).
Ведущий блок SSBI сбрасывается в состояние незанятости (показано на линии STATE) и остается в нем, пока не будет обнаружена установка сигнала REQ. Затем ведущий блок SSBI отбирает другие входные сигналы, устанавливает сигнал ACK (подтверждение) и создает поток последовательных данных, которые выводятся по линии SSBI_DATA. В конце доступа появляется импульс DONE, чтобы указать на завершение преобразования. Как только установлен сигнал ACK, начиная со следующего тактового цикла, может быть установлен сигнал REQ для следующего доступа. Этот доступ будет отложен, пока не завершится текущий доступ. В этом примере сигналы REQ, ADDR, WR_DATA (для записи) и READ будут отражать параметры для следующего доступа, пока не будет установлен ACK для этого доступа (после чего эти параметры могут измениться для следующего доступа). На фиг.17 и 18 второй доступ (REQ и ACK) показан пунктиром. Если второй запрос сделан до завершения первого запроса, то ведущий блок SSBI может начать следующую пересылку, не затрагивая символы незанятости. Подчиненному устройству для обнаружения начального символа нет необходимости зафиксировать переход сигнала с низкого уровня на высокий. Ему достаточно отобрать начальный символ без предшествующего символа незанятости, в связи с чем в ведущем блоке SSBI может быть предусмотрена поддержка этой опции. Однако в этом варианте задается программируемый параметр IDLE_SYMS для вставки от 1 до 3 символов незанятости между пересылками, если это потребуется.
На фиг.17, когда установлен сигнал REQ, в сдвиговый регистр (то есть, сдвиговые регистры 2130 и 2140 и триггер 2110) производится выборка из линий ADDR, WR_DATA и READ вместе с начальным битом. В линии STATE устанавливается SAMPLE(1), и начинаются переключения в линии STB. Сигнал STB действует как сигнал включения счетчика, который инициирует подсчет BITCNT передаваемых символов. Все 18 бит пересылки (начальный бит + READ + ADDR + DATA) сдвигаются сдвиговым регистром с каждым очередным тактовым циклом. В течение второй половины последнего символа (D0) появляется импульс DONE. В это время в виде импульса также может появиться еще один сигнал DONE_DELX (на фиг.17 не показан), описанный ниже, или этот импульс может появиться после количества символьных периодов, заданного параметром IDLE_SYMS. Если нет запроса, ожидающего выполнения, то DONE_DELX переходит из состояния STATE в состояние Idle (0), а ведущий блок SSBI ждет следующей установки сигнала REQ. Если имеется запрос, ожидающий выполнения, то сигнал REQ наблюдается в том же цикле, где установлен сигнал DONE_DELX, что приводит к установке сигнала ACK в следующем цикле и поддержке STATE в виде SAMPLE (1). Указанная пересылка продолжается таким же образом, как было описано для первой пересылки.
На фиг.18 показана операция считывания. Блок выполняет те же шаги, как при записи за исключением того, что сигнал SSBI_DATA_OE снимается, как только будет передан адрес А0. Затем подсоединенное подчиненное устройство управляет шиной для возвращения данных регистра подчиненного устройства. Как только подчиненное устройство возвратило указанные данные, наступает еще один бит паузы, после которого ведущее устройство может снова возбуждать шину. Биты считывания поступают в сдвиговый регистр (то есть, сдвиговые регистры 2130 и 2140), который повторно фиксируется в цикле, предшествующем установке сигнала DONE. В данном примере это выполняется таким образом, чтобы предотвратить ненужное переключение RD_DATA, поскольку сигнал RD_DATA может поступать на большое количество схем мультиплексирования или других логических схем. Логические схемы, принимающие сигнал RD_DATA, могут осуществлять выборку данных, используя DONE в качестве сигнала включения. Последующие запросы могут обрабатываться таким же образом, как записи, описанные выше.
Рассмотрим момент, в который ведущий блок SSBI должен произвести выборку шины SSBI_DATA для получения бит считывания. В идеальном случае шина SSBI_DATA для ведущего устройства должна выглядеть так, как показано на фиг.18. Могут иметь место различные факторы при работе, препятствующие реализации этой идеальной ситуации: например, неопределенность выборки в приемнике из-за ошибочного определения фазы, а также различные задержки, включая задержки контактной площадки, платы и внутренних микросхем.
На фиг.19 показано это явление. Верхний ряд сигналов показывает импульсы SSBI_CLK в ведущем блоке SSBI. Вторая пара сигналов показывает, как выглядит сигнал SSBI_DATA в ведущем и подчиненном устройствах в предположении, что задержки отсутствуют. Третий набор сигналов показывает, что случается, когда имеет место задержка, равная 1/2 цикла SSBI_CLK в каждом направлении. Последствием этой задержки является то, что данные считывания могут появиться в линии SSBI_DATA ведущего устройства на один полный тактовый период позднее, чем в случае отсутствия задержек. Вдобавок, примерное подчиненное устройство будет отбирать символы в диапазоне где-то от 25 до 75% своего тактового периода. В результате имеет место неточность, связанная с несвоевременной выборкой данных на стороне ведущего устройства.
В примерном варианте для борьбы с этими эффектами в ведущий блок SSBI вводится определенная гибкость. Имеются две программные возможности, которые позволяют получить надежную систему, способную обрабатывать задержки величиной до 3 тактовых периодов.
Первая возможность заключается в задержке SSBI_DATA_IN. Как обсуждалось выше, неопределенность выборки в подчиненном устройстве нельзя скорректировать в ведущем устройстве, если есть уверенность, что фаза определена с ошибкой. Однако при применении данной системы задержки для данного порта SSBI будут относительно фиксированными. В результате, если имеется очень маленькая задержка, точка выборки может быть перенесена на более ранний момент. При относительно больших задержках точка выборки может быть отодвинута на более ранний момент. Чтобы это можно было легко выполнить, в примерном ведущем блоке SSBI предусматривается возможность для гибкой задержки входящего сигнала SSBI_IN на 0, 0,5, 1 или 1,5 символьных периодов. Затем для любого случая будет выбираться задержанная версия SSBI_IN в конце символьных периодов. При любом заданном применении можно использовать другие задержки (включая меньшие или большие – на выбор) (то есть, только 0,5 и 1,5 цикла).
Вторая возможность позволяет управлять циклом BITCNT, в котором собираются данные RD_DATA, возвращенные подчиненным устройством. На фиг.18 показано, что сигнал RD_DATA доступен в цикле 19. Однако сбор данных также может выполняться в цикле более позднем, чем цикл 19. Момент, когда ведущий блок SSBI вновь примет управление линией SSBI, также можно регулировать, с тем чтобы дать время на подготовку RD_DATA. Управление этой функцией осуществляется на основе параметра SEL_RD_DATA. Например, когда SEL_RD_DATA=0, используются показанные жирным шрифтом числа на фиг.20 и 22, которые подробно описываются ниже. Когда SEL_RD_DATA=01, эти числа увеличиваются на 1.
Эти настройки можно выбрать, используя множество различных способов. Один способ связан с разработчиком, который должен тщательно просмотреть временные диаграммы и оценить различные задержки. В альтернативном варианте адекватный результат может дать подход на основе метода проб и ошибок. Например, процедура может просто считывать регистр подчиненного устройства, ожидая конкретное значение, а затем отрегулировать настройку, если возвращенное значение оказалось ошибочным.
На фиг.20-22 показаны примерные схемы, подходящие для применения в примерном ведущем блоке 1110 SSBI. Специалистам в данной области техники в свете изложенных здесь принципов очевидны различные модификации и альтернативные варианты. В верхней части фиг.20 показаны логические схемы для задержки сигнала SSBI_IN на основе сигнала SSBI_DATA_DEL. Сигнал SSBI_DATA_IN_DEL создается следующим образом. Сигнал SSBI_DATA подается в триггеры 2010 и 2030. Заметим, что все тактируемые устройства на фиг.20-22 синхронизируются по сигналу SSBI_CLK или его инверсии (показана в стандартном обозначении с кружком перед тактовым ходом). Заметим, что триггер 2010 синхронизируется инверсией сигнала SSBI_CLK, а триггер 2030 синхронизируется сигналом SSBI_CLK непосредственно. Выходной сигнал триггера 2010 направляется на вход триггера 2020. Сигнал SSBI_DATA_IN подается на один вход мультиплексора 2040, также как выходы триггеров 2010-2030. Сигнал SSBI_DATA_DEL используется для выбора одного входа мультиплексора 2040 в качестве выхода, или SSBI_DATA_IN_DEL.
Ниже на фиг.20 показана логическая схема для создания сигнала DONE_DELX на основе сигнала IDLE_SYMS. В этом примере сигнал DONE_DELX формируется в логической схеме 2050 в виде схемы И с входом STB и другим входом, являющимся выходом схемы ИЛИ с входами (NOT SREAD AND BITCNT =17 + IDLE_SYMS) и (SREAD и BITCNT =19 + IDLE_SYMS). Напомним, что числа жирным шрифтом соответствуют варианту SEL_RD_DATA = 0, и эти числа могут быть заменены другими значениями, как было описано выше.
На фиг.21 показана вся цепь сдвигового регистра, описанная выше в связи с фиг.17 и 18. Начиная с младшего значащего бита (LSB), эта цепь состоит из сдвигового регистра 2140 c числом бит, заданным параметром SSBI_DATA_WD, 9-битового сдвигового регистра 2130 и однобитового регистра (или триггера) 2110, который возбуждает сигнал SSBI_DATA_OUT. В этом примере однобитовый регистр 2110 предварительно загружен начальным символом. Сигнал REQP используется для фиксации информации о запросе в цепи сдвигового регистра. 9-битовый сдвиговый регистр 2130 предварительно загружен битом считывания/записи и адресными битами (знак & указывает операцию конкатенации). Сдвиговый регистр 2140 с SSBI_DATA_WD бит предварительно загружается данными записи для операций записи или всеми нулями для операций считывания. Эти нули обеспечивают, чтобы в конце операции считывания в однобитовом регистре 2110, выдающем сигнал SSBI_DATA_OUT, который в этом примере используется для состояния незанятости, было достигнуто значение 0. Сигнал STB используют для включения цепи сдвиговых регистров для выполнения сдвига. Во время пересылки сигнал STB будет устанавливаться на каждом очередном тактовом цикле (подробно описано ниже).
Сдвиговый вход в сдвиговый регистр 2140 определяется как выход мультиплексора 2150, который принимает значение 0, когда установлен сигнал SSBI_DATA_OE, и значение SSBI_DATA_IN_DEL, в противном случае. Можно сделать доступным параллельный выход сдвигового регистра 2140 в виде RD_DATA_PRE. Сдвиговый выход сдвигового регистра 2140 соединен со сдвиговым входом сдвигового регистра 2130. Сдвиговый выход сдвигового регистра 2140 в этом примере поступает на другую логическую схему для иллюстрации другого признака, являющегося дополнительной опцией. Определен режим замещения, позволяющий значению, указанному параметром OVR_VALUE, заместить логическую функцию ИЛИ 2120 сдвигового выхода сдвигового регистра 2130 с помощью сигнала REQP (используемого при нормальной работе SSBI), когда установлен сигнал OVR_MODE, который в этом примере выбирается в мультиплексоре 2160. Выход мультиплексора 2160 подается на вход триггера 2110 (показан в виде триггера, сбрасываемого сигналом RESET). Выход триггера 2110 создает сигнал SSBI_DATA_OUT.
На фиг.22 показаны дополнительные логические схемы управления для ведущего блока 1110 SSBI. Как только сигнал STATE становится равным 1 (выход RS триггера 2220 установки/сброса), включается счетчик 2228 для создания BITCNT. При выполнении записей цепь сдвиговых регистров (2110, 2130 и 2140) включается на каждом очередном тактовом цикле, пока не кончатся все данные, в то время как в указанную цепь будут вдвинуты нули. При выполнении считываний выдвигаются начальный символ и адресные биты, когда вдвигаются нули. Однако, когда наступает время выборки входящих данных считывания, сдвиговый регистр 2140, используемый для записи данных, с числом бит, заданным параметром SSBI_DATA_WD, выбирает сигнал SSBI_DATA_IN_DEL. Как только все биты данных считывания будут вдвинуты, они становятся доступными по линии RD_DATA_PRE и повторно фиксируются в регистре 2208 для создания RD_DATA в цикле перед установкой сигнала DONE. Сигнал включения формируется в виде логической функции И с входами SREAD, NOT STB и BITCNT=19.
В качестве выходного сигнала триггера SR 2220 создается сигнал STATE. Формируется вход установки для RS триггера 2220 в виде выхода логической схемы И 2216 с входами REQP и NOT RESET. Вход сброса в RS триггер 2220 формируется как выход логической схемы ИЛИ 2218 с входами DONE_DELX и RESET.
Сигнал STB (обозначенный также как CNT_EN) формируется как выход сбрасываемого триггера 2224. Вход в этот триггер является выходом схемы инверсии 2226, в результате чего создается сигнал STB, изменяющийся в каждом тактовом импульсе, когда триггер не сброшен. Вход сброса формируется как выход логической схемы ИЛИ 2222 с входами REQP и NOT STATE.
Сигнал BITCNT (в этом примере это 5-битовый сигнал; в альтернативных вариантах могут быть обеспечены другие параметры, требующие альтернативных значений на фиг. с 20 по 22) формируется как выход счетчика 2228. Сброс счетчика 2228 идентичен сбросу триггера 2224. Сигналом включения счетчика 2228 является сигнал CNT_EN (или STB), который разрешает вести счет во время передачи или приема, как было описано выше.
Сигнал SREAD формируется как выход триггера 2210, который сбрасывается сигналом RESET. Триггер 2210 включается сигналом REQP. Входом D в триггер 2210 является сигнал READ.
В этом примере сигнал READ_REQ_SERVED создается для использования другой логической схемой И 2230 с входами SREAD и STATE.
Сигнал REQP формируется как выход логической схемы И 2204 с входом REQ и вторым входом, поступающим из логической схемы ИЛИ 2202 с входами NOT STATE (STATE_INV) и DONE_DELX. Выход REQP задерживается на один тактовый импульс в триггере 2206 для создания сигнала ACK.
В этом примере после сброса сигналы STATE и SSBI_DATA_OUT устанавливаются в исходное состояние синхронно. Сигнал SSBI_DATA_PDEN устанавливается асинхронно, вызывая переход сигнала SSBI_DATA_OE на низкий уровень. В этом примере, когда программное приложение инициирует некоторые действия интерфейса SSBI, оно выполняет запись в управляющий регистр или использует некоторый альтернативный способ обмена сигналами для сброса бита SSBI_DATA_PDEN. Это изменяет уровень сигнала SSBI_DATA_OE на ‘1’, и ведущий блок 1110 SSBI запускает возбуждение ‘0’ по линии SSBI_DATA (как подробно описано выше).
Таким образом, сигнал SSBI_DATA_OE формируется как выход логической схемы И 2214 с входом NOT SSBI_DATA_PDEN и вторым входом, являющимся выходом триггера 2212. Триггер 2212 сбрасывается сигналом RESET. Триггер 2212 включается сигналом STB. Вход D в триггер 2212 формируется логической схемой ИЛИ с входами BITCNT<9, BITCNT>=19 и NOT SREAD.
Снова напомним, что числа жирным шрифтом соответствуют случаю, когда SEL_RD_DATA=0, причем эти числа могут быть изменены, как было описано выше. Все регистры на фиг.22 синхронизированы с сигналами SSBI_CLK.
Подчиненный блок SSBI
На фиг.23 показан примерный вариант подчиненного блока 1310 SSBI. Описания портов шинного интерфейса примерного подчиненного блока SSBI подробно приведены в таблице 3. В этом примере шинный интерфейс 2310 подчиненного блока соединен с блоком 2320 регистров подчиненного блока. Однопроводная шина данных SSBI соединена с контактной площадкой (не показана), а входящие данные поступают в шинный интерфейс 2310 подчиненного блока SSBI по линии SSBI_DATA_IN.
Исходящие данные подаются по линии SSBI_DATA_OUT, причем направленность контактной площадки регулируется через линию SSBI_DATA_OE. Сигнал SSBI_DATA_CLK поступает в качестве тактовых импульсов в шинный интерфейс 2310 подчиненного блока SSBI. Блок 2320 регистров подчиненного блока может также принимать сигнал SSBI_CLK, но это не является обязательным (опционный механизм для определения того, генерируются ли импульсы SSBI_CLK, подробно описан ниже). Доступы к регистру подчиненного блока выполняются между шинным интерфейсом 2310 подчиненного блока SSBI и регистрами 2320 подчиненного блока посредством сигналов ADDR, WR_STB, WR_DATA и RD_DATA. Выходы регистров подчиненного блока поступают в подчиненное устройство 230 для их использования. Значения считывания от подчиненного устройства 230 поступают в регистры 2320 подчиненного блока для доступа через шину SSBI.
Шинный интерфейс 2310 подчиненного блока SSBI отвечает за выполнение последовательно-параллельного преобразования сигнала по однопроводной шине с последующим его преобразованием в запрос на считывание или запись. Этот запрос посылают в блок 2320 регистров подчиненного блока, который содержит регистры записи и отвечает за мультиплексирование регистров считывания. В одном варианте эта примерная конфигурация имеет преимущество, состоящее в том, что шинный интерфейс 2310 подчиненного блока можно спроектировать так, чтобы он был идентичен для разных схем подчиненных устройств, в то время как в блоке 2320 регистров подчиненного устройства используются логические схемы, которые являются специализированными для подчиненного устройства. Также могут использоваться различные альтернативные варианты.
Шинный интерфейс 2310 подчиненного блока SSBI проверяет наличие начального символа в линии SSBI_DATA, который обозначает начало пересылки. Затем он ищет первый символ, чтобы определить, является ли он символом считывания или записи, а затем сканирует его адресные биты. Как только все адресные биты будут отсканированы, они выводятся в виде сигнала ADDR в блок 2320 регистров подчиненного блока. Для записи биты данных сдвигаются, а затем подаются в виде сигнала WR_DATA в блок 2320 регистров подчиненного блока вместе со стробирующим сигналом WR_STB. Сигнал WR_STB используется блоком 2320 регистров подчиненного блока для выборки полей адреса (ADDR) и данных (WR_DATA). Для считывания после того, как сигнал ADDR прошел в блок 2320 регистров подчиненного блока, во время бита паузы данные регистра считывания SSBI (RD_DATA) отбираются шинным интерфейсом 2310 подчиненного блока SSBI, а затем побитно сдвигаются в шину SSBI. Как только одна операция заканчивается, шинный интерфейс 2310 подчиненного блока SSBI переходит в состояние ожидания следующего начального бита.
В этом примере не разрешается выполнение множества транзакций, завершенных символом завершения (например, BTM, описанным выше). Эта конфигурация обеспечивает упрощенное техническое решение (сокращение аппаратных средств, уменьшение случаев тестирования), причем она подходит для использования, когда есть небольшая выгода от разрешения множества пересылок, то есть объем служебных данных для отдельной пересылки относительно мал. В альтернативных вариантах возможно множество транзакций, завершаемых символом завершения.
В альтернативных вариантах можно использовать другие версии шинного интерфейса 2310 подчиненного блока SSBI. Одним из отличий может быть количество выходных портов. Конфигурация может иметь один набор из ADDR, WR_STB, WE_DATA и RD_DATA или дополнительные наборы из этих сигналов. Благодаря введению дополнительных наборов может осуществляться независимый доступ к множеству блоков регистров считывания и/или записи. Еще одна опция состоит в наличии двунаправленной шины данных или отдельных шин для считывания и записи данных. Специалистам в данной области техники очевидны различные иные альтернативные варианты. Для ясности обсуждения примерные варианты, подробно описанные ниже, содержат единый набор сигналов ADDR, WR_STB, WE_DATA и RD_DATA с отдельными шинами для считывания и записи данных.
Таблица 3 |
Описания портов шинного интерфейса подчиненного блока SSBI |
Порт |
Направление |
Описание |
SSBI_CLK |
Вход |
Тактовые импульсы |
RESET |
Вход |
Синхронизированная версия сигнала сброса |
SSBI_DATA_IN |
Вход |
Вход SSBI_DATA_IN от контактной площадки микросхемы |
SSBI_DATA_OUT |
Выход |
Выход SSBI_DATA на контактную площадку микросхемы |
SSBI_DATA_OE |
Выход |
Включение выхода для контактной площадки SSBI_DATA |
ADDR[7:0] |
Вход |
Зафиксированный адрес SSBI |
WR_STB |
Выход |
Стробирующий импульс записи; может быть использован в качестве тактового импульса для регистров записи SSBI |
WR_DATA [SSBI_DATA_WD-1:0] |
Выход |
Зафиксированные данные записи в регистре SSBI |
RD_DATA [SSBI_DATA_WD-1:0] |
Вход |
Мультиплексированные данные считывания регистра SSBI; упрощенные до изменений ADDR |
TCXO_DIS |
Вход |
‘0’ при нормальной работе; ‘1’, когда SSBI_CLK выключен; может храниться в регистре подчиненного блока |
RESET_TCXO_DIS |
Выход |
Используется для сброса бита регистра TCXO_DIS |
Записи и считывания показаны отдельно на фиг.24 и 25 соответственно. Рассуждения, относящиеся к этим фигурам, можно распространить на примерный вариант, подробно описанный ниже в связи с фиг.26-27. Временная диаграмма записи/считывания описывается для случая, когда параметр SSBI_DATA_WD равен 8. Альтернативные варианты для SSBI_DATA_WD описаны со ссылками на фиг.26-27. Для обоих типов доступа вместо отдельных линий SSBI_DATA_IN и SSBI_DATA_OUT показана объединенная шина SSBI_DATA. В примерной конфигурации схем контактных площадок все, что появляется в линии SSBI_DATA_OUT, будет появляться в линии SSBI_DATA_IN. Для записей сигнал SSBI_DATA_IN будет проигнорирован. Для считываний сигнал SSBI_DATA_OUT возбуждается на контактной площадке SSBI_DATA только тогда, когда установлен сигнал SSBI_DATA_OE. Для формы сигнала SSBI_DATA используется сокращение RW для обозначения бита считывания/записи (1-считывание, 0-запись в этом примере), А7-А0 для адресных бит, D7-D0 для бит данных и P для бита паузы. Заметим, что альтернативные варианты могут включать в себя меньше или больше адресных пространств, а также различные значения ширины данных (то есть, параметр SSBI_DATA_WD не равен 8).
На фиг.24 при обнаружении начального бита сигнал FOUND_ST переходит на высокий уровень. Он создается логической схемой, которая, когда STATE равен Idle(0), просто выполняет выборку сигнала SSBI_DATA на каждом тактовом импульсе, пока не будет обнаружен высокий уровень сигнала. Сигнал FOUND_ST создается на половину тактового цикла позднее, чтобы учесть метастабильное разрешение. Сигнал FOUND_ST вызывает переход STATE в состояние Sample (1), что, в свою очередь, разрешает переключение сигнала STB. В свою очередь, сигнал STB вызывает уменьшение значения BITCNT. Сигнал STB используется в качестве сигнала включения для выборки символов в сдвиговый регистр (то есть, 2628). Сдвиговый регистр имеет несколько бит, показанных в виде INPUT_DATA_SIZE. Эта константа имеет значение, большее 8, или равное SSBI_DATA_WD. Бит CNT (то есть, 2646) отслеживает, сколько бит было выбрано. Как только все адресные биты зафиксированы (обозначено как BITCNT=8), содержимое сдвигового регистра фиксируется вновь (то есть, 2634) и выводится в линию ADDR. Эта повторная фиксация не является обязательной, а ее цель состоит в экономии энергии в блоке регистров подчиненного устройства, поскольку ADDR потенциально питает достаточно большое количество логических схем мультиплексирования. Аналогичным образом, как только все биты данных зафиксированы (обозначено как BITCNT=16), содержимое сдвигового регистра фиксируется вновь (то есть, 2636) и выводится в линию WR_DATA. Выдается импульс WR_STB, так как блок 2320 регистров подчиненного блока знает, что требуется выполнить запись. Устанавливается сигнал DONE, когда бит CNT=17, для сброса STATE в состояние Idle (0), так что процесс может повториться, если это необходимо.
На фиг.25 показана операция считывания. Блок выполняет те же шаги, что и для записей, выводя адрес на линию ADDR. Не показанные на предыдущей фигуре данные RD_DATA могут быть мультиплексированы на основе ADDR, так как как раз для записей сигнал RD_DATA может потенциально изменяться, когда изменяется ADDR, даже если это проигнорировано. В течение BITCNT=9 циклов производится выборка сигнала RD_DATA в сдвиговый регистр (то есть 2660) с побитным сдвигом в линию SSBI_DATA_OUT. Устанавливается сигнал SSBI_DATA_OE, чтобы указать, когда возбуждать данные на контактной площадке SSBI_DATA, причем этот сигнал остается на высоком уровне, пока все данные не будут сдвинуты в шину. Когда бит CNT=19, устанавливается сигнал DONE для сброса STATE в состояние незанятости (Idle), с тем чтобы процесс мог повториться, если это будет необходимо.
Заметим, что данные считывания выводятся на полный тактовый цикл раньше (1/2 символьного периода). Это снижает эффективность использования бита паузы между адресом и данными считывания. В этом случае имеет место один тактовый цикл без перекрытия. Преимущество этого подхода заключается в том, что, если данные считывания SSBI сдвигаются без сохранения выдвигаемых разрядов, когда замечены данные записи SSBI с точки зрения ведущего устройства, данные считывания появятся позже из-за задержки на подтверждения приема. Благодаря выводу данных считывания заранее они будут смещены на величину задержки на подтверждение приема, что приводит к их появлению ближе к тому моменту, когда ведущее устройство действительно ожидает их появления.
Из-за нечеткого определения фазы нет гарантии, что сигнал SSBI_CLK будет выровнен с SSBI_DATA, как показано на упомянутых фигурах. На этих фигурах SSBI_CLK показан для крайнего, возможно «наилучшего случая». «Наихудший случай» будет тогда, когда начальный бит находится на один полный тактовый цикл дальше, в результате чего все сигналы (кроме SSBI_DATA) сдвигаются вправо на один тактовый цикл. Это не порождает проблем. Вместо выборки 25% символов в символьном периоде, они будут выбираться на 75% в символьном периоде. Для считываний вместо возбуждения данных считывания SBI на 1/2 символьного периода ранее это будет происходить на 1/2 символьного периода позже. Этот один цикл изменчивости сокращается до половины цикла путем использования сигнала LATE. Он формируется схемой, аналогичной схеме для сигнала FOUND_ST (обе схемы подробно описаны) за исключением того, что он действует на противоположных концах тактового импульса. Когда сигнал LATE равен 0, сигналы SSBI_DATA_OUT и SSBI_DATA_OE задерживаются на половину тактового цикла перед их использованием. Когда LATE равен 1, они используются, как есть. Схемы, связанные с сигналом LATE, также имеются для преобразователя 1420 подчиненного блока SSBI, предусмотренного выше и подробно описанного ниже в связи с фиг.32-35.
В качестве опции может быть введена еще одна возможность, состоящая в том, что ведущее устройство 220 может заблокировать тактовые импульсы подчиненного блока, установив некоторый бит регистра подчиненного блока, обозначенный здесь как TCXO_DIS. Когда установлен этот бит, импульсы SSBI_CLK подчиненного блока выключаются. Для включения этих тактовых импульсов снова ведущее устройство передает подчиненному устройству последовательность 0 1 0. Она воспринимается подчиненным устройством, которое формирует сигнал RESET_TCXO_DIS. Этот сигнал сбрасывает TCXO_DIS, который, в свою очередь, снова включает SSBI_CLK для подчиненного устройства. Эта опция позволяет ведущему устройству перевести подчиненное устройство SBI в режим ожидания и, следовательно, обеспечивает экономию энергии (подробно описывается ниже).
На фиг.26 показаны примерные схемы, которые подходят для использования в примерном шинном интерфейсе 2310 подчиненного устройства SSBI. Можно использовать различные альтернативные варианты для показанных механизмов управления, применяя любую комбинацию логических схем, конечных автоматов, микрокодов, программных средств и т.п. В этом примере бит CNT обозначает различные требуемые состояния. Заметим, что управляющие сигналы зависят от параметра SSBI_DATA_WD и могут изменяться в соответствии с его изменением.
Параметр INPUT_DATA_SIZE вычисляется как максимальное значение (2614) из 8 и SSBI_DATA_WD. В примерном варианте оба параметра известны заранее и используются для создания специальной логической конфигурации для выбранного параметра SSBI_DATA_WD. Может быть использован альтернативный вариант для адаптации программируемых значений для SSBI_DATA_WD. Так, например, выбранные битовые варианты для входов в регистры 2632-36 могут включать в себя предшествующую или последующую логическую обработку для адаптации программных изменений. Еще одной опцией является наличие программируемого размера ADDR, с аналогичными изменениями для приспособления различных значений ADDR. Эти подробности не показаны. Специалисты в данной области техники без труда адаптируют эти и другие опции в свете принципов настоящего изобретения. Для ясности обсуждения далее предполагается, что для данного варианта использования параметры SSBI_DATA_WD и INPUT_DATA_SIZE являются фиксированными.
Заметим, что все тактируемые устройства на фиг.26 синхронизируются импульсами SSBI_CLK или их инверсиями (согласно стандартному обозначению показано кружком перед тактовым входом). Если не упомянуто иное, регистры, подробно описанные ниже, синхронизируются импульсами SSBI_CLK.
В данном примере местоположение начального бита определяется следующим образом. Сигнал SSBI_DATA_IN фиксируется триггером 2602 с использованием инвертированного сигнала SSBI_CLK и триггером 2610 с использованием импульса SSBI_CLK. Выход триггера 2602 фиксируется триггером 2604 с использованием импульса SSBI_CLK для создания сигнала FOUND_ST_N. Выход триггера 2610 фиксируется триггером 2612 с использованием инвертированного SSBI_CLK для создания сигнала FOUND_ST. Все четыре триггера сбрасываются логической схемой ИЛИ (2606, 2608) с входами STATE и RESET_EFF. Сигнал FOUND_ST_N фиксируется триггером 2618 для создания сигнала LATE, включаемого логической схемой И 2616 с входами FOUND_ST и NOT STATE. Сигнал FOUND_ST фиксируется триггером 2622 для создания сигнала STATE, синхронизируемого инверсией сигнала SSBI_CLK. Триггер 2622 сбрасывается асинхронно сигналом RESET_EFF. Включение для триггера 2622 определяется выходным сигналом мультиплексора 2620, который выбирает сигнал DONE, когда устанавливается сигнал STATE, и выбирает сигнал FOUND_ST, в противном случае.
Сигнал DONE определяется как выход логической схемы И 2626 с входом STB и входом из логической схемы ИЛИ 2624 с двумя входами. Первым входом в схему ИЛИ 2624 является выход логической схемы И с входами NOT READ и BITCNT = 9 + SSBI_DATA_WD. Вторым входом в схему ИЛИ 2624 является выход схемы И с входами READ и BITCNT = 11 + SSBI_DATA_WD.
Сигнал SSBI_IN сдвигается в сдвиговый регистр 2628 с помощью инверсии сигнала SSBI_CLK, включаемого логической схемой И 2630 с входами NOT STB и STATE. Параллельный выход сдвигового регистра 2628 представляет собой размер INPUT_DATA_SIZE. Младший значащий выходной бит фиксируется в регистре 2632, который включается логической схемой И с входами STB и BITCNT=1 для создания сигнала READ. В регистре 2634 фиксируются 8 младших значащих выходных бит для создания сигнала ADDR, который включается логической схемой И с входами STB и BITCNT=9. В регистре 2636, включаемом логической схемой И с входами NOT READ, STB и BITCNT=9 + SSBI_DATA_WD, фиксируются выходные биты, начиная с SSBI_DATA_WD – 1 по 0, для создания WR_DATA. Этот сигнал включения также фиксируется в регистре 2638, асинхронно сбрасываемым сигналом RESET_EFF, для создания сигнала WR_STB.
Сигнал STB формируется как выходной сигнал триггера 2640, входом которого является сигнал NOT_STB, а сброс этого триггера осуществляется сигналом NOT STATE. Сигнал NOT STB формируется инвертором 2644, который инвертирует сигнал STB. Сигнал NOT STB фиксируется в триггере 2642 для создания сигнала NOT STB_D. Выход счетчика 2646 формирует сигнал BITCNT, который сбрасывается логической схемой ИЛИ с входами NOT STATE и DONE, а включается сигналом STB.
Опционная схема блокирования тактовых импульсов, описанная выше, реализуется в этом примере следующим образом. Сигнал TCXO_DIS фиксируется в триггере 2648, синхронизируемом сигналом SSBI_DATA_IN. Выход триггера 2648 фиксируется триггером 2650, который синхронизируется сигналом NOT SSBI_DATA_IN, для создания сигнала RESET_TCXO_DIS. Оба триггера сбрасываются асинхронно сигналом RESET.
Сигнал RESET_EFF формируется как выход триггера 2672, входом которого является выход триггера 2670. Вход в триггер 2670 является выходом триггера 2668, входом которого является ‘0’. Все три триггера устанавливаются асинхронно логической схемой ИЛИ 2666 с входами TCXO_DIS и RESET.
Сигнал SSBI_DATA_OUT выбирается через мультиплексор 2664 в качестве сдвинутого выхода сдвигового регистра 2660, когда установлен сигнал LATE. Сигнал SSBI_DATA_OUT выбирается через мультиплексор 2664 в качестве выхода триггера 2662, когда сигнал LATE не установлен. Входом триггера 2662 является сдвинутый выход сдвигового регистра 2660, синхронизируемого инверсией сигнала SSBI_CLK. Параллельным входом в сдвиговый регистр 2660 является вход RD_DATA шириной SSBI_DATA_WD. Сдвиговый вход в сдвиговый регистр 2660 равен ‘0’. Сдвиговый регистр 2660 загружается логической схемой И с входами READ, NOT STB и BITCNT=9. Выполнение сдвига сдвиговым регистром 2660 разрешается логической схемой И 2658 с входами NOT STB_D, READ и SSBI_DATA_OE_REG.
Сигнал SSBI_DATA_OE выбирается через мультиплексор 2656 в виде сигнала SSBI_DATA_OE_REG, когда установлен сигнал LATE. Сигнал SSBI_DATA_OE выбирается через мультиплексор 2656 в виде выхода триггера 2654, когда сигнал LATE не установлен. Триггер 2654, синхронизируемый инверсией сигнала SSBI_CLK, в качестве входа имеет сигнал SSBI_DATA_OE_REG. Сигнал SSBI_DATA_OE_REG формируется в качестве выхода триггера 2652. Входом триггера 2652 является выход логической схемы И с входами READ, BITCNT>=10 и BITCNT<=(9+SSBI_DATA_WD). Триггер 2652 включается сигналом STB и асинхронно сбрасывается сигналом RESET_EFF.
На фиг.27 показаны примерные логические схемы, подходящие для использования в качестве блока 2320 регистров подчиненного блока. В этом примере параметр SSBI_DATA_WD установлен равным 8 в иллюстративных целях. Регистр 2710 является примером регистра для запоминания выходных данных WR_REGxxx_DATA. Этот регистр, который может синхронизироваться сигналом WR_STB, получает на входе WR_DATA. Можно использовать множество регистров записи, а xxx можно заменить походящим идентификатором. Заметим, что для конкретного адреса возможно понадобится фиксировать не все биты WR_DATA, в связи с чем соответствующие элементы памяти можно исключить. Сигнал включения для каждого регистра 2710 может быть разрешен согласно соответствующему адресу под управлением сигнала ADDR (подробности не показаны). В альтернативном варианте в качестве тактовых импульсов можно использовать сигнал SSBI_CLK с сигналом WR_STB, входящим в состав сигнала включения. Если это потребуется, в подчиненное устройство 230 могут быть поданы различные выходные сигналы WR_REGxxx_DATA.
В этом примере данные RD_DATA формируются как выход логической схемы 2720 мультиплексирования, выбираемый в соответствии с сигналом ADDR. Можно использовать различные варианты реализации мультиплексирования, такие как стандартные мультиплексоры, комбинаторные логические схемы, технологии шины с тремя состояниями и т.п. Входами в мультиплексор 2720 являются n входных сигналов, обозначенных RDREG0_DATA – RDREGn_DATA, которые присваиваются согласно обозначениям соответствующих адресов. Эти входные сигналы могут поступать из каких-либо блоков в подчиненном устройстве 230, когда это необходимо.
Ведущий блок SSBI, поддерживающий режим FTM
В этом разделе показан примерный вариант ведущего блока 1110 SSBI, адаптированный для поддержки режима FTM для интерфейса SSBI, подробно описанного выше. На фиг.28-31 и в соответствующих разделах описания подробно изложены те изменения, которые необходимы в примерном ведущем блоке SSBI, описанном в связи с фиг.20-22, обсужденными выше, для поддержки команд FTM по однопроводной шине. Этот ведущий блок 1110 SSBI способен поддерживать команды SSBI и команды FTM (режим, выбранный на основе бита конфигурации под названием FTM_MODE). В таблице 4 показаны дополнительные порты для этого примерного варианта, которые можно скомбинировать с портами в таблице 2.
Таблица 4 |
Описания модифицированных портов ведущего блока SSBI |
Порт |
Направление |
Описание |
DISABLE_TERM_SYM |
Вход |
В режиме FTM при установке запретит посылку символа завершения в подчиненное устройство в конце пересылки |
SENT_TERM_SYM |
Вход |
В режиме FTM формирует импульс для посылки символа завершения в подчиненное устройство |
FTM_MODE |
Вход |
Бит включения режима FTM |
SLAVE_ID[5:0] |
Вход |
Ввод ID подчиненного устройства |
При установке сигнала FTM_MODE он указывает, что доступ будет осуществляться в режиме FTM. Для доступов, осуществляемых не в режиме FTM, формы сигналов и схема могут быть аналогичными не модифицированной схеме, описанной выше в связи с фиг.17-22. На высоком уровне для поддержки режима FTM необходимы следующие изменения. Во-первых, формат команды должен соответствовать режиму FTM для 3-проводного режима. Во-вторых, необходима схема для идентификации завершения пакета пересылок, с тем чтобы она могла послать символ завершения. В-третьих, сигнал IDLE_SYMS задает количество символов незанятости между двумя пакетами, а не между отдельными доступами.
Для упрощения последующего описания термин «доступ» будет использоваться для ссылки на отдельное считывание или запись. Термин «пакет» будет использоваться для ссылки на последовательность, в которой сначала передается ID подчиненного устройства, за которым следует один или несколько доступов, а завершается все передачей символа завершения. В альтернативных вариантах могут быть реализованы альтернативы символу завершения, примеры которых были приведены выше. Таким образом, в пакете может быть один или несколько доступов. Заметим, что в режиме, не являющемся режимом FTM, пакетов нет. Все доступы обрабатываются как единые доступы.
Для пакета первый доступ предваряется передачей начального бита, битов режима и ID подчиненного устройства. Последующие доступы могут осуществляться без указанных передач. Задается сигнал CONT, пример которого подробно раскрыт на фиг.31 (как выход триггера 3110) и который используется для указания о том, является доступ первым доступом (0) или более поздним доступом (1). Сигнал CONT устанавливается в том же цикле, где будет установлен сигнал REQP для второго доступа, и сохраняется, пока не будет послан сигнал завершения. Таким образом, сигнал CONT можно использовать для конфигурирования цепи сдвига для корректного обхода начального бита, битов режима и ID подчиненного устройства (как подробно описано ниже).
После завершения первого доступа устанавливается сигнал CONT и импульс DONE. Когда сигнал DONE находится на высоком уровне, можно проанализировать сигал REQ, чтобы определить, имеется ли в этом пакете последующий доступ. Если имеется, то появляется импульс ACK и в цепи сканирования фиксируются новые параметры в качестве стандарта за исключением того, что цепь сканирования будет сконфигурирована для обхода битов режима и ID подчиненного устройства. Также бит CNT загружается значением 10 вместо 0, поскольку начальный бит, биты режима, ID подчиненного устройства и первый бит паузы пропущены. Сигнал DONE устанавливается для каждого доступа по его завершении.
В конце пакета (независимо от того, включает ли он в себя одну пересылку или связку пересылок) необходимо вывести символ завершения. Сигнал TERM устанавливается на всем интервале посылки символа завершения. В течение этого интервала значение бита CNT должно возрастать на единицу с каждым циклом вместо возрастания на единицу с каждым вторым циклом, а выходная последовательность выглядит как 1010. В альтернативных вариантах можно использовать альтернативные комбинации для символа завершения. Как только будет послан символ завершения, необходимо сформировать внутренний сигнал «подтверждение выполнения», DONE_DELX, который задерживается в соответствии с сигналом IDLE_SYMS, так что может запускаться следующий пакет при его наличии. На фиг.28 показаны формы сигналов, представляющие конец примерного пакета. Заметим, что в этом примерном варианте импульс STB появляется дважды на интервале символа завершения, хотя они могут быть проигнорированы данной схемой (как подробно описано ниже).
На фиг.29-31 показаны примерные схемы для использования в примерном ведущем блоке 1110 SSBI, модифицированном для поддержки режима FTM. Специалистам в данной области техники в свете изложенных здесь принципов очевидны другие модификации и альтернативные варианты.
На фиг.29 показаны модифицированные логические схемы в зависимости от параметров конфигурации. Создание сигнала SSBI_DATA_IN_DEL осуществляется также, как в исходной схеме. Создание сигнала DONE_DELX отличается от варианта на основе FTM_MODE. В режиме FTM_MODE этот сигнал появляется в виде импульса в конце пакета. Поскольку в это время бит CNT возрастает на единицу на каждом тактовом цикле, сигнал STB может быть проигнорирован.
Как и на фиг.20, в верхней части фиг.29 показана логическая схема для задержки сигнала SSBI_DATA_IN на основе сигнала SSBI_DATA_DEL. Формируется сигнал SSBI_DATA_IN_DEL точно так же, как на фиг.20. Сигнал SSBI_DATA подается на триггеры 2010 и 2030. Заметим, что все тактируемые устройства на фиг.20-22 синхронизируются импульсами SSBI_CLK или их инверсией (показано в стандартном обозначении кружком перед тактовым входом). Заметим, что триггер 2010 синхронизируется инверсией сигнала SSBI_CLK, а триггер 2030 непосредственно сигналом SSBI_CLK. Выход триггера 2010 поступает на вход триггера 2020. На один вход мультиплексора 2040 в виде выходов триггеров 2010-2030 поступает сигнал SSBI_DATA_IN. Сигнал SSBI_DATA_DEL используется для выбора одного входа мультиплексора 2040 в качестве выхода, или SSBI_DATA_IN_DEL.
Опять же сигнал DONE_DELX формируется на основе сигнала IDLE_SYMS. Как и на фиг.20, логическая схема 2050 реализует логическую функцию И, где входами являются сигнал STB и выход логической схемы ИЛИ с входами (NOT SREAD AND BITCNT=17+IDLE_SYMS) и (SREAD AND BITCNT=19+IDLE_SYMS). Добавлен мультиплексор 2910 для создания сигнала DONE_DELX. Сигнал DONE_DELX выбирается в качестве выхода логической схемы 2050, когда сигнал FTM_MODE не установлен, и в виде BITCNT=31+IDLE_SYMS, когда сигнал FTM_MODE установлен. Напомним, что числа жирным шрифтом соответствуют условию SEL_RD_DATA=0, и эти числа могут быть модифицированы, как было описано выше. Как и ранее, для простоты все эти числа соответствуют случаю, когда SSBI_DATA_WD=8.
Большинство модификаций логических схем относятся к цепи сдвиговых регистров, показанных на фиг.30. Эта цепь расширена, с тем чтобы можно было запоминать биты режима (01) и SLAVE_ID вместе с битами паузы, которые присутствуют после каждого набора из 8 бит. Эти дополнительные биты паузы рассматриваются как передачи (сами значения данных к делу не относятся) в отличие от случая перехода шины в третье состояние (как это может быть выполнено известным блоком SBI). Больше нет необходимости переводить шину в третье состояние каждые 8 символьных периодов.
Эта примерная модифицированная цепь сдвиговых регистров делится на части следующим образом. Сигнал SSBI_DATA_OUT создается как выход регистра 2110, который используется для удержания начального бита в ходе первого доступа пакета или сигнала READ для последующих доступов в пакете. Регистр 2110 по-прежнему сбрасывается сигналом RESET. Включение изменено по сравнению с фиг.21, причем сигнал включения формируется как выход схемы ИЛИ с входами REQP, STB, OVR_MODE, TERM и EN_TERM_CNT. Модификация заключается в добавлении сигналов TERM и EN_TERM_CNT в логическую схему ИЛИ. Входной сигнал берется от мультиплексора 3004 (по сравнению с мультиплексором 2160 на фиг.21) и используется для выбора сдвиговых значений на основе режима, как подробно описано ниже.
Здесь использованы два сдвиговых регистра 3014 и 3016 шириной 8 и 2 бита соответственно. 8-битовый сдвиговый регистр 3014 запоминает биты режима (01) и SLAVE_ID. 2-битовый сдвиговый регистр 3016 запоминает бит паузы и бит READ считывания для первого доступа в режиме FTM_MODE или запоминает бит READ и адресный бит 7, когда нет режима FTM_MODE. Этот вход обозначен как SHIFT2LDVAL, причем он формируется как выход мультиплексора 3028, как подробно описано ниже. 7-битовый сдвиговый регистр 3018 запоминает 7 младших бит адреса (напомним, что согласно протоколу SBI используют только 7 бит адреса). Заметим, что сдвиговые регистры 3016 и 3018 заменяют сдвиговый регистр 2130 (показанный на фиг.21), когда нет режима FTM. Эти три сдвиговых регистра формируют единую цепь, в которой сдвиговый выход сдвигового регистра 3018 подсоединен к сдвиговому входу сдвигового регистра 3016, а сдвиговый выход сдвигового регистра 3016 подсоединен к сдвиговому входу сдвигового регистра 3014. Все три сдвиговых регистра 3014-3108 включаются сигналом STB и загружаются сигналом REQP.
Сдвиговый регистр 2140 идентичен аналогичному регистру на фиг.21. Сдвиговый регистр 2140 шириной SSBI_DATA_WD бит предварительно загружается данными записи для операций записи или всеми нулями для операций считывания. Сдвиговый вход в сдвиговый регистр 2140 определяется в виде выхода мультиплексора 2150, который выбирает 0, когда установлен сигнал SSBI_DATA_OE, и сигнал SSBI_DATA_IN_DEL, в противном случае. Может быть сделан доступным параллельный выход сдвигового регистра 2140 в виде сигнала RD_DATA_PRE. Как и другие сдвиговые регистры, сдвиговый регистр 2140 загружается сигналом REQP и включается сигналом STB.
Регистр 3022 добавлен для использования в режиме FTM_MODE для запоминания бита паузы. Регистр 3022 сбрасывается сигналом REQP. Последний бит паузы для режима FTM непосредственно не запоминается, а сдвигается в регистр 3022 из сдвигового выхода сдвигового регистра 2140.
Поскольку ведущий блок SSBI поддерживает стандартные доступы в режиме SSBI, а также режим FTM, для выбора или пропуска дополнительных бит, необходимых для режима FTM, используются различные мультиплексоры. Вдобавок в режиме FTM_MODE используются дополнительные логические схемы для пропуска бит режима, ID подчиненного устройства и бита паузы во время второго и последующих доступов в пакете согласно сигналу CONT.
Мультиплексор 3020 используется для выбора выхода регистра 3022 в качестве сдвигового входа в сдвиговый регистр 3018, когда установлен режим FTM. В противном случае регистр 3022 пропускается и выбирается выход сдвигового регистра 2140.
Сигнал SHIFT2LDVAL создается как выход мультиплексора 3028. В режиме FTM подцепляют сигнал READ для формирования 2-битового значения. В противном случае, READ для формирования 2-битового значения сцепляют с ADDR (7) (как на фиг.21).
Мультиплексор 3010 можно переключать сигналом FTM_MODE для пропуска или включения сдвигового регистра 3014 в сдвиговой цепи. В режиме FTM выбирается выход сдвигового регистра 3014 без сохранения выдвигаемых разрядов. В режиме, не являющемся режимом FTM, выбирается выход сдвигового регистра 3016. Выход мультиплексора 3010 поступает в логический элемент ИЛИ 2120 вместе с REQP, как было описано в связи с фиг.21. Выход логического элемента ИЛИ 2120 представляет собой битовый поток при стандартной работе SSBI и для первого доступа в режиме FTM (исключая завершающую часть доступа, если она используется).
Мультиплексор 3006 выбирает различные битовые потоки в зависимости от текущего режима. Линия выбора формируется в виде сцепления TERM и CONT (показано как TERM&CONT). В режиме SSBI сигналы TERM и CONT всегда не установлены, так что выбирается выход логического элемента ИЛИ 2120. Выход логического элемента ИЛИ 2120 также выбирается в режиме FTM для первого доступа, причем в этом случае символ завершения еще не посылается (сигнал TERM не установлен), а текущий доступ не выполняется (сигнал CONT не установлен).
Перед завершением во время второго и последующих доступов будет установлен сигнал CONT, так что мультиплексор 3006 выберет выход мультиплексора 3012. Мультиплексор 3012 используется для режима FTM и может быть использован для пропуска бит режима ID подчиненного устройства и бита паузы во время второго и последующих доступов в пакете. Когда установлен сигнал REQP, в качестве выхода мультиплексора 3012 выбирается READS; в противном случае, выбирается сдвиговый выход сдвигового регистра 3018.
Поскольку в этом примере символ завершения переключается с каждым тактовым циклом, символ завершения формируется путем вставки бит символа разрешения цикл за циклом в последний регистр 2110, выдающий сигнал SSBI_DATA_OUT. Для идентификации момента посылки символа завершения используется сигнал TERM. Это реализуется путем подачи сигнала NOT CNT_EN в регистр 2110, так как он переключается с каждым циклом (с использованием инверсии сигнала CNT_EN, так как этот вход обеспечивает совпадение по фазе выхода регистра 2110 с сигналом CNT_EN). Как было описано выше, регистр 2110 включается на каждом тактовом цикле благодаря сигналу TERM в логической схеме ИЛИ, подающей сигнал включения.
В этом примере имеются два специальных случая, связанных с символом завершения. Во-первых, для недопущения посылки символа завершения на подчиненное устройство может быть установлен сигнал DISABLE_TERM_SYM. Одним из примеров использования этой возможности является приостановка импульсов SSBI_CLK для подчиненного устройства путем записи бита регистра подчиненного устройства, TCXO_DIS, как было описано выше. После завершения записи линия SSBI_DATA не должна быть активизирована до момента, когда будут снова включены тактовые импульсы для подчиненного устройства. После этого особого доступа сигнал DISABLE_TERM_SYM можно использовать для блокирования посылки сигнала NOT CNT_EN в последний регистр 2110, выдающий сигнал SSBI_DATA_OUT. Таким образом, при включении TERM мультиплексор 3006 выбирает выход логической функции И с входами NOT CNT_EN и NOT DISABLE_TERM_SYM.
Во втором случае предоставляется возможность послать символ завершения без какого-либо предыдущего доступа. Это достигается установкой сигнала SEND_TERM_SYM. Это может быть полезно тогда, когда, например, ведущий блок 1110 установлен в исходное состояние в середине пересылки. В указанной ситуации, чтобы подчиненное устройство SBI не застряло в бесконечном цикле FTM, ведущее устройство может послать символ завершения, чтобы вновь вернуть подчиненное устройство в состояние незанятости. Для обеспечения возможности реализации этой второй возможности мультиплексор 3004 используется для выбора входа для регистра 2110. Как и на фиг.21, сигнал OVR_MODE используется для выбора OVR_VALUE, разрешающего прямое управление сдвиговой цепью. Когда сигнал OVR_MODE не установлен, установка сигнала EN_TERM_CNT приводит к выбору NOT TERM_CNT(0) в качестве выхода мультиплексора 3004. Создание сигнала TERM_CNT подробно обсуждается ниже. Когда не установлены ни сигнал OVR_MODE, ни сигнал EN_TERM_CNT, для ввода в регистр 2110 выбирается выход мультиплексора 3006.
На фиг.31 показаны дополнительные управляющие логические схемы для ведущего блока 1110 SSBI, модифицированного для поддержки режима FTM. Сравним этот пример с примером, описанным в связи с фиг.22. Эти логические схемы выполняют те же самые функции, что и предыдущий вариант, но со следующими модификациями.
Как и прежде, сигнал REQP формируется как выход логической схемы И 2204 с сигналом REQ в качестве одного из входов. Для формирования сигнала REQP добавляется сигнал DONE, с тем чтобы можно было подтвердить множество доступов в пакете. REQP фиксируется в триггере 2206 для создания сигнала ACK. Другой вход в схему И 2204 формируется в виде выхода логической схемы ИЛИ 3102 с входом NOT STATE и двумя другими входами, являющимися выходами логической функции И с входами DONE и FTM_MODE и логической функции И с входами DONE_DELX и NOT FTM_MODE. Сравните эту логическую схему с логической схемой ИЛИ 2202 на фиг.22.
Как и ранее, сигал RD_DATA формируется как выход регистра 2208, который имеет на своем входе сигнал RD_DATA_PRE. Элемент включения модифицируется, так чтобы он содержал дополнительный элемент для режима FTM. Сигнал включения формируется схемой И с входами SREAD, NOT STB, NOT RESET и BITCNT=19/26. Выражение BITCNT=19/26 трактуется следующим образом: когда FTM_MODE = 0, BITCNT = 19; когда FTM_MODE = 1, BITCNT = 26.
В режиме FTM формируется сигнал DONE c использованием более позднего сигнала BITCNT, который не зависит от SREAD, так как считывания и записи в режиме FTM занимают одно и то же количество времени. В этом примере это реализуется с помощью мультиплексора 3114. Линией выбора для мультиплексора 3114 является FTM_MODE&SREAD. Когда установлен сигнал FTM_MODE, на выходе мультиплексора 3114 появляется BITCNT=27, если сигнал SREAD не установлен, и BITCNT=27 в противном случае. Когда не установлен сигнал FTM_MODE и не установлен сигнал SREAD, выход мультиплексора 3114 формируется в виде значения логической функции И с входами NOT SREAD и BITCNT=(17+IDLE_SYMS). Когда сигнал FTM_MODE не установлен, а сигнал SREAD установлен, выход мультиплексора 3114 задается как значение логической функции И с входами SREAD и BITCNT=(19 + IDLESYMS). Сигнал DONE формируется как выход регистра 3118, который имеет в качестве своего входа значение на выходе логической схемы И 3116 с входом NOT STB и другим входом, являющимся выходом мультиплексора 3114, причем этот регистр сбрасывается сигналом RESET.
Для создания сигналов CONT и TERM добавляется логическая схема, которая выдает все 0, когда сигнал FTM_MODE равен 0. Сигнал CONT устанавливается в единицу во время того же цикла, в котором установлен сигнал DONE, и устанавливается в ноль, когда формируется импульс DONE_DELX_FTM. Сигнал CONT формируется как выход регистра 3110. Установка этого регистра происходит тогда, когда бит CNT=27, а сброс осуществляется выходным сигналом схемы ИЛИ с входами DONE_DELX_FTM, RESET и NOT FTM_MODE (DONE_DELX_FTM представляется в виде либо DONE_DELX_FTM_WR, либо DONE_DELX_FTM_RD в зависимости от того, выполняется запись или считывание. Сигнал DONE_DELX_FTM_WR задается значением BITCNT=31+IDKE_SYMS, а сигнал DONE_DELX_FTM_RD задается значением 23+IDLE SYMS).
Сигнал TERM используется для увеличения на единицу значения BITCNT с каждым тактовым циклом во время существования символа завершения. Сигнал TERM формируется как выход мультиплексора 3150, который использует линию SREAD в качестве своей линии выбора. Когда установлен сигнал SREAD, выбирается TERM_READ; в противном случае, выбирается TERM_WRITE. Сигнал TERM_READ формируется как значение логической функции И с входами FTM_MODE, BITCNT>=28 и BITCNT<=31. Сигнал TERM_WRITE формируется как значение логической функции И с входами FTM_MODE, BITCNT>=27 и BITCNT<=31.
Сигналы SREAD, STATE, CNT_EN и STB создаются так же, как на фиг.22. Сигнал SREAD формируется как выход регистра 2210, причем READ является входом, а REQP сигналом включения. STATE создается как выход RS-триггера 2220. Вход установки для RS-триггера 2220 формируется как выход логической схемы 2216 с входами REQP и NOT RESET. Вход сброса для RS-триггера 2220 формируется как выход логической схемы ИЛИ 2218 с входами DONE_DELX и RESET.
Сигнал STB (обозначенный также как CNT_EN) формируется как выход сбрасываемого триггера 2224. Входом для этого триггера является инверсия его выхода, поэтому создается сигнал STB, изменяющийся с каждым тактовым циклом, когда этот триггер не сброшен. Вход сброса CNT_RES формируется как выход логической схемы ИЛИ 2222 с входами REQP и NOT SRATE.
BITCNT (в этом примере это 6-битовый сигнал; в альтернативных вариантах могут быть другие параметры, требующие альтернативных значений на всех фиг. с 29 по 31) формируется как выход счетчика 3140 (сравните со счетчиком 2228 на фиг.22). Сигналом включения счетчика 3140 является выходной сигнал логической схемы ИЛИ 3138 с входами CNT_EN (или STB) и TERM. В отличие от примера на фиг.22, в данном примере ширина BITCNT увеличена на 1 бит, поскольку, если IDLE_SYMS>0 или SSBI_DATA_WD>8, BITCNT может вести счет после значения 31. Значение нагрузки для BITCNT зависит теперь от того, является ли данный доступ первым доступом в пакете. CONT, по существу, используется как линия выбора для мультиплексора 3112, который при его включении выбирает в качестве значения BITCNT_LDVAL последовательность 001010 и последовательность 000000, в противном случае.
Сигнал TERM_CNT, который используется для формирования символа завершения, когда установлен сигнал SEND_TEND_SYM, как было описано выше, формируется следующим образом. Сигнал EN_TERM_CNT формируется как выход RS-триггера 3144. На входе для установки устанавливается сигнал EN_TERM_CNT, когда установлен сигнал SEND_TERM_SYM. Сигнал EN_TERM_CNT снимается, когда заканчивается символ завершения, как показано с помощью сигнала TERM_CO. Таким образом, сигналом сброса для триггера 3144 является выход логической схемы ИЛИ 3142 с входами RESET и TERM_CO. TERM_CNT в этом примере является 2-битовым сигналом, хотя в рамках объема настоящего изобретения могут быть использованы другие символы завершения иных размеров, а также другие формы сигналов. Сигнал TERM_CNT формируется как выход счетчика 3148, чей выходной сигнал переноса присваивается сигналу TERM_CO. Счетчик 3148 включен всегда за исключением случая, когда он сброшен выходом логической схемы ИЛИ 3146 с входами RESET и NOT EN_TERM_CNT. Таким образом, когда установлен сигнал EN_TERM_CNT, снимается сигнал сброса для счетчика 3148, что заставляет счетчик вести отсчет, пока не установится выходной сигнал переноса TERM_CO, который, в свою очередь, снимает сигнал EN_TERM_CNT.
Напомним, что ведущий блок 1110 SSBI не использует ID подчиненного устройства в режиме SSBI, хотя для режима SBI идентификаторы подчиненных устройств могут потребоваться. Поскольку подчиненное устройство будет декодировать ID подчиненного устройства, необходимо, чтобы он был задан микропроцессором или другим ведущим хостом через управляющий регистр либо другими способами, хорошо известными в данной области техники. Поле ID подчиненного устройства может выводиться в ведущий блок 1110 SSBI для каждой транзакции. Заметим, что в отличие от интерфейса SBI, это поле может быть запрограммировано один раз и его никогда не потребуется изменять, если к порту SSBI подсоединено единственное подчиненное устройство. Вдобавок, сигнал FTM_MODE определяет, должна или нет быть выполнена пересылка в режиме FTM, что позволяет использовать один и тот же ведущий блок 1110 SSBI с подлинно 1-проводными подчиненными устройствами, а также 1-проводными подчиненными устройствами, которые используют блок преобразователя интерфейса SSBI в интерфейс SBI, такой как блок 1420, подробно описанный ниже.
Подчиненный блок SSBI, поддерживающий режим FTM
Для подчиненного устройства, которое нуждается в поддержке 3-проводной шины и 1-проводной шины, один из подходов заключается в разработке подчиненного блока для сохранения блока 1220 поддержки 3-проводного блока SBI, как показано на фиг.14, и добавления преобразователя 1420 подчиненного блока SSBI, который позволяет ему взаимодействовать с 1-проводной шиной. Блок 1420 преобразователя подчиненного блока можно использовать для преобразования 1-проводной передачи сигналов для создания сигналов SBST и SBCK и подачи их в существующие схемы 1220 подчиненного устройства с 3-проводным SBI. Таким образом, в этом примере в 1-проводном режиме должны использоваться команды FTM, так как команды SSBI не могут быть правильно интерпретированы схемами 1220 3-проводного подчиненного устройства. В таблице 5 описываются порты для примерного преобразователя 1420 подчиненного блока SSBI.
Таблица 5 |
Описания портов преобразователя подчиненного блока SSBI |
Порт |
Направление |
Описание |
SSBI_CLK |
Вход |
Тактовые импульсы |
RESET |
Вход |
Асинхронный вход. Этот блок растягивает сигнал, пока не будет включен TCXO |
SBST_IN |
Вход |
Вход SBST от контактной площадки микросхемы |
SBCK_IN |
Вход |
Вход SBCK от контактной площадки микросхемы |
SSBI_DATA |
Вход |
Вход SSBI_DATA/SBDT от контактной площадки микросхемы |
SBST_OUT |
Выход |
3-проводный сигнал SBST, идущий в подчиненный блок SBI |
SBCK_OUT |
Выход |
3-проводный сигнал SBCK, идущий в подчиненный блок SBI |
SBDT_PO_IN |
Вход |
3-проводный сигнал SBDT, PO, приходящий из подчиненного блока SBI |
SBDT_OE_IN |
Вход |
3-проводный сигнал SBDT, OE, приходящий из подчиненного блока SBI |
SBDT_PO_OUT |
Выход |
3-проводный сигнал SBDT, PO идущий на контактную площадку микросхемы |
SBDT_OE_OUT |
Выход |
3-проводный сигнал SBDT, OE идущий на контактную площадку микросхемы |
SSBI_MODE |
Выход |
SBCK_IN и SBST_IN, указывающие, что подчиненное устройство работает в 1-проводном режиме |
TCXO_DIS |
Вход |
Сигнал поступает из блока регистров подчиненного устройства. Он равен ‘0’ при нормальной работе и равен ‘1’, когда SSBI_CLK выключен |
RESET_TCXO_DIS |
Выход |
Сигнал поступает в блок регистров подчиненного устройства для сброса бита регистра TCXO_DIS |
Примерный преобразователь 1420 подчиненного блока SSBI может быть использован для преобразования сигналов SSBI в сигналы SBI при работе в 1-проводном режиме или опускания указанного преобразования при работе в 3-проводном режиме. В частности, преобразователь подчиненного блока SSBI, среди прочего, принимает сигналы из линии SSBI_DATA и формирует сигналы SBCK и SBST для стандартного 3-проводного подчиненного блока SBI. В этом примере нет необходимости создавать сигнал SBDT в преобразователе 1420 подчиненного блока SSBI, так как он может быть непосредственно введен между контактной площадкой и 3-проводным подчиненным блоком, как было описано выше в связи с фиг.14.
Входы SBST и SBCK можно использовать для определения того, требуется ли работа в 1-проводном или 3-проводном режиме. 1-проводный режим выбирается тогда, когда SBST=1, а SBCK=0, так как указанная комбинация никогда не появляется во время обычных 3-проводных пересылок. Эта опция для выбора режима устраняет необходимость иметь выделенный штырек или регистр выбора режима. Если выбран 3-проводный режим, то тогда сигналы SBST и SBCK мультиплексируются через выходы этого блока, как подробно описано ниже.
В 1-провоодном режиме блок 1420 преобразователя подчиненного блока SSBI проверяет линию SSBI_DATA на наличие начального символа, который используется для установки сигнала SBST и запуска переключения сигнала SBCK. Блок 1420 преобразователя подчиненного блока SSBI также ищет символ завершения, который используется для снятия сигнала SBST и прекращения переключения SBCK. Данные записи поступают непосредственно в подчиненный блок SBI, а данные считывания возвращаются непосредственно в линию SBDT. Примерный вариант, иллюстрирующий эти особенности, подробно описан ниже применительно к фиг.32-35.
На фиг.32 показана часть преобразователя 1420 подчиненного блока SSBI. Показанные схемы отвечают за определение того, является ли режим 1-проводным или 3-провоодным. Сигнал SSBI_MODE переходит на высокий уровень для 1-проводного режима, когда SBCK=0, в то время как SBST=1, как видно из логической схемы И 3250 с входами SBST_IN и NOT SBCK_IN. В этом примере сигнал SSBI_MODE подается в качестве выходного сигнала, в случае, когда другие функции или блоки действуют согласно выбранному режиму. Сигнал SSBI_MODE используется также для управления мультиплексорами 3260 и 3270. При работе в 3-проводном режиме, то есть, когда сигнал SSBI_MODE не установлен, входы контактной площадки SBCK и SBST (SBST_IN и SBCK_IN соответственно) выбирают для вывода в линии SBST_OUT и SBCK_OUT соответственно. При работе в 1-проводном режиме, то есть, когда установлен сигнал SSBI_MODE, мультиплексоры 3260 и 3270 выбирают сигналы SBST_GEN и SBCK_GEN для вывода по линиям SBST_OUT и SBCK_OUT соответственно.
RESET_EFF является протяженным сигналом сброса, формируемым таким образом, что он длится минимум два тактовых цикла. Это гарантирует, что сигал RESET_EFF, в конце концов, будет схемами замечен, даже если тактовые импульсы выключены. Асинхронно устанавливаемые триггеры 3220, 3230 и 3240 устанавливаются сигналом с выхода логической схемы ИЛИ 3210 с входами TCXO_DIS и RESET. Сигнал RESET_EFF формируется как выход триггера 3240. Входом триггера 3240 является выход триггера 3230, чьим входом является выход триггера 3220. Вход триггера 3220 установлен равным нулю.
В этом примере сигнал SSBI_DATA должен быть очень похож на сигнал SBDT, так что временные диаграммы записи и считывания относительно сходны независимо от того, имеет место преобразование SSBI в SBI или нет. Рассмотрим пример, когда выбираются данные SSBI_DATA, а SBDT создается с задержкой ровно в один тактовый цикл. Это приведет к тому, что подчиненный блок SBI (то есть, 1220) заметит все доступы одним циклом позднее. Для записей это скорее всего не создаст проблему. Однако для считываний при появлении возвращенных данных они поступят на один цикл позднее, чем их ожидает ведущее устройство. В результате необходимо будет предусмотреть, чтобы SSBI_DATA подавались в SBDT без каких-либо задержек в регистрах. По существу следующей проблемой является обнаружение начального символа и своевременное создание сигналов SBST и SBCK для согласования с временной диаграммой работы подчиненного блока SBI. Это может оказаться достаточно сложным, поскольку на интервале двух символов (начальный символ и первый символ данных) преобразователь 1420 подчиненного блока SSBI должен выполнить следующее: 1) распознать начальный символ; 2) инициировать установку SBST (перевести на низкий уровень); 3) перевести SBCK на низкий уровень, а затем обеспечить возможность его переключения, так чтобы задний фронт появлялся каждые два тактовых цикла; 4) задний фронт второго SBCK будет использован для выборки SBDT в подчиненном блоке SBI.
Рассмотрим пример, в котором линия SSBI_DATA находится в состоянии незанятости, а преобразователь 1420 подчиненного блока производит затем выборку линии SSBI_DATA по переднему фронту SSBI_CLK, пока не заметит начальный символ. На фиг.33 показаны формы сигналов в начале пересылки. Начальный символ «обнаруживается» и сигнал «проскакивает» на половине тактового цикла, вызывая установку сигнала FOUND_ST. Это асинхронно форсирует переход сигнала SBST на низкий уровень, что, в свою очередь, блокирует схему, выполняющую поиск начального символа. Сигнал FOUND_ST задерживается на половину тактового цикла, подвергается операции «И» с самим собой, а затем используется для создания первого заднего фронта и переднего фронта SBCK. Сигналы SBST и FOUND_ST используются вместе для разрешения переключения SBCK. Поскольку подчиненное устройство SBI выбирает символы по заднему фронту SBCK, они отбираются фактически на 25% в символьном периоде.
Заметим, что импульсы SSBI_CLK возможно не будут столь ровными, как здесь показано. То, что показано на фиг.33, является в действительности «идеальным» случаем. В «наихудшем случае» начальный символ не обнаруживается сразу, а выявляется с опозданием на целый цикл. В этом случае все сигналы FOUND_ST, SBST, SBCK сдвигаются вправо на 1 тактовый цикл. Соответственно, символы данных выбираются на 75% в символьном периоде. Как будет ясно, в обоих случаях сигналы SBST и SBCK могут формироваться правильно по отношению к SSBI_DATA. Сигнал LATE аналогичен сигналу с идентичным именем, который был подробно описан выше в связи с фиг.25; этот сигнал помогает сократить указанный один цикл изменчивости (в SBDT_PO и SBDT_OE) до половины тактового цикла.
Формы сигналов в конце пересылки показаны на фиг.34. Фиксация символа завершения в какой-то степени может усложниться, поскольку он переключается с каждым тактовым циклом в течение четырех последовательных тактовых циклов. Этот примерный символ завершения выбирается потому, что он имеет максимально укороченную форму, отличимую от любого символа данных. Примерная схема, используемая для выборки этого сигнала, в основном отбирает SSBI_DATA в течение 4 тактовых циклов, осуществляя поиск шаблона. Параллельно действует отдельная схема, которая осуществляет выборку по заднему фронту тактового импульса. Это необходимо, поскольку, если передний фронт SSBI_CLK выровнен по переходам символа завершения, нет гарантии, что этот символ будет зафиксирован первой схемой. Поэтому, действуя вместе, обе схемы гарантируют обнаружение символа завершения.
На фиг.35 показана часть дополнительных схем для примерного преобразователя 1420 подчиненного блока SSBI. Протяженный сигнал сброса RESET_EFF вызывает асинхронный переход сигналов SBST_GEN и SBCK_GEN на высокий уровень. Протяженный сигнал сброса используется для того, чтобы он оставался на высоком уровне, пока не будет включен сигнал SSBI_CLK. Этот сигнал сброса также сбрасывает часть схем, создающих сигнал FOUND_T и описанных ниже.
SSBI_DATA фиксируются с помощью SSBI_CLK в регистре 3508, который сбрасывается сигналом NOT SBST_GEN. Выход регистра 3508 подается на вход регистра 3510, синхронизируемого инверсией сигнала SSBI_CLK и сбрасываемого сигналом NOT SBST_GEN. Выход регистра 3510 обозначен как FOUND_ST, что указывает на обнаружение начала пересылки.
Данные SSBI_DATA также вводятся в регистр 3502, синхронизируемый инверсией сигнала SSBI_CLK. Выход регистра 3502 является входом в регистр 3504, выход которого обозначен как FOUND_ST_N. Оба регистра 3502 и 3504 сбрасываются сигналом RESET_EFF. FOUND_ST_N фиксируется в регистре 3506, синхронизируемом сигналом SSBI_CLK, для создания сигнала LATE. Регистр 3506 включается сигналом FOUND_ST.
Сигнал FOUND_ST используется для асинхронной установки триггера 3518, выход которого инвертируется (3520) для создания сигнала SBST_GEN. Таким образом, обнаруженный начальный бит устанавливает (возбуждает низкий уровень) сигнал SBST_GEN. Напомним, что сигнал NOT SBST_GEN сбрасывает регистры 3508 и 3510, которые создают FOUND_ST, так что FOUND_ST остается не установленным, пока не будет завершен текущий доступ или доступы и не будет обнаружен новый начальный бит. Триггер 3518 синхронизируется инверсией сигнала SSBI_CLK и сбрасывается сигналом RESET_EFF. Нуль вводится сигналом FOUND_T, что указывает на обнаружение символа завершения, как подробно описано ниже.
Регистр 3522, сбрасываемый сигналом RESET_EFF, воспринимает на входе сигнал FOUND_ST и задерживает его на один цикл. Его выход, SBCK_EN, поступает в логическую схему И-НЕ 3524 вместе с сигналом FOUND_ST, который используется для перевода сигнала SBCK_GEN на низкий уровень через логическую схему И 3526. Другой входной сигнал в логическую схему И 3526 используется для создания сигнала SBCK_GEN, когда логическая схема И-НЕ 3524 не форсирует переход SBCK_GEN на низкий уровень, причем этот входной сигнал поступает с выхода регистра 3514. Регистр 3514 синхронизируется инверсией сигнала SSBI_CLK и асинхронно устанавливается сигналом RESET_EFF. Его выход, вдобавок к подаче его в логическую схему И 3526, инвертируется в инверторе 3516. Его вход формируется как выход логической схемы ИЛИ 3512 с входами SBST_GEN, FOUND_ST, FOUND_T, и входом, являющимся выходом инвертора 3516. Сигналы SBCK_EN и FOUND_T используются для прекращения переключения SBCK до снятия сигнала SBST.
Как было описано выше, для идентификации символа завершения используются две схемы. В каждой схеме данные SSBI_DATA сдвигаются в двух рядах из 5 регистров, 3528-3536 и 3542-3550 соответственно. Шаблон символа завершения обнаруживается двумя логическими элементами И 3538 и 3552. В первой схеме имеется регистр 3528, синхронизируемый инверсией сигнала SSBI_CLK, и регистры 3530-3536, синхронизируемые сигналом SSBI_CLK. Регистры 3528, 3530 и 3532 сбрасываются асинхронно сигналом RESET_EFF. Шаблон завершения обнаруживается логической схемой И 3538 от следующих входных сигналов: инверсии выхода регистра 3530, выхода регистра 3532, инверсии выхода регистра 3534 и выхода регистра 3536. Во второй схеме имеется регистр 3542, синхронизируемый сигналом SSBI_CLK, и регистры 3542-3550, синхронизируемые инверсией сигнала SSBI_CLK. Регистры 3542, 3544 и 3546 сбрасываются асинхронно сигналом RESET_EFF. Шаблон завершения обнаруживается логической схемой И 3532 от следующих входных сигналов: инверсии выхода регистра 3544, выхода регистра 3546, инверсии выхода регистра 3548 и выхода регистра 3550. Логическая схема ИЛИ 3540, состоящая из двух схем (чьи входы являются выходами логических схем 3538 и 3552), создает сигнал FOUND_T, указывающий на обнаружение символа завершения.
Заметим, что сигнал FOUND_T может иметь длину в 1 или 1,5 цикла в зависимости от того, одна или обе схемы обнаружили символ завершения. Это может ограничить возможную скорость последующей пересылки по шине. В рассматриваемом примерном варианте это не вызывает никаких проблем. В альтернативном варианте ведущее устройство может форсировать пересылку по линии SSBI_DATA символа незанятости по меньшей мере в течение одного символьного периода, если это необходимо.
Заметим далее, что эта схема не установит сигнал FOUND_T, если не присутствует сигнал завершения. При условии, что символы данных изменяются каждые два тактовых цикла, если тактовые циклы не выровнены по символьным переходам, выборка символа в двух последовательных тактовых циклах даст одинаковое значение (не переменное значение для символа завершения). Если тактовые импульсы выборки выровнены по фронтам символов, то тогда возможна выборка либо предыдущего, либо нового значения символа. Рассмотрим, например, случай, когда фронт первой выборки выровнен по переходу символа, и следовательно, является третьим фронтом, а не вторым и четвертым, так как те появляются в середине символа. Если иметь в виду, что требуемой комбинацией является 1010, то, чтобы во время второй и четвертой выборок засечь 0, два символа данных должны быть нулями. Если это так, то тогда третья выборка должна быть равна 0, поскольку данные не изменились. В результате сигнал FOUND_T не установится. Аналогичные аргументы применимы к случаю, когда вторая и четвертая выборки выровнены по границам символа, в то время как первая и третья по ним не выровнены.
Опять же заметим, что импульсы SSBI_CLK могут не быть выровнены так, как это показано на фиг.33 и 34. На этих фигурах в действительности показан «идеальный» случай. В «наихудшем» случае символ завершения обнаруживается на половину тактового цикла позднее. В этом случае сигнал FOUND_T сдвигается вправо на половину тактового цикла, что не влияет на SBST или SBCK. Как можно видеть, и в «идеальном», и в «наихудшем» случаях в подчиненный блок SBI поступают дополнительные импульсы SBCK. Следует ожидать, что подчиненный блок SBI проигнорирует дополнительные биты данных, как только будет снят сигнал SBST.
Сигнал LATE используется для видоизменения временной диаграммы выхода SBDT при работе в режиме SSBI_MODE. Сигнал SBDT_OE_OUT формируется как выход мультиплексора 3560, который в качестве своих входов использует сигнал SBDT_OE_IN и его задержанную версию, зафиксированную в регистре 3558. Регистр 3558 получает на своем входе сигнал SBDT_OE_IN и задерживает его на один цикл. Сигнал SBDT_PO_OUT формируется как выход мультиплексора 3566, который использует в качестве своих входов сигнал SBDT_PO_IN и его задержанную версию, зафиксированную в регистре 3564. Регистр 3564 получает сигнал SBDT_PO_IN и задерживает его на один цикл. Сигнал выбора из двух мультиплексоров 3560 и 3566 формируется в виде выхода логической схемы ИЛИ 3562 с входами LATE и NOT SSBI_MODE. Таким образом, когда нет режима SSBI_MODE, сигнал SBDT_OE_OUT выбирается в виде SBDT_OE_IN, а сигнал SBDT_PO_OUT выбирается в виде SBDT_PO_IN. Такой же выбор осуществляется, когда имеет место режим SSBI_MODE, а сигнал LATE не установлен. Когда сигнал LATE установлен в режиме SSBI_MODE, для соответствующих выходов выбираются задержанные версии сигналов SBDT_OE_IN и SBDT_PO_IN.
Сигнал RESET_TCXO_DIS формируется как выход регистра 3556, который в качестве входного сигнала получает сигнал с выхода регистра 3554. Регистр 3554 в качестве своего входа получает сигнал TXCO_DIS. Регистр 3554 синхронизируется сигналом SSBI_DATA. Регистр 3556 синхронизируется инверсией сигнала SSBI_DATA. Оба регистра сбрасываются асинхронно сигналом RESET. Таким образом, когда установлен сигнал TCXO_DIS, передний фронт SSBI_DATA устанавливает регистр 3554, а следующий задний фронт SSBI_DATA устанавливает регистр 3556, в результате чего устанавливается сигнал RESET_TCXO_DIS. По существу сигнал SSBI_DATA можно использовать для установки сигнала RESET_TCXO_DIS, когда тактовые импульсы (то есть, SSBI_CLK, а также другие тактовые импульсы) заблокированы. В одном примерном варианте сигнал RESET_TCXO_DIS может быть использован для отмены блокировки одного или нескольких видов заблокированных тактовых импульсов.
Дополнительные альтернативные варианты
Рассмотрим дополнительные варианты. Например, возможно понадобится организовать взаимодействие существующих ведущих устройств SBI с более современными подчиненными устройствами SSBI. Для этого можно использовать преобразователь 3-проводного интерфейса в 1-проводный, обеспечив прием сигналов SBST, SBCK и SBDT и создание на их основе единого сигнала SSBI_DATA. Указанный преобразователь можно установить в подчиненном устройстве SSBI, чтобы обеспечить поддержку интерфейса любого типа без использования подчиненного устройства SBI, как было подробно описано выше. В альтернативном варианте указанный преобразователь может быть добавлен к существующему ведущему устройству для прекращения прямого использования 3-проводного протокола и создания на его основе однопроводного интерфейса. В других альтернативных вариантах описанные преобразователи можно использовать в виде автономных компонент, находящихся вне ведущего или подчиненного устройства любого типа (SBI или SSBI).
Другой вариант подчиненного устройства может включать в себя интерфейсы подчиненного устройства как типа SBI, так и типа SSBI. Для контроля линии входящих данных (которая может быть общей как для SSBI_DATA, так и для SBDT) может быть использован датчик, который определяет тип протокола, используемый во входящих линиях. В альтернативном варианте подчиненное устройство может быть программируемым для выбора одного или другого интерфейса подчиненного устройства (SBI или SSBI). Специалисты в данной области техники в свете изложенных здесь принципов без труда предложат множество комбинаций 3-проводных и 1-проводных ведущих устройств, подчиненных устройств и преобразователей, которые можно использовать в рамках концепции, соответствующей настоящему изобретению.
Специалистам в данной области техники должно быть ясно, что информация и сигналы могут быть представлены с использованием любых из множества различных технологий и способов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементы сигнала, на которые делались ссылки на протяжении всего вышеприведенного описания, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любой их комбинацией.
Специалистам в данной области техники кроме того должно быть ясно, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с раскрытыми здесь вариантами осуществления, могут быть реализованы в виде электронных аппаратных средств, компьютерных программных средств и их комбинаций. Для ясности эта взаимозаменяемость программных и аппаратных средств, различных иллюстративных компонент, блоков, модулей, схем и этапов была описана выше в общем виде с точки зрения их функциональных возможностей. Какими средствами, аппаратными или программными, следует реализовать указанные функциональные возможности, зависит от конкретного приложения и проектных ограничений, налагаемых на всю систему в целом. Специалисты в данной области техники могут реализовать описанные функциональные возможности разными путями для каждого конкретного приложения, но указанные решения по их реализации не следует интерпретировать таким образом, что они могут привести к выходу за рамки объема настоящего изобретения.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с раскрытыми здесь вариантами, можно реализовать или выполнить с помощью процессора общего назначения, цифрового процессора сигналов (DSP), прикладной специализированной интегральной микросхемы (ASIC), логической матрицы, программируемой пользователем (FPGA) или с помощью другого программируемого логического устройства, дискретной вентильной или транзисторной логики, дискретных аппаратных компонент или любой их комбинации, разработанной для выполнения описанных здесь функций. Процессор общего назначения может представлять собой микропроцессор, но в альтернативном варианте этот процессор может быть любым стандартным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также можно реализовать в виде комбинации вычислительных устройств, например, комбинации процессора DSP и микропроцессора, множества микропроцессоров, одного или нескольких микропроцессоров в сочетании с ядром DSP, или в виде любой другой указанной конфигурации.
Этапы способа или алгоритма, описанные в связи с раскрытыми здесь вариантами, могут быть воплощены непосредственно в аппаратных средствах, в программном модуле, исполняемом процессором, или в комбинации того и другого. Программный модуль может находится в оперативной памяти (RAM), флэш-памяти, постоянном запоминающем устройстве (ROM), электрически стираемом программируемом постоянном запоминающем устройстве (EPROM), энергонезависимом электрически стираемом программируемом постоянном запоминающем устройстве (EEPROM), регистрах, жестком диске, съемном диске, постоянном запоминающем устройстве на компакт-диске (CD-ROM) или любой другой форме запоминающего носителя, известной в данной области техники. Примерный запоминающий носитель подсоединен к процессору, так что процессор может считывать с него и записывать на него информацию. В альтернативном варианте носитель может составлять единое целое с процессором. Процессор и запоминающий носитель могут находится в интегральной схеме ASIC. Интегральная схема ASIC может находится в терминале пользователя. В альтернативном варианте процессор и носитель данных могут находится в терминале пользователя в качестве отдельных компонент.
Предшествующее описание раскрытых вариантов осуществления изобретения предложено для того, чтобы дать возможность специалистам в данной области техники создать или использовать настоящее изобретение. Специалисты в данной области техники без труда предложат различные модификации этих вариантов, а определенные здесь основополагающие принципы можно применить к другим вариантам осуществления, не выходя за рамки существа и объема изобретения. Таким образом, предполагается, что настоящее изобретение не ограничивается показанными здесь вариантами осуществления, а соответствует самому широкому объему, согласующемуся с раскрытыми здесь принципами и новыми признаками.
Формула изобретения
1. Устройство, выполненное с возможностью осуществления связи со вторым устройством через однопроводную шину и/или трехпроводную шину и содержащее: одну или несколько контактных площадок; трехпроводный шинный интерфейс для: формирования стробирующего сигнала, формирования тактового сигнала и приема данных для записи в удаленное устройство и доставки данных считывания из удаленного устройства посредством первого сигнала в соответствии со стробирующим сигналом и тактовым сигналом; один или несколько однопроводных шинных интерфейсов, причем каждый однопроводный шинный интерфейс предназначен для приема данных для записи в удаленное устройство и доставки данных считывания из удаленного устройства посредством второго сигнала; и схемы для подведения первого сигнала к контактной площадке в первом режиме и подведения второго сигнала первого из упомянутых одного или нескольких однопроводных шинных интерфейсов к контактной площадке во втором режиме.
2. Устройство по п.1, дополнительно содержащее схемы для подведения стробирующего сигнала к контактной площадке в первом режиме и подведения второго сигнала второго из упомянутых одного или нескольких однопроводных шинных интерфейсов к контактной площадке во втором режиме.
3. Устройство по п.1, дополнительно содержащее схемы для подведения тактового сигнала к контактной площадке в первом режиме и подведения второго сигнала второго из упомянутых одного или нескольких однопроводных шинных интерфейсов к контактной площадке во втором режиме.
4. Устройство, выполненное с возможностью осуществления связи со вторым устройством через однопроводную шину или трехпроводную шину, содержащее тактовый вход; стробирующий вход; однопроводную шину; однопроводный шинный интерфейс, подсоединенный к однопроводной шине, для приема и передачи по однопроводной шине в первом режиме; трехпроводный шинный интерфейс для приема во втором режиме тактового входа и стробирующего входа и для подсоединения к однопроводной шине для приема и передачи по однопроводной шине, включаемой стробирующим входом, и в соответствии с тактовым входом; средство выбора для указания о том, когда устройство находится в первом режиме или во втором режиме.
5. Устройство по п.4, в котором средство выбора запрограммировано для работы в первом режиме или во втором режиме.
6. Устройство по п.4, в котором средство выбора указывает на второй режим, если тактовый вход не имеет первое заранее определенное значение, а стробирующий вход – второе заранее определенное значение.
7. Устройство по п.6, в котором первое заранее определенное значение указывается низким напряжением, а второе заранее определенное значение определяется высоким напряжением.
8. Устройство, выполненное с возможностью осуществления связи со вторым устройством через однопроводную шину, содержащее: средство возбуждения для возбуждения однопроводной шины пакетом доступа, причем пакет доступа содержит: начальный символ; один или несколько символов режима; один или несколько символов, указывающих идентификатор устройства; один или несколько доступов и символ завершения; при этом доступ содержит кадр считывания или записи, а средство возбуждения освобождает однопроводную шину во время символов паузы и для возврата символов данных считывания.
9. Устройство по п.8, в котором пакет доступа содержит символ паузы перед одним или несколькими доступами.
10. Устройство по п.8, дополнительно содержащее тактовый генератор для генерации тактового сигнала с тактовым периодом, причем каждый символ содержит два или более тактовых периодов, а символ завершения содержит последовательность из двух или более чередующихся значений, при этом значения чередуются каждый тактовый период.
11. Устройство по п.10, в котором последовательность завершения задается в виде “1010”, где 1 указывается высоким напряжением, а 0 указывается низким напряжением.
12. Устройство по п.8, в котором кадр считывания содержит символ индикатора считывания, один или несколько символов, указывающих адрес, первый символ паузы, один или несколько временных символьных отрезков для возврата данных считывания в соответствии с адресом и второй символ паузы.
13. Устройство по п.8, в котором кадр записи содержит символ индикатора записи, один или несколько символов, указывающих адрес, первый символ паузы, один или несколько символов записи для запоминания в соответствии с адресом и второй символ паузы.
14. Устройство, выполненное с возможностью осуществления связи со вторым устройством через однопроводную шину, содержащее: первые схемы для приема сигнала по однопроводной шине и формирования из него стробирующего сигнала и тактового сигнала.
15. Устройство по п.14, дополнительно содержащее трехпроводный шинный интерфейс для приема стробирующего сигнала и тактового сигнала и трехпроводную шину и осуществляющее в ответ на этот прием связь со вторым устройством.
16. Устройство по п.14, дополнительно содержащее: стробирующий вход; тактовый вход и вторые схемы для выбора стробирующего сигнала из первых схем и тактового сигнала из первых схем в первом режиме и для выбора стробирующего входа и тактового входа во втором режиме для формирования стробирующего сигнала и тактового сигнала соответственно.
17. Устройство по п.14, в котором стробирующий вход удерживается на высоком уровне, а тактовый вход удерживается на низком уровне для указания первого режима, причем в противном случае указывается второй режим.
18. Способ обработки сигналов при преобразовании однопроводной шины в трехпроводную шину, содержащий: прием сигнала по однопроводной шине; обнаружение начального символа в сигнале; установление стробирующего сигнала в ответ на обнаруженный начальный символ; обнаружение символа завершения и деактивацию стробирующего сигнала в ответ на обнаруженный символ завершения.
19. Способ по п.18, дополнительно содержащий формирование тактового сигнала, причем тактовый сигнал содержит периодические импульсы, когда установлен стробирующий сигнал, и поддерживает постоянный уровень, когда стробирующий сигнал деактивирован.
20. Способ взаимодействия с трехпроводным шинным интерфейсом, содержащий: выбор стробирующего входа, тактового входа и однопроводной шины для подсоединения к трехпроводному шинному интерфейсу в первом режиме; формирование стробирующего и тактового сигналов с учетом однопроводной шины во втором режиме и выбор сформированных стробирующего и тактового сигналов и однопроводной шины для подсоединения к трехпроводному шинному интерфейсу во втором режиме.
21. Способ по п.20, дополнительно содержащий функционирование во втором режиме, когда стробирующий вход находится на высоком уровне, а тактовый вход находится на низком уровне, и работу в первом режиме в противном случае.
22. Способ осуществления связи по однопроводной шине, содержащий: передачу начального символа; передачу одного или нескольких символов режима; передачу одного или нескольких символов, указывающих идентификатор устройства; передачу одного или нескольких доступов, причем доступ может быть доступом на считывание или на запись, для каждого доступа: передачу одного или нескольких символов данных для доступа на запись, прием одного или нескольких символов данных для доступа на считывание и передачу символа завершения.
23. Способ осуществления связи по однопроводной шине, содержащий: прием начального символа; прием одного или нескольких символов режима; прием одного или нескольких символов, указывающих идентификатор устройства; прием одного или нескольких доступов, причем доступ может быть доступом на считывание или на запись, для каждого доступа: прием одного или нескольких символов данных для доступа на запись, передачу одного или нескольких символов данных для доступа на считывание и прием символа завершения.
24. Устройство для обработки сигналов при преобразовании однопроводной шины в трехпроводную и содержащее: средство для приема сигнала по однопроводной шине; средство для обнаружения начального символа в сигнале; средство для установления стробирующего сигнала в ответ на обнаруженный начальный символ; средство для обнаружения символа завершения в сигнале и средство для деактивации стробирующего сигнала в ответ на обнаруженный символ завершения.
25. Устройство, выполненное с возможностью взаимодействия с трехпроводным шинным интерфейсом и содержащее: средство для выбора стробирующего входа, тактового входа и однопроводной шины для подсоединения к трехпроводному шинному интерфейсу в первом режиме; средство для формирования стробирующего и тактового сигналов в качестве реакции на то, что однопроводная шина находится во втором режиме; и средство для выбора сформированных стробирующего и тактового сигналов и однопроводной шины для подсоединения к трехпроводному шинному интерфейсу во втором режиме.
26. Устройство, выполненное с возможностью осуществления связи по однопроводной шине и содержащее: средство для передачи начального символа; средство для передачи одного или нескольких символов режима; средство для передачи одного или нескольких символов, указывающих идентификатор устройства; средство для передачи и приема одного или нескольких доступов, причем доступ может быть доступом на считывание или на запись, при этом данное средство: передает один или нескольких символов данных для доступа на запись и принимает один или несколько символов данных для доступа на считывание; и средство для передачи символа завершения.
27. Устройство, выполненное с возможностью осуществления связи по однопроводной шине и содержащее: средство для приема начального символа; средство для приема одного или нескольких символов режима; средство для приема одного или нескольких символов, указывающих идентификатор устройства; средство для приема одного или нескольких доступов, причем доступ может быть доступом на считывание или на запись; средство для приема одного или нескольких символов данных для доступа на запись; средство для передачи одного или нескольких символов данных для доступа на считывание и средство для приема символа завершения.
28. Машиночитаемый носитель, предназначенный для выполнения следующих этапов: прием сигнала по однопроводной шине; обнаружение начального символа в сигнале; установление стробирующего сигнала в ответ на обнаруженный начальный символ; обнаружение символа завершения и деактивация стробирующего сигнала в ответ на обнаруженный символ завершения.
29. Машиночитаемый носитель по п.28, дополнительно предназначенный для формирования тактового сигнала, причем тактовый сигнал содержит периодические импульсы, когда стробирующий сигнал установлен, и поддерживает постоянный уровень, когда стробирующий сигнал деактивирован.
30. Машиночитаемый носитель, предназначенный для выполнения следующих этапов: выбор стробирующего входа, тактового входа и однопроводной шины для подсоединения к трехпроводному шинному интерфейсу в первом режиме; формирование стробирующего и тактового сигналов в качестве реакции на то, что однопроводная шина находится во втором режиме; и выбор сформированных стробирующего и тактового сигналов и однопроводной шины для подсоединения к трехпроводному шинному интерфейсу во втором режиме.
31. Машиночитаемый носитель, предназначенный для выполнения следующих этапов: передачу начального символа; передачу одного или нескольких символов режима; передачу одного или нескольких символов, указывающих идентификатор устройства; передачу одного или нескольких доступов, причем доступ может быть доступом на считывание или на запись, для каждого доступа: передачу одного или нескольких символов данных для доступа на запись, прием одного или нескольких символов данных для доступа на считывание и передачу символа завершения.
32. Машиночитаемый носитель, предназначенный для выполнения следующих этапов: прием начального символа; прием одного или нескольких символов режима; прием одного или нескольких символов, указывающих идентификатор устройства; прием одного или нескольких доступов, причем доступ может быть доступом на считывание или на запись, для каждого доступа: прием одного или нескольких символов данных для доступа на запись, передачу одного или нескольких символов данных для доступа на считывание и прием символа завершения.
РИСУНКИ
|
|