串行口具有4种工作方式,由SCON中的SM0和SM1的值决定。各种工作方式的原理如下:
1.方式0
方式0属于移位寄存器的工作方式。应用时通常外接“串入-并出”移位寄存器(如74HC164、CD4094)或“并入-串出”移位寄存器(如74HC165、CD4014),以扩展单片机的I/O口。由RXD(P3.0)串行输入/输出数据,每个字符8位,低位在前;TXD(P3.1)输出移位脉冲,其波特率固定为fosc/12。在每个机器周期内,TXD端的移位脉冲使RXD输出或输入一位二进制码。
2.方式1
方式1是10位异步通信接口方式。帧格式为10位,含1个起始位、8个数据位(低位在前)、1个停止位。方式1的波特率可变(取决于定时器T1的溢出时间和SMOD位的设置)。串行口方式1、2、3的工作示意图见图3-16,接收端是RXD,发送端是TXD。
图3-16 串行口方式1、2、3的工作示意图
方式1的发送过程是:发送标志TI经软件清零后,由写SBUF指令启动发送过程,内部总线数据送入SBUF并启动发送控制器。经过一个机器周期,数据端DATA和发送端SEND有效,在内部移位脉冲控制下,串行数据通过输出控制门向TXD端送出。一帧信息发送完毕后,发送中断标志TI置位,申请串行口中断或等待用户查询。
方式1的接收过程是:通常设SM2=0,接收标志RI经软件清零后,若接收允许位REN置1(图中开关闭合),位检测器则以所选波特率的16倍速率对RXD端电平进行采样。当检测到负跳变时,跳变检测器启动接收控制器接收数据。为了抑制干扰,把每一位数据的传输时间分成16等分,位检测器在一位数据的传输时间内检测到的第7、8、9个脉冲至少有两个的值相同时,判断为接收到数据。在内部移位脉冲控制下,RXD上的数据逐位移入移位寄存器,一帧信息接收完毕。若接收到的数据的起始位不为零,则该帧信息无效,接收电路复位。如果满足RI=0、接收到的停止位为1或SM2=0这两个条件,单片机把停止位送入SBUF,并置位接收中断标志RI,申请串行口中断或等待用户查询。
3.方式2和方式3
方式2和方式3是11位异步通信接口方式。帧格式为11位,含1个起始位、9个数据位(低位在前,8个数据位,第9位为奇偶校验位)和1个停止位。方式2的波特率固定,与SMOD位有关,其值为fosc/32(SMOD=1时)或fosc/64(SMOD=0时)。方式3的波特率可变,取决于定时器/计数器TI的溢出率和SMOD位的设置。(www.xing528.com)
方式2和方式3数据的发送、接收过程与方式1的基本相同。若满足RI=0、SM2=0或所接收到的第9位数据为1(非停止位),则表明数据接收成功。方式2和方式3与方式1的差别在于:发送之前由SCON寄存器中的TB8位提供第9位数据,接收之后把第9位数据装入SCON寄存器中的RB8位。
1)串行口方式2和方式3的发送时序见图3-17。
图3-17 串行口方式2和方式3的发送时序
工作过程为:①发送始于执行一条写SBUF指令;②发送开始的同时,SEND信号低电平有效,向TXD端送出起始位;③每隔一个TX时钟周期产生一个移位脉冲,TXD输出一位数据;④当9位数据输出后,信号失效,TI标志置位,可引发串行口中断,令TXD=1作为停止位,完成一帧信息的发送。
2)串行口方式2和方式3的接收时序见图3-18。
图3-18 串行口方式2和方式3的接收时序
工作过程为:①接收过程始于接收允许位REN=1,位检测器从采样脉冲中(三中取二原则)检验到有效起始位;②起始位有效,每个RX时钟周期接收一位数据;③第9位数据接收完毕后,数据送至SBUF和RB8,RI标志置位,可引发串行口中断,完成一帧数据的接收;④若接收无效,则需要重新检测RXD的信号。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。