MCU常见通信方式及其使用总结(TTL、RS232、RS485、I2C,SPI,CAN)
一、TTL电平:
全双工(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)
1、硬件框图如下,TTL用于两个MCU间通信
2、‘0’和‘1’表示(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)
二、RS-232电平:
全双工(逻辑1:-15V–-3V 逻辑0:+3V–+15V)
传输速率较低,在异步传输时,比特率为20Kbps;传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。
1、硬件框图如下,TTL用于MCU与PC机之间通信
2、‘0’和‘1’表示(逻辑1:-15V–-3V 逻辑0:+3V–+15V)
三、RS-485:
半双工、(逻辑1:+2V–+6V 逻辑0: -6V—2V)这里的电平指AB 两线间的电压差。
1、硬件框图如下
注意:末端需要加120欧姆的匹配电阻
2、‘0’和‘1’表示
(逻辑1:+2V–+6V 逻辑0: -6V—2V)这里的电平指AB 两线间的电压差。通过压差大小来表示逻辑信号
四、CAN总线:
逻辑1:-1.5V–0V 逻辑0:+1.5V–+3V)这里的电平指CAN_High、CAN_Low 两线间的电压差。
1、硬件框图如下
2、‘0’和‘1’表示
以上总结:
1、从单片机软件编程角度来说,RS232、RS-485最终结果都是转换为TTL电平方式与单片机通信(CAN收发器把差分信号转化为TTL–>CAN控制器(MCU))。其目的都是提高通信质量,提高抗干扰能力。
2、TTL、RS232是逻辑电平信号(逻辑电平需要共地操作)。RS-485、CAN为差分信号。
3.关于传输速率和距离:
串口232:其传送距离最大为约15米(//标准参数是50英尺),最高速率为20kb/s。
串口485:RS-485的数据最高传输速率为10Mbps,数据信号速率降低到90Kbit/S以下时,假定最大允许的信号损失为6dBV时,长度被限制在1200M
CAN:通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M)
五、I2C
1 、I2C物理层
上拉电阻可以取的范围是1.53K~7K VDD = 5V,一般取5.1K ,3.3V VDD低功耗设计中,通常选用4.7K牺牲速度换取电池使用时间,此阻值也是常规阻值。
2、 I2C协议层
7地址位,1位读写标志位
3.数据的起始信号与停止信号
4.数据有效性
I2C 协议在 SCL 高电平时对 SDA 信号采样, SCL 低电平时 SDA准备下一个数据。
5.传输速率和距离
I2C总线理论上传输速度可以为100KHz(标准)、400KHz(快速)和3.4MHz(高速)。
一般小于200mm~300mm,跟传输速度、布线等有关系,延长距离可以用 I2C中继器芯片,NXP如P82B715、P82B96等等。
六、SPI
SPI是由美国摩托罗拉公司推出的一种同步串行传输规范,常作为单片机外设芯片串行扩展接 口。SPI有4个引脚:SS(从器件选择线)、SDO(串行数据输出线)、SDI(串行数据输入线)和SCK(同步串行时钟线)。
1、硬件框图如下
2.传输速率和距离
SPI模块的最大时钟频率为系统时钟频率的1/2。虽然SPI的传输速率主要受限于CPU处理SPI数据的能力,但在同另一个非常高速率的SPI设备通讯时,SPI的最大时钟频率将有可能制约其传输速率。
SPI属于一般的TTL电平,传输距离一般为12米(一般用于板载通信,不用于设备通信)