1.串口通信技术
(一)通信技术的基本概念
单片机之间的通信通常有两种形式:并行通信和串行通信。
并行通信是指同时传输数据的通信方式;
串行通信是指数据逐一传输的通信方式:串行通信分为串行异步通信和串行同步通信两种基本方式。
(2)异步通信和同步通信
1、异步通信 异步串行通信以字符为单位,即一个字符传输。数据是一帧一帧的传输,即数据传输完成后,下一帧数据可以传输或等待,等待期为高电平。 在一帧格式中,首先是起始位0,然后是8位数据位(规定低位在前高位在后),然后是奇偶校准位,最后是停止位1。 起始位置:发送器通过发送起始位置来传输一个字符。起始位置使数据处于低电平状态。 a,波特率:这是衡量通信速度的参数。它表示每秒传输bit的个数。例如,300波特表示每秒发送300bit。当我们提到时钟周期时,我们指的是波特率。例如,如果协议需要4800波特率,时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。电话线的波特率一般为14400、28800和36600。波特率可以远远大于这些值,但波特率与距离成反比。高波特率常用于放置在非常近的仪器之间的通信。典型的例子是GPIB设备通信。
b,数据位:在数据位中,低位在前,高位在后。这是衡量通信中实际数据位的参数。计算机发送信息包时,实际数据不会为8位,标准值为5位、7位和8位。如何设置取决于您想要传输的信息。例如,标准ASCII代码为0~127(7位)。扩展的ASCII代码为0~255(8位)。如果数据使用简单的文本(标准) ASCII代码),然后每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位、数据位和奇偶校准位。由于实际数据位取决于通信协议的选择,术语包是指任何通信。
c,停止:用来表示单个包的最后一个。典型值为1,1.5和2位。由于数据定期在传输线上,每个设备都有自己的时钟,通信中两个设备之间很可能会有小的不同步。因此,停止不仅是传输的结束,也是计算机校正时钟同步的机会。停止位数越多,对不同时钟同步的容忍度越大,但数据传输率也越慢。
d,奇偶校准位置:串口通信中检错的简单方法。偶、奇、高、低有四种检错方法。当然,没有验证位置也可以。对于偶和奇校验,串口将设置校验位(数据位后面的一个),以确保传输的数据具有偶或奇逻辑高。例如,如果数据为011,则对于偶校验,校验位为0,确保高逻辑位数为偶数。若为奇校验,校验位为1,则有3个逻辑高位。高低不真实的检查数据,简单的位置逻辑高或低逻辑验证。这样,接收设备就可以知道一个位置的状态,并有机会判断是否有噪音干扰通信或传输和接收数据是否不同步。
(三)串口通信的结构
1.两个数据缓存区SBUF:
发送数据缓冲寄存器SBUF接受数据缓冲寄存器SBUF。前者用于发送串行数据,后者用于接收串行数据。SBUF。
该功能是在接收控制器的控制下逐位移动输入数据SBUF。
三、串行控制寄存器SCON
功能是控制串行通信的工作模式,反映串行通信的工作状态。
4、定时器T1
T用作波特率发生器,控制数据传输速度。
(4)串行通信口的控制
在80C51单片机中的特殊功能寄存器中,有4个与串行通信相关的寄存器,分别是:SCON、PCON、IE、IP。其中SCON和PCON直接控制串行口的工作模式。
1、 串行口控制寄存器SCON
串行口控制寄存器SCON的格式
A、 SM0、SM1.串行口工作方式的选择可选择四种工作方式。 (1)方式0( SM0 SM1 :0 0):串行口的工作位寄存器I/O可外接移位寄存器,一扩展I/O口,也可外接同步I/O设备。 发送操作:当执行一条MOVSBUF,A在指令中,由TXD输出移位脉冲,由RXD串行SBUF中间数据。发送8位数据后自动置TI=1.请求中断。继续发送时,TI必须有指令清零。 接收操作:REN串行口接收允许控制位。REN=0时禁止接收;REN=1.允许接收。当软件出现时REN从1开始RXD端口以fosc当接收到8位数据时,/12波特率输入数据RI设置1。在再次接收数据之前,必须使用软件RI清0。
(2)方式1 ( SM0 SM1 :0 1) :串行口为10个通用异步接口。发送或接收10位数据信息,包括1位起始位0、8位数据位、1位停止位1。发送数据:数据从TXD当数据写入发送缓冲器时,端口输出SBUF启动发送器发送。发送一帧数据后,将中断标志放置TI=一、申请中断,通知CPU下一个数据可以发送。接收数据:先做REN=1(允许接收数据)RXD接收数据,当采样到1至0跳变时,确认是起始位“0”,就开始接收一帧数据,当接收完一帧数据时,置中断标志RI=一、申请中断,通知CPU从SBUF拿走收到的数据。
(3)方式2 (SM0 SM1 :1 0) :串行口为11个异步通信接口。发送或接收一帧信息包括一个起始位0发送数据:软件在发送前根据通信协议设置TB8为奇偶校验位或数据标识位SBUF,即可启动发送器。发送过程由任何一个执行SBUF启动目的寄存器指令,安装8位数据SBUF,同时还把TB8安装在发送移位寄存器的第9位,然后从TXD(P3.1)端口输出一帧数据。接收数据:先置REN=1.使串行口允许接收状态,同时也要接收RI清“0”。然后再根据SM2的状态和收到的状态RB8的状态决定了信息到口的状态决定了它是否被放置RI=1.申请中断通知CPU接收数据。当SM2=0时,不管RB八是0还是1RI=1.串行口将收到发送的信息。当SM2=1时,且RB8=1.表示在多机通信条件下,接收的信息为地址帧, 此时置RI=1.串行口将接收发送的地址。当SM2=1时,且RB8=0多机通信的情况下,接收的信息是数据帧, 但不是发给本从机的,此时RI不算1,所以SBUF接收到的数据帧将丢失。 (4)方式3 ( SM0 SM1 :1 1) :除波特率不同外,波特率可变的11位异步通信方式与方式2相同。
SM2
——多机通信控制位
多机通信是工作方式2和方式3,SM2主要用于方法2和方法3。接收状态,当串行口以2或3的方式工作时,以及SM2=1.只有当收到第九位数据时(RB8)直到1点才发送接收到的前8位数据SBUF,且置位RI发出中断申请,否则将放弃收到的数据。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请。
0时工作,SM2必须是0。在方式1中,如果SM=一是只有在接收到有效停止位时,RI才置1。
REN
——允许接收位
REN允许和禁止控制数据接收,REN=1.允许接收,REN=0点,禁止接收。
TB8
——发送数据位8
在方法2和方法3中,TB8是要发送的-即第9位数据位。这个位置也应该在多机通信中传输,它代表传输的地址或数据,TB8=0为数据,TB8=1时为地址。
RB8
——接收数据位8
在方法2和方法3中,RB8存储接收到的第九位数据,以识别接收到的数据特征。
TI
——发送中断标志位
可以找到地址标志位。方式0发送第8位数据后,硬件位置由硬件位置发送或停止,因此,TI=1表示帧发送结束,TI软件可以清除0。
RI
——接收中断标志位
可以找到志位。接收第八位数据后,该位置由硬件位置,在其他工作模式下,该位置由硬件位置,RI=1表示帧接收已完成。
串口中断处理时,TI,RI都需要软件清"0",此外,在进行缓冲区操作时,不可能在硬件位置后自动清除0。ES=防止中断。
2、 电源控制寄存器PCON
PCON主要是为了CHMOS型单片机的电源控制而设置的专用寄存器。
默认为系统复位SMOD=0.波特率不受52单片机定时器2的影响SMOD影响。
定义:
SMOD:该位置与串口通信有关。
SMOD=0; 1、2、3时,波特率正常,波特率不变。
SMOD=1; 串口方式1,2,3时,波特率加倍。
LVDF:低压检测标志位也是低压检测中断要求的标志位
GF1,GF0:用户可以自由使用两个通用工作标志。
PD:设置掉电模式定位。
PD=0 单片机正常工作。
PD=1 单片机进入(Power Down)模式 ,外部晶振停振可以通过外部中断或硬件复位模式唤醒。CPU、所有定时器和串行口都停止工作,只有外部中断。在这种模式下,只有硬件复位上电能够唤醒单片机。
IDL:空闲模式设定位。
IDL=0 单片机处于正常工作状态。