AVR mikrokontroller (Atmel 8) Soros kommunikáció USART konfiguráció

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





A mikrokontroller egy olyan vezérlőeszköz, amely számos perifériát tartalmaz, például RAM-ot, ROM TIMER-eket, soros adatkommunikáció stb., amelyek néhány előre meghatározott feladat elvégzéséhez szükségesek. Manapság, fejlett típusú mikrovezérlők a legkülönfélébb alkalmazásokban használják, a képességek és a kívánt feladatok végrehajtásának megvalósíthatóságának megfelelően, és ezek a vezérlők tartalmazzák 8051, AVR és PIC mikrokontroller . Ebben a cikkben megismerkedünk a fejlett AVR család mikrovezérlőjével és annak programozásával .

AVR mikrokontroller

Az AVR egyfajta vezérlőeszköz, amelyet az Atmel Corporation gyártott 1996-ban. Az AVR semmit sem jelent, csak egy név. Az AVR a mikrovezérlők a Harvard architektúrájából állnak , és ezért az eszköz nagyon gyorsan fut, csökkentett számú gépszintű utasítással (RISC). Az AVR mikrovezérlők különleges tulajdonságokból állnak, összehasonlítva más mikrovezérlőkkel, például 6 alvó üzemmódokkal, beépített ADC-vel, belső oszcillátorral és soros adatkommunikációval. AVR mikrokontrollerek különféle konfigurációkban állnak rendelkezésre 8 bites, 16 bites és 32 bites konfigurációkban a különféle műveletek végrehajtásához.




AVR mikrokontroller

AVR mikrokontroller

USART soros adatkommunikáció az AVR mikrokontrollerben

A USART az univerzális szinkron és aszinkron vevőt és adót jelenti. Két protokoll soros kommunikációja. Ezt a protokollt az adatok továbbítására és fogadására használják az egyetlen vezetéken lévő óraimpulzusok tekintetében. A AVR mikrokontroller két csapja van: a TXD és az RXD, amelyeket kifejezetten az adatok soros továbbítására és fogadására használnak. Bármely AVR mikrovezérlő saját tulajdonságokkal rendelkező USART protokollból áll.



USART kommunikáció az AVR mikrovezérlőben

USART kommunikáció az AVR mikrovezérlőben

Az AVR USART főbb jellemzői

  • Az USART protokoll támogatja a full-duplex protokollt.
  • Nagy felbontású adatátviteli sebességet generál.
  • Támogatja az 5 és 9 közötti soros adatbitek továbbítását, és két stopbitből áll.

USART Pin konfiguráció

Az AVR USART három csapból áll:


  • RXD: USART vevőcsap (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: USART adó tű (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART óra tű (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Működési módok

A USART protokoll AVR mikrovezérlője három módban működik:

  • Aszinkron normál mód
  • Aszinkron kettős sebességű mód
  • Szinkron mód
Működési módok

Működési módok

Aszinkron normál mód

Ebben a kommunikációs módban az adatokat az UBBR regiszter által előre meghatározott adatátviteli sebességgel, órajelimpulzusok nélkül, apránként továbbítjuk és fogadjuk.

Aszinkron kettős sebességű mód

Ebben a kommunikációs módban a kétszeres adatátviteli sebességgel továbbított adatokat az UBBR regiszter állítja be, és U2X biteket állít be az UCSRA regiszterbe. Ez egy nagy sebességű szinkron kommunikációs mód az adatok gyors továbbításához és fogadásához. Ezt a rendszert ott használják, ahol pontos átviteli sebesség beállításokra és a rendszer órájára van szükség.

Szinkron mód

Ebben a rendszerben az adatok átvitele és fogadása az óraimpulzusra vonatkozóan UMSEL = 1 értékre van állítva az UCSRC regiszterben.

USART konfiguráció AVR mikrovezérlőben

Az USART öt regiszter segítségével konfigurálható, például három kontroll regiszter , egy adatregiszter és adatátviteli sebesség-választó regiszter, például UDR, UCSRA, UCSRB, UCSRC és UBRR.

7 lépés a program összeállításához

1. lépés: Számítsa ki és állítsa be az átviteli sebességet

Az USART / UART adatátviteli sebességét az UBRR regisztrátor állítja be. Ezt a regisztert használják az adatátvitel előállítására a meghatározott sebességgel. Az UBRR egy 16 bites regiszter. Mivel az AVR egy 8 bites mikrokontroller, és bármilyen regisztermérete 8 bites. Ezért itt a 16 bites UBRR regiszter két 8 bites regiszterből áll, mint például UBRR (H), UBRR (L).

Az adatátviteli sebesség képlete:

BAUD = Sötét / (16 * (UBBR + 1))

Az UBRR regiszter képlete:

UBRR = sötét / (16 * (BAUD-1))

Az AVR mikrovezérlő frekvenciája 16MHz = 16000000 Tegyük fel, hogy az átviteli sebesség 19200Bps, majd

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

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

UBRR = 51.099

Végül keresse meg az adatátviteli sebességet

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

2. lépés: Adatmód kiválasztása

Az adatátviteli mód, a kezdő bit és a stop bit, a karakter méretét pedig az UCSRC vezérlő és állapot regiszter határozza meg.

Adatmód kiválasztása

Adatmód kiválasztása

3. lépés: Adatátviteli mód kiválasztása

A szinkron és aszinkron módot a vezérlés állapotregiszterének UMSEL bitje választja ki. Ha az UMSEL = 0 értéket adjuk meg, akkor az USART aszinkron módban működik, egyébként szinkron módban működik.

Adatátviteli mód kiválasztása

Adatátviteli mód kiválasztása

4. lépés: Start Bit és Stop Bit

A kezdő bit és a stop bit az adatok soros küldésének és fogadásának a módja. Általában bármely adathír egy stat bitből és egy stop bitből áll, de az AVR mikrovezérlőnek van egy kezdő bitje és két stop bitje az adatok feldolgozásához. Az extra stopbit hasznos lehet egy kis extra vételi feldolgozási idő hozzáadásához. Különösen nagy adatátviteli sebesség esetén hasznos, míg az adatátviteli sebesség nagyon nagy, ezért nem kapunk megfelelő adatokat. Így megnövelhetjük a feldolgozási időt két stopbit használatával a megfelelő adatok megszerzéséhez.

Start Bit és Stop Bit

Start Bit és Stop Bit

A stopbitek számát az UCSRC USBS bitje választja ki - a vezérlési állapot regiszter. Az USBS = 0, egy stopbithez, és USBS = 1, két stopbithez.

5. lépés: Állítsa be a Karakterméretet

Mint a alapvető mikrovezérlők Az adatok (8 bites) bájtjának egyidejű küldése és fogadása, legyen az AVR mikrokontroller, mindegyik képkockában választhatunk egy adatkeret formátumot az UCSRC regiszter UCSZ bitje által.

Adatkeret formátum

Adatkeret formátum

6. lépés: Tárolja a fogadott adatokat

Az AVR mikrovezérlő egy UDR pufferregiszterből áll az adatok továbbítására és fogadására. Az UDR egy 16 bites pufferregiszter, ahol 8 bitet használnak az adatok vételére (RXB), más biteket pedig az adatok továbbítására (TXB). Az adatpuffer-nyilvántartás továbbítása lesz az UDR-regiszter célállomása a helyén található írott adatok számára. Az adatpuffer regiszter fogadása az UDR regiszter tartalmát adja vissza.

7. lépés: Adó és vevő engedélyezése

Az átvitt és fogadott adatokat a mikrokontroller RXC és TXC csapjai engedélyezik, amelyeket a mikrokontroller UCSRA regisztrációja állít be. Ezt a mikrovezérlő által az adatokra beállított jelzőbitet fogadással és továbbítással egészítik ki (TXC = RXC = 1).

Dupla a Baud Rate

Megduplázhatjuk az AVR USART kommunikációjának átviteli sebességét mikrovezérlő 16 bitről 8 bitre hatékonyan az U2X –bit segítségével az UCSRA regiszterben. Ez a bit csak az aszinkron működésre hat. Ha be tudjuk állítani ezt a bitet (U2X = 1), az 16-bitesről 8-bitesre csökkenti az adatátviteli sebességet, ami a duplájára növeli a szinkron kommunikáció átviteli sebességét.

Ez az AVR mikrokontroller fejlett szolgáltatása az adatok gyors feldolgozásához.

USART Program

Minden mikrovezérlő előre definiált egy adott IDE-vel, és ezen az IDE alapján a mikrovezérlőket beágyazott C-vel programozzák vagy szerelési nyelv. Az AVR mikrokontroller programozását az AVR stúdió fejlesztette. Továbbá, ha további információt szeretne a mikrokontroller alapú projektek felépítésének lépései , vagy részletes információt erről a témáról, az alábbi megjegyzéssel léphet velünk kapcsolatba.