Protokol Komunikasi Arduino

Protokol Komunikasi Arduino



Protokol komunikasi ialah set peraturan yang membolehkan peranti berkomunikasi dan bertukar data. Protokol ini sangat penting dalam komunikasi Arduino kerana Arduino sentiasa menghantar dan menerima data. Menggunakan protokol ini membantu Arduino untuk meliputi pengesanan ralat dan kemungkinan kaedah pemulihan ralat. Protokol ini menyatukan peranti analog dan digital dan memungkinkan untuk mereka bentuk berbilang projek.

Protokol Komunikasi Arduino

Dengan menggunakan protokol Komunikasi, kami boleh menghantar dan menerima sebarang data penderia dalam Arduino.

Sesetengah penderia mudah seperti Inframerah (IR) boleh berkomunikasi secara langsung dengan Arduino tetapi beberapa penderia kompleks seperti modul Wi-Fi, modul kad SD dan Gyroscope tidak boleh berkomunikasi secara langsung dengan Arduino tanpa sebarang protokol komunikasi. Jadi, itulah sebabnya protokol ini merupakan bahagian penting dalam komunikasi Arduino.







Arduino mempunyai pelbagai peranti yang dipasang padanya; antaranya terdapat tiga peranti komunikasi yang digunakan dalam papan Arduino.



Protokol Komunikasi Arduino

Komunikasi antara peranti elektronik yang berbeza seperti Arduino diseragamkan antara ketiga-tiga protokol ini; ia membolehkan pereka bentuk berkomunikasi antara peranti yang berbeza dengan mudah tanpa sebarang masalah keserasian. Kerja ketiga-tiga protokol ini adalah sama kerana ia mempunyai tujuan komunikasi yang sama, tetapi ia berbeza dalam pelaksanaan di dalam litar. Penerangan lanjut mengenai protokol ini dibincangkan di bawah.







UART

UART dikenali sebagai Pemancar Penerima Asynchronous Universal. UART ialah protokol komunikasi bersiri yang bermaksud bit data dipindahkan dalam bentuk berurutan satu demi satu. Untuk menyediakan komunikasi UART kita memerlukan dua talian. Satu ialah pin Tx (D1) papan Arduino dan yang kedua ialah pin Rx(D0) papan Arduino. Pin Tx adalah untuk menghantar data ke peranti dan pin Rx digunakan untuk menerima data. Papan Arduino yang berbeza mempunyai beberapa pin UART.

Pin Digital Arduino Pin UART
D1 Tx
D0 Rx

Untuk mewujudkan komunikasi Bersiri menggunakan port UART kita perlu menyambungkan dua peranti dalam konfigurasi yang ditunjukkan di bawah:



Pada Arduino Uno, satu port bersiri didedikasikan untuk komunikasi yang biasanya dirujuk sebagai port USB. Seperti namanya, Bas Bersiri Universal, jadi ia adalah port bersiri. Menggunakan port USB Arduino boleh mewujudkan komunikasi dengan komputer. Port USB disambungkan ke pin onboard Tx dan Rx Arduino. Menggunakan pin ini, kami boleh menyambungkan sebarang perkakasan luaran selain Komputer melalui USB. Arduino IDE menyediakan perpustakaan SoftwareSerial (SoftwareSerial.h) yang membolehkan pengguna menggunakan pin GPIO sebagai pin Serial Tx dan Rx.

  • UART mudah dikendalikan dengan Arduino
  • UART tidak memerlukan sebarang isyarat jam
  • Kadar baud mesti ditetapkan dalam had 10% daripada peranti berkomunikasi untuk mengelakkan kehilangan data
  • Berbilang peranti dengan Arduino dalam konfigurasi Master Slave tidak boleh dilakukan dengan UART
  • UART ialah separuh dupleks, yang bermaksud peranti tidak boleh menghantar dan menerima data pada masa yang sama
  • Hanya dua peranti pada satu masa boleh berkomunikasi dengan protokol UART

Antara Muka Peranti Bersiri (SPI)

SPI ialah akronim bagi antara muka persisian bersiri yang direka khas untuk mikropengawal berkomunikasi dengan mereka. SPI beroperasi pada mod dupleks penuh yang bermaksud SPI boleh menghantar dan menerima data secara serentak. Jika dibandingkan dengan UART dan I2C ia adalah peranti komunikasi terpantas dalam papan Arduino. Ia biasanya digunakan di mana kadar data yang tinggi diperlukan seperti dalam paparan LCD dan aplikasi kad SD Mikro.

Pin digital SPI pada Arduino dipratakrifkan. Untuk konfigurasi pin Arduino Uno SPI adalah seperti berikut:

Talian SPI GPIO Pin Pengepala ICSP
SCK 13 3
MISO 12 1
ASAP sebelas 4
SS 10
  • MOSI adalah singkatan dari Kuasai Hamba Masuk , MOSI ialah talian penghantaran data untuk Master to Slave.
  • SCK ialah a Garisan jam yang mentakrifkan kelajuan penghantaran dan ciri akhir permulaan.
  • SS bermaksud Pilihan Hamba ; Barisan SS membenarkan Master memilih peranti Slave tertentu apabila beroperasi dalam konfigurasi Slave berbilang.
  • MISO bermaksud Master dalam Slave Out ; MISO ialah talian penghantaran Hamba kepada Master untuk Data.

Salah satu sorotan utama protokol SPI ialah konfigurasi Master-Slave. Menggunakan SPI satu peranti boleh ditakrifkan sebagai Master untuk mengawal beberapa peranti Slave. Master mengawal sepenuhnya peranti Slave melalui protokol SPI.

SPI ialah protokol segerak, yang bermaksud komunikasi dikaitkan dengan isyarat jam biasa antara Master dan Slave. SPI boleh mengawal berbilang peranti sebagai Hamba melalui satu talian hantar dan terima. Semua Hamba disambungkan kepada Guru menggunakan biasa MISO menerima talian bersama-sama dengan ASAP satu talian penghantaran biasa. SCK juga merupakan garis jam biasa antara peranti Master dan Slave. Hanya perbezaan dalam peranti Slave ialah setiap peranti hamba dikawal melalui berasingan SS pilih baris. Ini bermakna setiap Slave memerlukan pin GPIO tambahan dari papan Arduino yang akan bertindak sebagai baris pilihan untuk peranti Slave tertentu itu.

Beberapa sorotan utama protokol SPI disenaraikan di bawah:

  • SPI adalah protokol terpantas daripada I2C dan UART
  • Tiada bit mula dan henti diperlukan seperti dalam UART yang bermaksud penghantaran data berterusan adalah mungkin
  • Slave boleh ditangani dengan mudah kerana konfigurasi Master Slave yang mudah
  • Untuk setiap Slave, pin tambahan diduduki pada papan Arduino. Secara praktikal 1 Master boleh mengawal 4 peranti Slave
  • Pengakuan data tiada seperti yang digunakan dalam UART
  • Konfigurasi Master berbilang tidak boleh dilakukan

Protokol Komunikasi I2C

Litar Bersepadu Antara (I2C) ialah protokol komunikasi lain yang digunakan oleh papan Arduino. I2C ialah protokol yang paling sukar dan rumit untuk dilaksanakan dengan Arduino dan peranti lain. Walaupun rumit, ia menawarkan berbilang ciri yang tiada dalam protokol lain seperti berbilang konfigurasi Master dan berbilang Hamba. I2C membolehkan menyambung sehingga 128 peranti ke papan Arduino utama. Ini hanya mungkin kerana I2C berkongsi wayar tunggal antara semua peranti Slave. I2C dalam Arduino menggunakan sistem alamat, bermakna sebelum menghantar data ke peranti Slave Arduino mesti terlebih dahulu memilih peranti Slave dengan menghantar alamat unik. I2C hanya menggunakan dua wayar yang mengurangkan kiraan pin Arduino keseluruhan, tetapi sisi buruknya ialah I2C lebih perlahan daripada protokol SPI.

Pin Analog Arduino Pin I2C
A4 SDA
A5 SCL

Pada tahap perkakasan I2C dihadkan kepada hanya dua wayar, satu untuk talian data yang dikenali sebagai SDA (Data Bersiri) dan yang kedua untuk baris Jam SCL (Jam Bersiri). Pada keadaan terbiar kedua-dua SDA dan SCL ditarik tinggi. Apabila data perlu dihantar, talian ini ditarik rendah menggunakan litar MOSFET. Menggunakan I2C dalam projek adalah wajib untuk menggunakan perintang tarik ke atas biasanya nilai 4.7Kohm. Perintang tarik ke atas ini memastikan bahawa kedua-dua talian SDA dan SCL kekal tinggi dalam permulaan terbiar mereka.

Beberapa sorotan utama protokol I2C ialah:

  • Bilangan pin yang diperlukan adalah sangat rendah
  • Pelbagai peranti Master Slaves boleh disambungkan
  • Hanya menggunakan 2 wayar
  • Kelajuan adalah lebih perlahan berbanding dengan SPI kerana perintang tarik ke atas
  • Perintang memerlukan lebih banyak ruang dalam litar
  • Kerumitan peningkatan projek dengan peningkatan bilangan peranti

Perbandingan antara UART lwn I2C lwn SPI

Protokol UART SPI 2C
Kelajuan Paling perlahan Paling laju Lebih pantas daripada UART
Bilangan peranti Sehingga 2 4 peranti Sehingga 128 peranti
Wayar diperlukan 2(Tx,Rx) 4(SCK,ASAP,MATA,SS) 2(SDA,SCL)
Mod Dupleks Mod Dupleks Penuh Mod Dupleks Penuh Separuh dupleks
Bilangan Tuan-Hamba yang mungkin Tuan Tunggal-Hamba Tunggal Tuan Tunggal-Budak Berbilang Berbilang Tuan-Berbilang Hamba
Kerumitan Mudah Boleh mengawal berbilang peranti dengan mudah Kompleks dengan peningkatan dalam peranti
Sedikit pengakuan Tidak Tidak ya

Kesimpulan

Dalam artikel ini, kami telah membincangkan perbandingan menyeluruh bagi ketiga-tiga protokol UART, SPI dan I2C yang digunakan dalam Arduino. Mengetahui semua protokol adalah penting kerana ia memberi peluang yang tidak berkesudahan untuk menyepadukan berbilang peranti. Memahami semua peranti komunikasi akan menjimatkan masa dan membantu mengoptimumkan projek mengikut protokol yang betul.