首页 > 编程知识 正文

异步通信和同步通信的原理,异步通信特点

时间:2023-05-04 22:58:38 阅读:216342 作者:3661

UART TTL RS232 RS485 UART:异步传输器TTL:晶体管-晶体管-逻辑电平RS232:一种全双工通信格式RS485:一种半双工通信格式

串口通信常见的名词就是上面几位,真正的承担串口通信的是UART,TTL/232/485只是电平定义不同。因此研究串口通信主要是明白UART的工作原理。

UART:


由上面的UART结构框图我们可以看到,一个UART包括发送缓冲区S-SBUF,接收缓冲区R-SBUF,发送端口SEN,接收端口RCV,发送完成置位TI,接收完成置位RI。当然UART包含的不止这些,还有设置寄存器与时钟输入,不过仅就理解其原理而言,前面几个就够了。
那么具体怎么用UART呢?当我们需要发送数据的时候,只需要将数据放到S-SBUF里面,在UART检测到信息进入S-SBUF后,会自动将数据按位传送到SEN引脚上,数据发送就完成了。但是为了便于对端RCV引脚接收,UART在发送数据时会遵循一个约定俗成的规律,为什么这么做呢,细心的朋友可能注意到了,当传输结束时,SEN会将引脚拉倒高电平,此后会一直保持高电平的状态直到下次数据传输前,那么我在传输前将SEN拉倒低电平可以告诉对端RCV我现在已经准备传输数据了,让其做好接受准备。RCV在接受到负跳变以后,就启动接收数据的工作。我们也将其启动时的低电平称为起始位,结束时的高电平称为终止位。

RS232

RS232的通信原理与UART一模一样,实际上,232芯片仅仅起到了一个电平转换的过程,即将0v上升到3到15v,将5V下降到-3到-15v。

RS485

RS485与232存在区别,虽然本质上还是UART的通信原理,但是将全双工变成了半双工。

从上图中可以看到,不管是SEN还是RCV数据,都会同时将A/B两个通信线占用,这就意味着我们在同一时间段内只能选择发送数据,或者接受数据。二选一,不能同时发送接受。485芯片给我们提供了一个引脚用来控制此时刻我们是选择发送,还是选择接受。

这个时候考虑以下几种情况: 左发送,右接受:OK 没问题。左接受,右发送:OK 没问题。左接受,右接受:这个时候相当于总线空闲,也没问题。左发送,右发送:这个时候就出现问题了,会出现通信线电平竞争,通信崩溃

那么如何避免电平竞争,那就必须保障在同一时刻只有一端发送数据。如何做到这一点,有两种办法:一是以量保质;二是以效保质。

以量保质

以量保质的意思是给每一端安装两个UART与RS485,其中一个专门用来发送,另一个专门用来接收。

以效保质

以效保质的意思是我们给总线上连接的所有设备定一个管理者,这个管理者享有总线的控制权,由它来依次给各个设备发送通信质量,然后各个设备来回应,这个管理者就是我们通常所说的主站,其他设备统称从站。
这个时候还有一个问题就是我们怎么保障主站从站不会同时发送数据能,这时候可以在程序上进行设定,我们在主站发送数据后设置一段等待时间,这个时间应该足够从站处理并返回数据,在等待时间内,主站将不会再发送任何数据。如果过了等待时间后从站依旧未返回信息,那么可以发出报警信号,提示该从站的通信出现异常。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。