hcs12 – uporaba sci

20
http://vision.fe.uni-lj.si/classes/GSPV GSPV (9-a) HCS12, SCI primer, “RS232” Stanislav Kovačič Univerza v Ljubljani Fakulteta za elektrotehniko

Upload: fritzi

Post on 26-Jan-2016

56 views

Category:

Documents


2 download

DESCRIPTION

HCS12 – uporaba SCI. Priprava vmesnika: Določimo oz. izberemo hitrost delovanja, t.j. hitrost pošiljanja/sprejemanja. Določimo obliko podatkov, t.j. število podatkovnih bitov, parnost, ... Določimo način delovanja, t.j. način pošiljanja/sprejemanja, po potrebi omogočimo prekinitve. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: HCS12 – uporaba SCI

http://vision.fe.uni-lj.si/classes/GSPV

GSPV (9-a)

HCS12, SCI primer,

“RS232”

Stanislav Kovačič

Univerza v Ljubljani

Fakulteta za elektrotehniko

Page 2: HCS12 – uporaba SCI

HCS12 – uporaba SCI HCS12 – uporaba SCI Priprava vmesnika:

Določimo oz. izberemo hitrost delovanja, t.j. hitrost

pošiljanja/sprejemanja. Določimo obliko podatkov, t.j. število podatkovnih bitov,

parnost, ... Določimo način delovanja, t.j. način pošiljanja/sprejemanja,

po potrebi omogočimo prekinitve.

Pošiljanje/sprejemanje Pošiljanje/sprejemanje posameznega podatka. To je osnova poljubne nadgradnje, t.j.

sprejem/oddaja niza, formatiranje “izpisa”, komunikacijski protokoli, ...

Page 3: HCS12 – uporaba SCI

HCS12 – uporaba SCIHCS12 – uporaba SCI

Oddaja Preverimo stanje TDRE Če je TDRE = 1, oddamo podatek, to je

vpišemo v podatkovni register. S tem se

TDRE briše. (lahko pa oddajamo s prekinitvami)

Sprejem Preverimo stanje RDRF Če je RDRF = 1, sprejmemo podatek, to je beremo

podatkovni register. S tem se RDRF briše.

Po potrebi preverimo bite napak. (lahko pa sprejemamo preko prekinitev).

Page 4: HCS12 – uporaba SCI

HCS12 – uporaba SCIHCS12 – uporaba SCI

Preprost primer priprave vmesnika SCI0

; --------------------------------------------------------; Subrutina za začetno pripravo vmesnika SCI0

; Predpostavimo, da je osnovni takt 24 MHz

;

InitSCI0: LDD #156 ;24MHz/(16 x 156) 9600

STD SCI0BRH ;hitrost odd./spr. naj je 9600 bps

CLRA

STAA SCI0CR1 ;8 bitov, brez parnosti, običajen način

LDAA #%00001100 ;RE=1, TE=1

STAA SCI0CR2 ;omogočimo odd. in spr., prekinitev pa ne

RTS

Page 5: HCS12 – uporaba SCI

HCS12 – uporaba SCIHCS12 – uporaba SCI

Preprost način sprejemanja podatkov; --------------------------------------------------------

; Subrutina za sprejem enega podatka z vmesnikom SCI0

; Klic: JSR RxSCI0

; Vrne podatek v akumulatorju A

; v primeru napake postavi bit C v CCR

RXDRF EQU $20 ;Maska bita RDRF

RxSCI0: BRCLR SCI0SR1,#RXDRF,RxSCI0 ;Čakam na podatek

LDAA SCI0SR1 ;Preveriti hočemo še bite napak

CLC ;Brišem znak napake

BITA #%00001111 ;Kakršnakoli napaka?

BEQ RxSCI01;Ne, brez napake

SEC ;Da, javi napako

RxSCI01: LDAA SCI0DRH ;berem (in zavržem) R8

LDAA SCI0DRL ;Berem podatek, s tem se RXDRF briše

RTS

Page 6: HCS12 – uporaba SCI

HCS12 – uporaba SCIHCS12 – uporaba SCI

Preprost način oddajanja podatkov; --------------------------------------------------------

; Subrutina za oddajo enega podatka z vmesnikom SCI0

; Klic: JSR TxSCI0

; Pošlje podatek v akumulatorju A

;

TXDRE EQU $80 ;Maska zastavice “odd. reg. prazen”

TxSCI0: BRCLR SCI0SR1,#TXDRE,TxSCI0;Oddaja možna?

STAA SCI0DRL ;Da, oddam podatek

RTS

Page 7: HCS12 – uporaba SCI

HCS12 – izpis prevajanjaHCS12 – izpis prevajanja;****************************************************************

;* GSPV 2004/05

;* Preprost primer uporabe asinhronega serijskega komunikacijskega

;* vmesnika SCI

;*

;* Program pripravi vmesnik (9600 b/s, 8 bitni podatek, brez parnosti)

;* in nato v zanki sprejema in posilja podatke s preverjanjem

;* zastavic v registru SCISR1.

;* V primeru napake ali sprejemu znaka ESC = $1B, konca s SWI.

;*

; --- vstopna tocka

XDEF Start

ABSENTRY Start

; --- nekaj splosnih definicij, kje je ram, rom, sklad,..

0000 1000 Program EQU $1000 ;tu naj bo program

0000 2000 RamEQU $2000 ;tu naj bo pomnilnik RAM

0000 0400 RamSize EQU $400 ;naj bo 1K RAM-a

0000 2400 RamEnd EQU Ram+RamSize

0000 0100 SkladSize EQU $100

Page 8: HCS12 – uporaba SCI

HCS12 – izpis prevajanjaHCS12 – izpis prevajanja; --- definicije naslovov registrov vmesnika SCI1

0000 00D0 SciBase EQU $00d0 ;zacetni naslov SCI1

0000 00D0 SCIBRH EQU SciBase

0000 00D1 SCIBRL EQU SCIBRH+1

0000 00D2 SCICR1 EQU SCIBRH+2

0000 00D3 SCICR2 EQU SCIBRH+3

0000 00D4 SCISR1 EQU SCIBRH+4

0000 00D5 SCISR2 EQU SCIBRH+5

0000 00D6 SCIDRH EQU SCIBRH+6

0000 00D7 SCIDRL EQU SCIBRH+7

; --- definicije nekaterih ASCII znakov

0000 001B ESC EQU $1B ;koda ASCII znaka ESC

0000 000A LF EQU $0A ;nova vrstica

0000 000D CR EQU $0D ;zacetek vrstice

;

Page 9: HCS12 – uporaba SCI

HCS12 – izpis prevajanjaHCS12 – izpis prevajanja; --- podatkovni del pomnilnika, sklad

org RamEnd-SkladSize

a002300 rmb SkladSize

0000 2400 Sklad: equ *

; --- vstopna tocka, priprava vmesnika, sprejem in oddaja

org Program

a001000 CF24 00 Start: lds #Sklad

a001003 1610 1F jsr InitSCI ;priprava vmesnika

;

a001006 1610 2C Zanka: jsr RxSCI ;sprejmi podatek

a001009 2509 bcs Konec ;napaka, koncaj

a00100B 811B cmpa #ESC ;je escape?

a00100D 2705 beq Konec ;da, koncaj

a00100F 1610 3F jsr TxSCI ;ne, oddaj podatek in pojdi po naslednjega

a001012 20F2 bra Zanka

;

a001014 860A Konec: ldaa #LF ;poslji LF - pomik v novo vrstico

a001016 1610 3F jsr TxSCI

a001019 860D ldaa #CR ;poslji CR - pomik na zacetek vrstice

a00101B 1610 3F jsr TxSCI

a00101E 3F SWI ;povratek k DBUG12

Page 10: HCS12 – uporaba SCI

HCS12 – izpis prevajanjaHCS12 – izpis prevajanja

;----------------------------------------------------

;

; Subrutina za zacetno pripravo vmesnika SCI

; Osnovna frekvenca 24 MHz

;

a00101F CC00 9C InitSCI: ldd #156 ;9600 bps

a001022 5CD0 std SCIBRH

a001024 87 clra

a001025 5AD2 staa SCICR1

a001027 860C ldaa #%00001100

a001029 5AD3 staa SCICR2

a00102B 3D rts

Page 11: HCS12 – uporaba SCI

HCS12 – izpis prevajanjaHCS12 – izpis prevajanja

;----------------------------------------------------

;

; Subrutina za sprejem podatka

; Podatek bo v akumulatorju A,

; v primeru napake bo postavljen C v CCR

;

0000 0020 RXDRF equ %00100000

0000 000F RXERR equ %00001111

a00102C 4FD4 20FC RxSCI: brclr SCISR1,#RXDRF,RxSCI ;cakam podatek

a001030 96D4 ldaa SCISR1 ;zanima me pravilnost sprejema

a001032 10FE clc ;ce ni napake, naj bo C=0

a001034 850F bita #RXERR ;kakrsnakoli napaka?

a001036 2702 beq RxSCI01 ;ne, vejitev - ni napake

a001038 1401 sec ;da, postavi C

a00103A 96D6 RxSCI01: ldaa SCIDRH ;nini ni potrebno

a00103C 96D7 ldaa SCIDRL ;sprejmi podatek

a00103E 3D rts

Page 12: HCS12 – uporaba SCI

HCS12 – izpis prevajanjaHCS12 – izpis prevajanja

;----------------------------------------------------

;

; Subrutina za oddajo podatka

; Odda podatek v akumulatorju A

;

0000 0080 TXDRE EQU %10000000

a00103F 4FD4 80FC TxSCI: brclr SCISR1,#TXDRE,TxSCI

a001043 5AD7 staa SCIDRL

a001045 3D rts

Page 13: HCS12 – uporaba SCI

RS232RS232

Standard EIA RS232C/D (zadnji popravek 1986) povezava DCE < --> DTE DCE - (Data Communication Equipment) DTE - (Data Terminal Equipment)

Page 14: HCS12 – uporaba SCI

RS232RS232

RS232 določa mehanske, električne in funkcionalne lastnosti povezav in tokokrogov.

Nosilec informacije je napetostni nivo, +- 12 V tipično

Hitrosti (b/s): 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,

9600, 19200, 38400, ..., 115200 Razdalje: do cca 15 m (in več).

Page 15: HCS12 – uporaba SCI

RS232RS232

25 polni (DB25) konektor in (važnejši) signali

“preslikava” signalov na 9 polni (DB9) konektor

Page 16: HCS12 – uporaba SCI

RS232RS232

Tipični načini povezovanja DTE <---> DCE

stran računalnika

Page 17: HCS12 – uporaba SCI

RS232RS232

Tipični načini povezovanja DTE <---> DTE (“ničelni modem”)

križan

kabel

Page 18: HCS12 – uporaba SCI

RS485RS485

Večtočkovno povezovanje na podlagi parice

(sukanega voda) (“angl. Twisted Pair”, UTP, STP) Hitrosti: do 10Mb/s Razdalje: do 1200 m.

Page 19: HCS12 – uporaba SCI

RS232, ..., RS485RS232, ..., RS485

Page 20: HCS12 – uporaba SCI