Server » Verwarming » Technische informatie » TTL <> RS-232
Communicatieprotocollen
Omzetting van TTL niveaus naar RS-232 niveaus
COM
RS-232 is een communicatieprotocol die veel gebruikt wordt voor seriele communicatie tussen apparaten. Het protocol is eenvoudig en kan door de meest eenvoudige apparaten gebruikt worden.
-

-

Spanningsniveaus

De seriële verbinding werd gedefinieerd met opvallende spanningen die overeenkwamen met de spanningen die door de computers uit die tijd gebruikt werden. Dit is nu nog te merken aan computervoedingen die spanningen leveren van +5V, -5V, +12V en -12V.

Een "1" wordt aangegeven door een spanning van -3 tot -15V. In rust is de lijn eveneens op deze spanning. Een "0" wordt gekodeerd door een spanning van +3V tot +15V. De zone tussen -3 en +3V is niet gedefinieerd.

Maar de spanningsniveau's zijn niet aangepast aan de moderne systemen zoals microcontrollers en PLC's die vaak met slechts twee spanningen werken: 0 en 5V (en soms zelfs 3.3V).

Er bestaan spanningsomzetters die de RS-232 spanningen kunnen omzetten naar TTL niveau en omgekeerd. Een spanningsomzetter is bijvoorbeeld nodig voor de verbinding tussen een computer met standaard COM poort en een LCD paneel die met TTL spanningen werkt. Spanningsomzetters hebben enkele bezwaren: ze vergen een extra voedingsspanning of produceren storingen door de spanningsomvormer die -10V maakt op basis van de +5V.

Recentere toestellen gebruiken daarom TTL niveaus (0 en 5V). Het betreft hier een lokale communicatie, bijvoorbeeld tussen een microcontroller en een LCD paneel. Let op: deze spanningen zijn omgekeerd aan de RS-232 niveaus: hier gebruikt men een positieve logica.

De seriële TTL communicatie is beperkt tot lokale verbindingen. Om data over een lagere afstand over te brengen is een echte RS-232 verbinding nodig. Dankzij de hogere spanning is de verbinding minder gevoelig voor stoorpulsen. Maar in het algemeen is de lengte van een seriële verbinding beperkt tot 15 meter.

Niveau omzetters

Om een serieel apparaat aan te sturen vanaf TTL niveau's is een adapter nodig. Dit is bijvoorbeeld het geval als men een serieele printer (met RS-232 aansluiting) wilt aansturen met een arduino.

De adaptor bestaat uit één enkele transistor en een paar losse componenten. De omvormer krijgt zijn data via een digitale poort van de arduino. In rust is de TTL spanning +5V en de RS-232 spanning -5V. Als de TTL spanning naar 0V gaat, dan gaat de transistor in geleiding en trekt de uitgang naar +5V. Doorgaans heeft het RS-232 apparaat een weerstand van 5kΩ naar massa op zijn ingang om reflekties tegen te gaan.

De omgekeerde omzetting is ook mogelijk, we willen bijvoorbeeld de CTS-lijn in de gaten te houden om na te gaan of de printer klaar is om data te ontvangen (buffer niet vol, voldoende papier). De clear to send lijn gaat naar 0 (hoog niveau = not clear to send) als de printer niet klaar is.

De datalijn uit de printer (doorgaans is dat pen 8) wordt verbonden met een weerstand van 4.7kΩ en heeft dan twee weerstanden 1N4148 naar massa en naar +5V om te hoge niveaus tegen te houden. De datalijn gaat nu naar een digitale poort. We hebben een "1" als de printer niet klaar is.

In bepaalde gevallen levert de printer slechts +3V als hoog niveau (dit is toegestaan door het protocol) en de arduino kan niet met zekerheid bepalen of er een "1" of een "0" aangeboden wordt. Dan moet men een analoge poort gebruiken en de grens stellen bij 500 (komt overeen met een spanning van +2.5V).

Hierboven een beeld hoe een TTL communicatie eruit ziet. De spanning varieert tussen nul en 5V, met 5V in rust (tussen twee tekens). De binaire code die doorgestuurd is is 01001000 of 18 decimaal. Dit is een ASCII controleteken. De bit met de laagste waarde wordt eerst verstuurd. Het teken wordt voorafgegaan door een startbit (laag) en eindigd met een stopbit (hoog).

Seriële printers

Er bestaan niet zoveel serieele printers meer. Dergelijke printers worden bijvoorbeeld gebruikt om bepaalde industrieele processen te bewaken. Wettelijk is soms een afdruk verplicht. De processen worden door een PLC bewaakt en deze speciale computers communiceren met de buitenwereld via seriele communicatie.

Bepaalde ticketprinters hebben een seriele ingang, dit was lang de enige mogelijkheid om data te versturen van een centrale computer naar een verkooppunt. Bepaalde POS terminals (point of sales) hebben maar een beperkte rekenkracht en dan is een RS-232 communicatie aangewezen.

ogelijke printer is bijvoorbeeld de Zebra LP2824 Plus. De printer kan verschillende ingangen hebben, het is dus belangrijk de juiste versie te kopen (de printers dragen allemaal dezelfde naam). De printers is normaal voorzien om labels te printen, maar de printer kan ook met gewoon thermisch papaier werken.

De printer werkt normaal in grafische modus (ZPL), maar die modus is in de praktijk niet bruikbaar: de printer werkt met true type fonts en grafische elementen zoals een grafische computer. Een arduino heeft te weinig geheugen om dergelijke tekens te genereren. Maar de printer kan omschakelen naar een soort tekstmodus (EPL), de omschakeling is zelfs automatisch. Maar deze tekstmodus is nog te complex voor een arduino omdat er altijd positionneringscodes, layoutcodes en dergelijke moeten doorgestuurd worden. Wat we nodig hebben is een zuivere line mode, dit kan door de control sequentie OEPL1 naar de printer te sturen. Dit moet slechts éénmaal gebeuren, de printer blijft dan in deze modus werken. Deze modus heeft voldoende mogelijkheden, zoals bijvoorbeeld de lettergrootte.

Interessante links:

Seriële communicatieprotocollen
Een inleiding over datacommunicatie, met de timing, de aansluitingen (DB-9 connector) en de niveaus

Communicatie met een arduino
De verwarming wordt door een arduino gestuurd en de arduino print de temperatuur en status af op een seriele printer.
Op deze pagina ook een kleine schakeling om de negatieve spanning te maken als je maar +5V hebt.

De modem
Van de eerste accoustische modems tot de meer modernere uitvoeringen waarmee je HD films kan bekijken.
De verschillede modulatietechnieken komen aan bod, en zo leer je hoe je bijvoorbeeld 16 bits terzelfdertijd kan versturen. Daardoor verhoog je 16× het debiet van een telefoonlijn.

Software ompoling
Met een arduino en softwareserial kan je ook de polariteit van de spanning ompolen: LCD schermen werken volgens de RS-232 norm (laag in rust) maar zien een oV als een "laag". De software-ompoling zorgt ervoor dat de spanning een hoog niveau heeft in rust.

Publicités - Reklame

-