Ikhtisar RS-485
Seperti RS-232, RS-485 adalah standar komunikasi serial. Penunjukan resminya saat ini adalah TIA-485/EIA-485-A, namun umumnya disebut sebagai standar RS-485. RS-485 banyak digunakan dalam industri seperti otomasi industri, otomotif, dan manajemen gedung.
Bus RS-485 mengatasi kekurangan RS-232, seperti jarak komunikasi yang pendek dan kecepatan data yang rendah. RS-485 mendukung kecepatan data hingga 10 Mbit/s dan memiliki jarak komunikasi teoritis hingga 1,200 meter. Berbeda dengan transmisi ujung tunggal RS-232, RS-485 menggunakan transmisi diferensial melalui sepasang kabel berpasangan, dengan satu kabel ditetapkan sebagai A dan yang lainnya sebagai B.
Lapisan Fisik RS-485
Lapisan fisik RS-485 bertanggung jawab untuk mentransmisikan data mentah antara perangkat dan media transmisi fisik. Ini menangani konversi sinyal listrik menjadi data digital, sekaligus menentukan level tegangan, waktu, kecepatan data, dan parameter lainnya.
① Sinyal Diferensial
Pemasangan kabel-jarak jauh mengakibatkan redaman sinyal dan meningkatkan kemungkinan kebisingan dan interferensi. Hal ini diwujudkan dengan perubahan amplitudo tegangan pada kabel A dan B. Namun, keuntungan menggunakan saluran diferensial adalah mengurangi perbedaan antara dua sinyal akan menghilangkan interferensi, sehingga menghasilkan sinyal normal. Kemampuan penerima diferensial untuk mengabaikan voltase identik pada kedua jalur sinyal disebut penolakan mode-umum.


Standar tersebut menetapkan bahwa logika 1 adalah +2V hingga +6V, dan logika 0 adalah -6V hingga -2V.
RS-485 tidak memerlukan tegangan bus tertentu; itu hanya mempertimbangkan tegangan diferensial minimum. Pada kabel yang lebih panjang, tegangan yang diterima oleh penerima bisa turun hingga +/- 200 mV, yang masih dapat diterima untuk RS-485-ini adalah salah satu keunggulan RS-485.
Banyak transceiver yang memenuhi atau bahkan melampaui standar TIA/EIA-485A; namun dalam aplikasi praktis, parameter yang ditentukan perangkat akan diutamakan. Misalnya, ambang masukan negatif minimum untuk transceiver tertentu adalah -200 mV.


② Definisi Sinyal
Banyak konverter RS-485 saat ini yang kompatibel dengan RS-422, sehingga Anda akan sering melihat sinyal berlabel T/R+ dan T/R- pada konverter ini, yang sesuai dengan A+ dan B- RS-485.
Untuk konektor perempuan DB9, definisi pengkabelan RS-485 adalah sebagai berikut: Pin 6 hingga 9 adalah N/A dan tidak boleh dihubungkan.
| DB9 | Sinyal Keluaran | RS-422 Pengkabelan Dupleks Penuh | RS-485 Pengkabelan Setengah Dupleks |
| 1 | T/R+ | Kirim(A+) | RS-485(A+) |
| 2 | T/R- | Kirim(B-) | RS-485(B-) |
| 3 | RXD+ | Terima(A+) | Kosong |
| 4 | RXD- | Terima(B-) | Kosong |
| 5 | GND | Kawat Tanah | Kawat Tanah |
③ Topologi
RS-485 mendukung konfigurasi dua-kabel dan empat-kabel. Konfigurasi empat-kawat terbatas pada komunikasi titik-ke-titik dan jarang digunakan saat ini; konfigurasi dua kabel lebih umum digunakan. Konfigurasi ini menggunakan topologi bus, yang memungkinkan hingga 32 node dihubungkan dalam satu bus.
Seperti I²C, bus RS-485 beroperasi dalam mode master-slave. Mendukung mode-ke-titik tunggal-slave dan mode multi-slave, namun tidak mendukung mode multi-master.


Pemancar RS-485
RS-485 menggunakan transmisi diferensial. Jika Anda ingin mengontrol perangkat RS-485 menggunakan mikrokontroler, Anda memerlukan transceiver yang mirip dengan bus CAN. Diagram berikut mengilustrasikan MCU yang mengendalikan perangkat RS-485.
Di dalam transceiver terdapat penerima (bagian atas) dan pemancar (bagian bawah). Di bawah ini adalah penjelasan singkat tentang cara kerja transceiver untuk membantu Anda memahami cara MCU berkomunikasi dengan perangkat 485.

Struktur Internal Transceiver RS-485
Di mana:
A dan B adalah bus;
R adalah masukan penerima;
RE adalah sinyal pengaktifan penerima;
DE adalah sinyal pengaktifan pemancar;
D adalah keluaran pemancar;
Untuk sinyal aktif, sinyal yang memiliki garis di atas huruf tersebut adalah sinyal aktif-rendah (misal, RE pada gambar di atas), sedangkan sinyal yang tidak memiliki garis adalah sinyal aktif-tinggi (misal, DE).
Tabel Kebenaran Penerima
Untuk transmitter, tabel kebenarannya adalah sebagai berikut:
1. Ketika pin pengaktif driver DE berada pada logika tinggi, keluaran diferensial A dan B mengikuti keadaan logika pada masukan data D. Logika tinggi pada D menyebabkan A menjadi tinggi dan B menjadi rendah. Dalam hal ini, tegangan keluaran diferensial, yang didefinisikan sebagai VOD=VA – VB, adalah positif. Ketika D rendah, keadaan keluarannya terbalik: B menjadi tinggi dan A menjadi rendah, dan VOD menjadi negatif.
2. Saat DE rendah, kedua output menjadi impedansi-tinggi. Dalam hal ini, keadaan logika di D tidak relevan.
Tabel kebenaran berikut berlaku untuk penerima:
1. Ketika pin pengaktifan (RE) penerima berada pada logika rendah, penerima diaktifkan. Ketika tegangan masukan diferensial, yang didefinisikan sebagai VID=VA – VB, bernilai positif dan melampaui ambang batas masukan positif VIT+, keluaran penerima R menjadi tinggi. Ketika VID negatif dan di bawah ambang masukan negatif VIT-, keluaran penerima R menjadi rendah. Jika VID berada di antara VIT+ dan VIT-, outputnya tidak ditentukan.
2. Ketika RE berlogika tinggi atau mengambang, keluaran penerima memiliki impedansi tinggi, terlepas dari besaran atau polaritas VID.


Tautan Data RS-485
Setelah membahas prinsip pengoperasian transceiver RS-485 di atas, sekarang kami akan menjelaskan secara singkat tautan data RS-485. Pertama-tama Anda mungkin melihat format bingkai protokol UART yang mudah dipahami.
Apakah master mengirim data ke budak atau budak mengirim data ke master, jalur A dan B digunakan; oleh karena itu, RS-485 biasanya digunakan dalam mode setengah dupleks.
GPIO host mengontrol pin DE transceiver RS-485 untuk mengatur mode transmisi. Satu byte dikirim dari jalur UART TXD ke jalur data (D atau DI) transceiver RS-485. Transceiver mengubah aliran bit UART ujung tunggal menjadi aliran bit diferensial pada jalur A dan B. Setelah data meninggalkan transceiver, host segera mengalihkan transceiver ke mode penerimaan.
Budak beroperasi sama dengan master. Budak mengontrol pin /RE transceiver RS-485 untuk mengaturnya ke mode penerimaan, menerima aliran bit yang dikirim oleh master, mengubahnya menjadi sinyal ujung tunggal, dan menerimanya melalui jalur UART RXD budak. Ketika slave siap merespons, ia mengirimkan data dengan cara yang sama seperti master, sementara master beralih ke mode penerimaan.
Konversi RS-232 ke RS-485
Dimungkinkan untuk mengkonversi antara RS-232 dan RS-485. Salah satu caranya adalah dengan mengubah RS-232 menjadi TTL, lalu mengubah TTL menjadi RS-485. Tentu saja, terdapat juga chip yang mendukung konversi langsung dari RS-232 ke RS-485, dan banyak modul serupa tersedia secara online.
Modul Konversi RS-232 ke RS-485
Perbedaan Antara RS-485 dan CAN
Meskipun RS-485 tidak memiliki format protokol data standar, RS-485 memiliki banyak kesamaan dengan bus CAN. Misalnya, A&B dan CANH&CANL adalah sinyal diferensial; keduanya memerlukan transceiver untuk komunikasi; dan keduanya menggunakan resistor terminasi 120 ohm, di antara kesamaan lainnya.
| Karakteristik Bus | BISA Bus | Bus RS-485 |
| Biaya Perangkat Keras | Sedikit lebih tinggi | Murah |
| Pemanfaatan Bus | Arbitrase prioritas otomatis, pemanfaatan tinggi | Menggunakan polling; pemanfaatan yang rendah |
| Kecepatan Transfer Data | Tinggi | Rendah |
| Mekanisme Deteksi Kesalahan | Pengontrol menyertakan mekanisme checksum untuk memastikan keakuratan transmisi data{0}}tingkat rendah | Hanya spesifikasi lapisan fisik; tidak ada spesifikasi lapisan data link |
| Dampak Kegagalan Node-tunggal | Tidak ada dampak pada bus | Kelumpuhan bus |
| Biaya Pembangunan | Pengembangan perangkat lunak yang fleksibel, biaya waktu rendah | Sulit untuk dikembangkan |
| Biaya Sistem | Relatif rendah | Tinggi |
Sirkuit RS-485 Umum
Berikut adalah sirkuit RS-485 umum yang saya temukan online. Ada dua hal yang perlu diperhatikan:
1. Sinyal pengaktifan RE dan DE dapat dikontrol oleh GPIO tunggal untuk menghemat sumber daya. Ketika GPIO25 mengeluarkan level tinggi, RE dan DE adalah 0 V, dan perangkat memasuki mode penerimaan; ketika GPIO25 mengeluarkan level rendah, RE dan DE adalah 3,3 V, dan perangkat memasuki mode transmisi.
2. Dalam beberapa rangkaian, resistor pull-up ditambahkan ke pin A dan resistor pull-down ke pin B. Alasan utamanya adalah, ketika bus RS-485 dalam keadaan idle, level tegangan tidak tetap-yaitu, berfluktuasi antara -200 mV dan +200 mV-dan transceiver dapat menghasilkan output level tinggi atau rendah. UART harus mempertahankan level tinggi saat idle; jika transceiver mengeluarkan level rendah saat ini, UART menafsirkannya sebagai bit awal, yang dapat menyebabkan kesalahan komunikasi. Nilai spesifik R_u dan R_d tidak akan dibahas secara rinci di sini; Saya berencana untuk menulis artikel terperinci tentang topik ini di masa mendatang.

Mengenai poin kedua, harap diperhatikan hal berikut:
① Jika Anda menerapkan resistor pull-up ke pin A dan resistor pull-down ke pin B, komunikasi data mungkin gagal karena koneksi terbalik.
② Jika transceiver memiliki-resistor pull-up dan pull-down, tidak perlu menambahkan resistor eksternal.




