│ │
│ S P R Á V A Z L A B O R A T Ó R N E H O C V I Č E N I A
│ Sériový prenos dát. │
│ NÁZOV ÚLOHY: Využitie sériového prenosu pre riadenie │
│ technologických procesov. │
│
Popis panelu pre modelovanie riadenia technologických procesov.
Panel obsahuje:
- tri 8 bitové V/V porty (v danej aplikácii pripojené na V/V obvod I 8255 v apliku dodávanom fi ADON Žilina).Stav bitov v jednotlivých bránach je signalizovaný LED diódami,
- zdierky s úrovňami log.1 a log.0,
- 8 bitový D/A prevodník,
- monostabilný klopný obvod s IO UCY 7421 pre použitie ako ne- priamý A/D prevodník (prevodník odpor-šírka impulzu),
- zdierky pre dotykové snímače troch úrovní výšky hladiny,
- zdierky termistorového (termočlánkového) snímača teploty,
- zdierky pre ovladanie nasledovných akčných členov:
- čerpadlo
- solenoidový ventil
- ohrievač vody
- aktívne vzduchové chladenie.
Všetky bloky sú vybavené signalizáciou pomocou LED diód.Ohrev je realizovaný ponorným varičom spínaný triakom a galvanicky od- delený optočlenom.Bezpečná výška ponoru variča je zabezpečená blokovaním jeho ovladania od druhej úrovne vyšky hladiny.
Modelovací panel umožňuje simulovať riadenie základných technologických procesov mikropočítačom.Regulovaná sústava je tvorená nadobami s vodou,akčnými členmi a prepojovacími hadičkami.Akčné členy sú:čerpadlo,solenoidový ventil,ventilátor s chladiacou súpravou a ohrievač.Riadiací proces sa realizuje vo vyššie položenej nádobe.V tejto nadobe sú tri dotykové msnímače vyšky hladiny (ich počet je možno zväčšiť),ponorný ohrievač,termistorový snímač teploty,dilatačný teplomer,hadičky čerpadla a chladiacej sústavy.V spodnej časti nádoby je vývod pre hadičku k solenoidovému ventilu.Ďalšia nádoba umiestnená v spodnej časti panelu má funkciu zásobnika vody.Voda sa z nej da prečerpávať do vyššie položenej nádoby čerpadlom.Chladenie je vzduchové realizované ventilátorom,pričom sa voda pretláča cez chladiací radiátor čerpadlom.
Prepojenie jednotlivých blokov-modelovanie úlohy,prevádzame pomocou bežných prepojovacích vodičov.
Snimače výšky hladiny sú realizované operačnými zosilňovačmi.
Na invertujúci vstup je pripojený dotykový vodič vyhotovený z tenkého vodiča odolného korozii.Pri dotyku elektródy s kvapa- linou sa na vstupnom odporovom deliči vytvorí taký nízky po- tenciál,že dôjde k zmene výstupného napätia na max.úroveň.Toto napätie je ďalej upravené deličom na potrebnú úroveň a cez spí- naciu diódu pripojené na vstup invertora.
Serivy progamovatelny obvod I 8251
Adresová zbernica
────────────────────────────────────────────────────────────────
─────────┬────┬─────────────────────────────────────────────────
│ │
│ │ Riadiaca zbernica
─────────┼────┼─────────────────────────────────────────────────
─────────┼────┼───────────────────┬────┬──────┬─────┬───────────
│ │ │ │ │ │
│ │ Dátová zbernica │ │ │ │
─────────┼────┼───────────────────┼────┼──────┼─────┼───────────
─────────┼────┼──────────┐ ┌──────┼────┼──────┼─────┼───────────
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │8│ │ │ │ │
│ │ │ │ │ │ │ │
┌──┴────┴──────────┴─┴──────┴────┴──────┴─────┴────┐
│ C/D CS D7-D0 RD WR RESET CLK │
│ │
│ │
│ I 8251 │
│ │
└──────────────────────────────────────────────────┘
Obr.1.Pripojenie obvodu I 8251 k zbernicam.
Obvod I 8251 je určený pre sériové vysielanie a príjem dát
v synchronnom alebo asynchronnom režime ( USART - Universal Synchronous Asynchronous Receiver Transmitter ).
Komunikuje s mikroprocesorom cez dátovú zbernicu.Touto zbernicou sa tiež prenášajú z mikroprocesora do obvodu dve riadiace slova :
- módové slovo ( inštrukcia pre druh prevádzky )
- príkazové ( povelové ) slovo.
Ďalej z obvodu I 8251 sa do mikroprocesora prenáša stavové slovo.
Módové slovo naprogramuje:
- dlžku znaku
- paritu
- počet koncových bitov
- rychlostný faktor ( 1 - 110 kHz;16 - 7,04 kHz;64 -1,76 kHz ).
Povelové slovo naprogramuje:
- aktivuje a pasivuje vysielaciu a prijímaciu časť obvodu 8251
- dva bity v povelovom slove možno použiť na riadenie modemu
- ďalšie bity sú určené na nulovanie príznaku chyby parity,chyby zakončenia a príznaku chyby zakončenia
- bit D6 v tomto slove uskutočni návrat obvodu 8251 na programovanie módovým slovom,čo je nevyhnutné,lebo módové a povelové slovo sa prenáša na tie isté vývody obvodu.
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ │ │ │ │ │ │ │ │
│ S2 │ S1 │ EP │ PEN │ L2 │ L1 │ B2 │ B1│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
B2,B1 - Rýchlostný faktor (0,1-1;1,0-16;1,1-64).Rýchlostný faktor je deliteľ,ktorý sa využíva na odvodenie riadiacej frek- vencie pre vysielanie a príjem.
L2,L1 - Dlžka znaku : 0,0 - 5 bitov;0,1 - 6.bitov;1,0 - 7 bitov;
1,1 - 8 bitov.
PEN - Aktivácia parity : 1 - aktivácia; 0 - pasivácia.
EP - Parita : 1 - párna; 0 - nepárna.
S2,S1 - Počet koncových bitov: 0,1 - 1 bit; 1,0 - 1,5 bitu;
1,1 - 2 bity.
Pre zapísanie módového slova treba obvod nulovať signálom RESET = 1,alebo použiť vnútorné nulovanie voľbou D6=1 v povelovom slove.Za módovým slovom musí vždy nasledovať povelové slovo,pri- čom môže nastať synchrónna alebo asynchrónna komunokácia.
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ │ │ │ │ │ │ │ │
│ EH │ IR │ RTS │ ER │SBRK │ RxE │ DTR │TxEN │
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
TxEN - Aktivácia vysielania : 1 - aktivácia , 0 -pasivácia.
DTR - Koncové zariadenie pripravené : 1 - pripravené.
RxE - Aktivácia príjmu : 1 - ativácia, 0 - pasivácia.
SBRK - Vysielanie znaku s kódovým priradením same nuly,(vysiela- nie prerušovacieho znaku).
ER - Nulovanie príznakov chyby: 1 - nuluje všetky príznaky chyby PE,CE,FE.
RTS - Prechod do stavu vysielania (požiadavka na vysielanie).
IR - Vnútorné nulovanie.
EH - Hľadanie znakovej synchronizácie (len pre synchronný re-
žim).
Do obvodu 8251 môže vstupovať ľubovoľný počet riadiacích slov.Módové slovo však musí byť vždy pred povelovým slovom.
Obvod 8251 sa riadí nasledujúcimi štyroma signálmi:čitanie, zápis,riadenie/data a aktivácia čipu.
___ __ __ __
│ C/D │ RD │ WR │ CS │ │
│ riadenie │ │ │aktivácia │ Funkcia │
│ /data │ čitanie │ zápis │ čipu │ │
├──────────┼──────────┼──────────┼──────────┼───────────────────┤
│ │ │ │ │ │
│ 0 │ 0 │ 1 │ 0 │ Čitanie dát │
│ │ │ │ │ │
├──────────┼──────────┼──────────┼──────────┼───────────────────┤
│ │ │ │ │ Zápis dát do vy- │
│ 0 │ 1 │ 0 │ 0 │ sielača │
│ │ │ │ │ │
├──────────┼──────────┼──────────┼──────────┼───────────────────┤
│ │ │ │ │ Čitanie stavového │
│ 1 │ 0 │ 1 │ 0 │ slova │
│ │ │ │ │ │
├──────────┼──────────┼──────────┼──────────┼───────────────────┤
│ │ │ │ │ Zápis módového/ │
│ 1 │ 1 │ 0 │ 0 │ príkazového slova │
│ │ │ │ │ │
├──────────┼──────────┼──────────┼──────────┼───────────────────┤
│ │ │ │ │ Obvod nie je akti-│
│ x │ x │ x │ 1 │ vovaný │
│ │ │ │ │ │
└──────────┴──────────┴──────────┴──────────┴───────────────────┘
Typy spojenia:
Polling - jeden z počítačov je master (pán) a ostatne su
slave podriadene (otrok)
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ │ │ │ │ │ │ │ │
│ SM0 │ SM1 │ SM2 │ REN │ TB8 │ RB8 │ TI │ RI │
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
RI - Príznak prerušenia od prijímača.Nastavený hardwarom,keď je bit prijatý.Nulovaný softwarom po obsluhe.
TI - Príznak prerušenia od vysielača.Nulovaný hardwarom,keď je byte vyslaný.Nulovaný softwarom po obsluhe.
RB8 - 8.prijímaný bit.Nastavený-nulovaný hardwarom na indikáciu sta- vu 9.prijatého datového bitu.
TB8 - 8.vysielaný bit. Nastavený-nulovaný hardwarom k určeniu stavu 9.dátového bitu prenášaného v 9 bitovom UART móde.
REN - Riadiací bit pre povolenie príjmu.Nastavený-vynulovaný soft-
warom.
SM2 - Riadiací bit 2.režimu sériového portu.Nastavený softwarom aby sa zakázalo prijímanie rámcov pre ktoré je 8.bit nulový.
SN1 - Riadiací bit 1. sérového portu.Nastavovaný-vynulovaný softwa- rom.
SM0 - Riadiací bit 0-tého režimu sériového portu.Nastavený-vynulo- vaný softwarom.
SM1 SM0
(0, 0) V/V rozšírenie posuvného registra,
(0, 1) 8 bitový UART s premennou rýchlosťou,
(1, 0) 9 bitový UART s pevnou rýchlosťou
(1, 1) 9 bitový UART s premennou rýchlosťou.
V trenažeri je frekvencia hodín CPU 11.0592 MHz.
Režimy sériového prenosu mikroradiča 8051-52.
Režim 0.
Sériové dáta vstupujú alebo vystupujú špičkou RxD.Špičkou TxD vystupujú hodiny posuvu.Vysiela alebo prijíma sa 8 dátových bitov (najmenej významné bity ako prvé).Prenosová rýchlosť je pevná,je rovná 1/12 frekvencie oscilátora.
Režim 1.
10 bitov sa vysiela (cez TxD) alebo prijíma (cez RxD):štart bit (log.0),8 dátových bitov a stop bit (log.1).Pri príjme sa u- kladá stop bit do do bitu RB8 v registre SCON.U obvodu 8051 je prenosová rýchlosť určená počtom pretečenia časovača 1 a u 8052 tiež počtom pretečenia časovača 2,alebo jedným pre vysielanie a druhým pre príjem.
Režim 2-3.
Vysiela sa cez TxD a prijíma cez RxD jedenásť bitov,štart bit (log.0),8 dátových bitov (najmene významný biy prvý),programova- telný 9.dátový bit (TB8) a stop bit (log.1).Pri vysielaní môže 8. bit mať hodnotu log. 1 alebo 0,(paritný bit).Pri príjme sa log.
hodnota 8.bitu presúva do bitu RB8 v registri špeciálnych funkcií SCON.Prenosová rýchlosť je programovateľná na 1/32 alebo 1/64 frekvencie oscilátora.V režime 3 je prenosová rýchlosť premenná a je ziskávaná buď z časovača 1 alebo 2 v závislosti na log.hono- te bitu TCLK a RCLK.
Najpouživanejšie rýchlosti vysielania sú:110,150,300,600, 1200,1800,2400,4800 a 9600 baudov.
Prijímač potrebuje poznať rýchlosť,počet dátových bitov,pár- nu alebo nepárnu paritu v 8.bite a počet stop bitov.
Inicializačná rutina pre rýchlosť 2400 baudov :
Initial: CLR TR1 ;stop časovača 1
MOV TH1,#F4H ;-12 pre 2400 baud
MOV TL1,#00H ;
MOV TMOD,#20H ;časovač 1 8 bitov,automatické plnenie
MOV SCON,#0DEH;9 bitový UART s premennou rýchlosťou
prenosu
SETB TR1 ;štart časovača 1
Rutina prijmu znaku (CCI - Console Character Output),ktorá oča- káva znak a vracia sa do hlavného programu so znakom v ACC :
CCI: JNB RI,CCI ;čakaj pokiaľ znak nie je prijatý
MOV A,SBUF ;prenos znaku do ACC
CLR RI ;umožní ďalšie prijímanie
RET
Rutina vysielania znaku (CC0 - Console Charakter Output),ktorá skotroluje, či UART dokončil vysielanie a je pripravený vysielať ďalší znak a ktorá presúva znak z ACC na vysielač :
CC0: JNB TI,CC0 ;čakáj pokiaľ nie je dokončený predchá-
dzajúci prenos
CLR TI ;vynuluj príznak
MOV SBUF,A ;pošli znak z ACC
RET
Org 4500h
mov dptr,#0ff43h
mov a,#89h
movx @dptr,a
clr tr1
mov th1,#0f4h
mov tl1,#00h
mov tmod,#20h
mov scon,#0deh
setb tr1
nav0: mov dptr,#0ff40h
setb 0e0h
movx @dptr,a
clr 0e0h
movx @dptr,a
mov r0,#00h
mov r1,#00h
mov dptr,#0FF42h
nav1: movx a,@dptr
jnb 0e0h,vysielanie
inc r0
cjne r0,#00h,nav1
nav2: inc r1
jb 0e0h,nav1
vysielanie:
dfg1: jnb ri,dfg1 ;cakanie na znak
mov a,sbuf
clr ri
cjne a,#80h,dfg1 ;cakanie na 80h
mov a,r0
lcall nav3
dfg2: jnb ri,dfg2
mov a,sbuf
clr ri
cjne a,#0ffh,dfg2 ;cakanie na 0ffh
mov a,r1
lcall nav3
sjmp nav0
nav3: jnb ti,nav3
clr ti
mov sbuf,a
ret
program sercom02;
uses crt;
var znak0,znak:word;
procedure zobraz;near;
begin
znak0:=znak0*105;
gotoxy(3,3);
write(' ');
gotoxy(3,3);
write(word(znak0));
end;
procedure onesk;
begin
delay(10);
end;
begin
clrscr;
writeln('Citanie znaku z COM3.');
writeln('Ak chces skoncit stlac klavesu.');
asm
MOV AL,83h 8,1,N}
MOV DX,3EBh
OUT DX,AL
MOV AX,48 2400}
MOV DX,3E8h
OUT DX,AL
MOV AL,AH
MOV DX,3E9h
MOV AL,3h BRANA 3F8h = V/V}
MOV DX,3EBh
OUT DX,AL
MOV DX,3EAh
IN AL,DX
MOV DX,3EDh
IN AL,DX NULOVANIE BRAN}
MOV AL,80H
MOV DX,3E8H
OUT DX,AL
CALL onesk
MOV AL,0FFH
MOV DX,3E8H
OUT DX,AL
CALL onesk
MOV BX,0
MOV AL,80H
MOV DX,3E8h
OUT DX,AL
PUSH BX
CALL onesk
POP BX
MOV DX,3EDh TESTOVANIE
IN AL,DX
TEST AL,1
JZ @SKOK
MOV DX,3E8h
IN AL,DX
MOV BL,AL
mov al,0ffh
MOV DX,3E8h
out DX,al
push bx
call onesk
pop bx
mov dx,3edh
in al,dx
test al,1
jz @skok0
mov dx,3e8h
in al,dx
mov bh,al
mov word ptr znak0,bx
CALL ZOBRAZ
MOV AH,1
INT 16h
JZ @SKOK
XOR AH,AH
INT 16h
end;
end.
.