串口通信
一、串口通信
串口通信(Serial Communication),是指外设和计算机之间通过数据信号线、地线等按位进行传输数据的一种通信方式。
特点:数据位的传输按位顺序执行,最少只需一根传输线即可完成;成本低但传输速度慢。串口通信的距离可以从几米到几千米。
串口通信的数据格式
一个完整的串口数据格式包括起始位、数据位、校验位、停止位、波特率等几个参数。
起始位:起始位是1bit的逻辑0电平,它标志传输一个字符的开始。接收端可通过起始位使自身时钟与发送端的数据同步。
数据位:数据位在起始位的后面,是串口通信的有效信息,通常为1个byte(8bit),通过组合就能代表256种不同的信息。数据位的位数实际由通信双方共同约定,也可以是7bit或者5bit。
奇偶校验位:奇偶校验位仅占1bit,用于进行奇校验或偶校验。该位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。
停止位:停止位可以是1位、1.5位或2位。必须是逻辑1电平,它标志传输一个字符的结束。
空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示传输线路处于空闲状态,串口空闲时处于高电平。
波特率:波特率是串口通信中最常用的重要参数。它指的是串口通信的速率,也就是串口通信时每秒钟可以传输多少个二进制位。例如波特率为9600,则说明每秒钟可以传输9600个二进制位(高低电平),即传输一个二进制位需要的时间为1/9600秒。
电平标准
串口通讯采用的是TTL逻辑,高电平最小为2.4V,低电平最大为0.4V,我们一般都会认为串口通讯的高电平是5V,而低电平是0V,这就造成了它的抗干扰能力很弱。如果受到静电干扰,很可能把某一位低电平变高,这就导致串口通讯的距离很短,一般都是在一块儿电路板上,两块儿芯片之间的通讯,或者芯片和电脑通讯距离一般都在一米之内。
二、主要的串口通信方式
单工:数据传输只支持数据在一个方向上传输。
半双工:允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信,不需要独立的接收端和发送端,两者可合并为一个端口。
全双工:允许数据同时在两个方向上传输,因此全双工通信是两个单工方式的结合,需要独立的接收端和发送端。
串口通信主要分为RS232、RS422、RS485三种通信方式。
RS232
为了提高串口通讯的距离和稳定性,美国电子工业联盟制定了一个RS232标准,RS是Recommended Standard的首字母缩写,RS232的接口虽然有很多线,但是和串口通讯保持一致,使用发送线TX、接收线RX、地线GND这3根线,串口通讯是全双工通讯,也就是它可以同时进行收发工作。
RS232通讯在原来串口通讯的基础上添加一个电平转换芯片,例如MAX232,把0~5V的TTL电平转换为\(\pm\)RS232电平,RS232的高电平的范围很广,电压处在3-15V之间都算高电平,低电平是-3--15V,高低电平相差了近20伏,即使某一个信号受到干扰,它的高低电平还有很大的改变余量,所以它的抗干扰能力增强了很多,它的传输距离也会更长,通讯距离可达15米。
RS232只是改变了电平大小传输的,数据还是原来的串口通讯数据,传输速率可达20k,也就是19200的波特率。RS-232可用于许多用途,比如连接鼠标、打印机、工业仪器仪表,也用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。
RS422
RS-422(EIA RS-422-A Standard)是Apple的Macintosh计算机的串口连接标准。采用全双工通讯方式,有4根信号线,收与发是分开的,可以同时进行收和发。RS-422接口的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。
RS-422使用差分信号以及非平衡参考地的信号。差分传输使用两根线发送和接收信号,对比RS-232,它能更好地抗噪声和有更远的传输距离,在工业环境中尤为适用。
RS485
RS485通讯是在串口通讯的基础上加了一个485电平转换芯片,可以把输入的信号转化成差分信号,只需要两根线,不需要地,比如当信号a大于信号b的时候,它代表逻辑0;而信号a小于信号b时,它代表逻辑1。差分信号最大的优势就是抗干扰能力强,因为它用的是两根信号线的差值来表示逻辑0和1,而且它的两根线采用双绞线形式,这样即使受到干扰也是两根线同时受到干扰,所以最后的电压差值也基本上回保持不变,因此RS485可以传输更远的距离可达1200米,而且传输的频率还更高,可达50M。RS485是半双工通讯,也就是在同一时间,还要么在发送数据,要么在接收数据,不能同时进行。但好处是可以进行一主多从的组网通讯,也就是可以和很多设备进行通讯。RS-422设备可以被RS-485控制。