AVR微控制器(Atmel 8)串行通信UART配置

微控制器是一个控制设备,包含许多像RAM,ROM定时器等外围设备串行数据通信等,需要执行一些预定义任务。如今,高级类型的微控制器根据其功能和可行性用于执行一些所需任务的各种应用,这些控制器包括8051,AVR和PIC微控制器。在本文中,我们将了解高级AVR系列微控制器及其编程

AVR MicroController.

AVR是一系列由Atmel Corporation在1996年制造的控制装置。AVR不袖手旁观,它只是一个名字。AVR.微控制器包括哈佛架构因此,设备运行非常快,通过减少的机器级指令(RISC)。AVR微控制器由特殊功能组成,与其他微控制器,如6睡眠模式,内置ADC,内部振荡器和串行数据通信等。该AVR微控制器有8位,16位和32位的不同配置可以执行各种操作。


AVR MicroController.
AVR MicroController.

AVR微控制器中的USART串行数据通信

USART代表通用同步和异步接收器和发射器。这是两个协议的串行通信。该协议用于通过单线上的时钟脉冲通过比特发送和接收数据位。该AVR MicroController.有两个引脚:TXD和RXD,它专门用于串行传输和接收数据。任何AVR微控制器都包含USART协议,具有自己的功能。

AVR微控制器中的USART通信
AVR微控制器中的USART通信

AVR USART的主要特点

  • USART协议支持全双工协议。
  • 它产生高分辨率波特率。
  • 它支持从5到9传输串行数据比特,它由两个停止位组成。

USART引脚配置

AVR的USART由三个引脚组成:


  • RXD:USART接收器引脚(ATMEGA8引脚2; ATMEGA16 / 32引脚14)
  • TXD:USART变送器PIN(ATMEGA8引脚3; ATMEGA16 / 32引脚15)
  • XCK:USART时钟引脚(Atmega8引脚6; Atmega16 / 32针1)

操作模式

USART协议的AVR微控制器以三种模式运行,即:

  • 异步正常模式
  • 异步双速模式
  • 同步模式
操作模式
操作模式

异步正常模式

在这种通信模式中,通过由UBBR寄存器设定的预定义波特率,通过没有时钟脉冲的比特发送和接收数据。

异步双速模式

在这种通信模式下,以双倍波特率传输的数据由UBBR寄存器设置并在UCSRA寄存器中设置U2X位。这是用于快速传输和接收数据的同步通信的高速模式。使用此系统,其中需要准确的波特率设置和系统时钟。

同步模式

在该系统中,在UCSRC寄存器中设置关于时钟脉冲的数据的发送和接收数据。

AVR微控制器中的USART配置

可以使用五个寄存器(如)配置USART三个控制寄存器,一个数据寄存器和波特率选择寄存器,例如UDR,UCSRA,UCSRB,UCSRC和UBRR。

撰写程序的7个步骤

第1步:计算并设定波特率

UBRR注册商设置USART / UART的波特率。该寄存器用于以特定速度生成数据传输。UBRR是一个16位寄存器。由于AVR是8位微控制器,并且其任何寄存器大小为8位。因此,这里的16位UBRR寄存器由两个8位寄存器组成,例如UBRR(H),UBRR(L)。

波特率的公式是

波特= FOSC /(16 *(UBBR + 1))

UBRR寄存器的公式是

UBRR = FOSC /(16 *(波特-1))

AVR微控制器的频率为16MHz = 16000000;让我们假设波特率为19200bps,然后

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

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

UBRR = 51.099.

最终找到波特率

波特= 16000000 /(16 *(51 + 1))
ubrr = 19230bps.

第2步:数据模式选择

数据传输模式,起始位和停止位和字符大小由控制和状态寄存器UCSRC设置。

数据模式选择
数据模式选择

第3步:数据传输模式选择

同步和异步模式由控制状态寄存器的UMESEL位选择。如果我们给UMSEL = 0,则USART以异步模式运行,否则以同步模式运行。

数据传输模式选择
数据传输模式选择

步骤4:开始位和停止位

起始位和停止位是串行发送和接收数据的一种方式。通常,任何数据名称都由一个统计位和一个停止位组成,但AVR微控制器具有一个起始位和两个停止位,用于处理数据。额外的停止位对添加一点额外的接收处理时间有用。它对高数据传输速率特别有用,而数据传输速度非常高,因此我们没有得到适当的数据。因此,我们可以通过使用两个停止位来增加处理时间来获得适当的数据。

开始位和停止位
开始位和停止位

停止位的数量由UCSRC的USBS位选择 - 控​​制状态寄存器。USBS = 0,对于一个停止位,USBS = 1,用于两个停止位。

第5步:设置字符大小

如同用基本微控制器一次发送和接收数据(8位)的字节(8位),无论是在AVR微控制器中,我们都可以通过UCSRC寄存器的UCSZ位选择每个帧中的数据帧格式。

数据帧格式
数据帧格式

第6步:存储收到的数据

AVR微控制器由UDR缓冲寄存器组成,用于发送和接收数据。UDR是一个16位缓冲寄存器,其中8位用于接收(RXB),数据和其他位用于发送数据(TXB)。传输数据缓冲器寄存器将是UDR寄存器的目标,用于其位置的书面数据。接收数据缓冲寄存器将返回UDR寄存器的内容。

第7步:发射机和接收器启用

通过微控制器的UCSRA寄存器设置的微控制器的RXC和TXC引脚将允许发送和接收数据。通过接收和发送(TXC = RXC = 1)完成由用于数据的微控制器的该标志位。

双波特率

我们可以加倍AVR的USART通信的转移率从16位到8位的微控制器U2X -Bit在UCSRA寄存器中有效。此位仅效果仅在异步操作上。如果我们可以设置该位(U2x = 1),它将将波特率从16位降低到8位有效地加倍转移速率进行同步通信。

这是AVR微控制器的高级功能,用于快速处理数据。

USART计划

每个微控制器都以特定IDE预定义,并基于此IDE,微控制器用嵌入式C编程或汇编语言。AVR微控制器编程是由AVR Studio开发的。此外,如果您想要有关的其他信息构建基于微控制器的项目的步骤或者有关此主题的详细信息,您可以通过以下评论与我们联系。

添加评论