一、串行通信简介
定义:串行通信是一种使用串行数据流来传送数据的通信协议,相区别于“并行通信”;串行通信的特点是使用一根电线完成发送数据,同时使用另一根电线完成接受数据。
上面提到“串行通信”只是一种协议,那么对这个协议的实现分别有:RS232标准、RS485标准。这就意味着在开发这些协议对应的“上位机软件”的时候,可以同一个电脑编程“串口通信编程库”。
二、串口参数配置
-
端口 port : [com1、com2、等]
指使用哪个串行端口通信。 -
波特率 Baud Rate : [2400、4800、9600、19200 等]
这是一个衡量符号传输速率的参数。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。高波特率常常用于放置的很近的仪器间的通信 -
数据位 Data Bits : [5、6、7、8]
这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据往往不会是8位的,标准的值是6、7和8位。 -
停止位 Stop Bits : [1、1.5、2]
用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。串口通信首先是设置波特率,由此决定每位数据在线上维持的时间。
以传输1bit所需要的时间作为一个单位时间。
1位停止位表示 停止信号在线上维持一个单位时间。
2位停止位表示 停止信号在线上维持两个单位时间。 -
奇偶校验位 Parity : [Odd、Even、NONE、Mark、Space]
奇偶校验是对数据传输正确性的一种校验方法。在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。
Odd:奇校验
Even:偶校验
NONE:无校验
Mark:校验位始终为1(不常用)
Space:校验位始终为0(不常用)
三、硬件相关知识
-
单工、半双工、全双工
单工数据传输只支持数据在一个方向上传输。
半双工数据传输允许数据在两个方向上传输,但是在某一时刻只允许数据在一个方向上传输。
全双工数据通信允许数据同时在两个方向上传输。 -
RS232、RS485 各自的特点
RS232:
接口的信号电平值较高
传输速率有局限(距离越远传输越慢)
传输距离有限,最多只能通信几十米。
通信的时候只能两点之间进行通信,不能够实现多机联网通信
全双工数据通信
RS485:
采用差分信号
通信速率快,最大传输速度可以达到 10Mb/s 以上
传输距离最远可以达到 1200 米左右
可以在总线上进行联网实现多机通信
半双工通信 -
下位机与上位机连线方式
方式一
方式二