目录
串口通信连线:
任何通信都要有信息传输载体,或者是有线的或者是无线的。串口通信是通过串口线进行有线通信, 在通信时最少需要两根线(GND和信号线)既可以实现单工通信,GPS模块就是典型的串口单工通信实例。此外大部分的串口通信都是使用3根线(TXD、RXD、GND)来实现全双工通信。
串口通信时序:
串口通信时,收发是一个周期一个周期进行的,每个周期传输n个二进制位。这一个周期就叫做一个通信单元,一个通信单元由:起始位+数据位+奇偶校验位+停止位组成的。
起始位:
它表示发送方要开始发送一个通信单元,起始位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。对于串口通信而言总线没有数据传输空闲时维持高电平,一旦产生一个下降沿变成低电平则表示起始信号。
数据位:
它一个通信单元中发送的有效信息位,是本次通信真正要发送的有效数据,串口通信一次发送多少位有效数据是可以设定的(可选的有6、7、8、9,一般都是选择8位数据位,因为一般通过串口发送的数据都是以字节为单位的ASCII码编码,而ASCI1码中一个字符刚好编码为8位)。
校验位:
它是用来校验数据位,以防止数据位出错的。这里有两种校验方式,即奇校验和偶校验。其中:奇校验保证传输过程中1的个数为奇数,如8位数据传输中1的个数为偶数,则校验位为1; 奇校验保证传输过程中1的个数为偶数,如8位数据传输中1的个数为偶数,则校验位为0;
停止位:
它是发送方用来表示本通信单元结束标志的,停止位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。常见的有1位停止位、1.5位停止位、2位停止位等,一般使用的是1位停止位。
总结:
串口通信是异步通信,所以通信双方必须事先约定好通信参数,这些通信参数包括:波特率、数据位、 校验位、停止位,这些参数中的任何一个设置错误,都会导致通信失败。譬如波特率调错了,发送方发送没问题,接收方也能接收,但是接收到全是乱码。
串口通信特点:
串口通信单向只有一个数据线实现通信,同时只能传输1个二进制位数据,所以是串行通信; 串口通信的发送方和接收方之间没有统一的时钟信号,所以它是异步通信方式;
串口通信即可以实现全双工通信,也可以实现单工通信;
基于串口的通讯接口:
TTL和RS232,以及RS485总线传输
TTL:电平信号进行传输,+5v表示1,0v表示0,一般CPU或者芯片引出的串口默认TTL。
RS232:电平信号进行传输,-15v~-3v表示1,+3V~+15V表示0
TTL和RS232在编程过程中是没有差异的,但是在硬件连接的时候两者不能混接,两者都不适合长距离的传输。
RS485:数据的收发与RS232的一致,但使用差分信号传输,RS485两线制接线是半双工通信,四线制接线是全双工通信
以上三种接口都是异步通信