在我们的日常生活中,经常会听到串口线一词。而对于网络工程师来说,串口线更是工作时不可或缺的工具。
那什么是串口?和串口有关的串口通信又是什么?
在了解串口通信之前,先了解一下几个基本概念,主要是同步通信、异步通信、串行通信和并行通信。
在通信的线路上,有两种状态,分别是逻辑1(高电平)和逻辑0(低电平),传输的数据格式为起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)、停止位(stop bit)。
同步通信,比特同步通信技术,要求发送方和接收方具有同频同相的同步时钟信号。同步通信需要在传送报文的最前端附加特定的同步字符,使收发双方建立同步,后续便在同步时钟的控制下逐位发送、逐位接收。
同步通信最大的特点便是高速度、大容量的数据传送,但同步通信要求时钟严格同步,硬件复杂,成本高。
同步通信应用最广泛的是在变电站,变电站的时钟同步通信技术,就是基于IEEE1588标准的PTP精确时钟同步协议来进行的。(PTP,Precision Time Protocol,精确时钟同步协议)。
异步通信,指通信中两个字符(8位字符)之间的时间间隔可以是不固定的,而在一个字符内各位的时间间隔是固定的。
简单来说,同步就是指发送方发出数据后,等接收方发回响应之后再发出下一个数据包;异步是指发送方发出数据后,不等接收方发回响应,紧接着发送下一个数据包。
串行通信,使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。
并行通信,多比特数据同时通过并行线进行传送。
了解完相关的基本通信概念,就是本篇文章的重点—串口和串口通信。
串口,即串行接口,是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可以将接受的串行数据流转换为并行的数据字符提供给CPU的器件。
串口可以在使用一根线发送数据的同时用另一根线接收数据,用来实现远距离通信。
串口通信(Serial Communication),指串口按位(bit)发送和接收字节,发送和接收到的每一个字符,都是按一次一位传递的,每一位为1或者0。
串口通信有四个最重要的参数,波特率、数据位、停止位和奇偶校验。
常用的超级终端工具SecureCRT中就会经常出现相关选项。
①波特率,在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数被称为码元传输速率,也就是波特率。
波特率,也是衡量符号传输速率的参数和传输通道频宽的指标,用单位时间内载波调制状态改变的次数来表示。
举个例子,如果数据传送速率为240b/s,也就是每秒传送240个字符,其中每个字符的格式为10位,包含1个起始位、1个停止位、8个有效数据位,则波特率为240baud(波特),有效数据位的传送速率比特率为240*10=2400bps(比特每秒)。
1比特每秒是指每秒传输1比特(bit),baud(波特)代表每秒的调制数。
②数据位,通信中真正有效的信息。数据位的位数由通信双方共同约定,一般是6位、7位或8位。
比如,标准的ASCII码是7位(0~127),扩展的ASCII码是8位(0~255)。
③停止位,在一个数据包的最后,用以标志一个字符传输的结束。停止位有1位、1.5位、2位。
同时,数据是在传输线路上定时的,并且每一个设备有自己的时钟,停止位可以提供计算机校正时钟同步的机会。
④奇偶校验位,串口通信中一种简单的检错方式。串口会设置校验位,用一个值确保传输的数据有偶数个或奇数个逻辑高位。
奇校验,需要确保传输的数据总共有奇数个逻辑高位;偶校验,需要确保传输的数据总共有偶数个逻辑高位。
举个例子,若传输的数据是011,有两个逻辑高位1,则奇校验位就是1,确保数据一共有3个(奇数)逻辑高位1;偶数校验位是0,数据一共有2个(偶数)逻辑高位1。