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"?
Jawaban:
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
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.
sumber
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.
sumber
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.
sumber
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.
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.
sumber
RXD>
dengan panah mengarah menjauh dari pin, yang berarti ada sinyal yang keluar dari pin itu - saya tentu berharap itu menjadi output , bukan input!