串口通信

一、并行通信和串行通信

1、串行通信

串行通信技术,是指通信双方按位进行,遵守时序的一种通信方式。串行通信中,将数据按位依次传输, 每位数据占据固定的时间长度,即可使用少数几条通信线路就可以完成系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。

串行通信方式分为三种
单工:任何时刻只允许数据单向传输
半双工:同一时间只允许数据单向传输,不同时刻可以选择数据的传输反向
全双工:任何时刻允许数据双向传输

2、并行通信

并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机或PLC各种内部总线就是以并行方式传送数据的。

二、同步通信和异步通信

1、同步通信

同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收,所以同步通信必须要具有时钟线。
串口通信
同步通信钟必需有数据信号线和同步时钟线,数据信号的数据可以根据同步时钟的上升沿或者是下降沿来识别数据。
为了表示数据传输的开始,发送方先发送一个或两个特殊字符,该字符称为同步字符。当发送方和接收方达到同步后,就可以一个字符接一个字符地发送一大块数据,而不再需要用起始位和停止位了,这样可以明显地提高数据的传输速率。采用同步方式传送数据时,在发送过程中,收发双方还必须用一个时钟进行协调,用于确定串行传输中每一位的位置。接收数据时,接收方可利用同步字符使内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供CPU读取,直至收到结束符为止。

2、异步通信

异步通信双方已经事前规定了所用的同步时钟频率了,也就是我们说的同步时钟频率,所以不必要进行同步时钟的传输。数据的处理结果与同步通信一样,只不过同步时钟是发送之前就设定好的一个数值。
异步通信是一种很常用的通信方式。相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。

三、串口
1、了解什么是串口

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
在我们日常生活中串口随处可见,较为常用的串口有9针串口(DB9)和25针串口(DB25),有公头和母头两种,下面我们便以9针串口为例。公头就是有着凸出的接口,母头就是有着凹槽的,下面则以公头为例
串口通信
串口通信
实物图与结构图的接口一一对应每个接口分别对应:
1、DCD:数据载波检测
2、RXD:接收数据
3、TXD:发送数据
4、DTR:数据终端准备
5、GND:信号地
6、DSR:数据设备准备好
7、RTS:请求发送
8、CTS:清楚发送
9、RI :振铃指示

串口母头的图片如下:
串口通信
上面一排的接口编号刚好与公头接口编号相反,下面一排的接口编号也是如此。这样就刚好能够与公头相匹配

2、串口的几个电平标准

TTL:工作方式为全双工,符合这种电平标准的接口,数据信号0对应0V,1对应3.3V或者5V。
RS232:工作方式为全双工,是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1。rs232 的逻辑电平和TTL 不一样但是协议一样。
RS485:RS485是一种串口接口标准,工作方式为半双工,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。两线压差为-(2~6)V表示0,两线压差为+(2-6)V表示为1。

3、串口的通信原理
波特率

串口异步通讯中由于没有时钟信号,所以通讯双方需要约定好波特率,即每个码元的长度,以便对信号进行解码。常见的波特率有4800、9600、115200等。

起始位、停止位

数据包从起始位开始,到停止位结束。起始信号用逻辑0的数据位表示,停止信号由0.5、1、1.5或2个逻辑1的数据位表示,只要双方约定一致即可。

数据位

起始位之后便是传输的主体数据内容了,也称为有效数据,其长度一般被约定为5、6、7或8位长。

数据校验位

由于在通讯过程中易受到外部干扰导致传输数据出现偏差,所以在有效数据之后加上校验位解决。校验方法有奇校验(odd)、偶校验(even)、0校验(space)、1校验(mark)及无校验(noparity)。奇校验要求有效数据和校验位中“1”的个数为奇数,比如一个8位长的有效数据为:01101001,此时共有4个“1”,为达到奇校验效果,校验位为“1”,最后传输的是8位有效数据加1位校验位,共9位。
偶校验刚好相反,要求有效数据和校验位的“1”数量为偶数,则此时为达到偶校验效果,校验位为“0”。而0校验则无论有效数据中是什么数据内容,校验位总是为“0”,1校验校验位总是为“1”。

额外说明

串口通信至少要两条线。但这一条线中dao有收/发信号,那收/发就不能同时进行,要分别进行,这属于半双工通信。需要全双工通信,那收/发信号就应分开,因此,最简串口线只需3条,RXD,TXD,GND。