1 / 20

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.

minna
Download Presentation

HCS12 – uporaba SCI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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, ...

  2. HCS12 – 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).

  3. HCS12 – 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

  4. HCS12 – 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

  5. HCS12 – 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

  6. HCS12 – 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 Ram EQU $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

  7. HCS12 – 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 ;

  8. HCS12 – 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

  9. HCS12 – 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

  10. HCS12 – 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

  11. HCS12 – 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

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

  13. RS232 • 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č).

  14. RS232 • 25 polni (DB25) konektor in (važnejši) signali • “preslikava” signalov na 9 polni (DB9) konektor

  15. RS232 • Tipični načini povezovanja DTE <---> DCE stran računalnika

  16. RS232 • Tipični načini povezovanja DTE <---> DTE (“ničelni modem”) križan kabel

  17. RS485 • Večtočkovno povezovanje na podlagi parice (sukanega voda) (“angl. Twisted Pair”, UTP, STP) • Hitrosti: do 10Mb/s • Razdalje: do 1200 m.

  18. RS232, ..., RS485

More Related