Gömülü SPI İletişim Protokolünü Anlamak

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





İletişim, gömülü sistem tasarımında önemli bir rol oynar. Protokollere gitmeden, çevresel genişleme oldukça karmaşıktır ve yüksek güç tüketir. yerleşik sistem temelde çevre birimlerle iletişim kurmak için seri iletişimi kullanır.
UART, CAN, USB, I2C ve SPI iletişimi gibi birçok seri iletişim protokolü vardır. Seri iletişim protokolü özellikleri yüksek hız ve düşük veri kaybını içerir. Sistem düzeyinde tasarımı kolaylaştırır ve güvenilir veri aktarımı sağlar.

Seri Veri İletişimi

Elektriksel olarak kodlanmış bilgilere seri veri adı verilir ve bu veri, bir cihazdan diğerine bir dizi protokol aracılığıyla azar azar iletilir. Gömülü sistemde, kontrol sensörleri ve aktüatör verileri alınır veya mikro kontrolörler gibi kontrol cihazlarına iletilir, böylece veriler daha fazla analiz edilir ve işlenir. Mikrodenetleyiciler dijital verilerle çalışırken, analog sensörler , aktüatörler ve diğer çevre birimleri, mikro denetleyiciye iletilmeden önce bir bayt (8 bit) ikili kelimeye dönüştürülür.




Seri Veri İletişimi

Seri Veri İletişimi

Bu seri veriler, belirli saat darbesine göre iletilir. Veri aktarım hızı, baud hızı olarak adlandırılır. Saniyede iletilebilen veri bitlerinin sayısına baud hızı denir. Verinin 12 bayt olduğunu varsayalım, ardından her bayt 8 bit'e dönüştürülür, böylece veri aktarımının toplam boyutu verilerin yaklaşık 96 bit / sn'si (12 bayt x bayt başına 8 bit) olur. Veriler saniyede bir aktarılabiliyorsa, baud hızları yaklaşık 96 bit / sn veya 96 baud'dur. Görüntü ekranı, veri değerini saniyede bir yeniler.



Seri Çevresel Arayüz Temelleri

SPI iletişimi, seri çevresel arayüz anlamına gelir iletişim protokolü , Motorola tarafından 1972'de geliştirilmiştir. SPI arabirimi PIC, AVR ve PIC gibi popüler iletişim denetleyicilerinde mevcuttur. ARM denetleyicisi , vb. Tam çift yönlü olarak çalışan senkron seri iletişim veri bağlantısına sahiptir, bu, veri sinyallerinin her iki yönü aynı anda taşıdığı anlamına gelir.

SPI protokolü, master / slave iletişimi için kullanılan MISO, MOSI, CLK, SS gibi dört kablodan oluşur. Master bir mikrodenetleyicidir ve slave'ler sensörler gibi diğer çevre birimlerdir. GSM modem ve GPS modem, vb. Çoklu bağımlı birimler, bir SPI seri veriyolu üzerinden ana birim ile arayüzlenir. SPI protokolü Çoklu ana iletişimi desteklemez ve bir devre kartı içinde kısa bir mesafe için kullanılır.

Seri Çevresel Arayüz Temelleri

Seri Çevresel Arayüz Temelleri

SPI Hatları

MISO (Köle çıkışında Master) : MISO hattı, bir ana cihazda bir giriş ve bir bağımlı cihazda bir çıkış olarak yapılandırılır.


MOSI (Master çıkışı Slave girişi) : MOSI, bir ana cihazda bir çıkış olarak ve veri hareketini senkronize etmek için kullanıldığı bir bağımlı cihazda bir giriş olarak yapılandırılmış bir hattır.

SCK (seri saat) : Bu sinyal, ana birim ile ikincil birim arasındaki eşzamanlı veri aktarımı için daima ana birim tarafından sürülür. Veri hareketini MOSI ve MISO hatları üzerinden hem içeri hem dışarı senkronize etmek için kullanılır.

SS (Bağımlı Seçim) ve CS (Çip Seçimi) : Bu sinyal, münferit bağımlıları / Çevresel cihazları seçmek için ana cihaz tarafından yönlendirilir. Slave cihazları seçmek için kullanılan bir giriş hattıdır.

SPI Seri Veri Yolu ile Master Slave İletişimi

Tek Master ve Tek Bağımlı SPI Uygulaması

Burada iletişim her zaman usta tarafından başlatılır. Ana cihaz ilk olarak, bağımlı cihazın desteklediği maksimum frekanstan daha düşük veya ona eşit olan saat frekansını yapılandırır. Daha sonra ana birim, düşük duruma ve aktif hale gelmek için söz konusu bağımlı aygıtın çip seçme hattını (SS) sürükleyerek iletişim için istenen köleyi seçer. Master, verileri master'dan slave'e taşıyan MOSI hattında bilgi üretir.

Master Slave İletişimi

Master Slave İletişimi

Tek Master ve Çoklu Slave Uygulamaları

Bu, SPI seri veri yolu üzerinden bir ana ve birden çok bağımlı ile çoklu bağımlı konfigürasyondur. Birden fazla slave, SPI seri veri yolu ile ana cihaza paralel olarak bağlanır. Burada, tüm saat hatları ve veri hatları birbirine bağlıdır, ancak her bir bağımlı cihazdan gelen çip seçme pini, maser cihazındaki ayrı bir bağımlı seçim pinine bağlanmalıdır.

Tek Master ve birden fazla slave

Tek Master ve birden fazla slave

Bu süreçte, her bir bağımlı aygıtın kontrolü bir çip seçme hattı (SS) tarafından gerçekleştirilir. Çip seçme pini, ikincil cihazı etkinleştirmek için alçalır ve bağımlı cihazı devre dışı bırakmak için yükselir.

Veri aktarımı, sırasıyla yaklaşık 8 bit ve 16 bitlik belirli bir kelime boyutuna sahip ana ve bağımlı cihazlarda kaydırma yazmaçları kullanılarak düzenlenir. Her iki cihaz da bir halka biçiminde bağlanır, böylece maser kaydırma yazmacı değeri MOSI hattı üzerinden iletilir ve ardından ikincil öğe, kaydırma yazmacındaki verileri kaydırır. Veriler genellikle önce MSB ile kaydırılır ve yeni LSB aynı yazmacıya kaydırılır.

Master ve Slave arasında Veri Aktarımı

Master ve Slave arasında Veri Aktarımı

Saat Polaritesinin ve Fazının Önemi

Genellikle verilerin iletimi ve alımı, yükselen kenarlarda ve düşen kenarlarda saat darbelerine göre gerçekleştirilir. Gelişmiş mikrodenetleyicilerin iki frekansı vardır: dahili frekans ve harici frekans. MISO, MOSI ve SCLK hatları paylaşılarak SPI çevre birimleri eklenebilir. Çevre birimleri ADC, DAC, vb. Gibi farklı türlerde veya hızlardadır. Bu nedenle, farklı çevre birimlerine aktarımlar arasındaki SPCR ayarlarını değiştirmemiz gerekir.

SPCR kaydı

SPCR kaydı

SPI veriyolu, kullanılacak bir saat formatını tanımlayan bir saat polaritesi (CPOL) ve saat fazı (CPHA) ile 4 farklı transfer modundan birinde çalışır. Saat polaritesi ve faz saati hızları, ana cihazla hangi çevresel aygıtla iletişim kurmaya çalıştığınıza bağlıdır.
CPHA = 0, CPOL = 0: İlk bit daha düşük bir sinyal olarak başlar - veri yükselen kenarda örneklenir ve veri düşen kenarda değişir.

CPHA = 0, CPOL = 1: İlk bit daha düşük bir saatle başlar - veri düşen kenarda örneklenir ve veri yükselen kenarda değişir.

CPHA = 1, CPOL = 0: İlk bit daha yüksek bir saatle başlar - veri düşen kenarda örneklenir ve veri yükselen kenarda değişir.

CPHA = 1, CPOL = 1: İlk bit daha yüksek bir saatle başlar - veri yükselen kenarda örneklenir ve veri düşen kenarda değişir.

SPI Bus zamanlamaları

SPI Bus zamanlamaları

SPI İletişim Protokolü

Çoğu mikro denetleyici, tüm gönderme ve alma verilerini işleyen yerleşik SPI protokollerine sahiptir. Veri modu işlemlerinden herhangi biri (R / W), SPI Protokolünün bir kontrol ve durum kayıtları tarafından kontrol edilir. Burada, SPI protokolü aracılığıyla PIC16f877a mikro denetleyicisine EEPROM arayüzünü gözlemleyebilirsiniz.

Burada 25LC104 EEROM, mikro denetleyicinin iki bayt veriyi bilgisayara aktardığı 131072 baytlık bir bellektir. EEROM bellek bir SPI seri veri yolu aracılığıyla. Bu arayüz için program aşağıda verilmiştir.

SPI seri veri yolu aracılığıyla Master - Slave iletişim

SPI seri veri yolu aracılığıyla Master - Slave iletişim

#Dahil etmek
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Void başlat EEROM ()
Void main ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

SPI Protokolünün Avantajları

  • Tam çift yönlü bir iletişimdir.
  • Yüksek hızlı veri yolu 10MHz'dir.
  • Aktarım sırasında 8 bit ile sınırlı değildir
  • Donanım arabirimi, SPI aracılığıyla basittir.
  • Slave, bir ana saat kullanır ve değerli osilatörlere ihtiyaç duymaz.

Bu tamamen SPI iletişimi ve onun bir mikrodenetleyici ile arayüz oluşturma . Bu makaleye gösterdiğiniz yoğun ilgiyi ve ilgiyi takdir ediyor ve bu nedenle bu makaleye bakış açınızı bekliyoruz. Ayrıca, herhangi bir arayüz kodlaması ve yardımı için, aşağıya yorum yaparak bize sorabilirsiniz.

Fotoğrafa katkı verenler: