SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным (англ. four-wire) интерфейсом.
В отличие от стандартного последовательного порта (англ. standard serial port), SPI является синхронным интерфейсом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (англ. chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI.
В SPI используются четыре цифровых сигнала:
Ниже представлен пример программной реализации SPI мастера на языке Си. Линия «chip select» (выбор микросхемы) должна быть активирована (в большинстве случаев это означает-притянута к низкому уровню), перед тем, как начнётся обмен данными, и деактивирована после окончания обмена. Большинство устройств требуют несколько сеансов передачи с активной линией chip select. Эта процедура может быть вызвана несколько раз, пока линия активна.
unsigned char SPIBitBang8BitsMode0(unsigned char byte) { unsigned char bit; for (bit = 0; bit < 8; bit++) { /* записать MOSI по спаду предыдущего тактового импульса */ if (byte & 0x80) SETMOSI(); else CLRMOSI(); byte <<= 1; /* ждём половину тактового периода перед тем как сгенерировать фронт */ SPIDELAY(SPISPEED/2); SETCLK(); /* ждём половину тактового периода перед тем как сгенерировать спад */ SPIDELAY(SPISPEED/2); /* читаем MISO on trailing edge */ byte |= READMISO(); CLRCLK(); } return byte; }
Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её. Это примечание по возможности следует заменить более точным. |
Компьютерные шины | |
---|---|
Основные понятия | Шина адреса • Шина данных • Шина управления • Пропускные способности |
Процессоры | BSB • FSB • DMI • HyperTransport • QPI |
Внутренние | AGP • ASUS Media Bus • EISA • InfiniBand • ISA • LPC • MBus • MCA • NuBus • PCI • PCIe • PCI-X • Q-Bus • SBus • SMBus • VLB • VMEbus • Zorro III |
Ноутбуки | ExpressCard • MXM • PC Card |
Накопители | ST-506 • ESDI • ATA • eSATA • Fibre Channel • HIPPI • iSCSI • SAS • SATA • SCSI |
Периферия | 1-Wire • ADB • I²C • IEEE 1284 (LPT) • IEEE 1394 (FireWire) • Multibus • PS/2 • RS-232 • RS-485 • SPI • USB • Игровой порт |
Универсальные | Futurebus • InfiniBand • QuickRing • SCI • RapidIO • IEEE-488 • Thunderbolt (Light Peak) |
Serial peripheral interface реферат, serial peripheral interface перевод, serial peripheral interface bus queued_serial_peripheral_interface_.28qspi.29.
(26) Прозерпина, Honda RA301, Игривый, Файл:Pont Du Gard2.jpg, Жёлтый адмирал.