Микроконтролер AVR (Atmel 8) Серийна комуникация USART Конфигурация

Опитайте Нашия Инструмент За Премахване На Проблемите





Микроконтролерът е управляващо устройство, което съдържа редица периферни устройства като RAM, ROM TIMERS, серийно предаване на данни и др., които са необходими за изпълнение на някои предварително определени задачи. В днешно време, усъвършенстван тип микроконтролери се използват в голямо разнообразие от приложения според възможностите и възможността им да изпълняват някои желани задачи и тези контролери включват 8051, AVR и PIC микроконтролер . В тази статия ще научим за усъвършенствания микроконтролер от семейство AVR и неговото програмиране .

AVR микроконтролер

AVR е вид управляващо устройство, произведено от Atmel Corporation през 1996 г. AVR не означава нищо, а само име. AVR микроконтролерите се състоят от архитектурата на Харвард и следователно устройството работи много бързо с намален брой инструкции на ниво машина (RISC). Микроконтролерите AVR се състоят от специални функции в сравнение с други микроконтролери, като например 6-сънен режим, вграден ADC, вътрешен осцилатор и серийна комуникация на данни и др. AVR микроконтролери се предлагат в различни конфигурации от 8-битова, 16-битова и 32-битова за извършване на различни операции.




AVR микроконтролер

AVR микроконтролер

USART Последователна комуникация на данни в AVR микроконтролер

USART означава универсален синхронен и асинхронен приемник и предавател. Това е последователна комуникация на два протокола. Този протокол се използва за предаване и получаване на данни бит по бит по отношение на тактовите импулси на един проводник. The AVR микроконтролер има два щифта: TXD и RXD, които са специално използвани за серийно предаване и получаване на данните. Всеки AVR микроконтролер се състои от протокол USART със собствени функции.



USART комуникация в AVR микроконтролер

USART комуникация в AVR микроконтролер

Основните характеристики на AVR USART

  • Протоколът USART поддържа пълен дуплекс протокол.
  • Той генерира скорост на предаване с висока разделителна способност.
  • Той поддържа предаване на битове за серийни данни от 5 до 9 и се състои от два стоп бита.

USART Конфигурация на ПИН

USART на AVR се състои от три щифта:


  • RXD: ПИН на приемника USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: USART предавателен щифт (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: USART тактова честота (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Режими на работа

Микроконтролерът AVR на протокола USART работи в три режима, които са:

  • Асинхронен нормален режим
  • Асинхронен режим на двойна скорост
  • Синхронен режим
Режими на работа

Режими на работа

Асинхронен нормален режим

В този режим на комуникация данните се предават и получават бит по бит без тактови импулси от предварително зададената скорост на предаване, зададена от регистъра UBBR.

Асинхронен режим на двойна скорост

В този режим на комуникация данните, прехвърлени с двойна скорост на предаване, се задават от UBBR регистъра и задават U2X битове в UCSRA регистъра. Това е високоскоростен режим за синхронна комуникация за бързо предаване и получаване на данните. Тази система се използва там, където се изискват точни настройки на скоростта на предаване и системния часовник.

Синхронен режим

В тази система предаването и приемането на данните по отношение на тактовия импулс е зададено UMSEL = 1 в регистъра UCSRC.

USART конфигурация в AVR микроконтролер

USART може да бъде конфигуриран с помощта на пет регистри като три контролни регистри , един регистър за данни и регистър за избор на скорост на предаване, като UDR, UCSRA, UCSRB, UCSRC и UBRR.

7 стъпки за съставяне на програмата

Етап 1: Изчислете и задайте скоростта на предаване

Скоростта на предаване на USART / UART се определя от регистратора на UBRR. Този регистър се използва за генериране на предаване на данни със специфичната скорост. UBRR е 16-битов регистър. Тъй като AVR е 8-битов микроконтролер и всеки негов размер на регистъра е 8-битов. Следователно тук 16-битовият регистър UBRR е съставен от два 8-битови регистъра като UBRR (H), UBRR (L).

Формулата на скоростта на предаване е

BAUD = тъмно / (16 * (UBBR + 1))

Формулата на регистъра UBRR е

UBRR = тъмно / (16 * (BAUD-1))

Честотата на AVR микроконтролера е 16MHz = 16000000 Нека приемем скоростта на предаване като 19200Bps, след това

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

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

UBRR = 51.099

В крайна сметка намерете скоростта на предаване

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

Стъпка 2: Избор на режим данни

Режимът на предаване на данни, начален бит и стоп бит и размерът на символите се задават от контрола и регистъра на състоянието UCSRC.

Избор на режим данни

Избор на режим данни

Стъпка 3: Избор на режим на предаване на данни

Синхронният и асинхронен режим се избира от бита UMSEL на контролния регистър на състоянието. Ако дадем UMSEL = 0, тогава USART работи в асинхронен режим, в противен случай работи в синхронен режим.

Избор на режим на предаване на данни

Избор на режим на предаване на данни

Стъпка 4: Старт бит и стоп бит

Битовете за начален бит и стоп са начин за серийно изпращане и получаване на данните. Обикновено всяка известност на данните се състои от един бит на статията и един бит за спиране, но микроконтролерът AVR има един стартов бит и два стоп бита за обработка на данните. Допълнителният стоп бит може да бъде полезен за добавяне на малко допълнително време за обработка на получаване. Това е особено полезно за високи скорости на трансфер на данни, докато скоростта на трансфер на данни е много висока, така че не получаваме правилни данни. По този начин можем да увеличим времето за обработка, като използваме два стоп бита, за да получим правилните данни.

Старт бит и стоп бит

Старт бит и стоп бит

Броят на стоп битовете се избира от USBS бита на UCSRC - регистъра на контролния статус. USBS = 0 за един стоп бит и USBS = 1 за два стоп бита.

Стъпка 5: Задайте размера на символа

Както в случая с основни микроконтролери изпращане и получаване на байт данни (8-битови) в даден момент, независимо дали в AVR микроконтролер, ние можем да изберем формат на рамка за данни във всеки кадър от UCSZ бита на UCSRC регистъра.

Формат на рамката за данни

Формат на рамката за данни

Стъпка 6: Съхранявайте получените данни

Микроконтролерът AVR се състои от буферен регистър на UDR за предаване и получаване на данни. UDR е 16-битов буферен регистър, в който 8 бита се използват за получаване (RXB) на данните, а други битове се използват за предаване на данните (TXB). Предаването на буферния регистър на данни ще бъде дестинацията до UDR регистъра за писмените данни за неговото местоположение. Регистърът за получаване на буфер за данни ще връща съдържанието на UDR регистъра.

Стъпка 7: Активиране на предавател и приемник

Предаваните и получените данни ще бъдат разрешени от щифтовете RXC и TXC на микроконтролера, които са зададени от UCSRA регистъра на микроконтролера. Този бит на флага, зададен от микроконтролера за данните, се завършва чрез получаване и предаване (TXC = RXC = 1).

Удвоете скоростта на предаване

Можем да удвоим скоростта на трансфер на USART комуникацията на AVR микроконтролер от 16 бита до 8 бита ефективно от U2X - бит в регистъра UCSRA. Този бит влияе само върху асинхронната работа. Ако можем да зададем този бит (U2X = 1), той ще намали скоростта на предаване от 16-бита на 8-бита ефективно удвоявайки скоростта на трансфер за синхронна комуникация.

Това е усъвършенствана функция на микроконтролера AVR за бърза обработка на данните.

Програма USART

Всеки микроконтролер е предварително дефиниран със специфична IDE и въз основа на тази IDE, микроконтролерите са програмирани с вграден C или асемблерен език. Програмирането на микроконтролера AVR е разработено от студиото AVR. Освен това, ако искате допълнителна информация за стъпки за изграждане на проекти, базирани на микроконтролер , или подробна информация по тази тема, можете да се свържете с нас, като коментирате по-долу.