VanHeden Old VanHeden

Datablad

Robot-plattformar Digitala/analoga komponenter AVR/Raspberry Kommunikation Kringutrustning Displayer Sensorer Knappar & LEDs Gott & Blandat Alla PDF:er

Övrig information

Handledningar Karta över ISY Tips o Trix Kuriosa FAQ

Seriell kommunikation, RS232

Interfacet

Eftersom ämnet seriekommunikation via RS232 är ganska omfattande börjar vi med att omgående krympa det hela och koncentrera oss på dom fyra mest intressanta signalerna i serieinterfacet. Dessa är:

CTS och RTS är s k handskakningssignaler. Dom används för att avgöra om enheterna i var ände av kommunikationen är redo att prata med varandra. Själva informationen överförs via TxD och RxD.

En seriell uppkoppling mellan två enheter ser typiskt ut på följande sätt:

    Enhet 1        Enhet2
    -------        ------
        RxD<-------TxD   
        RTS------->CTS
        CTS<-------RTS   
        TxD------->RxD   

Vi betraktar det hela från Enhet 1. Med utsignalen RTS låg signalerar Enhet 1 att den är redo att ta emot mer data via RxD från TxD på Enhet 2. Då insignalen CTS är låg vet Enhet 1 att det är klart att skicka mer data via TxD till RxD på Enhet 2.

Protokollet

Protokollet beskriver på vilket sätt informationen överförs. Följande parametrar beskriver det hela:

Betrakta exemplet i figuren nedan. Först kommer alltid startbiten (A) som är aktivt låg, därefter kommer informationsbitarna (0-7) med början på minst signifikant bit, sedan kommer paritetsbiten (N) som i det här exemplet uteblir och sist en stoppbit (B). Protokollet kan i det här fallet skrivas som 8N1, dvs 8 informationsbitar ingen paritet och 1 stoppbit. Startbiten finns alltid med, så den nämner man inte. Hastigheten är i exemplet obestämd, men den skulle t ex kunna vara 9600 BPS (Bitar Per Sekund) och där räknas alla bitar, startbit, informationsbitar, paritetsbit och stoppbitar. I exemplet så medför 8N1 att det går åt totalt 10 bitar för att överföra 8 informationsbitar (1 byte) och med hastigheten 9600 BPS kan man alltså teoretiskt överföra 960 byte per sekund.

    ___     ___ ___ ___ ___ ___ ___ ___ ___ ___ _________
       \___/___X___X___X___X___X___X___X___X   \_________

         A   0   1   2   3   4   5   6   7   B

Signalnivåer

Om man mäter signalnivån för dom olika signalerna vid serieporten på en PC så kommer man upptäcka att den ligger på antingen +12V eller -12V, dvs inte 0V eller 5V. Det beror på att ibland skickas den seriella informationen över långa avstånd, det tillkommer brus och störningar och till slut är det för liten skillnad mellan 0V och 5V för att det i andra änden ska gå att tolka informationen. Därför ökar man skillnaden på signalnivåerna till hela 24V på så sätt att 0V inne i PC:n omvandlas till 12V och 5V inne i PC:n omvandlas till -12V innan signalerna kommer ut på serieporten.

Det medför att utrustning med 5-volts-logik som ska kopplas till PC:ns serieport måste omvandla sina kommunikationssignaler till +/-12V. För det ändamålet finns det kretsar som gör detta, t ex MAX232.


W3.CSS

Sunday