Автор: Степаненко С. В., Meister E., Шевченко О. Г.
Источник: Информатика и компьютерные технологии – 2009 / Материалы V международной научно-технической конференции студентов, аспирантов и молодых учёных. – Донецк, ДонНТУ – 2009. – 521 с. С. 97–103.
Степаненко С. В., Meister E., Шевченко О. Г. Использование последовательного периферийного интерфейса (SPI) для связи процессора и внешних устройств.
В данной статье для связи процессора и внешних устройств использовался последовательный периферийный интерфейс (SPI).
Основной задачей проектов Symbrion, Replicator, в которых я принимаю участие в ходе научного сотрудничества со Штутгартским университетом, является исследование и разработка принципов адаптации и эволюции роботехнических организмов, состоящих из большого количества отдельных роботов, которые могут соединяться друг с другом, делиться энергией и вычислительными ресурсами. Такие организмы могут динамически перестраивать свою структуру, определяя наиболее подходящую в данный момент форму и взаимодействовать с окружающим миром при помощи датчиков и исполнительных механизмов. Модель эволюционирования таких коллективов роботов обеспечивает их конфигурирование, масштабируемость и приспособление к условиям окружающей среды без участия человека. При этом возможно самостоятельное перепрограммирование роботов с получением новой, непредусмотренной заранее функциональности [1].
При разработке различных устройств обязательно возникает проблема передачи информации между центральным процессором и периферией. Под периферией можно понимать как дополнительные процессоры, так и различные внешние устройства, например карты памяти.
В разрабатываемых роботах центральным процессором был выбран процессор семейства ADI Blackfin, два ядра которого предоставляют достаточную производительность для обработки всей поступающей информации и в то же время динамическое управление энергопотреблением позволяет экономить заряд аккумуляторов, когда большой вычислительной мощности не требуется. Периферией в данном случае оказались:
Одним из интерфейсов, который может использоваться для этой цели, является последовательный периферийный интерфейс (англ. Serial Peripheral Interface – SPI).
В ходе научного сотрудничества со Штутгартским университетом была поставлена задача исследовать целесообразность использования SPI как основного интерфейса обмена информацией между внутренними устройствами робота.
SPI – популярный интерфейс для последовательного обмена данными между микросхемами. Интерфейс SPI, наряду с I2C (Inter-Integrated Circuit — последовательная шина данных), относится к самым широко-используемым интерфейсам для соединения микросхем. Изначально он был придуман компанией Motorola, а в настоящее время используется в продукции многих производителей. Его наименование является аббревиатурой от Serial Peripheral Interface Bus
, что отражает его предназначение – шина для подключения внешних устройств. Шина SPI организована по принципу ведущий-подчиненный
. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом [2].
В отличие от стандартного последовательного порта (англ. standard serial port), SPI является синхронным интерфейсом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал выбор кристалла
(англ. chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участия в передаче по SPI.
В SPI используются четыре цифровых сигнала [3]:
Самое простое подключение, в котором участвуют только две микросхемы, показано на рисунке 1. Здесь, ведущий передает данные по линии MOSI синхронно со сгенерированным им же сигналом SCLK, а подчиненный захватывает переданные биты данных по определенным фронтам принятого сигнала синхронизации. Одновременно с этим подчиненный отправляет свою посылку данных. Чтобы подчиненная ИС принимала и передавала данные, помимо наличия сигнала синхронизации, необходимо также, чтобы линия SS была переведена в низкое состояние. В противном случае, подчиненная ИС будет неактивна [4].
В ходе исследований были разработаны подпрограммы работы с файловыми системами класса FAT на картах памяти типов MMC и SD (включая также карты нового типа высокой емкости – SDHC). Данные подпрограммы предназначены для работы на процессоре архитектуры ARM под управлением операционной системы реального времени SymbricatorOS. Эффективность использования SPI доказана возможностью работы с картами памяти на любой частоте, вплоть до верхнего предела рабочей частоты карты в 25 МГц [5].
Как уже говорилось, центральным процессором в роботе будет процессор семейства ADI Blackfin. Данные процессоры также имеют интерфейс SPI, но могут работать только в качестве ведущих устройств. При этом к процессору можно подключить до 8 ведомых устройств, выбор устройства осуществляется низким уровнем на соответствующем выводе ~SS (~CS) [6]. Пример параллельного подключения устройств показан на рисунке 2.
Процессоры семейства Blackfin работают с операционной системой μClinux (от англ. MicroController Linux) – Linux-подобной встраиваемой операционной системой для микроконтроллеров, не имеющих блока управления памятью [7].
Была протестирована работа с картами памяти по шине SPI и на этом процессоре. К преимуществам можно отнести простоту управления картами памяти в режиме SPI.
Также исследовалась возможность передачи информации между несколькими устройствами: процессорами Blackfin (ведущий), ARM (ведомый), MSP (ведомый), карта памяти (ведомая).
После всех исследований стало возможным более полно определить достоинства и недостатки интерфейса SPI по сравнению с другими интерфейсами, которые можно использовать для тех же целей (например I2C — Inter-Integrated Circuit, CAN — Controller-area network, RS-232 и другие).
Преимущества:
уникальныйсигнал на устройство (выбор кристалла); остальные являются общими
Недостатки:
выбор кристалла
После анализа недостатков стало ясно, что для поставленной задачи – связи процессора и периферийных устройств робота, интерфейс SPI подходит больше остальных, т.к. он
Было принято решение в дальнейшей разработке проекта для внутренней коммуникации использовать именно интерфейс SPI.