AVR-mikrokontrolleri (Atmel 8) Sarjaliikenteen USART-määritys

Kokeile Instrumenttia Ongelmien Poistamiseksi





Mikrokontrolleri on ohjauslaite, joka sisältää useita oheislaitteita, kuten RAM-muistia, ROM-AJASTIMIA, sarjaliikenne jne., joita tarvitaan tiettyjen ennalta määritettyjen tehtävien suorittamiseen. Nykyään, edistyneempi tyyppi mikrokontrollereita niitä käytetään monissa erilaisissa sovelluksissa niiden kyvyn ja toteutettavuuden mukaan haluttujen tehtävien suorittamiseksi, ja nämä ohjaimet sisältävät 8051, AVR- ja PIC-mikrokontrolleri . Tässä artikkelissa aiomme oppia edistyneestä AVR-perheen mikrokontrollerista ja sen ohjelmoinnista .

AVR-mikrokontrolleri

AVR on eräänlainen ohjauslaite, jonka Atmel Corporation valmisti vuonna 1996. AVR ei tarkoita mitään, se on vain nimi. AVR mikrokontrollerit koostuvat Harvardin arkkitehtuurista , ja siksi laite toimii erittäin nopeasti pienemmällä määrällä konetason ohjeita (RISC). AVR-mikrokontrollerit koostuvat erityispiirteistä muihin mikrokontrollereihin verrattuna, kuten 6 lepotilaa, sisäänrakennettu ADC, sisäinen oskillaattori ja sarjaliikenne jne. AVR-mikrokontrollerit ovat saatavana eri kokoonpanoina 8-bittisenä, 16-bittisenä ja 32-bittisenä eri toimintojen suorittamiseksi.




AVR-mikrokontrolleri

AVR-mikrokontrolleri

USART-sarjatietoliikenne AVR-mikrokontrollerissa

USART tarkoittaa yleismaailmallista synkronista ja asynkronista vastaanotinta ja lähetintä. Se on kahden protokollan sarjaliikenne. Tätä protokollaa käytetään tiedon lähettämiseen ja vastaanottamiseen bitti bitiltä suhteessa yhden johtimen kellopulsseihin. AVR-mikrokontrolleri on kaksi nastaa: TXD ja RXD, joita käytetään erityisesti tietojen lähettämiseen ja vastaanottamiseen sarjana. Mikä tahansa AVR-mikrokontrolleri koostuu USART-protokollasta, jolla on omat ominaisuutensa.



USART-tiedonsiirto AVR-mikrokontrollerissa

USART-tiedonsiirto AVR-mikrokontrollerissa

AVR USARTin pääominaisuudet

  • USART-protokolla tukee full-duplex-protokollaa.
  • Se tuottaa korkean resoluution baudinopeuden.
  • Se tukee sarjadatabittien lähettämistä välillä 5-9 ja se koostuu kahdesta pysäytysbitistä.

USART-nastakonfiguraatio

AVR: n USART koostuu kolmesta nastasta:


  • RXD: USART-vastaanotintappi (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: USART-lähetintappi (ATMega8 PIN 3 ATMega16 / 32-nasta 15)
  • XCK: USART-kellotappi (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Toimintatavat

USART-protokollan AVR-mikrokontrolleri toimii kolmessa tilassa:

  • Asynkroninen normaalitila
  • Asynkroninen kaksoisnopeustila
  • Synkroninen tila
Toimintatavat

Toimintatavat

Asynkroninen normaalitila

Tässä tiedonsiirtotilassa data lähetetään ja vastaanotetaan bitti kerrallaan ilman kellopulsseja ennalta määritetyllä tiedonsiirtonopeudella, jonka UBBR-rekisteri asettaa.

Asynkroninen kaksoisnopeustila

Tässä tiedonsiirtotilassa kaksinkertaisella baudinopeudella siirretty data asetetaan UBBR-rekisterin avulla ja asetetaan U2X-bitit UCSRA-rekisteriin. Tämä on nopea tila synkronista tiedonsiirtoa varten tiedon siirtämiseksi ja vastaanottamiseksi nopeasti. Tätä järjestelmää käytetään, kun vaaditaan tarkat siirtonopeuden asetukset ja järjestelmän kello.

Synkroninen tila

Tässä järjestelmässä datan lähettäminen ja vastaanottaminen kellopulssin suhteen asetetaan UMSEL = 1 UCSRC-rekisteriin.

USART-määritykset AVR-mikrokontrollerissa

USART voidaan konfiguroida viidellä rekisterillä, kuten kolme ohjausrekisteriä , yksi tietorekisteri ja baudinopeuden valintarekisteri, kuten UDR, UCSRA, UCSRB, UCSRC ja UBRR.

7 vaihetta ohjelman luomiseen

Vaihe 1: Laske ja aseta tiedonsiirtonopeus

USART / UART-tiedonsiirtonopeuden asettaa UBRR-rekisterinpitäjä. Tätä rekisteriä käytetään tuottamaan tiedonsiirto tietyllä nopeudella. UBRR on 16-bittinen rekisteri. Koska AVR on 8-bittinen mikrokontrolleri ja sen mikä tahansa rekisterikoko on 8-bittinen. Näin ollen tässä 16-bittinen UBRR-rekisteri koostuu kahdesta 8-bittisestä rekisteristä, kuten UBRR (H), UBRR (L).

Siirtonopeuden kaava on

BAUD = tumma / (16 * (UBBR + 1))

UBRR-rekisterin kaava on

UBRR = tumma / (16 * (BAUD-1))

AVR-mikrokontrollerin taajuus on 16MHz = 16000000 Oletetaan, että siirtonopeus on 19200Bps, sitten

UBRR = 16000000 / (16 * (19200-1))

UBRR = 16000000 / (16 * (19200-1))

UBRR = 51,099

Lopulta etsi siirtonopeus

BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230 bps

Vaihe 2: Datatilan valinta

Tiedonsiirtotila, aloitusbitti ja lopetusbitti sekä merkkikoko asetetaan ohjaus- ja tilarekisterissä UCSRC.

Datatilan valinta

Datatilan valinta

Vaihe 3: Tiedonsiirtotilan valinta

Synkroninen ja asynkroninen tila valitaan ohjaustilarekisterin UMSEL-bitillä. Jos annamme UMSEL = 0, USART toimii asynkronisessa tilassa, muuten synkronisessa tilassa.

Tiedonsiirtotilan valinta

Tiedonsiirtotilan valinta

Vaihe 4: Käynnistä bitti ja pysäytä bitti

Aloitusbitti ja lopetusbitti ovat tapa lähettää ja vastaanottaa tietoja sarjaan. Yleensä mikä tahansa datakuulu koostuu yhdestä stat-bitistä ja yhdestä stop-bitistä, mutta AVR-mikrokontrollerissa on yksi aloitusbitti ja kaksi stop-bittiä tietojen käsittelyä varten. Ylimääräinen pysäytysbitti voi olla hyödyllinen lisäämällä hieman ylimääräistä vastaanoton käsittelyaikaa. Se on erityisen hyödyllinen suurille tiedonsiirtonopeuksille, kun taas tiedonsiirtonopeus on erittäin suuri, joten emme saa oikeaa dataa. Siten voimme pidentää käsittelyaikaa käyttämällä kahta stop-bittiä oikean datan saamiseksi.

Käynnistä bitti ja pysäytä bitti

Käynnistä bitti ja pysäytä bitti

Lopetusbittien lukumäärän valitsee UCSRC: n USBS-bitti - ohjaustilarekisteri. USBS = 0 yhdelle pysäytysbitille ja USBS = 1 kahdelle pysäytysbitille.

Vaihe 5: Aseta merkkikoko

Kuten tapauksessa perusmikrokontrollerit lähettämällä ja vastaanottamalla datatavua (8-bittisiä) kerrallaan, riippumatta siitä, onko kyseessä AVR-mikrokontrolleri, voimme valita datakehysmuodon jokaisessa kehyksessä UCSRC-rekisterin UCSZ-bitin avulla.

Tietokehyksen muoto

Tietokehyksen muoto

Vaihe 6: Tallenna vastaanotetut tiedot

AVR-mikrokontrolleri koostuu UDR-puskurirekisteristä tietojen lähettämistä ja vastaanottamista varten. UDR on 16-bittinen puskurirekisteri, jossa 8-bittiä käytetään datan vastaanottamiseen (RXB) ja muita bittejä datan lähettämiseen (TXB). Tiedonsiirtopuskurirekisterin lähettäminen on sijaintipaikan kirjallisten tietojen kohde UDR-rekisterille. Tietopuskurirekisterin vastaanottaminen palauttaa UDR-rekisterin sisällön.

Vaihe 7: Lähettimen ja vastaanottimen käyttöönotto

Lähetettyä ja vastaanotettua dataa sallivat mikrokontrollerin RXC- ja TXC-nastat, jotka mikrokontrollerin UCSRA-rekisteri asettaa. Tämä mikro-ohjaimen datalle asettama lippubitti täydennetään vastaanottamalla ja lähettämällä (TXC = RXC = 1).

Tuplaa tiedonsiirtonopeus

Voimme kaksinkertaistaa AVR: n USART-tiedonsiirron siirtonopeuden mikrokontrolleri 16 bitistä 8 bittiin tehokkaasti U2X-bitillä UCSRA-rekisterissä. Tämä bitti vaikuttaa vain asynkroniseen toimintaan. Jos voimme asettaa tämän bitin (U2X = 1), se vähentää siirtonopeutta 16-bittisestä 8-bittiseen, mikä kaksinkertaistaa siirtonopeuden synkronisen tiedonsiirron kannalta.

Tämä on AVR-mikrokontrollerin edistynyt ominaisuus tietojen nopeaan käsittelyyn.

USART-ohjelma

Jokainen mikrokontrolleri on määritelty ennalta tietyllä IDE: llä, ja tämän IDE: n perusteella mikro-ohjaimet on ohjelmoitu upotetulla C: llä tai kokoonpanokieli. AVR-mikrokontrolleriohjelmoinnin on kehittänyt AVR-studio. Lisäksi, jos haluat lisätietoja vaiheet mikrokontrolleripohjaisten projektien rakentamiseksi tai lisätietoja tästä aiheesta, voit ottaa meihin yhteyttä kommentoimalla alla.