- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
项目一双机通信应用系统;【项目功能】;【项目知识点与技能点】;【项目知识准备】;2、串行通讯制式
根据信息的传送方向,串行通讯可以进一步分为:单工、半双工和全双工三种。
1)单工(Simplex)方式:
2)半双式方式(halfduplex):
3)全双工方式(fullduplex):
;3、串行数据传输的分类
按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种。
同步通信---SynchronousCommunication:发送器和接收器由同一个时钟源控制。;异步通信---AsynchronousCommunication
异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。
1)字符帧(CharacterFrame)
字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等4部分组成,如图1.6所示。;2)波特率(baudrate)
异步通信的另一个重要指标为波特率。
波特率为每秒钟传送二进制数码的位数,也叫比特数,单位b/s,即位/秒。波特率用于表征数据传输的速度,波特率越高数据传输速度越快。但波特率和字符的实际传输速率不同,字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式有关。
通常,异步通信的波特率为50~9600b/s。; ATmega16单片机的串行口结构主要三个部分:时钟发生器,发送器和接收器。控制寄存器由三个单元共享。时钟发生器包含同步逻辑,通过它将波特率发生器及为从机同步操作所使用的外部输入时钟同步起来。XCK(发送器时钟)引脚只用于同步传输模式。发送器包括一个写缓冲器,串行移位寄存器,奇偶发生器以及处理不同的帧格式所需的控制逻辑。写缓冲器可以保持连续发送数据而不会在数据帧之间引入延迟。由于接收器具有时钟和数据恢复单元,所以它是USART模块中最复杂的。恢复单元用于异步数据的接收。除了恢复单元,接收器还包括奇偶校验,控制逻辑,移位寄存器和一个两级接收缓冲器UDR。接收器支持与发送器相同的帧格式,而且可以检测帧错误,数据过速和奇偶校验错误; 与ATmega16单片机串行口通信有关的特殊功能寄存器有数据缓冲器UDR,控制和状态寄存器UCSRA、UCSRB、UCSRC,波特率寄存器UBRRL、UBRRH。下面对它们分别作简单的介???。;ATmega16单片机USART发送数据缓冲寄存器和USART接收数据缓冲寄存器共享相同的I/O地址,称为USART数据寄存器或UDR。将数据写入UDR时实际操作的是发送数据缓冲器存器(TXB),读UDR时实际返回的是接收数据缓冲寄存器(RXB)的内容。
只有当UCSRA寄存器的UDRE标志置位后才可以对发送缓冲器进行写操作。如果UDRE没有置位,那么写入UDR的数据会被USART发送器忽略。当数据写入发送缓冲器后,若移位寄存器为空,发送器将把数据加载到发送移位寄存器。然后数据串行地从TxD引脚输出。
;2)控制状态寄存器UCSRA、UCSRB、UCSRC
(1)控制状态寄存器UCSRA格式图如图1.8所示:; TXC:USART发送结束
发送移位缓冲器中的数据被送出,且当发送缓冲器(UDR)为空时TXC置位。执行发送结束中断时TXC标志自动清零,也可以通过写1进行清除操作。TXC标志可用来产生发送结束中断(见对TXCIE位的描述)。
UDRE:USART数据寄存器空
UDRE标志指出发送缓冲器(UDR)是否准备好接收新数据。UDRE为1说明缓冲器为空,已准备好进行数据接收。UDRE标志可用来产生数据寄存器空中断(见对UDRIE位的描述)。复位后UDRE置位,表明发送器已经就绪。;
FE:帧错误
如果接收缓冲器接收到的下一个字符有帧错误,即接收缓冲器中的下一个字符的第一个停止位为0,那么FE置位。这一位一直有效直到接收缓冲器(UDR)被读取。当接收到的停止位为1时,FE标志为0。对UCSRA进行写入时,这一位要写0。
DOR:数据溢出
数据溢出时DOR置位。当接收缓冲器满(包含了两个数据),接收移位寄存器又有数据,若此时检测到一个新的起始位,数据溢出就产生了。这一位一直有效直到接收缓冲器(UDR)被读取。对UCSRA进行写入时,这一位要写0。
;PE:奇偶校验错误
当奇偶校验使能(UPM1=1),且接收缓冲器中所接收到的下一个字符有奇偶校验错误时UPE置位。这一位一直有效直到接收缓冲器(UDR)被读取。对UCSRA进行写
文档评论(0)