串口通信是常见的通信方式,串口接口是大部分工控器件标配的通信接口。在项目开发的过程中,也经常遇到进行串口通信的处理。这里就串口通信的部分问题分享给大家。

串口通信相关知识(自定义串口通信的相关问题整理)(1)

1、TTL、RS232、RS422、RS458这几种通信接口有什么区别?

TTL:TTL是一种芯片的电平信号,其电平电压一般为5V或3.3V;

RS232:RS232通信有三根线,分别为发送TX、接收RX、信号参考GND;发送与接收信号的电平范围为±15V;

因TTL和RS232信号之间的电平差异,故TTL信号不能与RS232信号之间连接。TTL与RS232之间连接时需要通过接口芯片转接。

RS422:RS422是一种全双工、差分的通信方式,硬件接线需要接有四根线,分别为TXD 、TXD-、RXD 、RXD-;

RS485:RS485是一种半双工、差分的通信方式,硬件接线有两种方式,一种有2根线分别为A、B;另一种有4根线;

除了以上的区别,这几种接口还有很多方面的差异,具体的这里就不再展开。

2、“波特率、数据位、停止位、校验位”和通信协议的区别?

波特率、数据位、停止位、校验位,这些参数是通信的基本参数,署于硬件层面的参数匹配;而通信协议是在通信线路上建立的具有具体含义的规约。

3、串口自定义协议通信时候,起始字符和停止字符的含义及使用方法?

起始字符:用于指定串口通信的过程中,判定通信字符串是否开始的标志。比如以“A5h”作为通信的起始字符,则表示当串口接收数据,当出现“A5h”时,则代表通信数据包开始;“A5h”之前接收到的数据被自动抛弃。

串口通信相关知识(自定义串口通信的相关问题整理)(2)

自定义协议示例

停止字符:用于指定串口通信的过程中,判定通信数据包结束的标志。比如以“F5h”结束作为通信数据包的结束字符,则表示当开始接收数据包后,当接收数据出现“F5h”时,则认为数据接收完成,即完成了一次数据包数据的接收。

在使用的过程中,若使用了起始字符和停止字符,则串口仅在接收到起始字符到结束字符之间的数据时,才会被认为接收到一组完整的数据包。

4、接收字符长度的使用方法?

进行串口通信配置的过程中,若设置了串口接收字符长度,则串口通信的过程中,若接收到的数据长度达到设置的接收字符长度,即判定一次串口数据接收完成。

串口通信相关知识(自定义串口通信的相关问题整理)(3)

图中所示的协议,以A5h作为通信的开始字符;以接收字符长度16作为数据接收结束条件。

5、串口通信读取是数据的过程中,下发了读取命令但未接收到读取数据这个如何处理?

这种情况,首先应确认通信线路是否连接正常;其次检查通信参数设置是否正确;再次检查通信地址、起始位、结束位、数据长度等设置是否正确;再次确认下发命令是否正确……依照此过程逐步排查。

串口通信相关知识(自定义串口通信的相关问题整理)(4)

(转载请注明来源函控自动化工程师头条号)

,