串口是我们在单片机系统里面经常会用到的一种通信接口。几乎在我之前所做过的所有项目几乎都会用到串口。当然串口有很多种形态,它有TTL,RS232,还有RS485。那么这些不同的形态的串口它到底有什么区别?
今天呢也就是我主要和大家分享的内容。接下来我们就来以串口为中心来去进行一个分享讲解。首先呢我们先来看一下最普通的我们单片机。比如说呢这个是一块STM32,通常STM32所带的这个串口呢,我们都称它为UART,也就是最常用的一个串口的接口。那么这个串口呢,它的电平实际上我们一般是叫做TTL电平。那么TTL电平它的有哪些特点呢?TTL电平一般正常情况下呢,都是说5V代表为逻辑1,然后0V呢代表是逻辑0。那有的同学可能会说STM32它是3.3V供电的芯片,它的引脚输出最高也只有到3.3V,那么它到不了5V。其实实际上TTL规定规定大于2.4V就认为是高电平了,小于0.4V就认为是低电平,所以STM32它是和TTL5V的引脚也是兼容的。因为STM32它有些引脚设计的是可以和5V电平直接相连的,所以是没有关系的,它可以承受5V的电压,所以我们也可以直接认为它就是TTL的电平。
好,那TTL电平已经有了,接下来我们再来看看这个TTL电平和RS485和RS232又有什么区别?假如我这个STM32的串口1这一路作为一个TTL电平的串口,然后串口2这一路我接了一个MAX232的芯片。MAX232就是把TTL的电平转化成一个RS232接口的一个电平。所以我们把普通的单片机的UART接了这样一个转换的芯片,它最终就会成为一个RS232的接口。那RS232接口电平它和TTL电平相比又有哪些不同点?实际上RS232和TTL的区别就在于它这个电平是识别是不一样的。RS232它是把-15V到-3V识别为逻辑1,它的逻辑0是用+3V到+15V,所以RS232电平相比于TTL电平它的电压范围就会更大一些,也就是RS232相比TTL的电压幅度更高一些。所以它比TTL的抗干扰能力会强一些,所以这也是RS232接口它存在一些抗干扰的常用的应用场合。因为我们的TTL电平一般可以看到我们都是在板级里面通信的,比如说我们的STM32和板子里的GPS模块,或者是4G模块板级通信的时候,我们才会直接用TTL电平的。
假如你需要和外部相连,比如说我们要和计算机相连的和工业计算机,或者是和一些其他的一些你的板子之外的设备通信的时候,我们最好是选用这种抗干扰性好一点的接口。就比如说RS232,当然了RS232它的传输距离有限,因为它毕竟只是单线传输的,抗干扰能力还是有限的。所以一般RS232应该我记得最高是不超过十五米的距离。所以如果你超过十五米的时候,我们就选用其他的另外一种驱动方式。
当然我们需要注意一点,就是RS232常用的是一个九针的一个接口,就是常说的DB9接口。上面五个点,下面四个点,然后这样一个头,然后这里有两个螺丝,然后牵着一根线。大家肯定会见过这种接口,这种就是常见的RS232的一个接口。但是并不是所有这种DB9接口的都是RS232的。因为也有很多RS485的,它也是用这种接头的,所以你并不一定把这种DB9接头就和RS232接口去相等,这样是不对的。
这个头呢我们再看一下,我上面有两个啊,这个就是常见的这种九针的接口。我左边的这个这个头呢,这个是一个公头,右边呢是一个母头。为什么呢?因为公头大家可以看到这边是凸出来的。然后母头呢这边是陷进去的,那为什么它就称作公,它又称作母,大家可以不言而喻了啊。
好,那最后呢我们再来介绍一下RS485,比如说STM32还有一个串口3,那我们把它接了一个比如说485的芯片。那这边输出来的就是一个RS485的信号。那么也就是TTL电平正常的串口,它通过一块MAX485就可以把它转成RS485的信号。但是RS485和TTL,RS232它是有一些不一样的地方的,比如说我们TTL有一根线是TX,然后另一根线是RX,然后RS232它也是一根线,是TX,一根线是RX,就是它每一根信号线就是独立的作为t x 和r x,但是max485它没有两根线,并不是叫做tx,rx,它呢是叫做a 和b。
这和RS232以及TTL有哪些区别呢?
主要就是RS485呢,它是用一组差分信号来代表来代表高电平或者低电平的,也就是a减去b的一个差值,那么我们就知道呃,a这两条线呢,它同时只能传输一路信号,它只能是这两个线的差值代表一个高或者低。那所以他就只能用做TX或者用做RX,并不能同时用成两条线。所以RS485相比RS232和TTL,它就是一个半双工的通信啊。
但是是不是MAX485,它就没法全双功,也并不是,因为有一些四八五是有四根线引出来的。就是说除了两根有了a1和b1 a2和2,这个代表TX,这个代表RX,当然市面上有这种芯片,它就可以实现RX485的一个全双工。但是它这边就需要转出来四根线。当然了,还有一点需要强调的就是在市面上有很多485的芯片,max485,max1478,max1483等等,那这些芯片它主要的区别有哪些?我之前我做工业类的项目呢,我选过一些这种型号,然后485的芯片呢,我主要就是看它不同的型号可以带的节点数是不一样的。节点数目是什么意思呢?因为max485它是一个可以多个设备挂接在总线上的。比如这里挂一个,这是设备一,设备二,设备三,等等等等等等。如果你用这颗芯片,它可能只能挂三十二个。当然呢还有一些芯片可以挂到一百二十八个,当然还有一些可以支持到二百五十六个呢,所以你可以根据你的项目里面到时候会有多少个节点挂在485总线上,然后选择你对你来说成本最优的芯片。比如说你可能只会用到十个,那么你选256个的支持当然也可以。但是你的成本呢肯定会高一些。
还有RS485在我们记得在总线里面这个两边的终端记得要接上一个120欧的一个一个负载电阻,这就是常见的一个四八五的总线,就是在工业上使用的一个一个情况啊。
好,那今天我们针对RS485,RS232和TTL进行一个讲解,我们就介绍到这里。如果你还有哪些不理解的,或者是有疑问的地方呢,可以在下方来留言。