USART通信

上传人:206****923 文档编号:51518836 上传时间:2018-08-14 格式:PPT 页数:30 大小:1.54MB
返回 下载 相关 举报
USART通信_第1页
第1页 / 共30页
USART通信_第2页
第2页 / 共30页
USART通信_第3页
第3页 / 共30页
USART通信_第4页
第4页 / 共30页
USART通信_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《USART通信》由会员分享,可在线阅读,更多相关《USART通信(30页珍藏版)》请在金锄头文库上搜索。

1、一、串行通信的基本概念 1、 异步通信与同步通信l 异步通信异步通信是指通信的发送与接收设备使用各自 的时钟控制数据的发送和接收过程。为使双方的收 发协调,要求发送和接收设备的时钟尽可能一致。 l异步通信的数据格式 :异步通信的特点:不要求收发双方时钟的严格一 致,实现容易,设备开销较小,但每个字符要附 加23位用于起止位,各帧之间还有间隔,因此 传输效率不高。l同步通信同步通信时要建立发送方时钟对接收方时钟的直接控制 ,使双方达到完全同步。此时,传输数据的位之间的距离均 为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持 位同步关系,也保持字符同步关系。2、串行通信的错误校验 l奇偶校验

2、在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时, 数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中 “1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数 进行校验,若发现不一致,则说明传输数据过程中出现了差错。l循环冗余校验这种校验是通过某种数学运算实现有效信息与校验位之间的循环校 验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠 错能力强,广泛应用于同步通信中。l代码和校验代码和校验是发送方将所发数据块求和(或各字节异或),产生一 个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对 数据块(除校验字节外)求

3、和(或各字节异或),将所得的结果与发送方 的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错 。3、传输速率与传输距离 l传输速率比特率是每秒钟传输二进制代码的位数,单位是 :位秒(bps)。如每秒钟传送240个字符,而每 个字符格式包含10位(1个起始位、1个停止位、8个 数据位),这时的比特率为:10位240个/秒 = 2400 bpsl传输距离与传输速率的关系串行接口或终端直接传送串行信息位流的最 大距离与传输速率及传输线的电气特性有关。当 传输线使用每0.3m(约1英尺)有50PF电容的 非平衡屏蔽双绞线时,传输距离随传输速率的增 加而减小。当比特率超过1000 bps

4、 时,最大传 输距离迅速下降,如9600 bps 时最大距离下降 到只有76m(约250英尺)。4、串行通信接口标准 lRS-232C接口RS-232C是EIA(美国电子工业协会)1969年修订 RS-232C标准。RS-232C定义了数据终端设备(DTE) 与数据通信设备(DCE)之间的物理接口标准。 (1)、机械特性RS-232C接口规定使用25针连接器,连接器的尺 寸及每个插针的排列位置都有明确的定义。(阳头)l功能特性二、AVR单片机UART1、AVR单片机内部寄存器2、最常用的配置方式UCSRB=0x00; UCSRA=0x00; /控制寄存器清零UCSRC=(18; /设置波特率U

5、CSRB=(1TXEN)|(1RXEN)|(1RXCIE); /接收、发送使能,接收中断使能SREG=BIT(7); /全局中断开放DDRD|=0X02; /配置TX为输出(很重要)异步串行接口UART设计 l异步串行接口电路说明 1M内部时钟,波特率9600异步串行接口原理l异步串行通讯是指具有不规则数据段传送特性 的串行通讯。这种数据链路控制形式是面向字 符的。在异步通讯中,发送的每一个数据字符 均由起始位、数据位、停止位和可选择的奇偶 校验位组成,数据之间没有特殊的关系,也没 有发送和接受时钟。l串行数据通讯的方法分为三种:单工、半双工 、全双工。l波特率 - 通讯速率UART控制UAR

6、T- I/O数据寄存器UDRUDR寄存器是两个物理分离的寄存器,分享相同的I/O地址。 当写入寄存器时,UART的发送数据寄存器被写入;当读 UDR时读的是UART接收寄存器。 UART控制寄存器UCRRXCIETXCIEUDRIERXENTXENCHR9RXB8TXB8位7-RXCIE:RX完成中断开放 当该位被置1时,如全局中断被允许,在USR中置位RXC位将导致接收完成中断被执行。 位6-TXCIE:TX完成中断开放 当该位被置1时,如全局中断被允许,在USR中置位TXC位将导致发送完成中断被执行。 位5-UDRIE:UART数据寄存器空中断开放 当该位被置1时,如果全局中断被允许,在U

7、SR中设置UDRE位将导致UART数据寄存器空 中断被执行。 位4-RXEN:接收开放 当该位被置1时,允许UART接收。当接收器被禁止时,TXC、OR和FE位状态标志位不能置 位。如果这些位被置位,在把RXEN关闭时,不能清除它们。 位3-TXEN:发送开放 当该位被设置为1时,允许UART发送,如在发送数据时禁止发送器,则在移位寄存器的 数据和后续UDR中的数据被全部发送完成之前,发送器不会 被禁止。 位2-CHR9:9位字符 当设置该位为1时,发送和接收的数据是9位加上起始和停止位,第9位通过UCR中的RXB8 和TXB8位来分别读和写,第9位可以作为额外的停止位和奇偶位。 位1-RXB

8、8:收到的数据第8位 当CHR9被置位时,RXB8是收到数据的第9位数据 位0-TXB8:发送的数据第8位异步串行接口的编程lUSART初始化:l设置波特率l设置数据帧格式l设置中断允许l 数据发送lUSART的数据发送器的使能控制在UCSRB寄存器中,在发 送数据前,必须设置好通讯波特率、通讯模式和数据帧格式 。l例:一个简单的USART数据发送函数,通过查询UDRE(数 据寄存器空)标志后向UDR写数据。lvoid USART_Transmit( unsigned char data )ll/* 等待发送缓冲区空 */lwhile ( !( UCSRA l/* 将数据写入缓冲区,发送数据

9、*/lUDR = data;l数据接收l当向UCSRB寄存器的RXEN位写入“1”时,USART接受器允许接受数据。在 发送数据前,必须设置好通讯波特率、通讯模式和数据帧格式。l接受器在收到一个有效的起始位后开始接受数据,起始位后的每一位都要按 照一定的波特率移入接受位移寄存器,直到一帧数据的第一个停止位被收到 。当第一位停止位收到后,一帧完整的串行数据会被从接受位移寄存器送入 接受缓冲区,这时可以通过读UDR来获取缓冲区内的数据。l下面的例子是一个通过查询RXC(接受完成标志)来接受数据的函数。在函 数调用前,USART已经被初始化。lunsigned char USART_Receive( void )ll/* 等待收到数据 */lwhile ( !(UCSRA l/* 获取返回缓冲区中的数据 */lreturn UDR;l

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号