编码之旅
用键盘述说着工作和生活中的点点滴滴

串口知识

Published on
/7 分钟读/---

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

基本概念

串行通信和并行通信

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

thumbnail-image

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

thumbnail-image

串口,即串行接口,是一种可以将接受来自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的全双工通信优势其实也并没有发挥出来

thumbnail-image
485

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

thumbnail-image
422

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

thumbnail-image

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