资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第六章 MCS-51单片机串行口 6.1 串行通信的基础知识 在在MCS-51MCS-51单片机内部,有一个通用异步接收单片机内部,有一个通用异步接收/ /发送发送器(器(UARTUART)。)。这是一个全双工串行接口,能同时这是一个全双工串行接口,能同时进行发送和接收数据。利用这个串行接口,可以实进行发送和接收数据。利用这个串行接口,可以实现单片机之间的单机通信、多机通信,以及与现单片机之间的单机通信、多机通信,以及与PCPC机机之间的通信。之间的通信。一、数据通信的基本概念一、数据通信的基本概念 单片机数据通信就是指单片机数据通信就是指CPUCPU与外部的信息交换与外部的信息交换 二、通信方式二、通信方式 基本的通信方式有两种:基本的通信方式有两种:并行通信:数据的各位同时传送并行通信:数据的各位同时传送串行通信:数据一位一位顺序传送串行通信:数据一位一位顺序传送8 8位数据并行传送需要位数据并行传送需要8 8条数据传送线,而串行通条数据传送线,而串行通 信只需要一条传送线。因此,用串行通信节省传输线信只需要一条传送线。因此,用串行通信节省传输线 。距离比较远时,更能显示它的优点。单片机广泛用。距离比较远时,更能显示它的优点。单片机广泛用 于工业控制和数据采集系统中,他们往往作为前端机于工业控制和数据采集系统中,他们往往作为前端机 安放在工业现场,而远离系统主机,采用串行通信可安放在工业现场,而远离系统主机,采用串行通信可 大大降低成本,并提高系统的可靠性(信号线减少,大大降低成本,并提高系统的可靠性(信号线减少, 降低了线路故障)。降低了线路故障)。三、三、 串行通信分类(按串行数据的同步方式,串行通信可分为串行通信分类(按串行数据的同步方式,串行通信可分为 同步通信和异步通信两类)同步通信和异步通信两类)1 1、 异步通信:数据以字符(或子节)为单位组成字符帧(也称数异步通信:数据以字符(或子节)为单位组成字符帧(也称数 据帧)传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐据帧)传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐 帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接 收,这两个时钟源彼此独立,互不同步。那么,接收端如何知道发收,这两个时钟源彼此独立,互不同步。那么,接收端如何知道发 送端何时开始发送和何时结束发送呢?这是由字符帧格式规定的。送端何时开始发送和何时结束发送呢?这是由字符帧格式规定的。 平时,发送线为高电平(逻辑平时,发送线为高电平(逻辑1 1),每当接收端检测到传输线上发),每当接收端检测到传输线上发 送过来的低电平逻辑送过来的低电平逻辑0 0(字符帧中的起始位)时,就知道发送端已(字符帧中的起始位)时,就知道发送端已 开始发送,每当接收端接收到字符帧中的停止位时,就知道一帧字开始发送,每当接收端接收到字符帧中的停止位时,就知道一帧字 符信息已发送完毕。符信息已发送完毕。 用一个起始位表示字符帧的开始,接着用一个起始位表示字符帧的开始,接着N N位数据位,第位数据位,第N+1N+1位位 是奇偶校验位,然后是停止位,用停止位表示数据帧的结束,数据是奇偶校验位,然后是停止位,用停止位表示数据帧的结束,数据 传送的顺序是低位在前,高位在后。传送的顺序是低位在前,高位在后。在异步串行通信方式中,数据发送端与数据接收端对帧格式 和传送的速度的规定要一致,保证收、发端的波特率在一个帧间能 同步,这样,就可以实现多个字符的可靠传送。帧格式和波特率是两个重要指标,由用户根据 实际情况选定。 (1)帧格式起始位为1位;数据位N位,N=5,6,7或8,若所传数据为ASCII 码,则常取7位;奇偶校验占1位,也可以不要校验位;停止位可以是1位,1.5位或2位; (2)波特率 以1秒钟可传送的数据位数来定义, 例如收、发端采用波特率为110,一个帧采用1起始位 +8数据位+1奇偶校验位+1停止位=11位,则1秒钟最多 可传送110/11=10帧。第N-1个帧01停 止 位起 始 位低位高位7位数据位奇偶 校验停 止 位第N个数据帧图6.1 异步串行通信帧格式异步通信的优点是不需要传送同步脉冲,故所需设备简单,异步通信的优点是不需要传送同步脉冲,故所需设备简单, 缺点是帧中因包含有起始位和停止位而降低了有效数据的传输速率缺点是帧中因包含有起始位和停止位而降低了有效数据的传输速率 。2 2、 同步通信:同步通信:同步通信是一种连续串行传送数据的通信方式,一次通信只 传送一帧信息。这里的信息帧和异步通信中的字符帧不同,通常含 有若干个数据字符,如图:同步字符 数据字符1 数据字符N CRC1 CRC2单同步字符帧结构双同步字符帧结构同步字符1 同步字符2 数据字符1 数据字符N CRC1 CRC2帧由同步字符、数据字符和校验字符三部分组成。同步字符位于帧结 构开头,用于确认数据字符的开始(接收端不断对传输线采样,并把 采样到的字符和双方约定的同步字符比较,只有比较成功后才会把后 面接收到的字符加以存储);数据字符在同步字符之后,个数不受限 制,由所需传输的数据块长度决定;校验字符有1到2个,位于帧结构 末尾,用于接收端对接收到的数据字符的正确性校验。在同步通信中,同步字符可以采用 统一的标准格式,也可以由用户约定。在 单同步字符帧结构中,同步字符常采用 ASCII码中规定的SYN(即16H)代码,在双 同步字符帧结构中,同步字符一般采用国 际通用标准代码EB90H。同步通信的数据传输速率较高,通 常可达56Mb/s或更高。同步通信的缺点是 要求发送时钟和接收时钟保持严格同步。四、 数据转换MCS-51单片机串行接口电路为用户提供了两个串行口缓冲寄存器(SBUF),一个称为发送缓冲器,它的用途是接收片内总线送来的数据,即发送缓冲器只能写不能读。发送缓冲器中的数据通过TXD引脚向外传送。另一个称为接收缓冲器,它的用途是向片内总线发送数据,即接收缓冲器只能读不能写。接收缓冲器通过RXD引脚接收数据。因为这两个缓冲器一个只能写,一个只能读,所以共用一个地址99H。串行接口电路如图6.2所示。图6.2 MCS-51串行口寄存器结构 6.2 MCS-51单片机串行通信的控制寄存器 1. 串行口控制寄存器(SCON)SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于 串行数据通信的控制。单元地址为98H,位地址为98H9FH。寄 存器的内容及位地址表示如下:位地址 9FH 9EH9DH9CH 9BH9AH 99H98H位符号 SM0 SM1SM2RENTB8RB8TIRI各位的说明如下: 1) SM0 、SM1串行口工作方式选择位其状态组合和对应工作方式为:SM0 SM1 工作方式0 0 方式00 1 方式11 0 方式21 1 方式3 2) SM2方式2、3的多机通信控制位在方式2和3中,若SM21且接收到的第九位数据(RB8) 为1,才将接收到的前8位数据送入接收SBUF中,并置位RI产 生中断请求;否则丢弃前8位数据。若 SM20,则不论第九位 数据(RB8)为1还是为0,都将前8位送入接收SBUF中,并产生 中断请求。方式0时,SM2必须置0。 3) REN允许接收位REN0 禁止接收数据REN1 允许接收数据 4) TB8发送数据位8在方式2、3时,TB8的内容是要发送的第9位数据,其值由 用户通过软件来设置。5) RB8接收数据位8在方式2、3时,RB8是接收的第9位数据。在方式1时,RB8是接收的停止位在方式0时,不使用RB8 6) TI发送中断标志位在方式0时,发送完第8位数据后,该位由硬件置位。在其它方式下,于发送停止位之前,由硬件置位。因此,TI1表示帧发送结束,其状态既可供软件查询使用 ,也可请求中断。TI由软件清“0”。 7) RI接收中断标志位在方式0时,接收完第8位数据后,该位由硬件置位。在其它方式下,于接收到停止位之前,该位由硬件置位。因此,RI1表示帧接收结束,其状态既可供软件查询使用 , 也可请求中断。RI由软件清“0”。2. 电源控制寄存器(PCON)PCON不可位寻址,字节地址为87H。它主要是为 CHMOS型单片机80C51的电源控制而设置的专用寄存器。其内容如下:与串行通信有关的只有D7位(SMOD),该位为波特率倍增 位,当SMOD=1时,串行口波特率增加一倍,当SMOD=0时,串行口波特率为设定值。当系统复位时,SMOD=0。 位序D7D6D5D4D3D2D1D0位符号SMOD/GF1GF0PDIDL6.3 MCS-51单片机串行通信工作方式串行口的工作方式由SM0和SM1确定,编码和功能如表6-1所 示。方式0和方式2的波特率是固定的,而方式1和方式3的波特 率是可变的,由T1的溢出率决定。SM0 SM1方式功能说明波特率0 0方式0移位寄存器方式fosc/120 1方式18位UART可变1 0方式29位UARTfosc/64 或者fosc/321 1方式39位UART可变表6-1 串行口工作方式6.3.1 串行工作方式0 1. 数据输出(发送)当数据写入SBUF后,数据从RXD端在移位脉冲(TXD)的 控制下,逐位移入74LS164,74LS164能完成数据的串并转换。 当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU 响应中断,则从0023H单元开始执行串行口中断服务程序,数据 由74LS164并行输出。其接口逻辑如图6.3所示。图6.3接口逻辑2. 数据输入(接收)要实现接收数据,必须首先把SCON中的允许接收位REN设 置为1。当REN设置为1时,数据就在移位脉冲的控制下,从RXD 端输入。当接收到8位数据时,置位接收中断标志位RI,发生中 断请求。其接口逻辑如图6.4所示。由逻辑图可知,通过外接 74LS165,串行口能够实现数据的并行输入。图6.4 外接移位寄存器输入 6.3.2 串行工作方式1方式1为10位为一帧的异步串行通信方式。其帧格式为1个 起始位、8个数据位和1个停止位。如图6.6所示。图6.6 方式1的帧格式1. 数据输出(发送)数据写入SBUF后,开始发送,此时由硬件加入起始位和 停止位,构成一帧数据,由TXD串行输出。输出一帧数据后,TXD保持在高电平状态下,并将TI置位,通知CPU可以进行下一个字符的发送。2. 数据输入(接收)当REN=1且接收到起始位后,在移位脉冲的控制下,把接收 到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把 停止位送入RB8中,并置位RI,通知CPU接收到一个字符。3. 波特率的设定工作在方式1时,其波特率是可变的,波特率的计算公式为:其中,SMOD为PCON寄存器最高位的值,其值为1 或0。当定时器1作波特率发生器使用时,选用工作方式2(即自 动加载定时初值方式)。选择方式2可以避免通过程序反复装入定时初值所引起的定时误差,使波特率更加稳定。假定计数初 值为X,则
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号