MCS-51单片机串行接口(4)

发布时间:2021-06-07

MCS-51单片机串行接口

1. 发送

CPU执行一条写SBUF指令后便启动了串行口发送,数据从TXD输出,时序见图7-8a。 在指令执行期间,CPU送来“写SBUF”信号,将并行数据送入SBUF,并启动发送控制器,经一个机器周期,发送控制器的SEND、DATA相继有效,通过输出控制门从TXD上逐位输出一帧信号。一帧信号发送完毕后,SEND、DATA失效,发送控制器硬件置发送中断标志TI=1,向CPU申请中断。

2. 接收

方式1的接收时序见图7-8b。允许接收位REN被置1接收器就开始工作,跳变检测器以波特率16倍的速率采样RXD引脚上电平,当采样到从1到0的负跳变时,启动接收控制器接收数据,由于发送、接收双方各自使用自己的时钟,两者的频率总有少许差异。为了避免这种影响,控制器将1位送时间等分成16分、位检测器在7、8、9三个状态也就是在位信号中央采样RXD三次。 而且,三次采样中至少两次相同的值被确认为数据,这是为了减小干扰的影响。如果起始位接收到的值不是0,由起始位无效,复位接收电路。如果起始位为0,则开始开始接收本帧其他数据。控制器发出的内部移位脉冲将RXD上的数据逐位移入移位寄存器,当8位数据及停止位全移入后:

(1) 如果RI=0、SM2=0,接收控制器发出“装载SBUF”信号,将8位数据装入接收数据缓冲器SBUF,停止装入RB8,并置RI=1,向CPU申请中断。

(2) 如果RI=0、SM2=1,那么只有停止位为1时才发生上述动作。

(3) 如果RI=0、SM2=1且停止位为0,(通常由传输过程中的干扰所致)所接收的数据应会丢失,不再恢复。

(4) 如果RI=1,则所接收的数据在任何情况下都会丢失。

无论出现哪一种情况,跳变检测器将继续采样RXD引脚的负跳变,以便接收下一帧信息。

接收器采用移位寄存器和SBUF双缓冲结构,以避免在接收后一帧数据之前,CPU尚未及时响应中断将前一帧数据取走,造成两帧数据重叠问题。采用双缓冲器后,前、后两帧数据进入SBUF的时间间隔至少有10个位传送周期。在后一帧数据送入SBUF之前,CPU有足够的时间将前一帧数据取走。

三、 串行接口工作方式2和与方式3

串行口工作在方式2、方式3时,为9位异步通信接口。发送或接收的一帧信息由11位组成,见图7-2b。方式2与方式3仅波特率不同,方式2的波特率为fosc/32(SMOD=1时)或fosc/64(SMOD=0时),而方式3的波特率由定时器/计数器具或定时器/计数器2及SMOD决定。

1. 发送

方式2、方式3发送时,数据从TXD引脚输出,附加的第九位数据由SCON中的TB8提供。CPU执行一条写入SBUF的指令后立即启动发送器发送。发送完一帧信息后由硬件置TI=1。

2. 接收

与方式1相似,REN置1后,跳变检测器不断对RXD引脚采样。当采样到负跳变后就启动接收控制器。位检测器对每位数据采集3个值,用采3取2办法确定每位的数值。当第九位数据移入移位寄存器后,将8位数据装入SBUF,第九位数据装入RB8,并置RI=1,其时序见图2-26b。

与方式1相同,方式2、方式3中也设置有数据辨别功能,即当RI=1或SM2=1且第九位数据为0时所接收的一帧信息被丢失。

四、各方式波特率的设计

MCS-51单片机串行接口(4).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219