Panjang kabel maksimum untuk sinyal UART 3.3V

15

Saya ingin menghindari penggunaan konverter RS-232 antara dua mikrokontroler pada dua papan yang berbeda. Karena berbagai alasan, hanya UART yang didukung, mis. Tidak ada SPI atau I2C, dan saya akan menggunakan kabel CAT5E ke jack RJ45 di antara papan. Kecepatan data akan menjadi 115200bps, mungkin hingga 921600bps. Ground terhubung bersama dengan sinyal UART.

Sementara saat ini saya memilikinya bekerja sejauh yang saya butuhkan, untuk pendidikan saya sendiri, adakah cara untuk memperkirakan panjang kabel maksimum di mana ini akan dapat diandalkan?

Penanya
sumber
Lammertbies.nl/comm/info/RS-232_specs.html ini dapat membantu "Jika misalnya kabel UTP CAT-5 digunakan dengan kapasitansi khas 17 pF / ft, panjang kabel maksimum yang diijinkan adalah 147 kaki."
kenny
3
Real RS232 memiliki ayunan tegangan lebih dari 10 Volt antara tanda dan keadaan ruang. Dan 147 kaki hanya untuk 19200 baud. OP berbicara tentang 3V3 UART dan 115200 hingga 921600 baud: Ini hanya akan bekerja dengan kabel yang relatif pendek.
Turbo J
2
Bolehkah saya menyarankan tranceiver RS422? Mereka akan cocok kabel twisted pair CAT5E jauh lebih baik.
Turbo J
Bukan pilihan, sayangnya.
QuestionMan
Saya punya pertanyaan: mengapa 422 tranceiver bukan pilihan?
DiBosco

Jawaban:

14

Tidak ada jawaban aman tunggal. Ini ada hubungannya dengan panjang kabel, kebisingan listrik di sekitar, dan seberapa cepat Anda ingin pergi. Ethernet menggunakan kabel CAT5 untuk mentransmisikan pada 10 Mbit / s untuk variasi paling lambat, sehingga 1 Mbit / s mudah dilakukan jika Anda mengambil tindakan pencegahan yang tepat . Perhatikan bahwa dengan ethernet masing-masing sinyal mendapatkan pasangan bengkok sendiri, dan masing-masing pasangan secara hati-hati diakhiri pada impedansi karakteristik kabel di setiap ujung. Setiap pasangan didorong secara berbeda dan diinterpretasikan secara berbeda, dan juga dirancang sedemikian rupa sehingga tidak dapat menyebabkan ground loop.

Jika Anda melakukan semua ini, Anda dapat mengirimkan data 1 Mbit / s pada kabel CAT5 untuk jarak jauh, seperti 1000 meter. Ketika Anda melakukan lebih sedikit hal-hal ini, jarak yang dapat digunakan akan turun. Jika hanya papan ke papan dalam sasis yang sama, misalnya, maka Anda mungkin tidak perlu melakukan banyak hal khusus. Jika Anda pergi ke luar unit, maka driver dan penerima saluran diferensial dapat berguna.

Cobalah sesuatu di pengaturan Anda dan lihat sinyal di sisi penerima untuk mendapatkan gambaran tentang batas kebisingan, sesuaikan sesuai kebutuhan. Mungkin menggunakan protokol yang dapat mendeteksi dan memulihkan dari kesalahan, dan melacak seberapa sering itu terjadi. Ada terlalu banyak cara untuk mendaftar di sini tanpa informasi lebih lanjut.

Olin Lathrop
sumber
1
Hanya karena Anda bisa mendapatkan 145m dari Ethernet tidak berarti Anda akan mendapatkan yang sama dari sinyal 3.3L TTL ke kabel yang sama hanya karena Anda menggunakan bit rate yang lebih rendah, lihat penjelasan dalam jawaban saya.
Jason Morgan
2
@Jason: Perhatikan bahwa saya tidak mengatakan Anda akan melakukannya. Saya mengatakan Anda bisa menempuh jarak yang jauh dengan tindakan pencegahan yang tepat, seperti driver jalur diferensial dan penerima serta ujung yang diakhiri.
Olin Lathrop
3
@Olion: Dari posting Anda, Anda tampaknya menyatakan lebih tentang karakteristik kabel, daripada mengapa 3,3V TTL tidak akan melakukan perjalanan jauh ke bawah itu. Bagi saya itu dibaca sebagai saran untuk membeli kabel yang bagus, yang kita berdua tahu salah.
Jason Morgan
7

Ethernet menggunakan pensinyalan diferensial, sinyal TTL tunggal berakhir.

Ethernet menggunakan pra-penekanan, TTL tidak.

Ethernet adalah mode saat ini, TTL adalah mode tegangan.

Ethernet menggunakan modulasi tachnique yang mengurangi jumlah sisi, TTL Anda mungkin tidak (ASYNC standar tentu saja tidak)

Driver dan penerima Ethernet cocok dengan kabel, kecuali jika dirancang dengan hati-hati, TTL tidak akan (dan jika ya, maka itu tidak akan menjadi TTL!)

Ethernet menggunakan sinyal simetris (dengan menggunakan scambling) untuk membuat kepadatan 1's. Serial ASYNC memiliki built in bias yang mengisi kabel dan harus diatasi untuk mendapatkan sinyal dari ujung lainnya.

Untuk alasan ini, hanya karena Anda bisa mendapatkan 145m dari Ethernet pada 1Gbps tidak berarti Anda akan mendapatkan yang sama (atau bahkan 1000 kali lebih sedikit) dari sinyal TTL 3.3V ke kabel yang sama.

Saya sarankan menggunakan driver pensinyalan diferensial seperti RS422, itulah yang dirancang untuk itu. Memang RS422, meskipun berjalan pada tegangan yang lebih rendah lebih baik untuk jangka panjang karena pensinyalan diferensial (RS232 adalah satu berakhir),
Juga, driver dan penerima melakukan hal-hal cerdas untuk meningkatkan kualitas tepi seperti pra-penekanan.

Jason Morgan
sumber
OP sudah menyatakan 3 jam sebelum jawaban Anda bahwa transceiver RS422 bukan pilihan.
tcrosley
3
Ya, saya bisa membaca. Saya masih bisa merekomendasikan solusi yang benar. Hanya karena poster itu tidak suka mendengar kebenaran, itu tidak berarti bahwa poster itu tidak boleh diceritakan.
Jason Morgan
2
Mengapa Anda menyebutnya TTL sepanjang waktu? Judul mengatakan 3.3V, jadi jelas bukan TTL. Drive TTL memiliki kemampuan sumber / wastafel yang sangat asimetris, sementara HCMOS simetris. Dapat membuat dunia berbeda mengendarai kabel.
stevenvh
Apa itu "pra-penekanan"?
m .linet
Preemphasis adalah teknik di mana kekuatan drive (yaitu impedansi keluaran) dimodulasi selama pulsa yang dikirim. Ini digunakan untuk mengimbangi karakteristik kapasitif dan induktif kabel dan magnet dalam upaya menghadirkan tepi berkualitas lebih baik kepada penerima.
Jason Morgan