RS232 handskakning

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
wolie
Inlägg: 119
Blev medlem: 1 juli 2007, 11:07:08
Ort: Gbg

RS232 handskakning

Inlägg av wolie »

Har en gammal pryl som använder rs232. Den tar emot via RX och sänder handskakning över CTS. Enheten (terminal) som ska kopplas ihop med denna pryl har bara 3-wire rs232.
Min idé: Koppla CTS från prylen till en attiny2313 som sänder ut något tecken till RX hos terminalen när CTS dras aktiv. Mjukvaran på terminalen sköter sedan handskakningen mha. tecknet den får från attiny:n.
Prylen kräver 115200bps och 2 stoppbitar.

Möjligt? Någon som försökt något liknande? Ska jag sluta röka på?
Senast redigerad av wolie 7 november 2010, 15:37:41, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: RS232 handskakning

Inlägg av sodjan »

Beskriv "pryl" bättre.

*Vet* du att du för problem om du kör utan handskakning ?
D.v.s om du kopplar CTS hårt till "on" ?
wolie
Inlägg: 119
Blev medlem: 1 juli 2007, 11:07:08
Ort: Gbg

Re: RS232 handskakning

Inlägg av wolie »

Gammal skrivare. Är nog inte aktuellt att modifiera firmwaren i den. Om jag kör CTS aktiv så tappar skrivaren bort sig. Den skriver en mening här och en fem rader nedanför. Har provat med att skicka datan i olika tidsintervall, men med samma resultat. Har källkod till drivrutinen och den ser ut såhär:

Kod: Markera allt

		if (!MS_CTS_ON))
		{
			if (nTimeout == 0)
			{
				nTimeoutPlus = (dwIndex-dwLast)*100;
				dwLast = dwIndex;
			}
			Sleep(1);
			nTimeout += dwSleepRes;
			dwIndex--;
		}
		else
		{
			nTimeout = 0;
			WriteFile(g_hPrint, (BYTE*)lpBuffer+dwIndex, 1, &dwNumBytesWritten,	NULL);
		}

Den kollar alltså efter varje skrivet byte om CTS är av och väntar i så fall.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: RS232 handskakning

Inlägg av sodjan »

Byta skrivare ?
Vilken "drivrutin" ? Drivrutin i vadå ?
Hobby eller professionell användning ?
Vad 17 är det du ska koppla ihop ? En "terminal" och en skrivare ?
Är det alltså skrivaren (vad för skrivare?) som du kaller "pryl" ?
Vad är det du kallar "Enheten (terminal)" igentligen för något ?
Någon speciellt anledning att inte beskriva det hela lite tydligare ?
wolie
Inlägg: 119
Blev medlem: 1 juli 2007, 11:07:08
Ort: Gbg

Re: RS232 handskakning

Inlägg av wolie »

1. Vill helst inte hålla på och köpa upp en massa skrivare.
2. Drivrutinen för skrivaren när den är inkopplad till en dator.
3. Hobby.
4. En handdator (=terminal) och en skrivare (=pryl). Finns ingen CTS signal tillgänglig på handdatorn.
5. Nej.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: RS232 handskakning

Inlägg av sodjan »

> 4. En handdator (=terminal) och en skrivare (=pryl).

Fabrikat/modell på dessa ?
wolie
Inlägg: 119
Blev medlem: 1 juli 2007, 11:07:08
Ort: Gbg

Re: RS232 handskakning

Inlägg av wolie »

Handdator: iPhone 3.1.3 jailbreakad.
Skrivare: Noname. Klarar PostScript 3.0, dvs. inga konstigheter där.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: RS232 handskakning

Inlägg av sodjan »

Det konstiga är väl att man inte kan ställa hastigheten på skrivaren.
Varför kräven den "115200bps och 2 stoppbitar" ?
Den "drivrutin" du visade har alltså ingenting med det aktuella problemet att göra ?
Vad stöder iPhone applikationen för handskakning ? Xon/Xoff ?
willmans
Inlägg: 254
Blev medlem: 11 april 2006, 13:56:20
Ort: Solna

Re: RS232 handskakning

Inlägg av willmans »

Det är ganska enkelt,
Programmera mikroprocessorn så att den skickar Xon/Xoff när CTS är hög/låg,
Koppla CTS till en pinne som den pollar eller mha interrupt (Behövs kanske någon slags nivåkonvertering? från +-12V till 5-0V) och när CTS ändras skickar man iväg ett Xon eller Xoff tecken på UARTen som konfigurereas till 115200bps och 2stoppbitar. Mikroprocessorns TX kopplas till terminalens RX, terminalens TX kopplas till skrivarens RX, skrivarens CTS till mikroprocessorn.
Ställ in terminalprogrammet på Xon/Xoff handskakning.
Senast redigerad av willmans 7 november 2010, 17:09:00, redigerad totalt 1 gång.
wolie
Inlägg: 119
Blev medlem: 1 juli 2007, 11:07:08
Ort: Gbg

Re: RS232 handskakning

Inlägg av wolie »

Baudraten eller stopbitarna är inte problemet. Drivrutinen jag visade var den metod som används när man kommunicerar med skrivaren. Man kan kontrollera iPhone:ns serieport, så man kan använda mjukvaruhanskakning.

Problemet är att skrivaren vill ha hårdvaruhanskakning men iPhone:en klarar bara mjukvaruhandskakning.

@willmans
Ja, precis. Har du gjort detta? Kan en attiny2313 @ 8MHz tänkas klara av detta?
Senast redigerad av wolie 7 november 2010, 17:11:38, redigerad totalt 1 gång.
willmans
Inlägg: 254
Blev medlem: 11 april 2006, 13:56:20
Ort: Solna

Re: RS232 handskakning

Inlägg av willmans »

Därför omvandlar du CTS signalen till mjukvarubaserad handskakning med mikroprocessorn. Skrivaren skickar väl inget tillbaka till terminalen? Då är RX på terminalen ledig att kopplas till mikroprocessorn.

Ställer du in terminalprogrammet på Xon/Xoff så stannar den när den tar emot ett Xoff tecken och startar igen när den får ett Xon, precis som CTS signalen fast man sparar en kabel.

Kolla i databladet till processorn om den klarar av 115200 baud vid 8MHz, annars får du ta snabbare kristall.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: RS232 handskakning

Inlägg av sodjan »

> Baudraten eller stopbitarna är inte problemet.

Nja, problemet och problemet...

Om inget annat fungerar kan man "lösa" liknande problem genom att helt enkelt
sänka hastigheten tills handskakningen inte längre behövs (d.v.s skrivaren hinner med).

Om inget annat fungerar så kommer sannolikt en Xon/Xoff till
CTS omvandlare att eventuellt fungera. Eller genom att fixa en
buffert mella IPhone och skrivaren (t.ex med en AVR/PIC) som helt
enkelt har tillräckligt med utrymme för att köra utan handskakning.

Sen så är det ju en märklig skrivare där man inte kan ändra hastigheten.
Det har jag aldrig sett så det vore intressant att veta mer om den.
wolie
Inlägg: 119
Blev medlem: 1 juli 2007, 11:07:08
Ort: Gbg

Re: RS232 handskakning

Inlägg av wolie »

Baudrate är hårdkodat i firmwaren.

"Xon/Xoff till CTS omvandlare " är precis vad jag frågat efter. Finns det någon som byggt en sådan? Om man ska bygga själv så kommer ju problemet med negativa spänningar, och huvudvärken/komponenterna plockar på.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: RS232 handskakning

Inlägg av sodjan »

Du kanske kan få tag på en begagnad sådan här:
http://www.westermo.com/dman/Document.p ... ual+SE.pdf
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: RS232 handskakning

Inlägg av blueint »

Frågan är om "terminalen" reagerar snabbt nog på Xoff så att ingen byte går förlorad.

Vad tror ni?
Skriv svar