AVR单片机串行接口及应用

更新时间:2023-05-23 11:07:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第十一章 AVR单片机串行接口及应用

串行通讯基本知识-回顾

串行通讯基本知识-回顾串行通信概述

1、什么叫串行通信?组成数据的各位一位位的有序传输。 在生活中同学们排横队行走—— 并行;排纵队行走—— 串行。 计算机中在传输信息、数据时也有并行、串行的问题。P1.0 P1.1 P1.2 P1.30 11 1 11 0 010 11 1

外设1

计算机TXD RXD 1 0 1 0 外设2 1 0 0 02

2、同步通信、异步通信[1]同步——发送设备时钟与接收设备时钟严格一致。

发送设备

接收设备

校验字符2 校验字符1

数 据 n

… … …

数 据 2

数 据 1 同步字符2 同步字符13

2、同步通信、异步通信[2]异步—— 发送时钟与接收时钟不一定相等。空闲位 停止位 奇偶校验位 5~8位数据 起始位 空闲位

异步:字符分个传送。 同步:多个字符一批传送。

3、串行通信的方向[1]单工:只能收或发

A 发例如:广播电台 [2]半双工:可收可发,但不能同时进行。 A 发 收

B 收 收音机

B 收 发

例如:

对讲机5

3、串行通信的方向[3]全双工:收发可以同时进行

A发 收

B 收 发

例如:

电话机

4、波特率衡量串行通信的速率。 一般是指每秒中传输数据的位 数,单位为波特: b/s 、 bps 。举例:设有一帧信息,1个起始位、8个数据位、1个停 止位,传输速率为每秒240个字符。求波特率。 解:(1+8+1)×240 = 2400 b/s = 2400波特。

通讯双方的波特率应相等,字符格式相等。

5、串行通信接口1) 发送:并到串

CPU发送数据寄存器D7 D6 D5 D4 D3 D2 D1 D0

1

D7 D6 D5 D4 D3 D2 D1 D0

0

发送时钟:8

5、串行通信接口2)接收: 串到并 CPU 接收数据寄存器D7 D6 D5 D4 D3 D2 D1 D0

1

D7 D6 D5 D4 D3 D2 D1 D0

0

接收时钟9

小 结

并行通讯、串行通讯; 8535内含: 全双工异步串行接口 UART、同步串行接口 SPI; UART:通用异步接收发送器;

单工、双工、半双工;(依据数据传输方向分) 字符格式、波特率;(异步通讯的两个基本约定)

§11. 1

8535 通用串行接口 UART

一、主要特征如下: (1)全双工。 (2)波特率可软件编程设定。 (3)数据位:8位和9位可选; 起始位1位; 停止位1位 (4)噪声滤波。 (5)错误起始位、帧错误、过速的检测功能。 (6)三个独立的中断: 发送完成(TXC) , 发送数据寄存器空(UDRE) , 接收完成(RXC) 。11

二、数据的发送 并到串的转换。 要发送的数据>>>I/O寄存器UDR中 (UART 数据寄存 器),即发送缓冲器。 内部数据总线 1 ÷16 波特率 发生器 UDR 0

1 停 止 位

D8

D7…..….D0 数据位

0 起 始 位

。。

TXD (PD1)

发送移位寄存器

TXEN

主频UDR中的数据何时装入发送移

位寄存器?12

UDR中的数据何时装入发送移位寄存器?

1÷16

UDR D7…..….D0 数据位 发送移位寄存器

0 0 起 始 位 。。

TXD (PD1)

1 停 止 位

D8

波特率 发生器 主频

TXEN

自动加载条件:字符的停止位发送完 毕,且UDR中有新数。13

发送数据寄存器空UDRE和发送完成TXCUDR

1÷16

0

1 停 止 位

D8

D7…..….D0 数据位

0 起 始 位

。。

TXD (PD1)

波特率 发生器 主频

发送移位寄存器

TXEN

发送数据寄存器空(UDRE)?自动加载之后。 发送完成(TXC)?自动加载之后,停止位也 发送完毕,且无新的数据写入UDR。14

三、数据的接收 串到并的转换。 16倍的波特率对RXD(PD0)引脚采样。

1) 起始位的检测:关键是真正下降沿的判定。 2) 数据位的检测:数据位的采样点,8,9,10中3取2作为真 正的逻辑值。 3)帧错误(FE)的检测。 4)过速(OR)的检测。15

三、数据的接收字符接收周期结束时,数据被传送到UDR寄存器而接收 完成RXC标志位被设置。UDR实际上是两个物理上分离的寄 存器,一个发送数据,一个接收数据。当读UDR时,接收数 据寄存器被访问;当写UDR寄存器时,发送数据寄存器被访 问。 一般,在读UDR寄存器之前,用户应检查FE帧错误标 志。用户在读UDR后应检查OR位。

四、相关的I/O寄存器-数据寄存器1、UART I/O数据寄存器- UDR - $0C($2C)D7 D6 D5 D4 D3 D2 D1 D0

UDR寄存器是两个物理上分离的寄存器,分享同一个 I/O地址。当写入UDR时,写入的是UART发送数据寄存 器;当读UDR时,读的是UART接收寄存器。

初始化值: $00 。

四、相关的I/O寄存器-状态寄存器2、UART状态寄存器—USR - $0B($2B)RXC TXC UDRE FE OR 初始化值: $20 。 位7—RXC:UART接收完成

当收到的字符从接收移位寄存器传到UDR中时该位被置1。 不论探测到任何的帧错误,该位都被置1。当UCR中的相应的 中断允许位(RXCIE)=1,UART接收完成中断将被执行 (I=1),在读UDR时RXC被清0。当使用中断接收数据时,接 收完成中断子程序必须读UDR而清除RXC,否则在中断完成 后会引起新的中断。18

四、相关的I/O寄存器-状态寄存器…2、UART状态寄存器—USR - $0B($2B)RXC TXC UDRE FE OR -

位6—TXC:UART发送完成 当发送移位寄存器的全部数据被移出后且没有新的数据被写 入UDR时该位被置1。这个标志位在半双工的通讯接口中很有 用。当完成发送后立即释放通讯总线,并必须进入接收模式。 当UCR中的TXCIE位被设置后,设置TXC将导致UART发送完 成中断被执行,TXC在执行相应的中断向量时被硬件自动清除。 或者TXC位也可以通过在该位写一个逻辑1而被清除。

四、相关的I/O寄存器-状态寄存器….2、UART状态寄存器—USR - $0

B($2B)

RXC

TXC

UDRE

FE

OR

-

-

-

位5—UDRE:UART数据寄存器空 当写入UDR的字符被传送到发送移位寄存器中时该位被置1, 表示:发送器准备新的数据发送。相应的中断允许位: UDRIE。可以通过写UDR而清除UDRE位。当使用中断实现数 据发送时,在其中断服务程序应该通过写UDR来清除UDRE位, 否则在中断子程序完成时将发生新的中断。在复位时, UDRE被设置为1表明准备发送。

四、相关的I/O寄存器-状态寄存器…..2、UART状态寄存器—USR - $0B($2B)

RXC

TXC

UDRE

FE

OR

-

-

-

位4——FE:帧出错 如果在帧出错条件被检测到时该位被设置(如当收到数据的 停止位为0时)。FE在收到数据的停止位为1时被清除。 位3——OR:过速(超越出错) 过速时,则OR位被置1。 位2~0——Res:保留位 在AT90S8535中这些位被保留,读出为0。

本文来源:https://www.bwwdw.com/article/did4.html

Top