Untuk apa TX dan RX relatif?


11

Saya telah bekerja dengan perangkat yang menggunakan komunikasi RS232 ke PC. Ada beberapa kebingungan karena mereka telah menentukan pin TX dan RX mereka relatif terhadap perangkat. Dalam definisi mereka, mereka menggunakan TX berarti pin yang mengirim data dari perangkat. Dalam pikiran saya ini harus diberi label RX karena itu pin yang diterima komputer.

Bagaimana pin harus didefinisikan? Apakah mereka relatif untuk setiap perangkat atau relatif ke "controller"?


6
Saya belum pernah melihat TX / RX dari perspektif lain selain dari pihak pengirim. Sehingga TX adalah pin yang dikirim oleh bagian pengirim dan RX diterima. Saya belum pernah menemukan penamaan seperti yang Anda sarankan.
Morten Jensen

13
Penamaan pin RS232 adalah sedikit kasus khusus karena mereka mendefinisikan hal-hal dalam hal DTE (peralatan terminal Data) dan DCE (peralatan komunikasi data) dan berhasil menyebabkan kebingungan total. DCE memiliki data output pada pin RX dan input pada pin TX, DTE adalah kebalikannya. Secara teori jenis kelamin konektor harus memberi tahu Anda apa itu apa, dalam praktiknya cukup banyak produsen yang keliru menjadikannya panduan yang kurang andal. Ada alasan Anda dulu dapat membeli kotak kecil dengan D9 & D25 dari jenis kelamin yang berbeda dengan kit kabel jumper kecil dan beberapa LED pada garis sinyal umum.
Dan Mills

1
Ketika itu adalah hari ulang tahunmu, aku tidak menerima kamu hadiah.
ctrl-alt-delor

1
@MortenJensen dengan baik jika mereka diberi nama dari sudut pandang pihak pengirim, keduanya harus disebut TX.
user253751

2
@TerryCarmen Tidak berlaku untuk DCE di mana nama pin dan arah aliran data dibalik sesuai standar. DTE Tx -> DCE Tx dan DTE Rx -> DCE Rx, ya, aneh dan omong kosong tetapi itu adalah apa adanya.
Dan Mills

Jawaban:


23

Mungkin lebih mudah untuk dipahami, jika kita cepat meninjau bagaimana standar RS-232 awalnya digunakan.

Catatan: Semua nomor pin di bawah ini mengacu pada konektor D 25-pin asli; penomoran berubah pada konektor 9-pin yang digunakan pada PC selanjutnya.

Latar Belakang

DTE = Peralatan Terminal Data - di masa lalu, ini biasanya berupa terminal atau printer, atau peralatan yang meniru itu.

DCE = Peralatan Komunikasi Data - di masa lalu, ini biasanya berupa modem atau antarmuka WAN lainnya.

Pin 2 pada konektor D 25-pin asli (dijelaskan dalam standar sebagai "Data Yang Ditransmisikan", "Sirkuit BA", "V24. Nomor 103") harus berupa data dari DTE ke DCE.

Pin 3 pada konektor D 25-pin asli (dijelaskan dalam standar sebagai "Data yang Diterima", "Sirkuit BB", "V24. Angka 104") harus berupa data dari DCE ke DTE.

Ini berarti bahwa kabel yang menghubungkan terminal dan modem "lurus" - pin 2 pada terminal (DTE) di salah satu ujung kabel tempat data berasal, terhubung ke pin 2 pada modem (atau serupa) di sisi lain. ujung kabel (DCE) tempat data itu diterima. Modem kemudian mengirimkan data itu menggunakan tautan komunikasi, ke peralatan apa pun yang ada di ujung tautan itu.

Pin 3 "Received Data" adalah sinyal data dalam arah yang berlawanan - dikirim oleh modem (DCE) pada pin 3, dan diterima oleh terminal (DTE) pada pin 3.

Oleh karena itu Anda dapat melihat bahwa pelabelan apa yang Ditransmisikan dan apa yang Diterima, berasal dari sudut pandang DTE (yaitu terminal). Ini semua masuk akal ketika koneksi khas antara DCE dan DTE.

Namun potongan-potongan peralatan yang kita gunakan hari ini (bahkan ketika mereka tidak menggunakan RS-232 dan sebaliknya menggunakan TTL atau antarmuka protokol UART tegangan lainnya) biasanya semua efektif DTE (dengan satu pengecualian menjadi modem). Menghubungkan pin 2 (yang merupakan output) pada satu bagian DTE, ke pin 2 (output lain) pada peralatan lain yang dikonfigurasi sebagai DTE, tidak masuk akal (dan ketika menggunakan sinyal level logika, bahkan dapat menyebabkan kerusakan perangkat keras). Di sinilah penggunaan kabel "cross" atau "null modem" (yaitu tidak ada modem).

Pertanyaanmu

Saya telah bekerja dengan perangkat yang menggunakan komunikasi RS232 ke PC. Ada beberapa kebingungan karena mereka telah menentukan pin TX dan RX mereka relatif terhadap perangkat. Dalam definisi mereka, mereka menggunakan TX berarti pin yang mengirim data dari perangkat. Dalam pikiran saya ini harus diberi label RX karena itu pin yang diterima komputer.

Bagaimana pin harus didefinisikan? Apakah mereka relatif untuk setiap perangkat atau relatif ke "controller"?

Dari info latar belakang di atas, Anda dapat melihat bahwa pelabelan mereka sudah benar jika perangkat mereka bertindak sebagai DTE (yang kebanyakan adalah, kecuali modem atau antarmuka WAN lainnya). Pada sepotong DTE, pin berlabel "Data yang Ditransmisikan" (pin 2 pada konektor 25 pin) tidak mengirim data. (Dan, seperti yang dijelaskan di atas, pada selembar DCE (misalnya modem) pin yang dikenal sebagai "Data Yang Ditransmisikan" (pin 2 pada konektor 25 pinnya) sebenarnya merupakan input, yang menerima sinyal dari DTE.)

Port serial PC juga akan dikonfigurasikan sebagai DTE (kecuali ia memiliki port serial yang sangat tidak biasa - yang tidak akan berlaku di sini, karena Anda akan tahu jika itu berlaku).

Oleh karena itu Anda menghubungkan perangkat DTE (perangkat ini yang telah Anda sebutkan) ke perangkat DTE (PC) yaitu tidak ada DCE di "terminologi RS-232, yaitu tidak ada modem, dan" modem nol "atau" menyeberang "RS-232 kabel akan diperlukan. Pin mana pun yang merupakan RS-232 "Data yang Ditransmisikan" (mungkin yang Anda sebutkan telah dilabeli sebagai TX) pada perangkat DTE ini, yang akan menjadi output , harus terhubung ke RS-232 "Diterima Data "disematkan pada PC Anda (juga perangkat DTE), yang merupakan input (dan jelas sebaliknya untuk transfer data ke arah lain).

Meskipun ini tampaknya tidak berlaku untuk Anda, saya hanya akan menambahkan: Untuk membuat hidup lebih rumit, beberapa produsen mencoba untuk "membantu" dengan secara efektif memberi label peralatan DTE mereka seolah-olah itu adalah sepotong DCE. Mereka menandai pin input data mereka sebagai Tx sehingga pengguna hanya menghubungkan "Tx" dari perangkat eksternal (yang, jika DTE, akan menjadi output data dari sana) ke pin yang ditandai "Tx" pada peralatan mereka (yang mereka tahu adalah sebuah input ). Dengan demikian memungkinkan mereka untuk mengatakan "cukup hubungkan Tx pada perangkat Anda ke Tx pada peralatan kami". Mereka pikir mereka berusaha membantu, tetapi pelabelan seperti itu seringkali hanya menambah kebingungan.

Seperti yang disebutkan Dan Mills dalam sebuah komentar, banyak dari kita yang tumbuh dengan RS-232, menghabiskan waktu senang harus menghubungkan berbagai peralatan dengan implementasi RS-232 yang sedikit berbeda, menggunakan "kotak pelarian" yang dia jelaskan. Kotak breakout ini memiliki LED, yang menunjukkan sinyal mana yang sedang didorong secara aktif (ini dengan cepat memungkinkan Anda untuk melihat apakah peralatan dikonfigurasi sebagai DTE atau DCE: Apakah pin 2 digerakkan pada peralatan itu? Ya = itu DTE) dan memiliki tempat di mana jumper pendek kabel dapat digunakan untuk menghubungkan berbagai pin konektor.


Praktik umum jika ada yang tidak berhasil, adalah menukar koneksi pada pin 2 dan 3 di salah satu ujung kabel (ini bekerja pada konektor DE-9 dan DB25)
Peter Bennett

2
Benar. Dalam konteks pertanyaan khusus ini di mana RS-232 (bukan sinyal tingkat logika) dan tidak ada handshaking perangkat keras yang disebutkan, maka menukar pin 2 & 3 akan menjadi sesuatu untuk dicoba (karena secara tidak sengaja menghubungkan dua output RS-232 seharusnya tidak menyebabkan kerusakan permanen). Sayangnya hal menjadi rumit ketika handshaking perangkat keras terlibat (karena masalahnya bisa dalam berbagai konfigurasi sinyal-sinyal). Kemudian menukar pin 2 dan 3 mungkin tidak menyelesaikan masalah, atau mungkin tidak menyelesaikan satu - satunya masalah. Ini membawa kembali kenangan kotak pelarian & menganalisis apa yang tidak ada dalam dokumentasi.
SamGibson

1
Oh ya, RTS / CTS / DSR / DTR ... Begitu banyak, banyak kemungkinan, bahkan sebelum Anda bisa bersenang-senang seperti satu ujung menginginkan kontrol aliran perangkat lunak dan yang lain mengharapkan RTS / CTS. Dan ya, dokumentasinya selalu berbau. Saya jengkel tentang USB (Tiga jenis plug omong kosong terutama, juga sebagian besar tumpukan perangkat lunak omong kosong), tetapi berpikir kembali '232 adalah tingkat craptastic lainnya.
Dan Mills

8

Tidak seperti banyak konfigurasi seperti bus, yang menggunakan nama sinyal , komunikasi serial biasanya menggunakan nama fungsi untuk pin. Jadi, jika perangkat mentransmisikan pada beberapa pin, itu ditandai Tx. Jika diterima, itu ditandai Rx. Jelas Anda menghubungkan Tx satu perangkat dengan RX yang lain dan sebaliknya.

Singkatnya, perangkat yang Anda bicarakan juga memiliki "komputer" di dalamnya, yang pada dasarnya adalah MCU. Mengapa satu komputer harus menentukan nama pin komputer lain, terutama mengingat sifat komunikasi dua arah yang asinkron?

Kasus khusus adalah ketika perangkat yang dimaksud adalah jenis pass-through, seperti modem lama atau konverter FT232 modern. Mereka tidak menggunakan pin Tx / Rx untuk berkomunikasi dengan komputer, mereka menggunakannya untuk meneruskan komunikasi komputer lebih jauh di telepon. Untuk alasan ini pin mereka diberi nama setelah sinyal datang.

UPDATE: Berikut adalah beberapa contoh untuk menggambarkan hal ini.

Mungkin jutaan orang menggunakan Arduino saat ini, beberapa bahkan tanpa tahu cara kerjanya. Mereka menghubungkan Tx ke Rx, Rx ke Tx, Gnd ke Gnd dan mereka bagus untuk digunakan. Apa yang seringkali tidak mereka sadari, adalah bahwa mereka secara teknis membuat null-modem, yang memungkinkan dua MCU saling berbicara.

Sekarang, orang yang sama terkadang ingin menambahkan konektivitas USB ke Arduino mereka. Mereka menghubungkan TX ke TX dan RX ke RX pada adaptor atau chip konverter. Perhatikan bahwa mereka yang sering disebut "TX-IN" dan "RX-OUT" untuk menghindari kebingungan. Sekali lagi, apa yang tampak jelas tetapi jarang dipikirkan, adalah bahwa secara teknis adaptor USB ini adalah perangkat pass-through. Apa yang "dikatakan" pada pin RX bukan berasal dari adaptor itu sendiri, itu berasal dari perangkat di sisi lain saluran. Dan coba tebak? Terhubung ke TX pin di suatu tempat.


Ini salah. Standar menentukan DTE dan DCE (dua hal berbicara satu sama lain), dan TX / RX ditentukan dari perspektif salah satunya (saya lupa yang mana). Detail ini telah hilang selama bertahun-tahun dan penggunaan label menjadi begitu suram bahkan insinyur listrik yang berpengalaman membuat kesalahan.
Steve

Jawaban SamGibson sangat baik.
Steve

2
@Steve "Detailnya telah hilang" ?! Spesifikasi RS232 ada di seluruh web! Nama-nama TX / RX yang ditentukan untuk sisi DTE karena DTE dan DCE tidak "berbicara satu sama lain" di atas pin tersebut, mereka menggunakan beberapa sinyal kontrol untuk itu. Modem dan komputer tidak memiliki apa pun untuk dikatakan satu sama lain . Modem hanya melewati sinyal-sinyal itu. Tetapi Anda dapat menghubungkan dua DTE menggunakan null-modem dan di mana Anda perspektif itu? Mereka berdua adalah komputer, mereka berbicara satu sama lain dan itulah situasi yang dijelaskan dalam pertanyaan OP.
Maple

DTE ke DTE tentu saja berfungsi. Saya terkejut Anda tidak memasukkan informasi tentang DTE dan DCE dalam jawaban Anda, yang sangat membantu untuk memahami mengapa jawaban Anda benar. Saya kira saya salah bicara ketika saya mengatakan jawaban Anda salah, tetapi itu melanggengkan kesalahpahaman lainnya di sini - Dengan "detailnya telah hilang" Maksud saya sebagian besar insinyur bahkan tidak memikirkan hal ini dan hanya "coba saja sampai benar ", atau label peralatan DCE dengan nama sinyal DTE. Dan, tidak termasuk detail itu sedikit membantu melanggengkan ini ...
Steve

1
@Steve Saya sengaja menghindari menyebutkan DTE / DCE karena Anda tidak dapat pergi ke sana tanpa membahas banyak hal penting tetapi tidak relevan dengan sinyal kontrol pertanyaan, dll. Pokoknya, saya telah memperbarui jawaban dengan beberapa contoh untuk membuat segalanya lebih jelas.
Maple

6

Biasanya terkait dengan perangkat, karena perangkat RS232 tidak memiliki hubungan "master / slave" atau "client / server". Protokol SPI memiliki arsitektur master / slave, jadi mereka diberi label "MISO" (Master In Slave Out) dan "MOSI" (dibiarkan sebagai latihan untuk siswa). Itu di tingkat perangkat; Saya tidak dapat berbicara dengan apa yang mungkin dipilih perancang sirkuit individu sebagai nama bersih.


Mereka memang memiliki hubungan "DTE / DCE", tetapi seperti yang dijelaskan @Maple, mereka berhenti di sana. Sebenarnya beberapa sejarah yang mendalam dapat menjelaskan apa yang mereka lakukan.
Gbarry

Jawaban ini, sementara secara akurat menggambarkan cara orang saat ini merawat RS-232, secara teknis salah (seperti yang ditunjukkan @gbarry tentang DCE / DTE).
Steve

4

Sayangnya, bagi para insinyur, ini adalah teka-teki antara dua irisan kotoran.

Tidak ada solusi logis yang nyata, kedua cara tersebut bisa masuk akal secara logis.

Saya mencoba memberi label pin, pcb, tata letak IC, tabel koneksi, perangkat lunak, dengan tulisan IN / OUT dan / atau panah yang menunjukkan arah. Gunakan kata-kata "TX-out" "RX-in" "CTS-out" "RTS-in" pada skema Anda dll. Ini sepenuhnya menyelesaikan ambiguitas. [Saya biasanya berpikir bahwa TX dan RX harus dinamai dengan benar yaitu TX harus menjadi output].

Berikut ini adalah PCB di mana sinyal melewati penghalang isolasi. Perhatikan tanda panah, jadi seseorang men-debug-nya, atau mencoba memasang konektor dengan jelas tahu ke mana arah sinyal.

masukkan deskripsi gambar di sini

Sinyal kontrol bahkan lebih buruk. (Serta arah listrik, mereka memiliki arah kontrol yang logis juga)

Sinyal kontrol memiliki dokumentasi yang secara eksplisit menjabarkan fungsi: 'CTS (out) memberi sinyal pada komputer bahwa perangkat siap menerima data'

Terkadang kedua cara masuk akal pada saat yang sama: Saya memiliki chip di mana RX dan TX dinamai dengan benar dengan fungsinya sendiri (dari perspektif chip). Tetapi pin jabat tangan dinamai CTS dan RTS yang cocok dengan pin PC yang akan mereka sambungkan, karena inilah yang disebut perangkat lunak dan lampu status.

Sesuatu yang telah membantu dalam beberapa tahun terakhir, adalah penggunaan perangkat yang menggunakan konektor DE9F yang menghubungkan langsung ke port serial PC dengan kabel mf langsung. Itu telah mengurangi gratis untuk semua masa lalu.


1
Anda menunjukkan RXD>dengan panah mengarah menjauh dari pin, yang berarti ada sinyal yang keluar dari pin itu - saya tentu berharap itu menjadi output , bukan input!
pipa

@pipe Jika Anda mempertimbangkan di mana chip berada di papan sirkuit, relatif terhadap konektor, maka sama sekali tidak ambigu bagi seseorang yang mengerjakan produk tanpa dokumentasi. Panah secara akurat mewakili aliran sinyal. [titik linguistik yang menarik: Tidak seperti "keluar" / "dalam", panah hanya memiliki makna intrinsik dalam konteks spasial]
Henry Crun
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.