1- 串口通信简介(DB9接口讲解)
任何通信都要有信息传输载体,或者是有线的或者是无线的。串口通信是通过串口线进行有线通信。串口通信在早期是计算机与外界通信的主要手段,那时候的计算机基本上都标配有串口以实现和外部通信。
串口通信早期就定义了一套标准的串口规约,DB9 (9个引脚)接口就是标准接口,此外还有不常见的DB25 (25个引脚)。
DB9接口中有9根通信线,其中3根线(GND、TXD、RXD)很重要必不可少,剩余6根都是和流控有关的,现代我们使用串口都是用来做调试,所以这6根很少使用。但是面试的时候还是可能会问到的,所以还是可以了解一下的。
-
1- DCD( Data Carrier Detect)载波检测:主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音,处于在线状态。
-
2- RXD(Receive(rx) Data)串口数据输入:此引脚用于接收外部设备送来的数据。
-
3- TXD(Transmit(tx) Data)串口数据输出:此引脚将计算机的数据发送给外部设备。
-
4- DTR( Data Terminal Ready )数据终端就绪:当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。
-
5- GND(Ground)信号地线
-
6- DSR(data set ready)数据发送就绪:此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。
-
7- RTS(Request To Send)请求发送:此脚由计算机来控制,用以通知Modem马上传送数据至计算机;否则,Modem将收到的数据暂时放入缓冲区中。
-
8- CTS(Clear to send)发送清除:此脚由Modem控制,用以通知计算机将欲传的数据送至Modem。
-
9- RI ( Ring Indicator)铃声指示:Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定。
2- 串口通信基本原理
(1)串口通信连线
任何通信都要有信息传输载体,或者是有线的或者是无线的。串口通信是通过串口线进行有线通信,在通信时最少需要两根线(GND和信号线)既可以实现单工通信,GPS模块就是典型的串口单工通信实例。此外大部分的串口通信都是使用3根线(TXD、RXD、GND)来实现全双工通信。
GND:保证两设备共地,有统一的参考平面。你说你是高电平或者你说你是低电平肯定有一个参考,GND就是参考平面。
(2)串口通信时序
串口通信时,收发是一个周期一个周期进行的,每个周期传输n个二进制位。这一个周期就叫做一个通信单元,一个通信单元由:起始位(1bit)+数据位(8bit)+奇偶校验位(1bit)+停止位(1bit) 组成的。
串口通信是异步通信,所以通信双方必须事先约定好通信参数,这些通信参数包括:波特率、数据位、校验位、停止位,这些参数中的任何一个设置错误,都会导致通信失败。譬如波特率调错了,发送方发送没问题,接收方也能接收,但是接收到全是乱码。
【1】波特率
简而言之,串口传输的波特率即为每秒钟传输二进制的位数,是衡量资料传送速率的指标。
波特率-115200:
- 1s传输二进制的位数115200bit
- 传输1bit需要 1/115200s=8.68us
串口通信是一种异步通信方式,收发双方并没有同步时钟信号来规约一个bit的数据发送电平维持多长时间,这样只能靠收发双方的速率来同步收发数据,这个速率叫做波特率(BaudRate),其单位为bps(bit per second)。
串口通信常用速率为115200(3G/4G/调试串口等)、9600(NB-loT/GPS等)、4800等。收发双方的速率必须保持一致,否则会出现乱码或完全接收不到的现象。
【2】起始位
先发出一个逻辑”0”的信号,表示传输字符的开始。
它表示发送方要开始发送一个通信单元,起始位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。对于串口通信而言总线没有数据传输空闲时维持高电平,一旦产生一个下降沿变成低电平则表示起始信号。
【3】数据位
它一个通信单元中发送的有效信息位,是本次通信真正要发送的有效数据,串口通信一次发送多少位有效数据是可以设定的(可选的有6、7、8、9,一般都是选择8位数据位,因为一般通过串口发送的数据都是以字节为单位的ASCII码编码,而ASCII码中一个字符刚好编码为8位)。
【4】奇偶校验位
奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中的"1"的个数是奇数或者偶数来进行校验。但是一般都不怎么准确,有50%d误差(等于没说)
奇数校验:8个bit数据位中有偶数个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验)。如果为0就是偶校验了。
1111 0000 1
偶数校验:8个bit数据位中有奇数个1,那么奇偶校验位为1才能满足1的个数为偶数(偶校验)。如果为0就是奇校验了。
1111 1000 1
此位还可以去除,即不需要奇偶校验位。
【5】停止位
它是发送方用来表示本通信单元结束标志的,停止位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。
3- TTL、RS232以及RS485介绍
RS232和TTL,最根本的不同在于:
硬件(机制)不同:
(1)TTL
逻辑高电平 1:3.3V或者5V
逻辑低电平 0:0V
TTL是正逻辑,逻辑0为低电平
TTL是芯片上的串口直接出的电平,它适合距离近且干扰小的情况,如开发板上芯片与芯片之间、开发板与串口模块之间的短距离串口通信。
(2)RS232
逻辑高电平 1:- 15V ~ - 3V 常为:-13V
逻辑低电平 0:+3V ~ +15V 常为:13V
也就是说RS232是负逻辑 ,逻辑0为高电平
设备与设备之间的长距离通信,因为压降和信号干扰等原因通常会使用RS232来进行通信。
RS232特点:
- 接口使用一根Tx信号线和一根Rx信号线而构成共地的传输形式,这种方式抗噪声抗干扰性弱;
- 传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。
- 传输速率较低,在异步传输时,波特率为20Kbps(一般是115200bps);
- 通信的时候只能两点之间进行通信,不能够实现多机联网通信;
- RS232 与TTL电平不兼容,另外接口的信号电平值较高,易损坏接口电路的芯片。
(3)RS232和TTL之间的转换
CPU或芯片引出的串口默认都是TTL电平,如果要转成RS232电平的话一般会接一个MAX232的芯片。
简单介绍一下MAX232,至于内部是怎么转换或者设计的,想知道的小伙伴可以自行去了解一下:
当用单片机和PC机通过串口进行通信,尽管单片机有串行通信的功能,但单片机提供的信号电平和RS232的标准不一样,因此要通过MAX232这种类似的芯片进行电平转换。
MAX232芯片的作用:是将单片机输出的TTL电平(0V,5V)转换成PC机能接收的232电平(-10V,10V)或将PC机输出的232电平(-10V,10V)转换成单片机能接收的TTL电平(0V,5V)。
(4)RS485
RS485 和RS232一样都是基于串口的通讯接口,数据收发的操作是一致的,但是它们在实际应用中通讯模式却有着很大的区别,RS232接口为全双工数据通讯模式,而RS485接口一般为半双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,硬件上是通过方向切换来实现的,相应也要求软件上必须将收发的过程严格地分开。
上述针对RS232接口的不足,就不断出现了一些新的接口标准,RS485 就是其中之一,它具备以下的特点:文章来源:https://www.toymoban.com/news/detail-428084.html
- 差分传输增加噪声抗扰度,减少噪声辐射;
- 长距离链路,最长可达4000英尺(约1219米);
- 数据速率高达10Mbps (40英寸内,约12.2米) ;
- 同一总线可以连接多个驱动器和接收器宽共模范围允许驱动器和接收器之间存在地电位差异,允许最大共模电压-7-12V。
RS-485能够进行远距离传输主要得益于使用差分信号进行传输,当有噪声干扰时仍可以使用线路上两者差值进行判断,使传输数据不受噪声干扰。文章来源地址https://www.toymoban.com/news/detail-428084.html
4- 串口通信特点
- 串口通信单向只有一个数据线实现通信,同时只能传输1个二进制位数据,所以是串行通信;
- 串口通信的发送方和接收方之间没有统一的时钟信号,所以它是异步通信方式;
- 串口通信即可以实现全双工通信,也可以实现单工通信;
- 串口通信出现时间较早、速率较低,并且采样电平信号传输,抗干扰能力不强,传输的距离较近;
到了这里,关于串口通信介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!