>串行通信不就是RS232、RS422和RS485?还有... 2.串行通信和并行通信的对比: 串行通信 vs. 并行通信 3.异步还是同步: RS232是同步通信还是异步通信? 4.串行通信的四大规则: 串行通信的四大规则(Rules),你知道吗?
5.串行通信中的三种数据传输模式:单工、半双工和双工:串行通信中的单工、半双工和双工通信模式,该如何选择? 这期重点了解下串行通信中接口定义和用途。
RxD和TxD
基本上,谈到串行通讯,两线制的线缆,一般都是这两根线缆。这里小测试下,哪位朋友能准确知道这两个接口的英文全称呢? Pin 2 - Transmitted Data传输数据(TxD) 当数据从DTE设备传输到DCE设备时,此信号处于激活状态。当没有数据传输时,信号保持在标记状态(逻辑“1”,负电压)。
注:DCE设备上的引脚2通常被标记为“接收数据”,尽管根据EIA232标准,它仍应被称为传输数据,因为数据被认为是去往远程DTE设备的。
Pin 3 - Received Data接收数据(RxD)当DTE设备从DCE设备接收数据时,此信号处于激活状态。当没有数据传输时,信号保持在标记状态(逻辑“1”,负电压)。
注:DCE设备上的引脚3通常被标记为“传输数据”,尽管根据EIA232标准,它仍应被称为接收数据,因为数据被认为来自远程DTE设备。
通常,除了RX和TX数据接收和发送两个接口,一般GND信号地也常常会相连。GND提供了一个共同的参考电压,确保信号的正确传输。
FlowControl(Handshaking)
当测量设备(数据采集终端设备)连接到PC电脑的COM端口时,可能需要确定是否使用握手(也称为流量控制)。尽管这通常不是必要的,但它有两个功能:
为什么要用握手协议?
为了在不丢失数据的情况下发送和接收信息,必须在发送器和接收器之间保持稳定的通信。
为此建立和使用缓冲区,缓冲区是一个临时存储位置,允许发送方和接收方存储数据,直到信息以不同的速度彼此处理为止。 数据流 在上图中,发送器和接收器有自己的缓冲区。发送缓冲区保存要发送到接收器的字符。接收缓冲区保存从发送器接收到的字符。如果发送器以较高的速度发送数据,则接收器可能无法接收。在这种情况下,接收者会错过字符“ C”。为了避免这种情况,使用了握手。握手允许发送方和接收方设备在开始通信之前达成协议。
硬件握手和软件握手
握手的方式主要有两种:硬件握手和软件握手。
硬件握手:DTR,DSR,RTS和CTS信号
数据发送和接收的流控制是使用硬件握手完成的。它使用控制信号DTR,DSR,RTS和CTS信号。
发送器将发送数据,并将其加载到接收器缓冲器中。此时,接收器告诉发送器在接收器读取缓冲器中的数据之前不要发送任何进一步的数据。
上述DB9(DE-9)连接器的引脚信息,包括引脚编号、名称以及信号方向归纳如下: 关于25针的引脚及详细定义可见RS232标准文件,实际应用不多,这里我们不做介绍。
软件握手:Xon\Xoff握手
Xon\Xoff握手是一种经常用于控制数据流的软件协议。假设计算机正在向一个暂时无法接受更多数据的仪器发送数据,该仪器将向计算机发送单个Xoff字符,计算机将停止发送数据,直到它接收到Xon字符以重新开始传输。同样的安排也适用于数据流的反向。 Xon是ASCII字符17,Xoff是ASCII字符19。
关于这部分内容:推荐B站的视频(RS232通讯介绍)
https://www.bilibili.com/video/BV1VZ4y1i7Vo/?spm_id_from=333.788.recommend_more_video.1&vd_source=c95303688cee0f44143291f045560cc0
参考链接:
- http://mil.ufl.edu/3744/docs/RS232_standard_files/RS232_standard.html
- https://www.windmill.co.uk/handshaking.html
- https://www.electricaltechnology.org/2020/05/rs232-serial-communication-protocol.html
- http://m.emb.hqyj.com/Column/202110291.html
- https://zhuanlan.zhihu.com/p/679199483
- 【视频课程】Codesys V3.5系列入门课程(121人已学习)
- 【视频课程】Codesys SoftMotion软运动控制基础课程(36人已学习)
- 【视频课程】Codesys SoftMotion电子齿轮课程(11人已学习)
- 【视频课程】Codesys SoftMotion电子凸轮CAM课程(9人已学习)
- 【视频课程】Codesys Library自定义库的制作(21人已学习)
Codesys
|