Motorola MC68HC11, mikrokontrolleri


[edellinen sivu] [seuraava sivu] [sisällysluetteloon] [etusivulle]

MC68HC11, kutsumanimeltään HC11, on Motorolan 8-bittinen mikrokontrolleri. Suoritusteholtaan se kuuluu tehokkaampien 8-bittisten joukkoon, joskin CPU:n arkkitehtuurissa voidaan katsoa olevan toivomisen varaa, sillä sen juuret ulottuvat 1974 julkaistuun Motorolan ensimmäiseen mikroprosessoriin M6800.

CPU on vain pieni osa mikrokontrollerista. Mukana olevat muistit, I/O-ominaisuudet ja muut toiminnot ratkaisevat usein sopivan mikrokontrollerin valinnan. 68HC11-kontrollerista tuotetaan useita erilaisia malleja erilaisilla ominaisuuksilla varustettuna. Alla on esitettynä perusmallin "A8" rakenne.

Kontrollerin yleisimmät tuotantomallit

MC68HC11-kontrollerista tuotettavat eri mallit erotetaan toisistaan tuotenimen jälkeen tulevalla mallitunnuksella (esim. A1 = MC68HC11A1 ja E1 = MC68HC11E1 ovat eri malleja). Kaikissa malleissa on sama CPU, mutta I/O- ja muistiominaisuudet vaihtelevat.

Huom. HC- ja 11-merkintöjen välissä voi esiintyä kontrolleriin sisällytettyä muistitekniikkaa kuvaava numero, esim. MC68HC711 sisältää maski-ROM-muistin sijasta EPROM-muistia, mutta kyseessä on silti HC11-perheen jäsen. EPROM-muistillisia prosessoreja valmistetaan myös ikkunattomissa koteloissa (ns. OTP = one-time programmable, kertakäyttöinen malli, jonka muistia ei voi tyhjentää).

Alla esitellyt A-, E-, D- ja F-sarjat muodostavat malliston perustan. Näiden lisäksi on saatavana suuri joukko muitakin malleja. Tarkempaa tietoa niistä löytyy Motorolan WWW-palvelimesta [http://freeware.aus.sps.mot.com/amcu/home.html].

A-sarja

A-sarjan malli A8 on koko tuotelinjan "kantaisä". Muut mallit on saatu tästä edelleenkehittämällä. Niinpä esim. erittäin täydellinen HC11-perhettä kuvaava Motorolan M68HC11 Reference Manual [Mot93] käsitelee pääsääntöisesti vain A8-mallia. Muiden mallien poikkeamat A8:sta on kerrottu niiden Technical data-kirjoissa.

MC68HC11A8 sisältää:

Muut A-sarjan prosessorit ovat A0 ja A1, joista edellisestä puuttuu sekä ROM että EEPROM ja jälkimmäisestä ROM-muisti (itse asiassa kumpikin kontrolleri on mallia A8, mutta EEPROM-pohjaisen config-rekisterin kautta on ko. ominaisuuksien käyttö estetty).

Kaikkia malleja (A0,A1,A8) voidaan käyttää siten, että prosessorista saadaan data- ja osoiteväylät ulos ja prosessori suorittaa ulkoiseen muistipiiriin talletettua ohjelmaa.

E-sarja

E-sarja vastaa A-sarjaa muutamin täydennyksin:

E-sarjan perusmalli on E9, 12 kilotavun ROM-malli. E0 ja E1 vastaavat A0 ja A1-malleja ominaisuuksien eston osalta.

D-sarja

D-sarjan prosessorit ovat A-sarjasta ominaisuuksia karsimalla tehtyjä "halpamalleja": A/D-muunnin ja EEPROM-muistit on poistettu ja RAM-muistia vähennetty 192 tavuun. Perusmalli D3 sisältää vain 4 kilotavua ROM-muistia.

F1

F1-malli sisältää A-sarjaan verrattuna monia hyödyllisiä laajennuksia:

Eri toimintatilat

68HC11-kontrollereja voidaan käyttää pääsääntöisesti vain kahdessa ulkoisesti erilaisessa tilassa: Expanded/Single chip valinta tehdään kontrollerin ulkopuolelta MODA-valintasignaalilla.

Kummastakin toimintatilasta on vielä kaksi variaatiota, normaali- ja erikoistilat, joista edelliset on tarkoitettu sovelluksen normaalia suorittamista varten ja jälkimmäiset lähinnä laitteistotestien suorittamista varten. Haluttu variaatio valitaan kontrollerin ulkopuolelta MODB-valintasignaalilla.

Valittu toimintatila variaatioineen ratkaisee myös ohjelman suorituksen aloituspaikan seuraavasti:

Yksi edellämainituista toimintatiloista mahdollistaa yleensä myös sisäiseen EEPROM-muistiin talletetun ohjelman käynnistämisen suoraan. Toiminnon toteutus riippuu kuitenkin kontrollerin mallista.

Edellä kuvattujen, kontrollerin ulkopuolelta valittavien toimintatilojen lisäksi HC11:ssa on muutamia kiinteästi ohjelmoitavia tilavalintoja (mm. onko sisäinen EEPROM käytössä), joiden valinnat on talletettu EEPROM-tyyppiseen konfiguraatiorekisteriin. Kontrolleriin sisältyy myös lukuisia tilavalintoja, jotka ovat ohjelmallisesti asetettavissa, mutta nollautuvat aina käynnistyksen yhteydessä. Yleensä ne liittyvät eri alijärjestelmien toiminnan ohjaamiseen.

I/O-ominaisuudet

68HC11:n eri mallit tarjoavat runsaan joukon erilaisia I/O-ominaisuuksia. Kontrolleri sisältää joukon erilaisia alijärjestelmiä, kuten ajastimen ja sarjaliitännän, joiden palvelut ovat käytettävissä I/O-linjojen kautta.

Pääsääntöisesti kaikkien I/O-linjojen kohdalla voidaan valita, käytetäänkö linjaa yleiskäyttöisenä I/O-linjana (jolloin tila on luettavissa tai kirjoitettavissa suoraan) vai alijärjestelmän ohjaamana. Osalla linjoista on linjan suunta (in/out) määrättävissä ohjelmallisesti, osalla se on määrätty kiinteästi olemaan vain toinen näistä.

Seuraavassa esitellään lyhyesti tärkeimmät alijärjestelmät.

Ajastin

Useimmissa perinteisissä mikrokontrollereissa on yksi tai useampia, esim. 3, ohjelmoitavaa laskuria, joiden toiminta perustuu ulkoisten tai kontrollerin sisäisten tapahtumien laskemiseen. Sellaisista laskureista saadaan yleensä keskeytys haluttaessa, kun laskurin arvo pyörähtää ympäri, samalla kun laskuri aloittaa laskemisen uudestaa jostakin ennalta määrätystä arvosta.

68HC11:n ajastin eroaa näistä perinteisistä toteutuksista oleellisesti. Se perustuu yhteen vapaasti juoksevaan, 16-bittiseen laskuriin, sekä viiteen vertailu- ja kolmeen kaappausrekisteriin (E- ja F-malleissa voidaan käyttää myös neljä+neljä -moodia). Ajastimen käyttäminen vaatii tyypillisesti jatkuvaa ohjelmallista tukea keskeytyksien kautta, mutta toisaalta mahdollistaa asioita, joiden tekeminen perinteisellä laskuritoteutuksella olisi mahdotonta.

Ajastimen sydän, vapaasti juokseva laskuri, nollataan kontrollerin käynnistyessä. Sen jälkeen sen arvoon ei voi ohjelmasta käsin vaikuttaa. Laskurin arvoa kasvatetaan yhdellä prosessorin kellon mukaisesti (1,4,8 tai 16 kellojakson välein - laskuria ohjaa ohjelmoitava esijakaja).

Ajastimella saadaan tuotettua keskeytyksiä ja/tai ulkoisia tapahtumia, esim. pulsseja, siihen sisältyvien vertailurekisterien avulla. Tapahtuma suoritetaan, kun rekisterin ja laskurin arvot ovat samoja. Tapahtumaa seuraava keskeys käynnistää tyypillisesti ohjelman, joka lukee vertailurekisterin, lisää siihen sopivan määrän ja tallettaa takaisin seuraavaa vertailua varten.

Kaappausrekisterien toiminta on päinvastainen: Ulkoisen tapahtuman seurauksena laskurin arvo kopioidaan rekisteriin ja aktivoidaan keskeytys. Keskeytyspalvelu saa siten tietoonsa tarkan hetken, jolloin tapahtuma rekisteröitiin (keskeytyksen käsittelyyn menevästä ajasta huolimatta).

Ajastimeen sisältyy myös kolme sivutoimintoa:

SCI, asynkroninen sarjaportti

SCI sisältää normaalia asynkronista sarjaliikennettä varten tarvittavat toiminnot, mukaanlukien kellogeneraattorin, joka mahdollistaa yleisimpien siirtonopeuksien (esim. 9600 bps) generoimisen yleisimmistä kidevaihtoehdoista (esim. 8 MHz).

SCI ei sisällä mitään ns. hienoja ominaisuuksia, kuten FIFO-puskureita lähetystä ja vastaanottoa varten. Sen sijaan se tarjoaa ominaisuksia, joista voi olla enemmänkin hyötyä sulautetuissa järjestelmissä: SCI tukee esimerkiksi yksinkertaisen kontrolleriverkon (bus, kaikki lähettäjät ja vastaanottajat kytketty toisiinsa) rakentamista 9-bittisen tiedonsiirron avulla. Käytännössä tämä tarkoittaa, että vastaanotto voidaan sammuttaa, kunnes vastaanotetaan tavu, jonka 9. bitti on asetettu herättämään kaikki vastaanottajat. Tavu voi silloin sisältää esim. seuraavan vastaanottajan osoitteen.

SPI, synkroninen sarjaportti

SPI, serial peripheral interface, on erittäin yksinkertainen synkroninen liitäntä. Se koostuu lähinnä kahdesta 8-bittisestä siirtorekisteristä, toinen lähetysta ja toinen vastaanottoa varten.

Suoraan SPI-liitäntään sopivia I/O- ja muistipiirejä on saatavissa. Esim. useat A/D- ja D/A-muuntimet soveltuvat liitettäviksi siihen. Liitäntää voidaan käyttää myös normaalien siirtorekisterien kanssa I/O liitäntöjen laajentamiseen. SPI-liitännän avulla on myös toteutettu pieniä kontrolleriverkkoja.

A/D-muunnin

A/D-muunnin sisältää 8 kappaletta 8-bittisiä kanavia. Kanavat on yhdistetty kontrollerin porttiin E, jota voi lukea myös digitaalisena input-porttina. Muuntimen erotustarkkuus ei ole erityisen hyvä.

CPU

Rekisterit

CPU sisältää

Osoitusmuodot

CPU tukee kuutta eri osoitusmuotoa. Käskyn tyypistä riippuu, mitkä osoitusmuodot ovat kunkin käskyn yhteydessä käytettävissä.

Osoitusmuodot ovat:

Käskykanta

CPU:n käskykanta voidaan jakaa operandien, käyttötarkoituksen ja mahdollisten osoitusmuotojen perusteella kuuteen loogiseen osaan:

Tässä esitetty jako on vain yksi mahdollinen. Motorolan julkaisema kirjallisuus ei yleensä jaa käskyjä ollenkaan, vaan esittää kaikki käskyt aakkosjärjestyksessä.

Keskeytysten käsittely

Keskeytyksen tapahtuessa prosessori

Keskeytyksestä palaaminen tapahtuu RTI-käskyllä, joka lataa kaikki rekisterit pinosta.


[edellinen sivu] [seuraava sivu] [sisällysluetteloon] [etusivulle]

[versio 1.5, 1996/03/10 20:08:32] [Lähetä palautetta Laurille]

Copyright © 1996 Lauri Aarnio. All Rights Reserved.