串口知识

  1. 1. 串口知识
    1. 1.1. 基本概念
      1. 1.1.1. 串行通信和并行通信
      2. 1.1.2. 波特率、数据位、停止位和奇偶校验
    2. 1.2. 串口232,485,422 三种通信方式
      1. 1.2.1. 232
      2. 1.2.2. 485
      3. 1.2.3. 422

串口知识

串口是计算机上一种非常通用的设备通信协议(不要与通用串行总线Universal SerialBus或者USB混淆)。

基本概念

串行通信和并行通信

串行通信,使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

并行通信,多比特数据同时通过并行线进行传送。

串口,即串行接口,是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可以将接受的串行数据流转换为并行的数据字符提供给CPU的器件。

串口可以在使用一根线发送数据的同时用另一根线接收数据,用来实现远距离通信。

串口通信Serial Communication),指串口按bit)发送和接收字节,发送和接收到的每一个字符,都是按一次一位传递的,每一位为1或者0。

波特率数据位停止位奇偶校验

①波特率,在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数被称为码元传输速率,也就是波特率

波特率,也是衡量符号传输速率的参数和传输通道频宽的指标,用单位时间内载波调制状态改变的次数来表示。

举个例子,如果数据传送速率为240b/s,也就是每秒传送240个字符,其中每个字符的格式为10位,包含1个起始位、1个停止位、8个有效数据位,则波特率为240baud(波特),有效数据位的传送速率比特率为240*10=2400bps(比特每秒)。

1比特每秒是指每秒传输1比特(bit),baud(波特)代表每秒的调制数。

②数据位,通信中真正有效的信息。数据位的位数由通信双方共同约定,一般是6位、7位或8位。

比如,标准的ASCII码是7位(0127),扩展的ASCII码是8位(0255)。

③停止位,在一个数据包的最后,用以标志一个字符传输的结束。停止位有1位、1.5位、2位。

同时,数据是在传输线路上定时的,并且每一个设备有自己的时钟,停止位可以提供计算机校正时钟同步的机会。

④奇偶校验位,串口通信中一种简单的检错方式。串口会设置校验位,用一个值确保传输的数据有偶数个或奇数个逻辑高位。

奇校验,需要确保传输的数据总共有奇数个逻辑高位;偶校验,需要确保传输的数据总共有偶数个逻辑高位。

举个例子,若传输的数据是011,有两个逻辑高位1,则奇校验位就是1,确保数据一共有3个(奇数)逻辑高位1;偶数校验位是0,数据一共有2个(偶数)逻辑高位1。

串口232,485,422 三种通信方式

232

通信主要是由RX,TX,GND三根线组成

T 代表 Transmit
R 代表 Receive
X 代表要交叉,也就是说A方的TX接B方的RX、B方的TX接A方的RX

RX与TX,TX接RX,GND接GND。这样还是比较好理解吧。因为发送和接收分别是由不同的线处理的,也就是能同时发送数据和接收数据,这就是所谓的全双工。
在这里扩展一下,串口通信还有一个功能叫做全功能串口通信,也叫标准串口。因为在两个设备间进行数据传输,有些设备处理速度比较快,有些数据比较慢。为了保证数据能正常传输,在RX,TX的基础上,还增加了几个控制引脚,本来好端端就R,T,G,三根线,凑着就凑齐了9个引脚,召唤出了DB9这个东西。

在很多设备通信中,基本上是属于一问一答式的,因此,232的全双工通信优势其实也并没有发挥出来

485

485是为了解决232通信距离的问题。原理什么之类的就不多讲了。反正232通信距离就是不长。485主要是以一种差分信号进行传输,只需要两根线,+,-两根线,或者也叫A,B两根线。A,B两根线的差分电平信号就是作为数据信号传输。那么问题来了,那是不是就没有RX和TX的概念了。是的,发送和接收就不能分开了。发送和接收都是靠这两根的来传输,也就是每次只能作发送或者只能作接收,这就是半双工的概念了,这在效率上就比232弱很多了。就像对讲机一样,经常是某个人讲完之后,都要说一个over,确保当前说完了,等待对方回复。

422

422呢,有些标注为485-4。而485就标注为485-2。有什么区别呢。就是为了好记呢。485-2就是2根线。485-4就是4根线。

422就是把232的RX分成两根线,RX+,RX-,把TX分成TX+,TX-。这样就可以同时发送和同时接收了,还可以像485这样,有较远的传输距离。