RS485, automat driver dezactiva / activa semnal generaţie

B

Buenos

Guest
salut

pentru RS485 jumătate duplex sau multidrop sisteme, trebuie să dezactivaţi TX conducător auto, atunci când noi nu suntem de transmisie.În mod normal, este efectuată de către DTR sau RTS semnalul de la UART,
de control de tampon în transceiver.

Există o modalitate de a genera acest lucru în mod automat de către UART, fără nici o intervenţie de software?este în standard PC UART 16550?

 
Unele UARTs recente au o opţiune pentru a genera RS485 TE în mod automat,
de exemplu, EXAR ST16C650, dar standard 16550 nu.De soluţie comună este aa de timp, care permite transmiţător definite pentru perioada de după TX un pic.Există practic două opţiuni:
- Utilizarea unui lung TE intervall (> 1 caracter cadru).Implică un risc de coliziuni, în cazul în care peer raspunde prea repede.
- O scurtă TE intervall, doar suficient pentru a conduce prin cablu de capacitate la nivel opus.Funcţionarea depinde semnificativ dimensionate în diagonală rezistenţe în încetare de reţea şi nu este realiable timp pentru cabluri.

O exact, cadrul exacte transmiţător de control pot fi obţinute de la un UART generate TE semnal (după cum a spus cu ST16C550), cu un software de driver generate TE (cel puţin la nivel mediu şi scăzut de viteză) şi de un hard extern, care este de decodificare protocolul ( ca cu unele RS485 repetoare).

 
salut

Thanx.
de fapt, am găsit o soluţie de frumos pe internet la:
RX-dont dezactiva transmite în timpul funcţionării
-enable/disable transmite de către GPIO (RTS PIN pe superio)
trimite-o ca un caracter de terminare ultima în fiecare tranzacţie.
permite-TX înainte transmite începe, dezactivaţi în RX-întrerup rutina de reziliere de caractere, atunci când a fost primit inapoi.deci nu într-un complet TX irq rutină beceuse este unaccurate.
în timpul TX-mode, arunca toate datele primite în RX-întrerup rutina.

 

Welcome to EDABoard.com

Sponsor

Back
Top