串口通信参数设置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35682844/article/details/73527057

1. 通讯控制要求:

    (1)接口要一致;

    (2)设置合适的通讯参数;

    (3)通讯协议一致;

2.串口通信参数设置

工具:串口调试助手


(1)波特率

串口通信时的速率。

          如每秒钟传送1920个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),波特率为240Bd,比特率为10位*240个/秒=2400bps。

(2)数据位

这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。

如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。

每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

(3)停止位

用于表示单个数据包的最后一位。典型的值为1、1.5或2位。

停止位不仅表示传输的结束,并且提供计算机校正时钟同步的机会。

停止位的位数越多,不同时钟同步的容错程度越大,但同时数据传输率也越慢。

(4)校验位

在串口通信中一种简单的检错方式。有三种检错方式:偶(E)、奇(O)、无(N)。

对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据不同步。

例如:需要传输“01001011”,数据中含有4个“1”,所以其奇校验位为“1”(如果数据中“1”的个数为奇数,则奇校验为“0”),同时把“01001011”传输给接收方,接收方收到数据后再一次计算奇偶性,“01001011”中仍然含有4个“1”,所以接收方计算出的奇校验位还是“1”,与发送方一致,表示此次传输过程中未发生错误。

(5)校验类型  

校验其实是一种加密技术,用于对文件内容进行审核。

如果校验正确的话说明该数据帧正确,可以用来解析;

反之说明该数据帧有问题,应该作废。

常用的有异或校验、和校验、CRC-16校验和LRC校验。

请注意,这里说的校验和上面说的校验位是不同的:校验位针对的是单个字节,校验类型针对的是单个数据帧。  

此外,有些PLC在与人机界面进行串口通讯时还要进行站号的选择,例如丰炜,站号也需要匹配,否则也无法联通。

(6)Hex/ASCIII发送和显示

底层的数据传输都是字节流,所以不管选择什么方式,都会被分解为一个一个的字节(2个十六进制位)。

1.选择Hex发送就代表要发送的内容是十六进制数,由程序完成到Byte的转化。所以应该保证每个你要发送的数都是两位(1个字节)的,如果是7就应该写07,因为程序会每两位每两位地读。如果你选择了Hex发送,而输入的又是字符,比如你写了ab,那么就会被程序读为16进制的AB。

比如:在Hex发送模式下,写了1234,会被发送的就是12,34,如果是01020304那就是01,02,03,04。


2.选择ASCII发送就代表你要发送的是字符串,这时候程序就会一位一位地读。

比如:写了1234,在字节流中传递的就是1234对应的ASCII码(1-49、2-50、3-51、4-52),31,32,33,34(十六进制)。


3.选择Hex显示就是把字节转化为16进制整型。


4.选择ASCII显示呢,就会把接收到的字节转化为对应的字符。

猜你喜欢

转载自blog.csdn.net/qq_35682844/article/details/73527057