Podrobnosti o krmiljenju pretoka podatkov



Pri strojnem nadzoru upravljajo pretok podatkov ustrezni signali oddajnika in sprejemnika preko ustreznih krmilnih linij. S temi krmilnimi linijami si oddajnik in sprejmnik signalizirata zahtevo za prenos podatkov, sprejemanje zahteve in drugo.


Osnova serijskega prenosa je (priporočeni) standard RS232, ki je določa potek izmenjave dveh oddaljenih računalnikov preko analognega telefonskega omrežja, seveda z uporabo (dveh)  modemov. V originalni različici je predvidenih okoli 20 krmilnih signalov. Z zrazvojem komunikacijskih tehnologij je ta standard zastarel, ohranile pa so poenostavljene izpeljanke (poenostavljen RS232, v industriji pa električna nadgradnja v npr.  RS485).  








Slika: Primer priključitve dveh naprav. Podatki se v eno vsako smer prenašajo po eni liniji (gre torej za serijski prenos podatkov!), ostali signali so krmilni.

Najpomembnejše linije so navedene v spodnjem seznamu.
Oznaka in ime linije vrsta signala Signal postavlja Opis
TD  (Transmit Data) podatki oddajnik Po tej liniji se oddajajo podatki, bit za bitom.
RD  (Receive Data): podatki sprejemnik Po tej liniji se sprejemajo podatki, bit za bitom.
SG ali GND  (Signal Ground) električni pogoj -- (skupni vodnik) Linija z referenčnim potencialom (masa) za signale.
RTS (Request To Send) krmilni oddajnik Signal, s katerim DTE (računalnik) pove modemu, da želi poslati 
CTS (Clear To Send) krmilni sprejemnik Postavi ga DCE (modem) kot odgovor na računalnikov RTS. S CTS modem pove,
da računalnik lahko začne oddajati.
DTR (Data Terminal Ready)* krmilni oddajnik S tem signalom DTE (računalnik) pove modemu, da je pripravljen za sprejemanje podatkov.
DSR (Data Set Ready): krmilni sprejmnik S tem signalom DCE (modem) odgovori na signal DTR iz računalnika.
Po tem, ko računalnik postavi linijo DTR, spremlja stanje na tej liniji in ugotavlja, če je modem vključen.
CD (Carrier Detect) krmilni (modem) Ta signal postavlja modem. Z njim obvesti računalnik, da je zaznal nosilni signal z oddaljenega modema.
RI (Ring Indicator) krmilni (modem) Na to sponko sporoči modem, da je zaznal zvonenje (klic) oddaljenega modema.

Podatki se prenašajo po linijah TD (an. transmit data) in RD (an. receive data). Referenčni vodnik je vodnik signalne mase, ki je potreben za delovanje električnih vezij.

Ostale linije so namenjeni za krmiljenje pretoka podatkov. Po teh linijah napravi zahtevata oz. dovlita prenos podatkov. Taki liniji sta npr. CTS in RTS (glej spodaj). Če teh linij ni, strojno krmiljenje pretoka podatkov ni možno.




Slika: Značilna konektorja in položaj posameznih linij



Softversko...
Pri softverskem krmiljenju se pretok omogoča oz. ustavlja  z uporabo posebnih znakov (ASCII kodiranih), ki si jih  napravi pošiljata kar po podatkovnih linijah. Ta krmilna znaka se imanujeta XON in XOFF. Z njima sprejemnik(!) pove oddajniku, naj nadaljuje oz. (začasno) počaka  z oddajanjem podatkov.
 
Softversko krmiljenje pretoka podatkov
Slika: Softversko krmiljenje krmiljenju prenosa podatkov: sprejemnik pošilja znaka Xon in Xoff,
s katerima sprošča in zadržuje oddajanje novih podatkov.


Sprejemnik najprej sprejme prispele podatke v medpomnilnik (angl. buffer) z mehanizmom FIFO, od koder jih postopoma pobira v obdelavo. Če podatki prihajajo v ta medpomnilnik hitreje kot jih utegne sprejemnik obdelovati, bi lahko prišlo do izgubljanja podatkov, ki jih sprejemnik ne bi mogel sprejeti v (prepoln) medpomnilnik. Zato mora imeti sprejemnik možnost, da začasno zadrži pošiljanje podatkov oddajnika (tj. da jih začasno ustavi). To stori s pošiljanjem omenjenih krmilnih znakov po drugi (prosti) podatkovni liniji, po kateri se prenašajo podatki v nasprotni smeri.

Prednost softverskega krmiljenja je očitna – niso potrebne dodatne linije (vodniki) za krmilne signale.

Slabost
tega načina pa se pokaže pri prenašanju binarnih datotek (ne besedilnih), kjer je enota sporočila lahko katerakoli binarna kombinacija - ne nujno znak z grafično podobo (črka, številka, ločilo...). Tako se prav lahko zgodi, da bo med temi kombinacijami tudi zaporedje 00010011 (=13h), ki ga oddajnik lahko razume kot XOFF, zaradi česar ustavi oddajanje. Nato oddajnikčaka na binarno kombinacijo 00010001 (=11h, XON) za nadaljevanje oddajanja, ki je lahko tudi ne dočaka in prenos se ne bo končal. Za zanesljivo pošiljanje binarnih datotek je torej sprejemljivo samo strojno krmiljenje.