Memahami mengenai Protokol Komunikasi SPI di Embedded

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Komunikasi memainkan peranan penting dalam merancang sistem tertanam. Tanpa pergi ke protokol, pengembangan periferal sangat kompleks dan memakan tenaga tinggi. The sistem tertanam pada dasarnya menggunakan komunikasi bersiri untuk berkomunikasi dengan periferal.
Terdapat banyak protokol komunikasi bersiri, seperti komunikasi UART, CAN, USB, I2C dan SPI. Bersiri protokol komunikasi ciri termasuk kehilangan data berkelajuan tinggi dan rendah. Ini menjadikan perancangan tahap sistem lebih mudah, dan memastikan pemindahan data yang boleh dipercayai.

Komunikasi Data Bersiri

Maklumat berkod elektrik disebut data bersiri, yang dihantar sedikit demi sedikit dari satu peranti ke peranti lain melalui satu set protokol. Dalam sistem tertanam, data sensor dan penggerak kawalan diterima atau dihantar ke alat pengawal seperti mikrokontroler sehingga data dianalisis dan diproses lebih lanjut. Oleh kerana mikrokontroler berfungsi dengan data digital, maklumat dari sensor analog , penggerak dan periferal lain ditukar menjadi kata binari satu bait (8-bit) sebelum dihantar ke mikrokontroler.




Komunikasi Data Bersiri

Komunikasi Data Bersiri

Data bersiri ini dihantar sehubungan dengan denyut jam tertentu. Kadar penghantaran data disebut sebagai baud rate. Jumlah bit data yang dapat dihantar sesaat disebut sebagai baud rate. Andaikan data 12 bait, maka setiap bait ditukar menjadi 8 bit sehingga jumlah keseluruhan penghantaran data adalah sekitar 96 bit / saat data (12 byte * 8 bit per bita). Sekiranya data dapat dihantar sekali setiap saat, kadar baud sekitar 96 bit / saat atau 96 baud. Layar paparan menyegarkan nilai data setiap saat.



Asas Antara Muka Periferal Bersiri

Komunikasi SPI bermaksud antara muka periferal bersiri protokol komunikasi , yang dikembangkan oleh Motorola pada tahun 1972. Antaramuka SPI tersedia pada pengawal komunikasi yang popular seperti PIC, AVR, dan Pengawal ARM , dll. Ia mempunyai pautan data komunikasi bersiri segerak yang beroperasi dalam dupleks penuh, yang bermaksud isyarat data membawa kedua arah secara serentak.

Protokol SPI terdiri daripada empat wayar seperti MISO, MOSI, CLK, SS yang digunakan untuk komunikasi tuan / hamba. Masternya adalah mikrokontroler, dan hamba adalah periferal lain seperti sensor, Modem GSM dan modem GPS, dll. Pelbagai hamba dihubungkan dengan master melalui bas bersiri SPI. Protokol SPI tidak menyokong komunikasi Multi-master dan digunakan untuk jarak pendek dalam papan litar.

Asas Antara Muka Periferal Bersiri

Asas Antara Muka Periferal Bersiri

Garisan SPI

MISO (Master di Slave out) : Garis MISO dikonfigurasi sebagai input dalam peranti induk dan sebagai output dalam peranti hamba.


MOSI (Master keluar hamba) : MOSI adalah garis yang dikonfigurasikan sebagai output dalam perangkat induk dan sebagai input dalam perangkat hamba di mana ia digunakan untuk menyegerakkan pergerakan data.

SCK (jam bersiri) : Isyarat ini selalu didorong oleh tuan untuk pemindahan data segerak antara tuan dan hamba. Ia digunakan untuk menyegerakkan pergerakan data masuk dan keluar melalui garis MOSI dan MISO.

SS (Slave Select) dan CS (Chip Select) : Isyarat ini didorong oleh tuan untuk memilih hamba / peranti Periferal individu. Ini adalah saluran input yang digunakan untuk memilih peranti hamba.

Komunikasi Master Slave dengan Bas Serial SPI

Pelaksanaan SPI Master Tunggal dan Hamba Tunggal

Di sini, komunikasi selalu dimulakan oleh tuan. Peranti induk terlebih dahulu mengkonfigurasi frekuensi jam yang kurang dari atau sama dengan frekuensi maksimum yang disokong oleh peranti hamba. Tuan kemudian memilih hamba yang diinginkan untuk komunikasi dengan menyeret garis pilih cip (SS) pada peranti hamba tertentu untuk berada dalam keadaan rendah dan aktif. Master menghasilkan maklumat ke garis MOSI yang membawa data dari tuan ke hamba.

Komunikasi Master Slave

Komunikasi Master Slave

Pelaksanaan Master Tunggal dan Pelbagai Budak

Ini adalah konfigurasi berbilang hamba dengan satu tuan dan beberapa hamba melalui bas bersiri SPI. Pelbagai hamba dihubungkan selari dengan peranti induk dengan bas bersiri SPI. Di sini, semua garis jam dan garis data disambungkan bersama, tetapi pin pilih cip dari setiap peranti hamba mesti disambungkan ke pin pilih hamba yang terpisah pada peranti maser.

Tuan Tunggal dan hamba berganda

Tuan Tunggal dan hamba berganda

Dalam proses ini, kawalan setiap peranti hamba dilakukan oleh chip select line (SS). Pin pilih chip rendah untuk mengaktifkan peranti hamba dan naik tinggi untuk mematikan peranti hamba.

Pemindahan data diatur dengan menggunakan register shift pada kedua-dua peranti master dan slave dengan ukuran kata yang diberikan masing-masing sekitar 8-bit dan 16-bit. Kedua-dua peranti disambungkan dalam bentuk cincin sehingga nilai maser shift register ditransmisikan melalui garis MOSI, dan kemudian hamba mengalihkan data dalam shift shiftnya. Data biasanya dialihkan keluar dengan MSB terlebih dahulu dan mengalihkan LSB baru ke daftar yang sama.

Pemindahan Data antara Tuan dan Budak

Pemindahan Data antara Tuan dan Budak

Kepentingan Polaritas dan Fasa Jam

Secara amnya penghantaran dan penerimaan data dilakukan berkaitan dengan denyutan jam pada sisi naik dan tepi jatuh. Mikrokontroler lanjutan mempunyai dua frekuensi: frekuensi dalaman dan frekuensi luaran. Perisian SPI boleh ditambah dengan berkongsi garis MISO, MOSI dan SCLK. Periferal mempunyai pelbagai jenis atau kelajuan seperti ADC, DAC, dll. Oleh itu, kita perlu mengubah tetapan SPCR antara pemindahan ke periferal yang berbeza.

Daftar SPCR

Daftar SPCR

Bas SPI beroperasi dalam salah satu daripada 4 mod pemindahan yang berbeza dengan polaritas jam (CPOL) dan fasa jam (CPHA) yang menentukan format jam yang akan digunakan. Kutuban jam dan kadar jam fasa bergantung pada peranti persisian yang anda cuba berkomunikasi dengan induk.
CPHA = 0, CPOL = 0: Bit pertama dimulakan sebagai isyarat yang lebih rendah - data disampel pada sisi yang meningkat dan data berubah pada sisi yang jatuh.

CPHA = 0, CPOL = 1: Bit pertama dimulakan dengan jam yang lebih rendah - data diambil sampel di pinggir jatuh dan data berubah pada kenaikan tepi.

CPHA = 1, CPOL = 0: Bit pertama dimulakan dengan jam yang lebih tinggi - data disampel di pinggir jatuh dan data berubah pada kenaikan tepi.

CPHA = 1, CPOL = 1: Bit pertama dimulakan dengan jam yang lebih tinggi - data disampel pada sisi naik, dan data berubah pada jatuh.

Waktu bas SPI

Waktu bas SPI

Protokol Komunikasi SPI

Banyak pengawal mikro mempunyai protokol SPI terbina dalam yang mengendalikan semua data penghantaran dan penerimaan. Sebarang operasi mod data (R / W) dikendalikan oleh kawalan dan daftar status Protokol SPI. Di sini, anda dapat melihat antara muka EEPROM ke mikrokontroler PIC16f877a melalui protokol SPI.

Di sini, 25LC104 EEROM adalah memori 131072 byte di mana mikrokontroler memindahkan dua bait data ke Memori EEROM melalui bas bersiri SPI. Program untuk antaramuka ini diberikan di bawah.

Komunikasi Master to Slave melalui bas bersiri SPI

Komunikasi Master to Slave melalui bas bersiri SPI

#sertakan
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Membatalkan permulaan EEROM ()
Batal utama ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_tulis (1234)
SS = 0
}

Kelebihan Protokol SPI

  • Ia adalah komunikasi dupleks penuh.
  • Ia adalah bas data berkelajuan tinggi 10MHz.
  • Ia tidak terhad kepada 8 bit semasa memindahkan
  • Antaramuka perkakasan mudah dilakukan melalui SPI.
  • Budak menggunakan jam induk dan tidak memerlukan pengayun berharga.

Ini semua mengenai komunikasi SPI dan komunikasi itu berinteraksi dengan mikrokontroler . Kami menghargai minat dan perhatian anda yang mendalam untuk artikel ini dan oleh itu kami akan menantikan pandangan anda mengenai artikel ini. Selanjutnya, untuk sebarang pengkodan dan bantuan antara muka, anda boleh meminta kami dengan memberi komen di bawah.

Kredit Foto:

  • Komunikasi Data Bersiri oleh kawasan glowscotland
  • Asas Antara Muka Periferal Bersiri oleh ni
  • Tuan Tunggal dan berbilang hamba oleh makan
  • Pemindahan Data antara Master dan Slave oleh jurutera
  • Waktu bas SPI menjelang maksimum