TX ve RX neye göre?


11

PC'ye RS232 iletişimi kullanan bir cihazla çalışıyorum. TX ve RX pinlerini cihaza göre tanımladıkları için bazı karışıklıklar oldu. Tanımlarında, TX'i cihazdan veri gönderen pin olduğu anlamına gelir. Bence bu RX olarak etiketlenmeli çünkü bilgisayarın aldığı pin.

Pimler nasıl tanımlanmalıdır? Her bir cihaza veya "kontrolöre" göre mi?


6
TX / RX'in gönderen taraftan başka perspektiflerden olduğunu hiç görmedim. Böylece TX, gönderen parçanın gönderdiği ve RX'in alındığı pimdir. Önerdiğin gibi adlandırma ile hiç karşılaşmadım.
Morten Jensen

13
RS232 pin adlandırma özel bir durumdur, çünkü DTE (Veri terminal ekipmanı) ve DCE (Veri iletişim ekipmanı) açısından bir şeyler tanımlamış ve tamamen karışıklığa neden olmayı başarmışlardır. DCE, RX pininde veri çıkışına ve TX pininde girişe sahiptir, DTE tam tersidir. Teorik olarak konektörlerin cinsiyeti size ne olduğunu söylemelidir, pratikte yeterli üreticiler daha az güvenilir bir rehber yapmak için bunu yanlış anladılar. Küçük jumper kablo seti ve ortak sinyal hatlarında bazı LED'ler ile farklı cinsiyetlerden D9 ve D25 ile küçük kutular satın almanızın bir nedeni var.
Dan Mills

1
Doğum günün olduğunda sana bir hediye gelmez.
ctrl-alt-delor

1
@ MortenJensen gönderen tarafın perspektifinden isimlendirildiyse, her ikisi de TX olarak adlandırılmalıdır.
user253751

2
@TerryCarmen Pin adlarının ve veri akış yönlerinin standartlara göre tersine çevrildiği DCE için doğru değildir. DTE Tx -> DCE Tx ve DTE Rx -> DCE Rx, evet, garip ve saçmalık ama ne olduğu.
Dan Mills

Yanıtlar:


23

RS-232 standardının orijinal olarak nasıl kullanıldığını hızlı bir şekilde gözden geçirirsek, anlamak daha kolay olabilir.

Not: Aşağıdaki tüm pim numaraları orijinal 25 pimli D konektörüne karşılık gelir; sonraki bilgisayarlarda kullanılan 9 pimli konektördeki numaralandırma değişti.

Arka fon

DTE = Veri Terminali Ekipmanı - eski günlerde bu genellikle bir terminal veya yazıcı veya bunları taklit eden bir ekipman olurdu.

DCE = Veri İletişim Ekipmanı - eski günlerde bu genellikle bir modem veya başka bir WAN arayüzü olurdu.

Orijinal 25-pin D bağlantı ucu üzerindeki pin 2 ( "İletilen Veri" olarak standardında tarif, "devre BA", "V24. Sayısı 103") veri olmalıdır gelen DTE ile DCE.

Orijinal 25-pin D bağlantı ucu üzerindeki pin 3 ( "Alınan veri" olarak standardında tarif, "devre BB", "V24. Sayısı 104") veri olmalıdır gelen DCE için DTE.

Bu, bir terminali ve modemi bağlayan kablonun "düz içinden" - verinin kaynaklandığı kablonun bir ucundaki bir terminaldeki (DTE) pim 2'nin bir modemdeki (veya benzeri) pim 2'ye bağlandığı anlamına geliyordu verilerin alındığı kablonun (DCE) sonu. Modem daha sonra bu bağlantıyı iletişim bağlantısını kullanarak o bağlantının diğer ucunda bulunan ekipmana gönderdi.

Pin 3 "Alınan Veriler" ters yönde veri sinyalidir - pin 3 üzerinde modem (DCE) tarafından iletilir ve pin 3 üzerinde terminal (DTE) tarafından alınır.

Bu nedenle, Gönderilen ve Alınan öğelerin etiketlemesinin DTE (yani terminal) açısından olduğunu görebilirsiniz. Tüm bunlar, tipik bağlantılar bir DCE ile bir DTE arasında olduğunda anlamlıdır.

(Bunlar RS-232 kullanmasanız dahi zaman ve bunun yerine bir TTL veya diğer gerilim UART protokol arayüzünü kullanıyor) Ancak ekipmanın parçaları şu günlerde kullanırken genellikle bütün (Tek istisna olmak modemler ile) DTE etkili bir. DTE'nin bir parçası üzerindeki pim 2'yi (bir çıkış olan), DTE olarak yapılandırılmış başka bir ekipmanın pim 2'sine (başka bir çıkış) bağlamak mantıklı değildir (ve mantık seviyesi sinyalleri kullanıldığında bile donanım hasarına neden olabilir). "Çapraz" veya "boş modem" (yani modem yok) kablolarının kullanıldığı yer burasıdır.

Senin sorun

PC'ye RS232 iletişimi kullanan bir cihazla çalışıyorum. TX ve RX pinlerini cihaza göre tanımladıkları için bazı karışıklıklar oldu. Tanımlarında, TX'i cihazdan veri gönderen pin olduğu anlamına gelir. Bence bu RX olarak etiketlenmeli çünkü bilgisayarın aldığı pin.

Pimler nasıl tanımlanmalıdır? Her bir cihaza veya "kontrolöre" göre mi?

Yukarıdaki arka plan bilgisinden, cihazları DTE olarak işlev görüyorsa etiketlemelerinin doğru olduğunu görebilirsiniz (çoğu modem veya başka bir WAN arayüzü olmadıkça). DTE bir parça üzerinde pim "Bulaşan Verileri" (25 pin konnektör pin 2) etiketli gelmez veri göndermek. (Ve yukarıda açıklandığı gibi, bir DCE parçasında (örneğin bir modem) "Aktarılan Veri" olarak bilinen pim (25 pimli konektöründeki pim 2) aslında DTE'den sinyal alan bir giriştir.)

PC'nin seri bağlantı noktası da DTE olarak yapılandırılacaktır ( çok sıradışı bir seri bağlantı noktası yoksa - burada geçerli olmayacak, geçerli olup olmadığını bildiğiniz gibi).

Bu nedenle DTE cihazını (bahsettiğiniz bu cihaz) DTE cihazına (PC) bağlıyorsunuz, yani "RS-232 terminolojisinde DCE yok, yani modem yok ve" boş modem "veya" çapraz "RS-232 Bir çıkış olacak olan bu DTE cihazında hangi pinin RS-232 "Aktarılan Veri" (muhtemelen TX olarak etiketlediklerini belirttiğiniz) olursa olsun, RS-232 "Alındı" PC'nizdeki Veri girişi (ayrıca bir DTE cihazı), bu da bir giriştir (ve diğer yönde veri aktarımı için tersi de geçerlidir).

Bu sizin için geçerli görünmese de şunu ekleyeceğim: Hayatı daha karmaşık hale getirmek için, bazı üreticiler DTE ekipmanlarını bir DCE parçası gibi etkili bir şekilde etiketleyerek "yardım etmeye" çalışıyorlar. Veri giriş pimlerini Tx olarak işaretlerler, böylece kullanıcı sadece harici cihazdan "Tx" i (DTE ise, oradan veri çıkışı olacaktır ) ekipmanlarındaki "Tx" işaretli pime (yani bir giriş ). Böylece, "sadece cihazınızdaki Tx'i ekipmanımızdaki Tx'e bağlayın" diyecekler. Yardım etmeye çalıştıklarını düşünüyorlar, ancak böyle bir etiketleme genellikle karışıklığa katkıda bulunuyor.

Dan Mills'in bir yorumda belirttiği gibi , RS-232 ile büyüyen birçoğumuz , tarif ettiği "koparma kutularını" kullanarak çeşitli ekipmanları biraz farklı RS-232 uygulamaları ile bağlamak için mutlu saatler geçirdik . Bu dağıtım kutularında, hangi sinyallerin aktif olarak sürüldüğünü gösteren LED'ler bulunur (bu, ekipmanın DTE mi yoksa DCE olarak mı yapılandırıldığını hızlıca görmenizi sağlar: Pim 2 bu ekipman üzerinde mi sürülüyor? Evet = DTE) ve kısa atlama kablosunun bulunduğu yerler var kablolar çeşitli konektör pimlerini bağlamak için kullanılabilir.


İşler işe yaramazsa yaygın uygulama, kablonun bir ucundaki 2 ve 3 numaralı pimlerdeki bağlantıları takas etmektir (bu hem DE-9 hem de DB25 konektörlerinde çalışır)
Peter Bennett

2
Doğru. RS-232 (mantık seviyesi sinyalleri değil) olduğu ve donanım el sıkışmalarından bahsedilmediği bu özel soru bağlamında, 2 ve 3 pinlerini değiştirmek denemek için bir şey olacaktır (çünkü yanlışlıkla iki RS-232 çıkışını bağlamak neden olmamalıdır kalıcı hasar). Ne yazık ki donanım el sıkışması söz konusu olduğunda işler karmaşıklaşmaktadır (sorun bu sinyallerin çeşitli konfigürasyonlarında olabileceğinden). Ardından 2 ve 3 numaralı pinleri değiştirmek sorunu çözmeyebilir veya tek sorunu çözmeyebilir. Bu, koparma kutularının anılarını ve dokümantasyonda olmayanları analiz etmenizi sağlar .
SamGibson

1
Oh yessss, RTS / CTS / DSR / DTR ... Bir çok yazılım akış kontrolü isteyen ve diğer RTS / CTS bekliyor gibi eğlenceli şeylere gitmeden önce, pek çok, birçok olasılık. Ve evet, belgeler her zaman aynı. Ben USB hakkında orospu (esas olarak üç tür bok fişi, aynı zamanda çoğunlukla yazılım yığınları bok), ama '232' düşünmek başka bir seviye boktastikti.
Dan Mills

8

Sinyal adı kullanan birçok veri yolu benzeri konfigürasyonun aksine , seri iletişim geleneksel olarak pinler için fonksiyon adını kullanır . Bu nedenle, cihaz bir pim üzerinde iletirse, Tx olarak işaretlenir. Eğer alırsa, Rx olarak işaretlenir. Açıkçası, bir cihazın Tx'ini diğerinin RX'ine bağlarsınız veya bunun tersi de geçerlidir.

Perspektife koymak için, bahsettiğiniz cihazın içinde de bir "bilgisayar" vardır, bu MCU'nun temelde olduğu şeydir. Neden bir bilgisayar diğer bilgisayarın pimlerinin adlarını dikte etmeli, özellikle de iletişimin iki yönlü asenkron doğasını göz önünde bulundurmalı?

Özel durum, söz konusu cihazın eski bir modem veya modern FT232 dönüştürücü gibi doğrudan geçişli olmasıdır. Bilgisayarla iletişim kurmak için Tx / Rx pinlerini kullanmıyorlar, bilgisayar iletişimini daha da aşağıya iletmek için kullanıyorlar . Bu nedenle pinleri, gelen sinyallerden sonra adlandırılır.

GÜNCELLEME: İşte konuyu açıklayan birkaç örnek.

Muhtemelen milyonlarca insan Arduinos kullanıyor, bazıları nasıl çalıştığı hakkında en ufak bir fikre bile sahip değil. Tx'i Rx'e, Rx'i Tx'e, Gnd'yi Gnd'ye bağlarlar ve gitmek için iyidirler. Çoğu zaman farkına varmadıkları şey, iki MCU'nun birbiriyle konuşmasına izin veren teknik olarak boş modem oluşturmalarıdır.

Şimdi, aynı insanlar bazen Arduino'larına USB bağlantısı eklemek istiyor. Adaptör veya dönüştürücü çipinde TX'i TX'e ve RX'i RX'e bağlarlar. Karışıklığı önlemek için genellikle "TX-IN" ve "RX-OUT" olarak adlandırılanlara dikkat edin. Yine, bariz görünen ancak nadiren düşünülen şey, teknik olarak bu USB adaptörünün doğrudan geçişli bir cihaz olmasıdır. RX pininde "söylediği" adaptörün kendisinden gelmiyor, hattın diğer tarafındaki cihazdan geliyor. Ve tahmin et ne oldu? Bir yere TX pinine bağlanır.


Bu yanlış. Standart DTE ve DCE'yi (birbiriyle konuşan iki şey) belirtir ve TX / RX bunlardan birinin bakış açısından belirtilir (hangisini unuturum). Bu detay yıllar geçtikçe kayboldu ve etiketlerin kullanımı o kadar karanlık oldu ki deneyimli elektrik mühendisleri bile hatayı yaptı.
Steve

SamGibson'un cevabı çok iyi.
Steve

2
@Steve "Detay kayboldu" mu ?! RS232 özellikleri tüm web'de! DTE ve DCE çünkü TX / RX DTE tarafı için belirlenen isimler değil bu pimleri üzerinde "birbiriyle konuşmayı", bunun için çoklu kontrol sinyalleri kullanır. Modemin ve bilgisayarın aksi halde birbirlerine söyleyecek bir şeyi yoktur . Modem sadece bu sinyalleri iletir. Ama null modem kullanarak iki DTE bağlayabilirsiniz ve o zaman perspektif nerede? İkisi de bilgisayar, birbirleriyle konuşuyorlar ve bu OP sorusunda açıklanan durum.
Maple

DTE - DTE dersleri elbette. Yine de cevabınıza DTE ve DCE hakkında herhangi bir bilgi eklemediğiniz için şaşırdım, bu da cevabınızın neden doğru olduğunu anlamaya doğru gidiyor . Sanırım cevabın yanlış olduğunu söylediğimde yanlış konuştum, ama buradaki diğer yanlış anlamaları devam ettiriyor - "Detay kayboldu" derim. "veya DCE ekipmanını DTE sinyal adlarıyla etiketleyin. Ve bu ayrıntıyı dahil etmemek, bunu biraz sürdürmeye yardımcı olur ...
Steve

1
@Steve, DTE / DCE'den bahsetmekten kaçındım çünkü soru kontrol sinyalleri vb. İle ilgili çok önemli ama alakasız tartışmadan oraya gidemezsiniz. Her neyse, cevabı bazı şeylerle daha net hale getirmek için güncelledim.
Maple

6

RS232 cihazlarının "master / slave" veya "client / server" ilişkisi olmadığı için genellikle cihaza göredir. SPI protokolü bir master / slave mimarisine sahiptir, bu nedenle "MISO" (Master In Slave Out) ve "MOSI" (öğrenciye bir egzersiz olarak bırakılır) olarak etiketlenirler. Bu cihaz seviyesinde; Bireysel devre tasarımcılarının ağ isimleri olarak neyi seçebileceğini konuşamıyorum.


Bir "DTE / DCE" ilişkisi var ama @Maple'ın açıkladığı gibi orada durdular. Aslında bazı derin tarih yaptıklarını açıklayabilir.
gbarry

Bu cevap, insanların RS-232'ye şu andaki muamelesini doğru bir şekilde tarif ederken, teknik olarak yanlıştır (@gbarry DCE / DTE'ye işaret ettiğinden).
Steve

4

Ne yazık ki, mühendisler için bu iki dilim bok arasında bir muammadır.

Gerçek bir mantıksal çözüm yoktur, her iki yol da mantıklı olabilir.

Pimleri, pcb'leri, IC mizanpajlarını, bağlantı tablolarını, yazılımı, IN / OUT kelimelerini ve / veya yönleri gösteren okları etiketlemeye çalışıyorum. Şemalarınız vb. Üzerinde "TX-out" "RX-in" "CTS-out" "RTS-in" sözcüklerini kullanın. Bu, belirsizliği tamamen giderir. [Ben genellikle TX ve RX doğru adlandırılmalıdır yani TX çıktı olması gerektiğini düşünüyorum].

İşte sinyallerin bir izolasyon bariyerini geçtiği bir pcb. Okları not edin, böylece birisi hata ayıklayabilir veya bir konektör takmaya çalışır, sinyallerin hangi yollara gittiğini açıkça bilir.

resim açıklamasını buraya girin

Kontrol sinyalleri daha da kötüdür. (elektriksel yönün yanı sıra mantıksal kontrol yönleri de vardır)

Kontrol sinyallerinin işlevi açıkça ortaya koyan bir dokümanı vardır: 'CTS (out), cihazın veri almaya hazır olduğunu bildirir'

Bazen her iki yol da aynı anda mantıklıdır: RX ve TX'in kendi işlevleriyle (cips perspektifinden) doğru şekilde adlandırıldığı bir çipim var. Ancak el sıkışma pinleri, bağlanacakları PC pinleriyle eşleşen CTS ve RTS olarak adlandırılır, çünkü yazılım ve durum ışıkları budur.

Son yıllarda yardımcı olan bir şey, cihazların doğrudan bir PC seri bağlantı noktasına doğrudan bir mf kablosuyla bağlanan bir DE9F konektörü kullanmasıdır. Bu, tüm geçmiş için özgürlüğü azalttı.


1
RXD>Ok , pimden uzağa bakacak şekilde gösteriliyorsunuz , yani bu pimden bir sinyal geliyor - kesinlikle bunun bir girdi değil çıktı olmasını beklerim!
boru

@pipe Çipin devre kartında, konektöre göre nerede olduğunu düşünürseniz, ürün üzerinde belge olmadan çalışan biri için hiç belirsiz değildir. Ok, sinyal akışını doğru bir şekilde temsil eder. [ilginç dilsel nokta: "dışarı" / "giriş" in aksine, oklar sadece mekansal bir bağlam içinde içsel bir anlama sahiptir]
Henry Crun
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.