嵌入式系统中,串口、RS485、CAN、网络和USB等都是非常常用的通信方式。但是串口通信速度慢,距离近,为什么转换成RS485后,通信距离和速度都大幅提高了呢?USB也是近距离,为什么速度可以这么快?原因就在于串口的电信号是单端模式,而RS485、CAN、网络和USB都是差分模式。
1.单端模式
单端模式就是信号的检测是基于信号线与参考基准线(通常是地)之间的电平变化,比如串口通信就是这种模式。串口有三根线(TX、RX和GND),发送和接收信号都是基于GND的电平而言的。
因为单端信号是基于某个基准的的,但是在实际应用中,这个共地很可能并“不存在”,比如两个独立的系统之间,他们的供电电源都是相互独立的,此时各自的“地”电压很可能并不相同,如果用导线相连的各自的“地"的话,可能会有较大的电流通过。这个时候,用单端模式很可能就行不通了。另外,在高速通信时,单端模式会带来电磁干扰,因此,不适合在高速通信中应用。
2.差分模式
差分模式则依据的是两个信号线之间的电平差异,这里没有共地,而且两个信号线的极性是相反的。
由上图可知,相对于单端信号,差分信号放大了有效信号,比如,对单端信号而言,输出3V的电压,不计干扰和损耗的情况下,则接收到的也是3V;而差分信号,一条线是3V,另一条是-3V,差分电压则是-6~6V,这样就极大的提高了抗外部干扰的能力。通过压差的正负来表示0或1信息,这样就与各系统间的电源地间差异没有关系了。
这里要指出一个容易犯的误区,就是常常误以为差分信号抗共模干扰会比较强,其实在这一点上,单端模式也具备同样的抗干扰能力,只要采用同规格、同长度双绞线连接,两条线上的阻抗相同,在接收端做差运算来判断接收电压,这种接线模式具有很强的抗电磁干扰能力。
需要明确的是,RS485、CAN、网络都是差分信号,因为差分信号电平比较高,甚至有十几伏,而单片机工作电压只有3-5V,因此,硬件电路上都需要外接转换芯片。电脑的USB接口电压也是5V,因此,单片机USB与电脑连接时,相对比较简单一点,不需要转换芯片。