Antaramuka Peranti Bersiri (SPI) digunakan untuk komunikasi jarak dekat, terutamanya dalam sistem terbenam. Protokol komunikasi bersiri yang lebih biasa ialah I2C, yang memudahkan komunikasi antara komponen elektronik, sama ada komponen berada pada PCB yang sama atau disambungkan dengan kabel.
Memilih antara I2C dan SPI, dua protokol komunikasi bersiri utama, memerlukan pemahaman yang kukuh tentang kelebihan dan had I2C, SPI dan aplikasi. Setiap protokol komunikasi mempunyai kelebihan tersendiri yang cenderung membezakan diri mereka apabila ia digunakan pada aplikasi anda.
- Lebih baik untuk aplikasi berkelajuan tinggi dan kuasa rendah.
- Bukan standard rasmi-biasanya kurang serasi.
- Lebih baik untuk komunikasi dengan beberapa peranti dan menukar peranan peranti utama.
- Penstandardan memastikan keserasian yang lebih baik.
SPI adalah lebih baik untuk aplikasi berkelajuan tinggi dan berkuasa rendah. I2C lebih sesuai untuk komunikasi dengan sejumlah besar peranti. Kedua-dua SPI dan I2C adalah protokol komunikasi yang teguh dan stabil untuk aplikasi terbenam yang sangat sesuai untuk dunia terbenam.
Kebaikan dan Keburukan SPI
-
Menyokong komunikasi dupleks penuh berkelajuan lebih tinggi.
- Kuasa sangat rendah.
- Jarak pemindahan pendek, tidak dapat berkomunikasi antara komponen pada PCB yang berasingan.
- Beberapa varian dan penyesuaian boleh menimbulkan masalah keserasian.
- Memerlukan talian isyarat tambahan untuk mengurus berbilang peranti pada bas yang sama.
- Tidak mengesahkan bahawa data diterima dengan betul.
- Lebih mudah terdedah kepada bunyi bising.
Serial to Peripheral Interface ialah antara muka komunikasi bersiri empat wayar berkuasa sangat rendah. Ia direka supaya pengawal dan peranti IC boleh berkomunikasi antara satu sama lain. Bas SPI ialah bas dupleks penuh, yang membolehkan komunikasi mengalir ke dan dari peranti utama secara serentak pada kadar sehingga 10 Mbps. Operasi berkelajuan tinggi SPI secara amnya mengehadkannya daripada digunakan untuk berkomunikasi antara komponen pada PCB yang berasingan kerana peningkatan kapasiti yang ditambah oleh komunikasi jarak jauh kepada talian isyarat. Kapasiti PCB juga boleh mengehadkan panjang talian komunikasi SPI.
Walaupun SPI ialah protokol yang telah ditetapkan, ia bukan piawaian rasmi. SPI menawarkan beberapa varian dan penyesuaian yang membawa kepada masalah keserasian. Pelaksanaan SPI hendaklah sentiasa disemak antara pengawal utama dan persisian sekunder untuk memastikan gabungan itu tidak akan mengalami masalah komunikasi yang tidak dijangka yang menjejaskan pembangunan produk.
Kebaikan dan Keburukan I2C
- Menyokong berbilang peranti pada bas yang sama tanpa talian isyarat pilihan tambahan melalui pengalamatan peranti dalam komunikasi.
- Standard rasmi menyediakan keserasian antara pelaksanaan I2C dan keserasian ke belakang.
- Memastikan data yang dihantar diterima oleh peranti kedua.
- Boleh menghantar keluar dari PCB, tetapi pada kelajuan penghantaran yang rendah.
- Lebih murah untuk dilaksanakan daripada protokol komunikasi SPI.
- Kurang terdedah kepada hingar berbanding SPI.
-
Hantar data pada jarak yang lebih jauh.
- Kelajuan pemindahan dan kadar data yang lebih perlahan.
- Boleh dikunci oleh satu peranti yang gagal melepaskan bas komunikasi.
- Menarik lebih banyak kuasa daripada SPI.
I2C ialah protokol komunikasi bersiri standard rasmi yang hanya memerlukan dua talian isyarat yang direka bentuk untuk komunikasi antara cip pada PCB. I2C pada asalnya direka untuk komunikasi 100 kbps. Namun, mod penghantaran data yang lebih pantas telah dibangunkan selama ini untuk mencapai kelajuan sehingga 3.4 Mbps. Protokol I2C telah ditetapkan sebagai standard rasmi, memberikan keserasian yang baik antara pelaksanaan I2C dan keserasian ke belakang yang baik.
Selain daripada senarai kebaikan dan keburukan di atas, I2C hanya memerlukan dua wayar. SPI memerlukan tiga atau empat. Tambahan pula, SPI hanya menyokong satu peranti utama pada bas manakala I2C menyokong berbilang peranti utama.
Memilih Antara I2C dan SPI
Secara keseluruhan, SPI adalah lebih baik untuk aplikasi berkelajuan tinggi dan kuasa rendah, manakala I2C lebih sesuai untuk komunikasi dengan sejumlah besar persisian, serta dalam situasi yang melibatkan perubahan dinamik peranan peranti utama di kalangan persisian pada I2C bas.