串口基础知识
- DB9针的RS-232串口,分别是公头、母头,这两种串口可以连接在一起。DB9针的串口信号脚编号及信号脚的具体含义如下
- 串口通信可以使用3根线完成,对应信号脚分别是:2接收、3发送、5地线。对此,有个简单的记法:2收、3发、5地。
- 串口通信分为同步、异步两种方式。
同步串口通信时,发送方除了发送数据之外,还要把时钟信号也同步发送给对方,这就要求非常高的时钟精度,实施起来成本很高。
异步通信方式时,发送端、接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。
异步通信是计算机通信中最常用的数据信息传输方式。 - 在进行异步串口通信时,最重要的参数是波特率、数据位、停止位和校验位。对于两个需要进行通信的串口,必须采用相同的配置。
1)波特率
波特率用来衡量数据传输速率,它表示每秒钟传送的符号(位)的个数。例如,300波特率表示每秒钟发送300个符号,即300位。
波特率与距离成反比。高波特率常用于距离很近的设备间的通信。当距离较长时,应该选取较低的波特率,并且需要防止电磁干
扰,否则将导致误码率提高。
2)数据位
数据位用来衡量通信中实际数据位数。当计算机发送一个信息包时,可选的数据位标准值是5、6、7、8位。
如何设置取决于传送的信息。比如,标准的ASCII码是0~127(7位),那么每个数据包使用7位数据位。
数据包的内容包括开始/停止位,数据位和奇偶校验位。
3)停止位
停止位用于表示单个包的最后一位,可选值为1位、1.5位、2位。
由于每个设备有自己的时钟,因此,可能在通信中两台设备间出现不同步的现象。
所以停止位不仅表示传输的结束,也提供了计算机校正时钟同步的机会。
停止位的位数越多,不同设备的时钟同步的容忍度越大,但数据传输也越慢
4)校验位
校验位用来在串口通信中进行简单的错误检查。在串口通信中,可选的校验为:无校验、奇校验、偶校验。
接收设备能够据此知道是否有噪声干扰了通信,也可以判断传输数据、接收数据是否同步。
注意:串口通信是独占式通信,也就是说,当某个进程A打开串口X后,其他进程无法访问串口X,只有当进程A关闭串口X后,其他进程才能访问串口X。当然,也可以在操作系统层监听串口通信