Кроме того, может использоваться сигнал выбора ведомого устройства SS#
CS#
— Chip Select): ведомое устройство должно реагировать на сигналы интерфейса и генерировать выходные данные на линии MISO только при низком уровне этого сигнала; при высоком уровне выход MISO
должен переводиться в высокоимпедансное состояние. С помощью сигналов SS#
, раздельно формируемых ведущим устройством для каждого из ведомых устройств, ведущее устройство может выбирать партнером в транзакции одно из ведомых. При этом получается гибридная топология соединений: по сигналам SCK
, MOSI
и MISO
— топология шинная, по SS#
— звездообразная (центр — ведущее устройство).Возможен и иной способ общения ведущего устройства с несколькими ведомыми устройствами с чисто шинной топологией. Здесь сигнал SS#
MISO
до конца текущей транзакции. Однако этот вариант требует довольно сложной логики поведения ведомого устройства.Данные передаются старшим битом вперед. Устройства различных производителей могут использовать разные режимы обмена (SPI Mode 0…SPI Mode 3), различающиеся фазой и полярностью синхросигналов. Рис. 11.5 иллюстрирует передачу и прием байта в различных режимах. Заметим, что в любом режиме входные и выходные данные стробируются по разным перепадам синхроимпульсов. Кроме того, есть варианты в использовании сигнала SS#
SS#
, а завершения — его подъем. Во втором варианте начало транзакции определяется по первому фронту (спаду) SCK
, а сигнал SS#
может иметь низкий уровень постоянно. Второй вариант иногда предпочитают для простейшего двухточечного интерфейса с единственным ведущим устройством и единственным ведомым устройством, когда нет опасения потери синхронизации. Микроконтроллеры с аппаратным портом SPI, как правило, имеют возможность программного выбора режима. Форматы транзакций зависят от устройств, но общая идея такова: ведущее устройство по линии MOSI
посылает код операции и адресную информацию для устройства; затем следуют данные. В операции записи они передаются ведущим устройством по той же линии, в операции чтения устройство их посылает по линии MISO
. На время всей транзакции ведущее устройство сохраняет активное состояние линии SS#
, число требуемых синхроимпульсов зависит от формата команды.Рис. 11.5
. Форматы передач по интерфейсу SPI11.4. Интерфейс JTAG
Интерфейс JTAG (Joint Test Action Group) предназначен для тестирования сложных логических схем, установленных в целевое устройство. Этот интерфейс описан в стандарте IEEE 1149.1 Boundary Scan Architecture и является последовательным синхронным, но в связи со спецификой назначения значительно отличается от вышеописанных интерфейсов, ориентированных на передачу данных. Интерфейсом JTAG управляет одно устройство-контроллер (чаще всего это ПК с соответствующим интерфейсным адаптером), к которому может быть подключено несколько тестируемых устройств. Ниже перечислены сигналы интерфейса JTAG.
♦ TCK
♦ TMS
♦ TDI
♦ TDO
♦ TRST
Эти сигналы (все однонаправленные), имеющие обычные логические уровни, образуют тестовый порт
Рис. 11.6
. Цепочка устройств с интерфейсом JTAG