Gambaran Keseluruhan RS-485
Seperti RS-232, RS-485 ialah standard komunikasi bersiri. Penamaan rasmi semasanya ialah TIA-485/EIA-485-A, tetapi ia biasanya dirujuk sebagai standard RS-485. RS-485 digunakan secara meluas dalam industri seperti automasi industri, automotif, dan pengurusan bangunan.
Bas RS-485 mengatasi kelemahan RS-232, seperti jarak komunikasi yang pendek dan kadar data yang rendah. RS-485 menyokong kadar data sehingga 10 Mbit/s dan mempunyai jarak komunikasi teori sehingga 1,200 meter. Berbeza dengan penghantaran satu hujung RS-232, RS-485 menggunakan transmisi berbeza melalui sepasang wayar pasangan terpintal, dengan satu wayar ditetapkan sebagai A dan satu lagi sebagai B.
Lapisan Fizikal RS-485
Lapisan fizikal RS-485 bertanggungjawab untuk menghantar data mentah antara peranti dan medium penghantaran fizikal. Ia mengendalikan penukaran isyarat elektrik kepada data digital, sementara juga menentukan tahap voltan, pemasaan, kadar data dan parameter lain.
① Isyarat Berbeza
Pengkabelan jarak jauh-mengakibatkan pengecilan isyarat dan meningkatkan kemungkinan bunyi dan gangguan. Ini nyata sebagai perubahan dalam amplitud voltan pada kabel A dan B. Walau bagaimanapun, kelebihan menggunakan garis pembezaan ialah menolak perbezaan antara kedua-dua isyarat membatalkan gangguan, membenarkan isyarat biasa dikeluarkan. Keupayaan penerima pembezaan untuk mengabaikan voltan yang sama pada kedua-dua talian isyarat dipanggil penolakan-mod biasa.


Piawaian menyatakan bahawa logik 1 ialah +2V hingga +6V, dan logik 0 ialah -6V hingga -2V.
RS-485 tidak memerlukan voltan bas tertentu; ia hanya mengambil kira voltan pembezaan minimum. Lebih panjang kabel yang lebih panjang, voltan yang diterima oleh penerima mungkin turun kepada +/- 200 mV, yang masih boleh diterima dengan sempurna untuk RS-485-ini adalah salah satu kelebihan RS-485.
Banyak transceiver memenuhi atau melebihi piawaian TIA/EIA-485A; dalam aplikasi praktikal, bagaimanapun, parameter yang ditentukan peranti diutamakan. Sebagai contoh, ambang input negatif minimum untuk transceiver tertentu ialah -200 mV.


② Definisi Isyarat
Banyak penukar RS-485 hari ini serasi dengan RS-422, jadi anda akan sering melihat isyarat berlabel T/R+ dan T/R- pada penukar ini, yang sepadan dengan A+ dan B- RS-485.
Untuk penyambung perempuan DB9, definisi pendawaian RS-485 adalah seperti berikut: Pin 6 hingga 9 adalah N/A dan tidak boleh disambungkan.
| DB9 | Isyarat Output | RS-422 Pendawaian Dupleks Penuh | RS-485 Pendawaian Separuh Dupleks |
| 1 | T/R+ | Hantar(A+) | RS-485(A+) |
| 2 | T/R- | Hantar(B-) | RS-485(B-) |
| 3 | RXD+ | Terima(A+) | kosong |
| 4 | RXD- | Terima(B-) | kosong |
| 5 | GND | Kawat Tanah | Kawat Tanah |
③ Topologi
RS-485 menyokong konfigurasi dua-dawai dan empat-dawai. Empat-konfigurasi wayar terhad kepada komunikasi-ke-titik dan jarang digunakan hari ini; konfigurasi dua wayar lebih biasa digunakan. Konfigurasi ini menggunakan topologi bas, membenarkan sehingga 32 nod disambungkan pada satu bas.
Seperti I²C, bas RS-485 beroperasi dalam mod-induk hamba. Ia menyokong mod hamba-ke-titik tunggal-dan berbilang-mod hamba, tetapi tidak menyokong mod berbilang induk.


Pemancar RS-485
RS-485 menggunakan transmisi berbeza. Jika anda ingin mengawal peranti RS-485 menggunakan mikropengawal, anda memerlukan transceiver yang serupa dengan bas CAN. Rajah berikut menggambarkan MCU yang mengawal peranti RS-485.
Di dalam transceiver terdapat penerima (separuh atas) dan pemancar (separuh bawah). Di bawah ialah penerangan ringkas tentang cara transceiver berfungsi untuk membantu anda memahami cara MCU berkomunikasi dengan peranti 485.

Struktur Dalaman Pemancar RS-485
di mana:
A dan B ialah bas;
R ialah input penerima;
RE ialah isyarat membolehkan penerima;
DE ialah isyarat membolehkan pemancar;
D ialah output pemancar;
Untuk isyarat dayakan, isyarat yang mempunyai garisan di atas huruf adalah aktif-rendah (cth, RE dalam rajah di atas), manakala isyarat tanpa garis aktif-tinggi (cth, DE).
Jadual Kebenaran Penerima
Untuk pemancar, jadual kebenaran adalah seperti berikut:
1. Apabila pemacu mendayakan pin DE berada pada logik tinggi, output pembezaan A dan B mengikuti keadaan logik pada input data D. Logik tinggi pada D menyebabkan A menjadi tinggi dan B menjadi rendah. Dalam kes ini, voltan keluaran pembezaan, yang ditakrifkan sebagai VOD=VA – VB, adalah positif. Apabila D adalah rendah, output menyatakan songsang: B menjadi tinggi dan A menjadi rendah, dan VOD adalah negatif.
2. Apabila DE rendah, kedua-dua output menjadi{1}}galangan tinggi. Dalam kes ini, keadaan logik di D adalah tidak relevan.
Jadual kebenaran berikut digunakan untuk penerima:
1. Apabila pin daya penerima (RE) berada pada tahap logik rendah, penerima diaktifkan. Apabila voltan input pembezaan, ditakrifkan sebagai VID=VA – VB, adalah positif dan melebihi ambang input positif VIT+, output R penerima menjadi tinggi. Apabila VID negatif dan di bawah ambang input negatif VIT-, output penerima R menjadi rendah. Jika VID adalah antara VIT+ dan VIT-, output tidak ditentukan.
2. Apabila RE adalah logik tinggi atau terapung, output penerima adalah impedans tinggi, tanpa mengira magnitud atau kekutuban VID.


Pautan Data RS-485
Setelah membincangkan prinsip pengendalian pemancar -485 RS di atas, kami kini akan menerangkan secara ringkas pautan data RS-485. Anda boleh terlebih dahulu melihat format bingkai protokol UART yang mudah difahami.
Sama ada tuan menghantar data kepada hamba atau hamba menghantar data kepada tuan, kedua-dua baris A dan B digunakan; oleh itu, RS-485 biasanya digunakan dalam mod separuh dupleks.
GPIO hos mengawal pin DE bagi transceiver RS-485 untuk menetapkan mod penghantaran. Satu bait dihantar dari talian UART TXD ke baris data (D atau DI) transceiver RS-485. Transceiver menukar aliran bit UART hujung tunggal kepada aliran bit pembezaan pada garisan A dan B. Sebaik sahaja data meninggalkan transceiver, hos segera menukar transceiver untuk menerima mod.
Hamba beroperasi sama seperti tuan. Hamba mengawal pin /RE transceiver RS-485 untuk menetapkannya kepada mod menerima, menerima aliran bit yang dihantar oleh induk, menukarnya kepada isyarat hujung tunggal dan menerimanya melalui talian UART RXD hamba. Apabila hamba bersedia untuk bertindak balas, ia menghantar data dengan cara yang sama seperti tuan, manakala tuan bertukar untuk menerima mod.
Penukaran RS-232 kepada RS-485
Ia adalah mungkin untuk menukar antara RS-232 dan RS-485. Satu kaedah ialah menukar RS-232 kepada TTL, dan kemudian menukar TTL kepada RS-485. Sudah tentu, terdapat juga cip yang menyokong penukaran terus dari RS-232 kepada RS-485, dan banyak modul sedemikian tersedia dalam talian.
Modul Penukaran RS-232 kepada RS-485
Perbezaan Antara RS-485 dan CAN
Walaupun RS-485 tidak mempunyai format protokol data piawai, ia berkongsi banyak persamaan dengan bas CAN. Sebagai contoh, kedua-dua A&B dan CANH&CANL ialah isyarat pembezaan; kedua-duanya memerlukan transceiver untuk komunikasi; dan kedua-duanya menggunakan perintang penamatan 120-ohm, antara persamaan lain.
| Ciri-ciri Bas | BOLEH Bas | Bas RS-485 |
| Kos Perkakasan | Tinggi sikit | Murah |
| Penggunaan Bas | Timbangtara keutamaan automatik, penggunaan tinggi | Menggunakan pengundian; penggunaan yang rendah |
| Kadar Pemindahan Data | tinggi | rendah |
| Mekanisme Pengesanan Ralat | Pengawal termasuk mekanisme checksum untuk memastikan ketepatan penghantaran data-rendah | Hanya spesifikasi lapisan fizikal; tiada spesifikasi lapisan pautan data |
| Kesan Kegagalan-Nod Tunggal | Tiada kesan pada bas | Lumpuh bas |
| Kos Pembangunan | Pembangunan perisian yang fleksibel, kos masa yang rendah | Sukar untuk dibangunkan |
| Kos Sistem | Agak rendah | tinggi |
Litar RS-485 Biasa
Berikut ialah litar RS-485 biasa yang saya temui dalam talian. Terdapat dua perkara yang perlu diperhatikan:
1. Isyarat membolehkan RE dan DE boleh dikawal oleh GPIO tunggal untuk menjimatkan sumber. Apabila GPIO25 mengeluarkan tahap tinggi, RE dan DE ialah 0 V, dan peranti memasuki mod terima; apabila GPIO25 mengeluarkan tahap rendah, RE dan DE ialah 3.3 V, dan peranti memasuki mod penghantaran.
2. Dalam sesetengah litar, perintang tarik-atas ditambahkan pada pin A dan perintang tarik-ke bawah pada pin B. Sebab utama untuk ini ialah, apabila bas RS-485 berada dalam keadaan melahu, aras voltan tidak tetap-iaitu, ia berubah-ubah antara -200 mV dan {{7} sama ada pada paras keluaran tinggi dan {{7} UART mesti mengekalkan tahap yang tinggi apabila melahu; jika transceiver mengeluarkan tahap rendah pada masa ini, UART mentafsirkannya sebagai bit permulaan, yang boleh menyebabkan ralat komunikasi. Nilai khusus R_u dan R_d tidak akan dibincangkan secara terperinci di sini; Saya bercadang untuk menulis artikel terperinci mengenai topik ini pada masa hadapan.

Mengenai perkara kedua, sila ambil perhatian perkara berikut:
① Jika anda menggunakan perintang tarik-atas pada pin A dan perintang tarik-bawah pada pin B, komunikasi data mungkin gagal disebabkan sambungan terbalik.
② Jika transceiver telah membina-perintang tarik-atas dan tarik-bawah, tidak perlu menambah perintang luaran.




