Hur funkar RTS och CTS på RS232 i full duplex?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Mr M
Inlägg: 165
Blev medlem: 20 januari 2006, 21:35:14

Hur funkar RTS och CTS på RS232 i full duplex?

Inlägg av Mr M »

Hur funkar RTS och CTS på RS232 i full duplex?

Någon här som kan berätta? :-)
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Hmmmm... andra träffen på Google...

Letade på "rs232 handshake"
Mr M
Inlägg: 165
Blev medlem: 20 januari 2006, 21:35:14

Inlägg av Mr M »

Hmmm, inte så mycket hjälp tyvärr. Skulle vilja ha mer grafer med signaler. :-/

Hittade något här:

http://www.moxa.si/Title_Pages/Multipor ... Boards.pdf

, på sidan 2.

Men jag undrar vad de menar med "raises", menar dom "mark" eller "space" på nivån?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Mr M: Behövs hårdvaruhandskakning längre. vilken enhet som helst klarar ju mycket högre hastigheter än vad UART har.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Om du talar om vad som är problemet så kanske det
är enklare att förstå vad du vill veta...

> Men jag undrar vad de menar med "raises"

Höjer.
rehnmaak
Inlägg: 2204
Blev medlem: 13 december 2005, 01:43:41

Inlägg av rehnmaak »

Med reservation för polariteten på signalerna (jag kommer aldrig ihåg om de ska vara 1 eller 0) så sätter man RTS hög om man vill att andra ändan ska sluta sända och man själv ska sluta sända så fort som möjligt om CTS är hög. Ett bra sätt är att sätta RTS hög när mottagarbufferten är 80% full och lägger RTS låg när bufferten når 20%.
Mr M
Inlägg: 165
Blev medlem: 20 januari 2006, 21:35:14

Inlägg av Mr M »

Micke_s skrev:Mr M: Behövs hårdvaruhandskakning längre. vilken enhet som helst klarar ju mycket högre hastigheter än vad UART har.
Ja, annars skulle jag väll inte fråga :-P
Mr M
Inlägg: 165
Blev medlem: 20 januari 2006, 21:35:14

Inlägg av Mr M »

sodjan skrev:Om du talar om vad som är problemet så kanske det
är enklare att förstå vad du vill veta...

> Men jag undrar vad de menar med "raises"

Höjer.
Ok, tack för ingenting (fattar engelska).
Mr M
Inlägg: 165
Blev medlem: 20 januari 2006, 21:35:14

Inlägg av Mr M »

rehnmaak skrev:Med reservation för polariteten på signalerna (jag kommer aldrig ihåg om de ska vara 1 eller 0) så sätter man RTS hög om man vill att andra ändan ska sluta sända och man själv ska sluta sända så fort som möjligt om CTS är hög. Ett bra sätt är att sätta RTS hög när mottagarbufferten är 80% full och lägger RTS låg när bufferten når 20%.
Menar du "hög" som att du har positiv spänning på RS232, alltså inte negativ?
Mr M
Inlägg: 165
Blev medlem: 20 januari 2006, 21:35:14

Inlägg av Mr M »

Här hittade jag något :-)
Then when a DTE (such as a PC) wants to stop the flow into it, it negates RTS. Negated "Request To Send" (-12 volts) means "request NOT to send to me" (stop sending). When the PC is ready for more bytes it asserts RTS (+12 volts) and the flow of bytes to it resumes. Flow control signals are always sent in a direction opposite to the flow of bytes that is being controlled. DCE equipment (modems) works the same way but sends the stop signal out the CTS pin. Thus it's RTS/CTS flow control using 2 lines.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Menar du "hög" som att du har positiv spänning på RS232, alltså inte negativ?

Det framgår av dokumentet som Icecap länkade till (i *första* svaret) :

"ON refers to a high RS-232 voltage level (+5V to +15V),
and OFF refers to a low RS-232 voltage level (-5V to -15V)."

"Hög" = "ON" i rehnmaak's inlägg.

> Ja, annars skulle jag väll inte fråga
> Ok, tack för ingenting (fattar engelska).

Inte riktigt rätt attityd när man ber om hjälp... :-)
rehnmaak
Inlägg: 2204
Blev medlem: 13 december 2005, 01:43:41

Inlägg av rehnmaak »

Som jag skrev, jag kommer aldrig ihåg vilken polaritet det är på signalerna... Dessutom är signalerna inverterade på RS232 linan jämfört med signalerna på UART:en.
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

Om man först läser i pdf:en:
The “idle” state (MARK) is
negative with respect to the common ground, and the “active” state (SPACE) is positive with respect to the common ground"


...och sedan på maxim's sida:
When the host system (DTE) is ready to transmit data to the peripheral system (DCE), RTS is turned ON

..så bör man komma fram till samma sak.

Vad som kanske "rör till det" är förmodligen att "TTL-varianten" (PIC/AVR etc.) är tvärtom jämfört med RS232... idle-state (MARK) brukar då vara +5V och active-state (SPACE) är logisk 0V.
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

rehnmaak skrev:Som jag skrev, jag kommer aldrig ihåg vilken polaritet det är på signalerna... Dessutom är signalerna inverterade på RS232 linan jämfört med signalerna på UART:en.
Är det inte tvärtom, om man ska vara korrekt. Att UART:ens nivå är inverterade jämfört med nivån på RS232?

Edit: Ehmm.. tror att jag svamlar nu, gonatt. =)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

oJsan> Att UART:ens nivå är inverterade jämfört med nivån på RS232?

rehnmaak> Dessutom är signalerna inverterade på RS232 linan jämfört med signalerna på UART:en.

Exakt *vad* är det för skillnad på det ??? :-) :-)

D.v.s att "1" är en inverterad "0", eller att "0" är en inverterad "1" ?

oJsan> The “idle” state (MARK) is negative with respect to the common ground,

Jo, men det är inte så självklart att "idle" eller "mark" = "1" (eller "hög" om man vill).
Och att "active" (eller "Space") är = "0"... :-)

OBS, detta gäller på TX och RX !
Skriv svar