rs232-schnittstelle

3
ANHANG COMMODORE PLUS/4 COMMODORE FLUS/4 ANHANG * * *** * ** **** **** *** *** ** * RS—232-SCHNITTSTELLE * * * ** * ** * ** ** *** ** ** * *** * Einführung Der COMMODORE PLUS/4 hat eine eingebaute RS—232—Schnittstelle zum Anschluß von Modems, Drucker oder anderen Peripheriegeräten, die ebenfalls mit einer RS—232—Schnittstelle ausgerüstet sind. In der Regel benötigen Sie dazu noch einen Adapter zur Fegelanpessung, da die Spannungen beim COMMODORE PLUS/4 auf TTL—Pegel liegen (0. .5V), während die RS—232—Schnittstelle normalerweise mit Pegeln zwischen —12V und +12V arbeitet. Die RS—232—Schnittstelle kann mit einigen einfachen Befehlen von Basic aus angesprochen werden. Demjenigen, der in Maschinensprache programmiert, stehen einige Betriebssystem—Routinen zur Verfügung, die er über den KERNAL aufrufen kann. In diesem Kapitel behandeln wir lediglich den Umgang mit der RS—232—Schnittstelle von Basic aus. In Basic benutzt man bei der Arbeit mit der RS—232—Schnittstelle die normalen Datei-Befehle OFEN, CLOSE, CMD, INPUT#, GET#, PRINT# und die Statusvariable ST. Hierbei dienen OFEN und CLOSE zum Offnen bzw. Schließen des RS—232—Kanals, INPUT# und GET# zum Lesen aus dem Empfangspuffer sowie PRINT# und CMD zum Schreiben in den Sendepuffer. ÖFFNEN DES RS—232—KANALS Durch den OFEN—Befehl wird der RS—232—Kanal geöffnet und der Zeiger des Empfangspuffers zurückgesetzt. Daten, die vorher im Empfangspuffer standen, sind danach verloren. Mit der OFEN—Anweisung können bis zu 4 Steuerzeichen übertragen werden. Die ersten beiden Zeichen werden in das Kontroll— und in das Befehisregister geschrieben, die letzten beiden sind für Erweiterungen reserviert. Die Schreibweise des OPEN—Befehls ist,wie folgt: OFEN lf,2,0, “Kontrolicode Befehlscode“ lf Logische Filenummer Cl. .255) Bei if > 127 folgt dem Linefeed (Wagenrücklauf) ein Zeilenvorschub. Kontrolicode siehe Kontroll—Register Befehlscode siehe Bafehls—Register SCHLIESSEN DES RS-232—KANALS Zum Schließen des RS—232—Kanals brauchen Sie lediglich CLDSE lf einzugeben, wobei für if dieselbe logische Filenummer angegeben werdan muß, die im dazugehörigen OFEN—Befehl verwendet wurde. Mit dem CLOSE—Befehl wird der Puffer gelöscht, der Sende— und Empfangsbetrieb beendet und die RTS— sowie die Sout—Leitung auf high gesetzt. KONTROLL—REGI STER Ober das Kontrollregister werden die Anzahl der Stop—Bits, die Datenwortlänge und die Baudrate im Interfate—Baustein 6551 eingestellt. Bit Baudrate 3210 O 0 0 0 16 * extern zugeführter Takt O 0 0 1 5OBaud 0 0 1 0 75Baud 0 0 1 1 109,92 Baud 0 1 0 0 134,58 Baud 0 1 0 1 150 Baud 0 1 1 0 300Baud 0 1 1 1 600Baud 1 0 0 0 l200Baud 1 0 0 1 lBOOBaud 1 0 1 0 2400Baud 1 0 1 1 3600 Baud 1 1 0 0 4800Baud 1 1 0 1 7200 Baud 1 1 1 0 9600 Baud 1 1 1 1 19200 Baud Bit 4: Empfängertakt—Bit 0: Extern zugeführter Takt 1: Baudrate—Generator Bit Länge des 6 5 Datenwortes 0 0 8Bit 0 1 7Bit 1 0 6Bit 1 1 5Bit Bit 7: Stop—bit 0: 1 Stopbit 1: Bei Wortlänge 8 Bit plus 1 Faritätsbit —‘ 1 Stopbit Bei Wortlänge 5 Bit und kein Paritätsbit —> 1,5 Stopbits Ansonsten —> 2 Stopbits Bei einem Hardware—Reset werden alle Bits auf 0 gesetzt. Bei einem Programm—Reset wird kein Bit beeinflußt. 230 231

Upload: stefanmansier

Post on 19-Nov-2015

14 views

Category:

Documents


0 download

DESCRIPTION

RS232-SCHNITTSTELLE

TRANSCRIPT

  • ANHANG COMMODORE PLUS/4COMMODORE FLUS/4 ANHANG

    * * *** * ** **** **** * * * *** * *

    * RS232-SCHNITTSTELLE ** * ** * ** * ** ** * * * ** ** * *** *

    Einfhrung

    Der COMMODORE PLUS/4 hat eine eingebaute RS232Schnittstellezum Anschlu von Modems, Drucker oder anderen Peripheriegerten, dieebenfalls mit einer RS232Schnittstelle ausgerstet sind. In der Regelbentigen Sie dazu noch einen Adapter zur Fegelanpessung, da dieSpannungen beim COMMODORE PLUS/4 auf TTLPegel liegen (0. .5V), whrenddie RS232Schnittstelle normalerweise mit Pegeln zwischen 12V und+12V arbeitet.

    Die RS232Schnittstelle kann mit einigen einfachen Befehlen vonBasic aus angesprochen werden. Demjenigen, der in Maschinenspracheprogrammiert, stehen einige BetriebssystemRoutinen zur Verfgung, dieer ber den KERNAL aufrufen kann. In diesem Kapitel behandeln wirlediglich den Umgang mit der RS232Schnittstelle von Basic aus.

    In Basic benutzt man bei der Arbeit mit der RS232Schnittstelledie normalen Datei-Befehle OFEN, CLOSE, CMD, INPUT#, GET#, PRINT# unddie Statusvariable ST. Hierbei dienen OFEN und CLOSE zum Offnen bzw.Schlieen des RS232Kanals, INPUT# und GET# zum Lesen aus demEmpfangspuffer sowie PRINT# und CMD zum Schreiben in den Sendepuffer.

    FFNEN DES RS232KANALS

    Durch den OFENBefehl wird der RS232Kanal geffnet und derZeiger des Empfangspuffers zurckgesetzt. Daten, die vorher imEmpfangspuffer standen, sind danach verloren. Mit der OFENAnweisungknnen bis zu 4 Steuerzeichen bertragen werden. Die ersten beidenZeichen werden in das Kontroll und in das Befehisregister geschrieben,die letzten beiden sind fr Erweiterungen reserviert. Die Schreibweisedes OPENBefehls ist,wie folgt:

    OFEN lf,2,0, Kontrolicode Befehlscode

    lfLogische Filenummer Cl. .255)Bei if > 127 folgt dem Linefeed (Wagenrcklauf)ein Zeilenvorschub.

    Kontrolicodesiehe KontrollRegister

    Befehlscodesiehe BafehlsRegister

    SCHLIESSEN DES RS-232KANALS

    Zum Schlieen des RS232Kanals brauchen Sie lediglich CLDSElf einzugeben, wobei fr if dieselbe logische Filenummer angegebenwerdan mu, die im dazugehrigen OFENBefehl verwendet wurde.

    Mit dem CLOSEBefehl wird der Puffer gelscht, der Sende undEmpfangsbetrieb beendet und die RTS sowie die SoutLeitung auf highgesetzt.

    KONTROLLREGI STER

    Ober das Kontrollregister werden die Anzahl der StopBits, dieDatenwortlnge und die Baudrate im InterfateBaustein 6551 eingestellt.

    Bit Baudrate3210

    O 0 0 0 16 * extern zugefhrter TaktO 0 0 1 5OBaud0 0 1 0 75Baud0 0 1 1 109,92 Baud0 1 0 0 134,58 Baud0 1 0 1 150 Baud0 1 1 0 300Baud0 1 1 1 600Baud1 0 0 0 l200Baud1 0 0 1 lBOOBaud1 0 1 0 2400Baud1 0 1 1 3600 Baud1 1 0 0 4800Baud1 1 0 1 7200 Baud1 1 1 0 9600 Baud1 1 1 1 19200 Baud

    Bit 4: EmpfngertaktBit0: Extern zugefhrter Takt1: BaudrateGenerator

    Bit Lnge des6 5 Datenwortes

    0 0 8Bit0 1 7Bit1 0 6Bit1 1 5Bit

    Bit 7: Stopbit0: 1 Stopbit1: Bei Wortlnge 8 Bit plus 1 Farittsbit 1 Stopbit

    Bei Wortlnge 5 Bit und kein Parittsbit > 1,5 StopbitsAnsonsten > 2 Stopbits

    Bei einem HardwareReset werden alle Bits auf 0 gesetzt. Bei einemProgrammReset wird kein Bit beeinflut.

    230231

  • ANHANGCOMMODORE PLUS/4

    COMMODORE PLUS/4 ANHANG

    BEFEHLS-REGISTER

    Ober das BefehisRegister werden spezielle Sende undEmpfangsFunktionen gesteuert.

    Bit O:DTR (DatenTerminal bereit)0: Empfang und alle Interrupts unterbinden (BTR high)1: Empfangsbereit, Interrupts werden angenommen (DTH low)

    Bit 1: EmpfngerInterrupt0: TRQInterrupt ber Bit 3 des Statusregisters erlaubt1; IRQInterrupt nicht erlaubt

    Bit Sende RTS Sender3 2 Interrupt Pege~l

    o 0 nicht erlaubt high auso 1 erlaubt 10w ein1 0 nicht erlaubt bw ein1 1 nicht erlaubt 10w Unterbrechung

    Bit 4: Normal oder EchoModus fr Empfnger0: Normal1: Echo (Bit 2 und 3 mssen 0 sein)

    Bit Funktion567

    * * 0 Parittsmodus abgeschaltetEs wird kein Parittsbit erzeugt bzw. empfangen

    o o 1 Ungerade ParittSender und Empfnger

    o i 1 Gerade ParittSender und Empfnger

    1 0 1 Fr Paritt wird immer 1 gesendetParittsprfung abgeschaltet

    1 1 Fr Paritt wird immer 0 gesendetParittsprfung abgeschaltet

    Bei einem HardwareReset werden alle Bits auf 0 gesetzt. Bei einemProgrammReset werden Bit 0,1,2,3,4 auf 0 gesetzt.

    EMPFANG VON DATEN

    Der Empfangspuffer des COMMODOREZeichen aufnehmen. Wenn der Puffer vollStatusvariablen ST angezeigt. Weitere Daten,diesem Fall verloren. Man sollte daher dendurch eine Leseanweisung entleeren.

    Werden Daten mit hoher Geschwindigkeit bertragen, so ist einMaschinenprogramm erforderlich, um den Datenaustausch vorzunehmen, dadie Basicanweisungen zu langsam sind.232

    PLUS/4 kann bis zu 127ist, wird dies in der

    die eintreffen, gehen inPuffer immer frhzeitig

    Um Daten aus dem Empfangspuffer zu lesen, benutzen Sie ambesten den GET#Befehl. Wenn GET# keine Daten im Puffer vorfindet wirdein (Leerstring) ausgegeben. Die Schreibweis ist: GET# if, Variable

    Beim INPUT#Befehl wartet das System solange bis es einZeichen (ungleich Leerstring) gefolgt von einem Wagenrcklauf empfngt.Wenn nun CTS (Clear to send; Sendebereitschaft) oder DSR (Data setready; Betriebsbereitschaft) da angeschlossenen Gertes aufgehobenwerden, und das System in einer INPUT#Warteschleife hngt, kann es nurnoch durch einen RESET zurckgeholt werden. Aus diesem Grund sollte manden TNPUT#Befehl bzw. die CHRINRoutine mglichst nicht benutzen. DieSchreibweise ist: INPUT# lf, Variablenliste

    Wenn das empfangene Datenwort krzer als acht Bit ist, so sindalle nicht verwendeten Bits auf 0 gesetzt.

    SENDEN VON DATEN

    CMD lf (siehe Basic3.5Lexikon)PRINT# lf, Variablenliste

    STATUSREGT 5 TER

    Solange die entsprechenden Bits 0 sind, liegt kein Fehler vor.

    Das Statusregister kann von Basic aus ber die StatusvariableST gelesen werden. Sobald das Register von Basic bzw. derREADSTRoutine abgefragt wurde wird es gelscht. Wenn man dasStatuswort noch bentigt, sollte man es einer anderen Variablenzuweisen. (z.B. : SRST)

    Das RS232Statusregister wird nur dann gelesen, wenn dieletzte I/OAnweisung die RS232Schnittstelle betraf.

    1 Bit~. Bit

    Bitt~ Bit~Bit~~~Bit~Bit

    ~i. ~ Bit

    0: Parittsfehler1: FRAMINGFehler2: Empfngerpuffer voll3 nicht benutzt4: CTSSignal fehlt5: nicht benutzt6: DSRSignal fehlt7: Unterbrechung entdeckt

    233

  • ANHANG COMMODORE PLUS/4COMMODORE PLUS/4

    ANHANG

    234

    RS232- PINBELEGUNGPIN Bezeichnung EIA Abk. Eing./Ausg.

    C Empfangsdaten (BB) Sin EinD Sendeteil einschalten (CA) RTS AusE Endgert betriebsbereit (CD) DTR AusF Ankommender Ruf (CE) RI EinH Empfangssignalpegel (CF) DCD EinJ nicht benutztK Sendebereitscheft (CB) CTS EinL Betriebsbereitschaft (CC) DSR Ein8 Empfangsdaten (DB) Sin EinM Sendedaten (DA) Sout AusA Schutzerde (AA) GNDN Betrjebserde (AB) GND

    Als Beispiel ist hier ein einfaches Programm aufgefhrt.Programm dient zur TeleKommunikation mit anderen Rechnern ber(Akustikkoppler)

    100 rom puffer zuordnen, kanal oeffnen101 openS,2,2,cI~r$(22)+chr~(5)120 rem121 rem initialisieren125 a$=130 c$=chr$(166)+chr$(157)135 cs$& +chr$(l57)140 ro$=chr$(18). rf$~chr$(146)150 es$~chr$(27)+(~)160 dim f%(255),t%(255)200 rem201 rem codeumwandlung in usascii220 for j=32 to 64: t%(j)j: next230 t%(13)=13: t%(20)=8240 for j=65 to 90: t%(j)=j+32: next250 for j=91 to 95: t%(j)=j: next260 for j=193 to 218: t%(~)~jl28: next270 t%(146)~16: t%(133)=16280 t%(137)3: t%(134)17: t~(138)~19290 for j=0 to 255300 k=t%(j)310 if k0 then f%(k)=j: f%(k+128)=j320 next j330 scnclr: print chr$(14);340 print Empfangs und Sendeberejt350 print c$;400 rem401 rem empfangen410 get#5,a$: if a$= then 510420 print cs$;chr$(f%(asc(a$)));430 if f%(asc(a$))=34 then print es$;440 print c$;450 goto4lo500 re501 rem senden510 get a$: if a~(= then 410520 print#5,chr$(t%(agc(a$)));530 print cs$;ro$;a$;540 if asc(a$)=34 then print es$;550 print rf$;cS;560 goto 410

    DiesesModems

    235