单片机之间的通信.doc

上传人:工**** 文档编号:543714334 上传时间:2023-07-03 格式:DOC 页数:8 大小:848.01KB
返回 下载 相关 举报
单片机之间的通信.doc_第1页
第1页 / 共8页
单片机之间的通信.doc_第2页
第2页 / 共8页
单片机之间的通信.doc_第3页
第3页 / 共8页
单片机之间的通信.doc_第4页
第4页 / 共8页
单片机之间的通信.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《单片机之间的通信.doc》由会员分享,可在线阅读,更多相关《单片机之间的通信.doc(8页珍藏版)》请在金锄头文库上搜索。

1、2013年7月30日 修订 单片机之间的通信,在老师的强烈要求下,我们决定整理我们所学过的东西,在这里所展现的并不一定很全面,只能是简单的入门级别,对于通信,一直以来都是方便,但实现起来困难。硬件要求高,软件相对复杂点。这里,我们通过介绍资料、介绍硬件、介绍接线、软件应用举例、注意事项等来收集和整理了单片机与单片机、pc机与单片机通信的简单应用,仅供单片机实验室设备使用。资料(摘自校内教材)在通信领域内,有两种数据通信方式:并行通信和串行通信。并行数据传输的特点:各数据位同时传输,传输速度快、效率高,多用在实时、快速的场合。并行传输的数据宽度可以是1128位,甚至更宽,但是有多少数据位就需要多

2、少根数据线,因此传输的成本较高,且只适用于近距离(相距数米)的通讯。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。串行数据传输的特点:1)节省传输线,这是显而易见的。尤其是在远程通信时,此特点尤为重要。这也是串行通信的主要优点2)数据传送效率低。与并行通信比,这也这是显而易见的。这也是串行通信的主要缺点。 2、串行通讯制式根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。 1)单工(Simplex)方式:通信双方设备中发送器与接收器分

3、工明确,只能在由发送器向接收器的单一固定方向上传送数据。 图1.2 单工方式 2)半双式方式(half duplex):若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制。 图1.3 半双工方式 3)全双工方式(full duplex):当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制。 图1.4 全双工方式 3、串行数据传输的分类而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种。 异步通信:接收器和发送器有各自的时钟; 同步通信:

4、发送器和接收器由同一个时钟源控制。 同步通信-Synchronous Communication同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。 图1.5 同步通信的字符帧格式异步通信-Asynchronous Communication异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,每一帧数据均是低位在前,高位在后,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。在异步

5、通信中,接受端是依靠字符帧格式来判断发送端是何时开始发送,何时结束发送的。字符帧格式是异步通信的一个重要指标。1) 字符帧(Character Frame)字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等4部分组成,如图1.6所示。(a)无空闲位字符帧(b) 有空闲位字符帧图1.6 异步通信的字符帧格式(1) 起始位:位于字符帧开头,只占一位,为逻辑0,低电平,用于向接收设备表示发送端开始发送一帧信息。(2) 数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位在前,高位在后。(3) 奇偶校验位:位于数据位之后,仅占一位,用来表征串行通信中采用奇校验还是偶校验,由用户决

6、定。(4) 停止位:位于字符帧最后,为逻辑1,高电平。通常可取1位、1.5位、或2位,用于向接收端表示一帧字符信息已经发送完,也为下一帧发送做准备。在串行通信中,两相邻字符帧之间可以没有空闲位,也可以有若干空闲位,这由用户来决定。图1.6(b)表示有3个空闲位的字符帧格式。2)波特率(baud rate)异步通信的另一个重要指标为波特率。波特率为每秒钟传送二进制数码的位数,也叫比特数,单位b/s,即位/秒。波特率用于表征数据传输的速度, 波特率越高数据传输速度越快。但波特率和字符的实际传输速率不同,字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式有关。通常,异步通信的波特率为50960

7、0b/s。4、ATmega16单片机的串行口及相关寄存器 ATmega16单片机的串行口结构主要三个部分:时钟发生器,发送器和接收器。 1)数据缓冲器UDR UDR数据缓冲器的格式图如图1.7所示: 图1.7 UDR数据缓冲器的格式图ATmega16单片机USART 发送数据缓冲寄存器和USART 接收数据缓冲寄存器共享相同的I/O 地址,称为USART 数据寄存器或UDR。将数据写入UDR 时实际操作的是发送数据缓冲寄存器(TXB),读UDR 时实际返回的是接收数据缓冲寄存器(RXB) 的内容。只有当UCSRA寄存器的UDRE标志置位后才可以对发送缓冲器进行写操作。如果UDRE没有置位,那么

8、写入UDR 的数据会被USART 发送器忽略。当数据写入发送缓冲器后,若移位寄存器为空,发送器将把数据加载到发送移位寄存器。然后数据串行地从TxD 引脚输出。 2)控制状态寄存器UCSRA、UCSRB、UCSRC (1)控制状态寄存器UCSRA格式图如图1.8所示: 图1.8 控制状态寄存器UCSRA格式图RXC: USART 接收结束接收缓冲器中有未读出的数据时RXC 置位,否则清零。接收器禁止时,接收缓冲器被刷新,导致RXC 清零。RXC 标志可用来产生接收结束中断(见对RXCIE位描述)。TXC: USART 发送结束发送移位缓冲器中的数据被送出,且当发送缓冲器 (UDR) 为空时TXC

9、 置位。执行发送结束中断时TXC 标志自动清零,也可以通过写1 进行清除操作。TXC 标志可用来产生发送结束中断( 见对TXCIE 位的描述)。UDRE: USART 数据寄存器空UDRE标志指出发送缓冲器(UDR)是否准备好接收新数据。UDRE为1说明缓冲器为空,已准备好进行数据接收。UDRE标志可用来产生数据寄存器空中断(见对UDRIE位的描述)。复位后UDRE 置位,表明发送器已经就绪。FE: 帧错误如果接收缓冲器接收到的下一个字符有帧错误,即接收缓冲器中的下一个字符的第一个停止位为0,那么FE 置位。这一位一直有效直到接收缓冲器(UDR) 被读取。当接收到的停止位为1 时, FE 标志

10、为0。对UCSRA 进行写入时,这一位要写0。DOR: 数据溢出数据溢出时DOR 置位。当接收缓冲器满( 包含了两个数据),接收移位寄存器又有数据,若此时检测到一个新的起始位,数据溢出就产生了。这一位一直有效直到接收缓冲器(UDR) 被读取。对UCSRA 进行写入时,这一位要写0。PE: 奇偶校验错误当奇偶校验使能(UPM1 = 1),且接收缓冲器中所接收到的下一个字符有奇偶校验错误时UPE 置位。这一位一直有效直到接收缓冲器 (UDR) 被读取。对UCSRA 进行写入时,这一位要写0。U2X: 倍速发送这一位仅对异步操作有影响。使用同步操作时将此位清零。此位置1 可将波特率分频因子从16 降

11、到8,从而有效的将异步通信模式的传输速率加倍。MPCM: 多处理器通信模式设置此位将启动多处理器通信模式。MPCM 置位后, USART 接收器接收到的那些不包含地址信息的输入帧都将被忽略。发送器不受MPCM设置的影响。 (2)控制状态寄存器UCSRB格式图如图1.9所示: 图1.9 控制状态寄存器UCSRB格式图RXCIE: 接收结束中断使能置位后使能RXC 中断。当RXCIE 为1,全局中断标志位SREG 置位, UCSRA 寄存器的RXC 亦为1 时可以产生USART 接收结束中断。TXCIE: 发送结束中断使能置位后使能TXC 中断。当TXCIE 为1,全局中断标志位SREG 置位,U

12、CSRA 寄存器的TXC 亦为1 时可以产生USART 发送结束中断。UDRIE: USART 数据寄存器空中断使能置位后使能UDRE 中断。当UDRIE 为1,全局中断标志位SREG 置位,UCSRA 寄存器的UDRE 亦为1 时可以产生USART 数据寄存器空中断。RXEN: 接收使能置位后将启动USART 接收器。RxD 引脚的通用端口功能被USART 功能所取代。禁止接收器将刷新接收缓冲器,并使 FE、DOR 及PE 标志无效。TXEN: 发送使能置位后将启动将启动USART 发送器。TxD 引脚的通用端口功能被USART 功能所取代。TXEN 清零后,只有等到所有的数据发送完成后发送

13、器才能够真正禁止,即发送移位寄存器与发送缓冲寄存器中没有要传送的数据。发送器禁止后,TxD引脚恢复其通用I/O功能。UCSZ2: 字符长度UCSZ2与UCSRC寄存器的UCSZ1:0结合在一起可以设置数据帧所包含的数据位数(字符长度)。RXB8: 接收数据位 8对9 位串行帧进行操作时,RXB8 是第9 个数据位。读取UDR 包含的低位数据之前首先要读取RXB8。TXB8: 发送数据位8对9 位串行帧进行操作时,TXB8 是第9 个数据位。写UDR 之前首先要对它进行写操作。 (3)控制状态寄存器UCSRC格式图如图1.10所示: 图1.10 控制状态寄存器UCSRC格式图 在ATmega16

14、单片机中,UCSRC寄存器与UBRRH寄存器共用相同的I/O地址。对控制寄存器UCSRC的各位介绍如下:URSEL: 寄存器选择通过该位选择访问UCSRC 寄存器或UBRRH 寄存器。当读UCSRC 时,该位为1 ;当写UCSRC 时,URSEL为1。 UMSEL: USART 模式选择 当UMSEL位为0时,串行口工作于异步操作模式;当UMSEL位为1时,串行口工作于同步操作模式。 UPM1:0: 奇偶校验模式这两位设置奇偶校验的模式并使能奇偶校验。如果使能了奇偶校验,那么在发送数据,发送器都会自动产生并发送奇偶校验位。对每一个接收到的数据,接收器都会产生一奇偶值,并与UPM0 所设置的值进

15、行比较。如果不匹配,那么就将UCSRA 中的PE 置位。ATmgega16单片机串行口工作时,UPM1:0的设置如表1.1所示:表1.1 UPM设置 USBS: 停止位选择通过这一位可以设置停止位的位数。接收器忽略这一位的设置。当USBS位为0时,停止位位数为 1;当USBS位为1时,停止位位数为 2。UCSZ1:0: 字符长度UCSZ1:0与UCSRB寄存器的 UCSZ2结合在一起可以设置数据帧包含的数据位数(字符长度)。其具体设置如表1.2所示: 表1.2 字符长度设置 UCPOL: 时钟极性这一位仅用于同步工作模式。使用异步模式时,将这一位清零。UCPOL 设置了输出数据的改变和输入数据采样,以及同步时钟XCK 之间的关系。UCPOL设置:3)波特率设置寄存器Bit 11:0 UBRR11:0: USART 波特率寄存器这个12 位的寄存器包含了USART 的波特率信息。其中UBRRH 包含了USART 波特率高4 位,UBRRL 包含了低8 位。波特率的改变将造成正在

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

当前位置:首页 > 生活休闲 > 科普知识

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